23 #ifndef __SALOME_CONTAINERMANAGER_HXX__
24 #define __SALOME_CONTAINERMANAGER_HXX__
28 #include <SALOMEconfig.h>
29 #include CORBA_CLIENT_HEADER(SALOME_Component)
30 #include CORBA_CLIENT_HEADER(SALOME_ContainerManager)
53 void ShutdownContainers()
override;
59 void SetCodeOnContainerStartUp(
const char *code)
override;
66 CORBA::Long GetTimeOutToLaunchServerInSecond()
override;
68 void SetTimeOutToLaunchServerInSecond(CORBA::Long timeInSecond)
override;
70 CORBA::Long GetDeltaTimeBetweenNSLookupAtLaunchTimeInMilliSecond()
override;
72 void SetDeltaTimeBetweenNSLookupAtLaunchTimeInMilliSecond(CORBA::Long timeInMS)
override;
78 Engines::Container_ptr
82 Engines::Container_ptr
84 const std::string& resource);
86 std::string GetCppBinaryOfKernelContainer()
const;
88 std::string GetRunRemoteExecutableScript()
const;
90 std::string BuildCommandToLaunchRemoteContainer(
const std::string & resource_name,
92 const std::string& container_exe=
"SALOME_Container")
const;
95 const std::string& machinesFile,
96 const std::string& container_exe,
97 std::string& tmpFileName)
const;
99 std::string BuildTempFileToLaunchRemoteContainer(
const std::string& resource_name,
102 static void RmTmpFile(std::string& tmpFile);
104 void AddOmninamesParams(std::string&
command)
const;
106 void AddOmninamesParams(std::ostream& fileStream)
const;
108 static std::string BuildTemporaryFileName();
110 std::string GetMPIZeroNode(
const std::string machine,
const std::string machinesFile)
const;
112 std::string machinesFile(
const int nbproc);
114 std::string getCommandToRunRemoteProcessCommon(
const std::string& templateName,
const std::string& remoteScript,
117 const std::string & username,
118 const std::string & applipath,
119 const std::string & workdir)
const;
123 const std::string & username,
124 const std::string & applipath,
125 const std::string & workdir=
"")
const;
129 const std::string & username,
130 const std::string & applipath,
131 const std::string & workdir=
"")
const;
133 Engines::Container_ptr
135 const std::string & resource_selected,
137 const std::string & machFile,
138 const std::string & containerNameInNS);
167 Engines::Container_ptr
173 std::string machine_file_name,
174 std::string & proxy_hostname);
177 const std::string & machine_file_name,
179 const std::string & proxy_hostname);
181 void LogConfiguration(
const std::string & log_type,
182 const std::string & exe_type,
189 LaunchPaCOProxyContainer(
const std::string&
command,
194 LaunchPaCONodeContainer(
const std::string&
command,
196 const std::string&
name,
200 static char *GetenvThreadSafe(
const char *
name);
201 static std::string GetenvThreadSafeAsString(
const char *
name);
202 static int SystemThreadSafe(
const char *
command);
203 static long SystemWithPIDThreadSafe(
const std::vector<std::string>&
command);
205 static void MakeTheCommandToBeLaunchedASync(std::string&
command);
206 static int GetTimeOutToLoaunchServer();
207 static void SleepInSecond(
int ellapseTimeInSecond);
#define CONTAINER_EXPORT
Definition: SALOME_Container.hxx:37
AccessProtocolType
Definition: SALOME_ResourcesCatalog_Parser.hxx:44
Definition: SALOME_ContainerManager.hxx:44
void DeclareUsingSalomeSession()
Definition: SALOME_ContainerManager.hxx:64
PortableServer::POA_var _poa
Definition: SALOME_ContainerManager.hxx:141
std::vector< std::pair< std::string, std::string > > _override_env
Definition: SALOME_ContainerManager.hxx:214
SALOME_NamingService_Abstract * _NS
Definition: SALOME_ContainerManager.hxx:144
std::string _code_to_exe_on_startup
Definition: SALOME_ContainerManager.hxx:217
int _nbprocUsed
attribute that contains the number of processes used in batch mode by MPI containers
Definition: SALOME_ContainerManager.hxx:150
static Utils_Mutex _systemMutex
Definition: SALOME_ContainerManager.hxx:212
static omni_mutex _numInstanceMutex
Definition: SALOME_ContainerManager.hxx:155
static const int TIME_OUT_TO_LAUNCH_CONT
Definition: SALOME_ContainerManager.hxx:209
static Utils_Mutex _getenvMutex
Definition: SALOME_ContainerManager.hxx:211
pid_t _pid_mpiServer
Definition: SALOME_ContainerManager.hxx:160
static const int DFT_DELTA_TIME_NS_LOOKUP_IN_MS
Definition: SALOME_ContainerManager.hxx:210
CORBA::ORB_var _orb
Definition: SALOME_ContainerManager.hxx:140
int _delta_time_ns_lookup_in_ms
Definition: SALOME_ContainerManager.hxx:216
int _time_out_in_second
Definition: SALOME_ContainerManager.hxx:215
static const char * _ContainerManagerNameInNS
Definition: SALOME_ContainerManager.hxx:74
Utils_Mutex _giveContainerMutex1
attributes to allow concurrency for // GiveContainer
Definition: SALOME_ContainerManager.hxx:158
std::vector< std::string > actual_launch_machine_t
Definition: SALOME_ContainerManager.hxx:163
SALOME_ResourcesManager_Client * _resManager
Definition: SALOME_ContainerManager.hxx:143
bool _isAppliSalomeDefined
different behaviour if $APPLI exists (SALOME Application)
Definition: SALOME_ContainerManager.hxx:147
Definition: SALOME_NamingService_Abstract.hxx:46
Definition: SALOME_ResourcesManager_Client.hxx:33
Definition: Utils_Mutex.hxx:37
sequence< string > ResourceList
Type to transmit list of resources.
Definition: SALOME_ResourcesManager.idl:35
sequence< KeyValPairString > KeyValDict
Definition: SALOME_ContainerManager.idl:76
poa
Definition: SALOME_ContainerPy.py:377
list command
Definition: TestKernelHelpers.py:48
container_name
Definition: TestLifeCycleCORBA.py:42
ContainerManager
Definition: TestLifeCycleCORBA.py:57
string name
Definition: pythfilter.py:56
orb
Definition: salome.py:122
hostname
Definition: test.py:29
Type to describe required properties of a container.
Definition: SALOME_ContainerManager.idl:38