--config=<file,folder,...>
==========================
Initialize SALOME context from a list of context files and/or a list
- of folders containing context files. The list is comma-separated, whithout
+ of folders containing context files. The list is comma-separated, without
any blank characters.
'''
"""
def __init__(self, configFileNames=0):
self.getLogger().setLevel(logging.INFO)
- #it could be None explicitely (if user use multiples setVariable...for standalone)
+ #it could be None explicitly (if user use multiples setVariable...for standalone)
if configFileNames is None:
return
configFileNames = configFileNames or []
self.getLogger().error("Unrecognized extension for configuration file: %s", filename)
#
- def __loadMPI(self, module_name):
- print "Trying to load MPI module: %s..."%module_name,
+ def __loadEnvModules(self, env_modules):
+ print("Trying to load env modules: %s..." % ' '.join(env_modules))
try:
- out, err = subprocess.Popen(["modulecmd", "python", "load", module_name], stdout=subprocess.PIPE).communicate()
- exec out # define specific environment variables
- print " OK"
+ out, err = subprocess.Popen(["modulecmd", "python", "load"] + env_modules, stdout=subprocess.PIPE).communicate()
+ exec(out) # define specific environment variables
+ print("OK")
except:
- print " ** Failed **"
+ print("** Failed **")
pass
#
import os
# Run this module as a script, in order to use appropriate Python interpreter
# according to current path (initialized from context files).
- mpi_module_option = "--with-mpi-module="
- mpi_module = [x for x in args if x.startswith(mpi_module_option)]
- if mpi_module:
- mpi_module = mpi_module[0][len(mpi_module_option):]
- self.__loadMPI(mpi_module)
- args = [x for x in args if not x.startswith(mpi_module_option)]
+ env_modules_option = "--with-env-modules="
+ env_modules_l = [x for x in args if x.startswith(env_modules_option)]
+ if env_modules_l:
+ env_modules = env_modules_l[-1][len(env_modules_option):].split(',')
+ self.__loadEnvModules(env_modules)
+ args = [x for x in args if not x.startswith(env_modules_option)]
else:
- mpi_module = os.getenv("SALOME_MPI_MODULE_NAME", None)
- if mpi_module:
- self.__loadMPI(mpi_module)
+ env_modules = os.getenv("SALOME_ENV_MODULES", None)
+ if env_modules:
+ self.__loadEnvModules(env_modules.split(','))
absoluteAppliPath = os.getenv('ABSOLUTE_APPLI_PATH','')
env_copy = os.environ.copy()
"""
Run SALOME!
- Args consist in a mandatory command followed by optionnal parameters.
+ Args consist in a mandatory command followed by optional parameters.
See usage for details on commands.
"""
def _startSalome(self, args):
try:
res = getattr(self, command)(options) # run appropriate method
return res or 0
- except SystemExit, returncode:
- if returncode != 0:
- self.getLogger().error("SystemExit %s in method %s.", returncode, command)
- return returncode
+ except SystemExit as ex:
+ if ex.code != 0:
+ self.getLogger().error("SystemExit %s in method %s.", ex.code, command)
+ return ex.code
except StandardError:
self.getLogger().error("Unexpected error:")
import traceback
cmd = ["/bin/bash"]
proc = subprocess.Popen(cmd, shell=False, close_fds=True)
proc.communicate()
- return proc.returncode()
+ return proc.returncode
#
def _runSession(self, args=None):