X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=bin%2Fnameserver.py;h=e20cd2f9c9ed4807a688ce7a34678fa977becaed;hb=44d76ca4d8b7d52192167790d1c0416d26629702;hp=46454429c174dd154fedd23c0845570a5ffb65dd;hpb=9749fc1db72bd80e278405114b05ffc69b5031da;p=modules%2Fkernel.git diff --git a/bin/nameserver.py b/bin/nameserver.py old mode 100755 new mode 100644 index 46454429c..e20cd2f9c --- a/bin/nameserver.py +++ b/bin/nameserver.py @@ -1,6 +1,5 @@ -#!/usr/bin/env python # -*- coding: iso-8859-1 -*- -# Copyright (C) 2007-2013 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2019 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 @@ -8,7 +7,7 @@ # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either -# version 2.1 of the License. +# version 2.1 of the License, or (at your option) any later version. # # This library is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -22,62 +21,37 @@ # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -import sys, os, re, socket +import os, sys, re, socket #import commands -from server import * -from Utils_Identity import getShortHostName +from server import Server +from salome_utils import getHostName from launchConfigureParser import verbose # ----------------------------------------------------------------------------- class NamingServer(Server): - XTERM="" - USER=os.getenv('USER') - if USER is None: - USER='anonymous' - #os.system("mkdir -m 777 -p /tmp/logs") - LOGDIR="/tmp/logs/" + USER - - def initNSArgs(self): - if sys.platform == "win32": - # temporarily using home directory for Namning Service logs - # to be replaced with TEMP later... - os.environ["BaseDir"]=os.environ["HOME"] - else: - os.environ["BaseDir"]="/tmp" - + #XTERM = "" + #USER = os.getenv('USER') + #if USER is None: + # USER = 'anonymous' + #os.system("mkdir -m 777 -p /tmp/logs") + #LOGDIR = "/tmp/logs/" + USER + + def initNSArgs(self): + from salome_utils import getLogDir + upath = getLogDir() try: - os.mkdir(os.environ["BaseDir"] + "/logs") - os.chmod(os.environ["BaseDir"] + "/logs", 0777) + os.makedirs(upath, mode=0o777) except: - #print "Can't create " + os.environ["BaseDir"] + "/logs" - pass - - upath = os.environ["BaseDir"] + "/logs/"; - if sys.platform == "win32": - upath += os.environ["Username"]; - else: - upath += os.environ["USER"]; + pass - try: - os.mkdir(upath) - except: - #print "Can't create " + upath - pass + if verbose(): print("Name Service... ", end =' ') + hname = getHostName() - if verbose(): print "Name Service... ", - #hname=os.environ["HOST"] #commands.getoutput("hostname") - if sys.platform == "win32": - hname=getShortHostName(); - else: - hname = socket.gethostname(); - #print "hname=",hname - - f=open(os.environ["OMNIORB_CONFIG"]) - ss=re.findall("NameService=corbaname::" + hname + ":\d+", f.read()) - if verbose(): print "ss = ", ss, - f.close() - sl=ss[0] + with open(os.environ["OMNIORB_CONFIG"]) as f: + ss = re.findall("NameService=corbaname::" + hname + ":\d+", f.read()) + if verbose(): print("ss = ", ss, end=' ') + sl = ss[0] ll = sl.split(':') aPort = ll[-1] #aPort=(ss.join().split(':'))[2]; @@ -88,46 +62,48 @@ class NamingServer(Server): # it is cleaner on linux and it is a fix for salome since it is impossible to # remove the log files if the corresponding omniNames has not been killed. # \end{E.A.} - - upath += "/omniNames_%s"%(aPort) + + upath = os.path.join(upath, "omniNames_%s"%(aPort)) try: - os.mkdir(upath) + os.mkdir(upath) except: - #print "Can't create " + upath - pass - + # print("Can't create " + upath) + pass + #os.system("touch " + upath + "/dummy") for fname in os.listdir(upath): try: - os.remove(upath + "/" + fname) + os.remove(upath + "/" + fname) except: pass #os.system("rm -f " + upath + "/omninames* " + upath + "/dummy " + upath + "/*.log") #aSedCommand="s/.*NameService=corbaname::" + hname + ":\([[:digit:]]*\)/\1/" - #print "sed command = ", aSedCommand + # print("sed command = ", aSedCommand) #aPort = commands.getoutput("sed -e\"" + aSedCommand + "\"" + os.environ["OMNIORB_CONFIG"]) - #print "port=", aPort + # print("port=", aPort) if sys.platform == "win32": - #print "start omniNames -start " + aPort + " -logdir " + upath - self.CMD=['omniNames -start ' , aPort , ' -nohostname ', ' -logdir ' , '\"' + upath + '\"', ' -errlog', '\"' + upath+'/omniNameErrors.log' + '\"'] + # print("start omniNames -start " + aPort + " -logdir " + upath) + self.CMD = ['omniNames', '-start' , aPort , '-nohostname', '-logdir' , os.path.realpath(upath), '-errlog', os.path.realpath(os.path.join(upath,'omniNameErrors.log'))] #os.system("start omniNames -start " + aPort + " -logdir " + upath) else: #self.CMD=['omniNames -start ' , aPort , ' -logdir ' , upath , ' &'] - self.CMD=['omniNames','-start' , aPort, '-logdir' , upath, '-errlog', upath+'/omniNameErrors.log'] + self.CMD = ['omniNames','-start' , aPort, '-logdir' , upath, '-errlog', upath+'/omniNameErrors.log'] #os.system("omniNames -start " + aPort + " -logdir " + upath + " &") - if verbose(): print "... ok" - if verbose(): print "to list contexts and objects bound into the context with the specified name : showNS " + if verbose(): print("... ok") + if verbose(): print("to list contexts and objects bound into the context with the specified name : showNS ") - def initArgs(self): + def initArgs(self): Server.initArgs(self) if sys.platform == "win32": - env_ld_library_path=['env', 'LD_LIBRARY_PATH=' + os.getenv("PATH")] + env_ld_library_path = ['env', 'LD_LIBRARY_PATH=' + os.getenv("PATH")] + elif sys.platform == "darwin": + env_ld_library_path = ['env', 'DYLD_LIBRARY_PATH=' + os.getenv("DYLD_LIBRARY_PATH"), 'DYLD_FALLBACK_LIBRARY_PATH=' + os.getenv("DYLD_FALLBACK_LIBRARY_PATH")] else: - env_ld_library_path=['env', 'LD_LIBRARY_PATH=' + os.getenv("LD_LIBRARY_PATH")] - self.CMD=['xterm', '-e']+ env_ld_library_path + ['python'] + env_ld_library_path = ['env', 'LD_LIBRARY_PATH=' + os.getenv("LD_LIBRARY_PATH")] + self.CMD = ['xterm', '-e']+ env_ld_library_path + ['python'] self.initNSArgs() # In LifeCycleCORBA, FactoryServer is started with rsh on the requested @@ -135,7 +111,7 @@ class NamingServer(Server): # Others Containers are started with start_impl method of FactoryServer Container. # For using rsh it is necessary to have in the ${HOME} directory a .rhosts file # Warning : on RedHat the file /etc/hosts contains by default a line like : -# 127.0.0.1 bordolex bordolex.paris1.matra-dtv.fr localhost.localdomain localhost +# 127.0.0.1 bordolex bordolex.paris1.matra-dtv.fr localhost.localdomain localhost # (bordolex is the station name). omniNames on bordolex will be accessible from other # computers only if the computer name is removed on that line like : # 127.0.0.1 bordolex.paris1.matra-dtv.fr localhost.localdomain localhost