9 def startSession(modules=[]):
13 _session = SalomeSession(modules)
16 def getShortHostName():
18 gives Hostname without domain extension.
19 SALOME naming service needs short Hostnames (without domain extension).
20 HOSTNAME is not allways defined in environment,
21 socket.gethostname() gives short or complete Hostname, depending on
24 return string.split(socket.gethostname(),'.')[0]
27 print "Searching a free port for naming service:",
33 status = os.system("netstat -ltn | grep -E :%s"%(NSPORT))
35 home = os.environ['HOME']
36 appli=os.environ.get("APPLI")
38 #Run outside application context
41 home='%s/%s'%(home,appli)
42 hostname=getShortHostName()
43 omniorb_config = '%s/.omniORB_%s_%s.cfg'%(home,hostname, NSPORT)
44 os.environ['OMNIORB_CONFIG'] = omniorb_config
45 f = open(omniorb_config, "w")
46 f.write("ORBInitRef NameService=corbaname::%s:%s\n"%(hostname, NSPORT))
48 last_running_config = '%s/.omniORB_%s_last.cfg'%(home, hostname)
49 os.environ['LAST_RUNNING_CONFIG'] = last_running_config
50 if os.access(last_running_config,os.F_OK):
51 os.unlink(last_running_config)
53 os.symlink(omniorb_config,last_running_config)
54 # LAST_RUNNING_CONFIG=${HOME}/${APPLI}/.omniORB_${myhost}_last.cfg
59 msg += "I Can't find a free port to launch omniNames\n"
60 msg += "I suggest you to kill the running servers and try again.\n"
64 os.environ['NSHOST']=hostname
65 os.environ['NSPORT']=str(NSPORT)
69 class SalomeSession(object):
71 import killSalomeWithPort
73 def __init__(self, modules):
75 sys.argv = ["dummy.py"]
76 sys.argv += ["--terminal"]
78 sys.argv += ['--modules=%s'%(",".join(modules))]
80 runSalome.clt, runSalome.args = runSalome.main()
86 runSalome.killLocalPort()