Salome HOME
updated copyright message
[modules/kernel.git] / bin / ORBConfigFile.py
old mode 100644 (file)
new mode 100755 (executable)
index 02bdf59..3edff98
@@ -1,6 +1,6 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 #  -*- coding: iso-8859-1 -*-
-# Copyright (C) 2007-2014  CEA/DEN, EDF R&D, OPEN CASCADE
+# Copyright (C) 2007-2023  CEA, EDF, OPEN CASCADE
 #
 # Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
 # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
 
+def readORBConfigFile(filename):
+  """ Extract information (host, port) from ORB configuration file. """
+  with open(filename) as f:
+    contents = f.readlines()
+
+  import re
+  host, port = None, None
+  for line in contents:
+    m = re.match("(ORB)?InitRef = NameService=corbaname::([\D\d]+):(\d*)", line)
+    if m:
+      host = m.group(2)
+      port = m.group(3)
+      break
+    pass
+  return host, port
+#
+
+def fillOrbConfigFileNoNS(prefix,orbdata):
+  GIOP_MaxMsgSize = 2097152000  # 2 GBytes
+  orbdata.append("%sgiopMaxMsgSize = %s # 2 GBytes"%(prefix,GIOP_MaxMsgSize))
+  orbdata.append("%straceLevel = 0 # critical errors only"%(prefix))
+  orbdata.append("%smaxGIOPConnectionPerServer = 500 # to allow containers parallel launch"%(prefix))
+  orbdata.append("%snativeCharCodeSet = UTF-8"%(prefix))
+  return GIOP_MaxMsgSize
+
+
+def getPrefix():
+  from omniORB import CORBA
+  prefix = "" if CORBA.ORB_ID == "omniORB4" else "ORB"
+  return prefix
+  
+def writeORBConfigFileSSL(path, kwargs={}):
+  from salome_utils import generateFileName
+  omniorb_config = generateFileName(path, prefix="omniORB",
+                                    extension="cfg",
+                                    hidden=True,
+                                    with_hostname=True,
+                                    **kwargs)
+  import os
+  os.environ['OMNIORB_CONFIG'] = omniorb_config
+  prefix = getPrefix()
+
+  orbdata = []
+  GIOP_MaxMsgSize = fillOrbConfigFileNoNS(prefix,orbdata)
+  orbdata.append("")
+
+  with open(omniorb_config, "w") as f:
+    f.write("\n".join(orbdata))
+    
+  return [ omniorb_config, GIOP_MaxMsgSize ]
+
 # IMPORTANT NOTE: do not add any print call (cf. note at the bottom of the file)
 def writeORBConfigFile(path, host, port, kwargs={}):
 
@@ -37,28 +88,26 @@ def writeORBConfigFile(path, host, port, kwargs={}):
   os.environ['NSPORT'] = "%s"%(port)
   os.environ['NSHOST'] = "%s"%(host)
 
-  from omniORB import CORBA
-  prefix = "" if CORBA.ORB_ID == "omniORB4" else "ORB"
-
-  GIOP_MaxMsgSize=2097152000  # 2 GBytes
+  prefix = getPrefix()
 
   orbdata = []
   orbdata.append("%sInitRef = NameService=corbaname::%s:%s"%(prefix,host,port))
-  orbdata.append("%sgiopMaxMsgSize = %s # 2 GBytes"%(prefix,GIOP_MaxMsgSize))
-  orbdata.append("%straceLevel = 0 # critical errors only"%(prefix))
-  orbdata.append("%smaxGIOPConnectionPerServer = 50 # to allow containers parallel launch"%(prefix))
+  GIOP_MaxMsgSize = fillOrbConfigFileNoNS(prefix,orbdata)
+
   orbdata.append("")
 
-  f = open(omniorb_config, "w")
-  f.write("\n".join(orbdata))
-  f.close()
+  with open(omniorb_config, "w") as f:
+    f.write("\n".join(orbdata))
 
   return [ omniorb_config, GIOP_MaxMsgSize ]
 
 # -----------------------------------------------------------------------------
 
 if __name__ == "__main__":
-  import sys, getopt
+  import sys
+  
+  if len(sys.argv) < 2:
+    sys.exit(-1)
 
   path = sys.argv[1]
   host = sys.argv[2]
@@ -82,4 +131,4 @@ if __name__ == "__main__":
   # RETURN_VALUE_2=$(echo ${RETURN_VALUES} | cut -d' ' -f2)
   # ...
   # IMPORTANT NOTE: this print call MUST BE the first one!!
-  print filename, msgSize
+  print(filename, msgSize)