///////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2000-2018 Ericsson Telecom AB                               //
//                                                                           //
// All rights reserved. This program and the accompanying materials          //
// are made available under the terms of the Eclipse Public License v2.0     //
// which accompanies this distribution, and is available at                  //
// https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.html                                 //
///////////////////////////////////////////////////////////////////////////////
[MAIN_CONTROLLER]

[TESTPORT_PARAMETERS]
#*.v_EPTF_CPUloadOnHost_PCO.debugging := "yes"
#*.v_EPTF_HostAdmin_CPUloadOnHost_PCO.scale_process_cpu := "no";
*.EPTF_guiPortIf.use_connection_ASPs := "yes"
*.EPTF_guiPortIf.packet_hdr_length_offset := "0"
*.EPTF_guiPortIf.packet_hdr_nr_bytes_in_length := "4"
*.EPTF_guiPortIf.packet_hdr_byte_order := "MSB"
*.EPTF_guiPortIf.server_mode := "no"
*.EPTF_guiPortIf.halt_on_connection_reset := "no"
*.EPTF_guiPortIf.destIPAddr := "127.0.0.1"

[MODULE_PARAMETERS]

tsp_HostAdmin_DS_guiXmlName := "gui.xml"

tsp_EPTF_HostAdmin_sortBy := CpuLoad;
tsp_StartProcessesWithLoad := {
  {
    hostName := omit,
    desiredLoad := 0.10
  },
  {
    hostName := omit,
    desiredLoad := 0.15
  },
  {
    hostName := omit,
    desiredLoad := 0.10
  },
  {
    hostName := omit,
    desiredLoad := 0.10
  }
}

#tsp_EPTF_HostAdminServer_HRF_kilo := 1024.0;
#tsp_EPTF_HostAdminServer_HRF_suffixList := {" KiB", " MiB" }//{ " kB", " MB", " GB", " TB" }
#tsp_EPTF_HostAdminServer_HRF_digits := 3;
#tsp_debug_EPTF_HostAdmin_Functions := true;
#tsp_debug_EPTF_HostAdmin_Base_Functions := true;
tsp_demoInterval := 60.0;
tsp_demoHost := $HOST;
//tsp_uiDemoHostList := {$HOST, $HOST};
tsp_uiDemoHostList := {$HOST};

tsp_EPTF_HostAdmin_pidList := {
/*  {
    hostName := $HOST,
    pids := {2940}
  }*/
};
tsp_EPTF_HostAdmin_getProcessPidListCmds := {
  {
    hostName := $HOST,
    cmds := {
//      "ps -u " & $USER & " | grep EPTF | awk '{print $1}'"
    }
  }
};

tsp_EPTF_Var_SyncInterval := 1.0;
tsp_EPTF_HostAdmin_loadMeasurementRefreshTime := 3.0;
tsp_xtdp_listen_addr := $HOST
#tsp_xtdp_listen_port := 11223
tsp_EPTF_GUI_Main_Window_Title := "HostAdminUI Demo";
tsp_EPTF_GUI_Main_Window_Width := 640.0;
tsp_EPTF_GUI_Main_Window_Height := 480.0;

[EXECUTE]
#EPTF_HostAdmin_demo.tc_HostAdmin_LocalMeasure
#EPTF_HostAdmin_demo.tc_HostAdmin_RemoteMeasure
#EPTF_HostAdmin_demo.tc_HostAdmin_GUI
EPTF_HostAdmin_demo.tc_HostAdminServer

[LOGGING]
FileMask := LOG_ALL
ConsoleMask := ERROR | WARNING | ACTION | STATISTICS | TESTCASE
SourceInfoFormat := Stack
LogEventTypes := Yes
LogEntityName := Yes

