Salome HOME
bos #24412 Add missing failback for UpdateView() method
[modules/kernel.git] / src / KERNEL_PY / salome_kernel.py
old mode 100755 (executable)
new mode 100644 (file)
index 0f6f627..6094d40
@@ -1,5 +1,5 @@
 #  -*- coding: iso-8859-1 -*-
-# Copyright (C) 2007-2014  CEA/DEN, EDF R&D, OPEN CASCADE
+# Copyright (C) 2007-2021  CEA/DEN, EDF R&D, OPEN CASCADE
 #
 # Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
 # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
@@ -31,14 +31,35 @@ from LifeCycleCORBA import *
 from SALOME_NamingServicePy import *
 from SALOME_utilities import *
 import Engines
+import SALOME
+import SALOME_ModuleCatalog
 
 orb = None
 lcc = None
 naming_service = None
 cm = None
+esm = None
+dsm = None
+modulcat = None
+
+def list_of_catalogs_regarding_environement():
+    """
+    Method to detect XML module catalogs regarding environement variables
+    """
+    import os
+    KEY_IN_ENV_VAR = "_ROOT_DIR"
+    modules_env_var = [elt for elt in os.environ.keys() if elt[-len(KEY_IN_ENV_VAR):]==KEY_IN_ENV_VAR]
+    list_catalogs = []
+    for module_env_var in modules_env_var:
+        module_upper_case = module_env_var[:-len(KEY_IN_ENV_VAR)]
+        file_candidate = os.path.join(os.environ[module_env_var],"share","salome","resources",module_upper_case.lower(),"{}Catalog.xml".format(module_upper_case))
+        if os.path.isfile(file_candidate):
+            list_catalogs.append(file_candidate)
+        pass
+    return list_catalogs
 
 def salome_kernel_init():
-    global orb, lcc, naming_service, cm
+    global orb, lcc, naming_service, cm, esm, dsm, modulcat
     
     if not orb:
         # initialise the ORB
@@ -53,5 +74,14 @@ def salome_kernel_init():
         # get Container Manager
         obj = naming_service.Resolve('/ContainerManager')
         cm = obj._narrow(Engines.ContainerManager)
-
-    return orb, lcc, naming_service, cm
+        # get External Server Manager
+        obj = naming_service.Resolve('/ExternalServers')
+        esm = obj._narrow(SALOME.ExternalServerLauncher)
+        #
+        obj = naming_service.Resolve('/DataServerManager')
+        dsm = obj._narrow(SALOME.DataServerManager)
+        #
+        obj = naming_service.Resolve('Kernel/ModulCatalog')
+        modulcat = obj._narrow(SALOME_ModuleCatalog.ModuleCatalog)
+        
+    return orb, lcc, naming_service, cm, esm, dsm, modulcat