X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=bin%2Fnameserver.py;h=77d04f802053a3b4690884eee13049e1477f7c04;hb=a4874256219c549a9b1ff740d549391c4bf2f25f;hp=56c1002690108b1e88e5979cb4ae6f78389aebd2;hpb=33045b958bf590997b2765a5f0a17c2139d92b92;p=modules%2Fkernel.git diff --git a/bin/nameserver.py b/bin/nameserver.py old mode 100755 new mode 100644 index 56c100269..77d04f802 --- a/bin/nameserver.py +++ b/bin/nameserver.py @@ -1,6 +1,5 @@ -#!/usr/bin/env python # -*- 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 @@ -25,57 +24,30 @@ import os, sys, re, socket #import commands from server import Server -from Utils_Identity import getShortHostName +from salome_utils import getHostName, makeDir from launchConfigureParser import verbose # ----------------------------------------------------------------------------- class NamingServer(Server): - XTERM = "" - USER = os.getenv('USER') - if USER is None: - USER = 'anonymous' + #XTERM = "" + #USER = os.getenv('USER') + #if USER is None: + # USER = 'anonymous' #os.system("mkdir -m 777 -p /tmp/logs") - LOGDIR = "/tmp/logs/" + USER + #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" - - try: - os.mkdir(os.environ["BaseDir"] + "/logs") - os.chmod(os.environ["BaseDir"] + "/logs", 0777) - 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"]; + from salome_utils import getLogDir + upath = getLogDir() + makeDir(upath) - try: - os.mkdir(upath) - except: - #print "Can't create " + upath - pass - - 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 + if verbose(): print("Name Service... ", end =' ') + hname = getHostName() with open(os.environ["OMNIORB_CONFIG"]) as f: ss = re.findall("NameService=corbaname::" + hname + ":\d+", f.read()) - if verbose(): print "ss = ", ss, + if verbose(): print("ss = ", ss, end=' ') sl = ss[0] ll = sl.split(':') aPort = ll[-1] @@ -87,43 +59,52 @@ 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) - except: - #print "Can't create " + upath + except Exception: + # print("Can't create " + upath) pass - + #os.system("touch " + upath + "/dummy") for fname in os.listdir(upath): try: os.remove(upath + "/" + fname) - except: + except Exception: 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 + # 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'] - #os.system("omniNames -start " + aPort + " -logdir " + upath + " &") + # get ip address on default interface (for instance eth0) to limit listening on this interface (cyber security request) + from subprocess import check_output + ips = check_output(['hostname', '--all-ip-addresses']) + if ips.strip(): + ipDefault = ips.split()[0].decode() + else: + ip = check_output(['hostname', '--ip-address']) + ipDefault = ip.split()[-1].decode() + self.CMD = ['omniNames','-start' , aPort] + self.CMD += ['-logdir' , upath, '-errlog', upath+'/omniNameErrors.log'] - 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): Server.initArgs(self) if sys.platform == "win32": 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'] @@ -134,7 +115,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