#include "Basics_Utils.hxx"
#include "Basics_DirUtils.hxx"
#include "PythonCppUtils.hxx"
+#include "KernelBasis.hxx"
#include <sys/types.h>
#include <sys/stat.h>
#include <signal.h>
return ret;
}
+std::string SALOME_ContainerManager::GetCppBinaryOfKernelSSLContainer() const
+{
+ switch( SALOME::GetPyExecutionMode() )
+ {
+ case SALOME::PyExecutionMode::InProcess:
+ return "SALOME_Container_No_NS_Serv";
+ case SALOME::PyExecutionMode::OutOfProcessNoReplay:
+ return "SALOME_Container_No_NS_Serv_OutProcess";
+ case SALOME::PyExecutionMode::OutOfProcessWithReplay:
+ return "SALOME_Container_No_NS_Serv_OutProcess_Replay";
+ default:
+ {
+ ERROR_MESSAGE("Not manager py execution mode");
+ THROW_SALOME_EXCEPTION("GetCppBinaryOfKernelSSLContainer : Not manager py execution mode");
+ }
+ }
+}
+
std::string SALOME_ContainerManager::GetCppBinaryOfKernelContainer() const
{
- std::string ret = this->_isSSL ? "SALOME_Container_No_NS_Serv" : "SALOME_Container";
+ std::string ret = this->_isSSL ? GetCppBinaryOfKernelSSLContainer() : "SALOME_Container";
return ret;
}
// manage GIL
PyObject* mod(PyImport_ImportModule(theScriptName.c_str()));
+ MESSAGE("Template name :"<< theScriptName.c_str());
+
if (!mod)
{
- PyObject* sys = PyImport_ImportModule("sys");
- PyObject* sys_path = PyObject_GetAttrString(sys, "path");
- PyObject* folder_path = PyUnicode_FromString(getScriptTemplateFilePath().c_str());
+ AutoPyRef sys = PyImport_ImportModule("sys");
+ AutoPyRef sys_path = PyObject_GetAttrString(sys, "path");
+ AutoPyRef folder_path = PyUnicode_FromString(getScriptTemplateFilePath().c_str());
PyList_Append(sys_path, folder_path);
mod = PyImport_ImportModule(theScriptName.c_str());
- Py_XDECREF(folder_path);
- Py_XDECREF(sys_path);
- Py_XDECREF(sys);
}
if (mod)
Py_XDECREF(mod);
}
}
+ else
+ {
+ ERROR_MESSAGE("Can not import the template script \"" << theScriptName << "\" !");
+ }
MESSAGE("Command from template is ... " << command << std::endl);
return command;
std::string ompi_uri_file = GetenvThreadSafeAsString("OMPI_URI_FILE");
script_parameters.push(ompi_uri_file.empty() ? "NULL" : ompi_uri_file);
+ MESSAGE("Retrieving command from template (python module) \"" << script_name << "\"" << std::endl);
std::string command_from_template = GetCommandFromTemplate(script_name, script_parameters);
std::ostringstream o;