# dl module can be unavailable
import dl
flags = dl.RTLD_NOW | dl.RTLD_GLOBAL
- except:
+ except Exception:
pass
pass
if not flags:
# DLFCN module can be unavailable
import DLFCN
flags = DLFCN.RTLD_NOW | DLFCN.RTLD_GLOBAL
- except:
+ except Exception:
pass
pass
if not flags:
# ctypes module can be unavailable
import ctypes
flags = ctypes.RTLD_GLOBAL
- except:
+ except Exception:
pass
pass
#
if KernelBasis.getSSLMode():
if KernelBasis.getIOROfEmbeddedNS() == "":
- salome_init_without_session()
+ salome_init_without_session(path, embedded)
else:
- salome_init_without_session_attached()
+ salome_init_without_session_attached(path, embedded)
else:
salome_init_with_session(path, embedded)
def getResourcesManager(self):
return self._rm
-def salome_init_without_session_common():
+def salome_init_without_session_common(path=None, embedded=False):
+ from ORBConfigFile import writeORBConfigFileSSL
+ OMNIORB_USER_PATH = "OMNIORB_USER_PATH"
+ def RemoveOmniorbConfigFile():
+ import os
+ if "OMNIORB_CONFIG" in os.environ:
+ fileToRemove = os.environ["OMNIORB_CONFIG"]
+ if os.path.exists(fileToRemove):
+ os.unlink(fileToRemove)
+
+ if OMNIORB_USER_PATH in os.environ:
+ import atexit
+ writeORBConfigFileSSL(os.environ[OMNIORB_USER_PATH],kwargs={"with_pid":True})
+ atexit.register(RemoveOmniorbConfigFile)
+
global lcc,naming_service,myStudy,orb,modulcat,sg
import KernelBasis
KernelBasis.setSSLMode(True)
poa = orb.resolve_initial_references("RootPOA")
poaManager = poa._get_the_POAManager()
poaManager.activate()
- sg = SalomeOutsideGUI()
- salome_study_init_without_session()
+ #
+ sg = salome_iapp_init(embedded)
+ salome_study_init_without_session(path)
#
from NamingService import NamingService
naming_service = NamingService()
-def salome_init_without_session():
- salome_init_without_session_common()
+def salome_init_without_session(path=None, embedded=False):
+ salome_init_without_session_common(path,embedded)
global lcc,cm,dsm,esm
import KernelLauncher
cm = KernelLauncher.myContainerManager()
# esm inherits also from SALOME_ResourcesManager creation/initialization (concerning SingleThreadPOA POA) when KernelLauncher.GetContainerManager() has been called
esm = KernelLauncher.GetExternalServer()
-def salome_init_without_session_attached():
+def salome_init_without_session_attached(path=None, embedded=False):
"""
Configuration SSL inside a python interpretor launched in the SALOME_Container_No_NS_Serv.
In this configuration,
"""
- salome_init_without_session_common()
+ salome_init_without_session_common(path,embedded)
global lcc,cm,dsm,esm
import CORBA
orb=CORBA.ORB_init([''])
import KernelBasis
nsAbroad = orb.string_to_object( KernelBasis.getIOROfEmbeddedNS() )
import SALOME
- cm = orb.string_to_object( nsAbroad.Resolve("/ContainerManager").decode() )
- rm = orb.string_to_object( nsAbroad.Resolve("/ResourcesManager").decode() )
+ CM_NAME_IN_NS = "/ContainerManager"
+ cm = orb.string_to_object( nsAbroad.Resolve(CM_NAME_IN_NS).decode() )
+ naming_service.Register(cm,CM_NAME_IN_NS)
+ RM_NAME_IN_NS = "/ResourcesManager"
+ rm = orb.string_to_object( nsAbroad.Resolve(RM_NAME_IN_NS).decode() )
+ naming_service.Register(rm,RM_NAME_IN_NS)
+ #
+ DSM_NAME_IN_NS = "/DataServerManager"
lcc = StandAloneLifecyle(cm,rm)
- dsm = orb.string_to_object( nsAbroad.Resolve("/DataServerManager").decode() )
- esm = orb.string_to_object( nsAbroad.Resolve("/ExternalServers").decode() )
+ dsm = orb.string_to_object( nsAbroad.Resolve(DSM_NAME_IN_NS).decode() )
+ naming_service.Register(dsm,DSM_NAME_IN_NS)
+ #
+ ESM_NAME_IN_NS = "/ExternalServers"
+ esm = orb.string_to_object( nsAbroad.Resolve(ESM_NAME_IN_NS).decode() )
+ naming_service.Register(esm,ESM_NAME_IN_NS)
def salome_init_with_session(path=None, embedded=False):
"""
try:
# study can be clear either from GUI or directly with salome.myStudy.Clear()
myStudy.Clear()
- except:
+ except Exception:
pass
salome_initial=True
salome_iapp_close()
salome_study_close()
myStudy, myStudyName = None, None
import KernelBasis
- if KernelBasis.getSSLMode():
+ if KernelBasis.getSSLMode() and not KernelBasis.getGUIMode():
import KernelDS
KernelDS.KillGlobalSessionInstance()
import KernelSDS
pass
pass
-def salome_shutdown_containers():
+def salome_shutdown_containers_with_session():
salome_init()
ns=salome_NS()
li = [elt for elt in salome_walk_on_containers(ns,[""])]
for cont,(root,cont_name) in li:
try:
cont.Shutdown()
- except:
+ except Exception:
pass
ref_in_ns = "/".join(root+[cont_name])
naming_service.Destroy_Name(ref_in_ns)
print("Number of containers in NS after clean : {}".format( len( list(salome_walk_on_containers(ns,[""])) )))
+
+def salome_shutdown_containers_without_session():
+ containersEntries = [elt for elt in naming_service.repr() if "/Containers/" == elt[:12]]
+ for containerEntry in containersEntries:
+ cont = naming_service.Resolve(containerEntry)
+ try:
+ cont.Shutdown()
+ except:
+ pass
+
+def salome_shutdown_containers():
+ import KernelBasis
+ if KernelBasis.getSSLMode():
+ salome_shutdown_containers_without_session()
+ else:
+ salome_shutdown_containers_with_session()
class SessionContextManager:
def __enter__(self):