-#!/usr/bin/env python
-# Copyright (C) 2006-2016 CEA/DEN, EDF R&D
+#!/usr/bin/env python3
+# Copyright (C) 2006-2024 CEA, EDF
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
--help : affichage de l'aide
--gui : lancement du GUI
--logger : redirection des messages dans un fichier
---xterm : les serveurs ouvrent une fenêtre xterm et les messages sont affichés dans cette fenêtre
---modules=module1,module2,... : où modulen est le nom d'un module Salome à charger dans le catalogue
+--xterm : les serveurs ouvrent une fen??tre xterm et les messages sont affich??s dans cette fen??tre
+--modules=module1,module2,... : o?? modulen est le nom d'un module Salome ?? charger dans le catalogue
--containers=cpp,python,superv: lancement des containers cpp, python et de supervision
---killall : arrêt des serveurs de salome
+--killall : arr??t des serveurs de salome
- La variable d'environnement <modulen>_ROOT_DIR doit etre préalablement
- positionnée (modulen doit etre en majuscule).
+ La variable d'environnement <modulen>_ROOT_DIR doit etre pr??alablement
+ positionn??e (modulen doit etre en majuscule).
KERNEL_ROOT_DIR est obligatoire.
"""
# -----------------------------------------------------------------------------
#
-# Fonction d'arrêt de salome
+# Fonction d'arr??t de salome
#
def killSalome():
- print "arret des serveurs SALOME"
- for pid, cmd in process_id.items():
- print "arret du process %s : %s"% (pid, cmd[0])
+ print("arret des serveurs SALOME")
+ for pid, cmd in list(process_id.items()):
+ print("arret du process %s : %s"% (pid, cmd[0]))
try:
os.kill(pid,signal.SIGKILL)
except:
- print " ------------------ process %s : %s inexistant"% (pid, cmd[0])
- print "arret du naming service"
+ print(" ------------------ process %s : %s inexistant"% (pid, cmd[0]))
+ print("arret du naming service")
os.system("killall -9 omniNames")
# -----------------------------------------------------------------------------
#
def message(code, msg=''):
- if msg: print msg
+ if msg: print(msg)
sys.exit(code)
import sys,os,string,glob,time,signal,pickle,getopt
try:
for o, a in opts:
if o in ('-h', '--help'):
- print usage
+ print(usage)
sys.exit(1)
elif o in ('-g', '--gui'):
with_gui=1
fpid=open(filedict, 'r')
found = 1
except:
- print "le fichier %s des process SALOME n'est pas accessible"% filedict
+ print("le fichier %s des process SALOME n'est pas accessible"% filedict)
if found:
process_id=pickle.load(fpid)
process_id={}
os.remove(filedict)
-except getopt.error, msg:
- print usage
+except getopt.error as msg:
+ print(usage)
sys.exit(1)
# -----------------------------------------------------------------------------
#
-# Vérification des variables d'environnement
+# V??rification des variables d'environnement
#
try:
kernel_root_dir=os.environ["KERNEL_ROOT_DIR"]
modules_root_dir["KERNEL"]=kernel_root_dir
except:
- print usage
+ print(usage)
sys.exit(1)
for module in liste_modules :
module_root_dir=os.environ[module +"_ROOT_DIR"]
modules_root_dir[module]=module_root_dir
except:
- print usage
+ print(usage)
sys.exit(1)
# il faut KERNEL en premier dans la liste des modules
# - l'ordre des modules dans le catalogue sera identique
-# - la liste des modules presents dans le catalogue est exploitée pour charger les modules CORBA python,
+# - la liste des modules presents dans le catalogue est exploit??e pour charger les modules CORBA python,
# il faut charger les modules python du KERNEL en premier
if "KERNEL" in liste_modules:liste_modules.remove("KERNEL")
#print liste_modules
#print modules_root_dir
-os.environ["SALOMEPATH"]=":".join(modules_root_dir.values())
+os.environ["SALOMEPATH"]=":".join(list(modules_root_dir.values()))
if "SUPERV" in liste_modules:with_container_superv=1
# -----------------------------------------------------------------------------
#
-# Définition des classes d'objets pour le lancement des Server CORBA
+# D??finition des classes d'objets pour le lancement des Server CORBA
#
class Server:
class CatalogServer(Server):
SCMD1=['SALOME_ModuleCatalog_Server','-common']
- SCMD2=['-personal','${HOME}/Salome/resources/CatalogModulePersonnel.xml']
+ home_dir=os.path.expanduser("~")
+ SCMD2=['-personal',os.path.join(home_dir,'Salome', 'resources', 'CatalogModulePersonnel.xml')]
def setpath(self,liste_modules):
cata_path=[]
for module in liste_modules:
module_root_dir=modules_root_dir[module]
module_cata=module+"Catalog.xml"
- print " ", module_cata
+ print(" ", module_cata)
cata_path.extend(glob.glob(os.path.join(module_root_dir,"share","salome","resources",module_cata)))
self.CMD=self.SCMD1 + [string.join(cata_path,':')] + self.SCMD2
RegistryServer().run()
#
- # Attente de la disponibilité du Registry dans le Naming Service
+ # Attente de la disponibilit?? du Registry dans le Naming Service
#
clt.waitNS("/Registry")
cataServer.run()
#
- # Attente de la disponibilité du Catalog Server dans le Naming Service
+ # Attente de la disponibilit?? du Catalog Server dans le Naming Service
#
import SALOME_ModuleCatalog
clt.waitNS("/Kernel/ModulCatalog",SALOME_ModuleCatalog.ModuleCatalog)
SalomeDSServer().run()
if "GEOM" in liste_modules:
- print "GEOM OCAF Resources"
+ print("GEOM OCAF Resources")
os.environ["CSF_GEOMDS_ResourcesDefaults"]=os.path.join(modules_root_dir["GEOM"],"share","salome","resources")
#
- # Attente de la disponibilité du SalomeDS dans le Naming Service
+ # Attente de la disponibilit?? du SalomeDS dans le Naming Service
#
clt.waitNS("/myStudyManager")
SessionServer().run()
#
- # Attente de la disponibilité du Session Server dans le Naming Service
+ # Attente de la disponibilit?? du Session Server dans le Naming Service
#
import SALOME
session=clt.waitNS("/Kernel/Session",SALOME.Session)
if with_container_cpp:
ContainerCPPServer().run()
#
- # Attente de la disponibilité du Container C++ local
+ # Attente de la disponibilit?? du Container C++ local
# dans le Naming Service
#
clt.waitNS("/Containers/" + theComputer + "/FactoryServer")
if with_container_python:
ContainerPYServer().run()
#
- # Attente de la disponibilité du Container Python local
+ # Attente de la disponibilit?? du Container Python local
# dans le Naming Service
#
clt.waitNS("/Containers/" + theComputer + "/FactoryServerPy")
#
ContainerSUPERVServer().run()
#
- # Attente de la disponibilité du Container Supervision local
+ # Attente de la disponibilit?? du Container Supervision local
# dans le Naming Service
#
clt.waitNS("/Containers/" + theComputer + "/SuperVisionContainer")
#session.GetInterface()
end_time = os.times()
- print
- print "Start SALOME, elpased time : %5.1f seconds"% (end_time[4] - init_time[4])
+ print()
+ print("Start SALOME, elpased time : %5.1f seconds"% (end_time[4] - init_time[4]))
return clt
try:
clt = startSalome()
except:
- print
- print
- print "--- erreur au lancement Salome ---"
+ print()
+ print()
+ print("--- erreur au lancement Salome ---")
#print process_id
pickle.dump(process_id,fpid)
fpid.close()
- print """
+ print("""
Sauvegarde du dictionnaire des process dans , %s
Pour tuer les process SALOME, executer : python killSalome.py depuis
une console, ou bien killSalome() depuis le present interpreteur,
- s'il n'est pas fermé.
+ s'il n'est pas ferm??.
runSalome, avec l'option --killall, commence par tuer les process restants
- d'une execution précédente.
+ d'une execution pr??c??dente.
Pour lancer uniquement le GUI, executer startGUI() depuis le present interpreteur,
- s'il n'est pas fermé.
+ s'il n'est pas ferm??.
- """ % filedict
+ """ % filedict)
#
# Impression arborescence Naming Service
#
if clt != None:
- print
- print " --- registered objects tree in Naming Service ---"
+ print()
+ print(" --- registered objects tree in Naming Service ---")
clt.showNS()
session=clt.waitNS("/Kernel/Session")
catalog=clt.waitNS("/Kernel/ModulCatalog")
f.write(PYTHONSTARTUP)
f.close()
- exec PYTHONSTARTUP in {}
+ exec(PYTHONSTARTUP, {})