salome.kernel 9.14.0__cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of salome.kernel might be problematic. Click here for more details.

Files changed (400) hide show
  1. salome/bin/salome/IDLparser.py +882 -0
  2. salome/bin/salome/KernelHelpersUseCases +0 -0
  3. salome/bin/salome/NSparam.py +51 -0
  4. salome/bin/salome/ORBConfigFile.py +55 -0
  5. salome/bin/salome/SALOMEDS_Client +0 -0
  6. salome/bin/salome/SALOMEDS_Server +0 -0
  7. salome/bin/salome/SALOME_ConnectionManagerServer +0 -0
  8. salome/bin/salome/SALOME_Container +0 -0
  9. salome/bin/salome/SALOME_ContainerPy.py +397 -0
  10. salome/bin/salome/SALOME_Container_No_NS_Serv +0 -0
  11. salome/bin/salome/SALOME_Container_No_NS_Serv_OutProcess +0 -0
  12. salome/bin/salome/SALOME_Container_No_NS_Serv_OutProcess_FT +0 -0
  13. salome/bin/salome/SALOME_Container_No_NS_Serv_OutProcess_Replay +0 -0
  14. salome/bin/salome/SALOME_Container_No_NS_Serv_OutProcess_Replay_FT +0 -0
  15. salome/bin/salome/SALOME_DataScopeServer +0 -0
  16. salome/bin/salome/SALOME_DataScopeServer_SSL +0 -0
  17. salome/bin/salome/SALOME_LauncherServer +0 -0
  18. salome/bin/salome/SALOME_Logger_Server +0 -0
  19. salome/bin/salome/SALOME_ModuleCatalog_Client +0 -0
  20. salome/bin/salome/SALOME_ModuleCatalog_Server +0 -0
  21. salome/bin/salome/SALOME_Registry_Server +0 -0
  22. salome/bin/salome/TestComponentPy.py +71 -0
  23. salome/bin/salome/TestContainer +0 -0
  24. salome/bin/salome/TestContainerManager +0 -0
  25. salome/bin/salome/TestLauncher +0 -0
  26. salome/bin/salome/TestLifeCycleCORBA.py +89 -0
  27. salome/bin/salome/TestLogger +0 -0
  28. salome/bin/salome/TestLogger.py +27 -0
  29. salome/bin/salome/TestModuleCatalog.py +87 -0
  30. salome/bin/salome/Test_LifeCycleCORBA +0 -0
  31. salome/bin/salome/VERSION +3 -0
  32. salome/bin/salome/addToKillList.py +35 -0
  33. salome/bin/salome/app-quickstart.py +288 -0
  34. salome/bin/salome/appli/.bashrc +50 -0
  35. salome/bin/salome/appli/extra.env.d/001.py +39 -0
  36. salome/bin/salome/appli/python_test_driver.py +148 -0
  37. salome/bin/salome/appli/salome +193 -0
  38. salome/bin/salome/appli/salome_instance.py +31 -0
  39. salome/bin/salome/appli/salome_test_driver.py +150 -0
  40. salome/bin/salome/appli/salome_test_driver_gui.py +82 -0
  41. salome/bin/salome/appli_clean.sh +53 -0
  42. salome/bin/salome/appli_gen.py +606 -0
  43. salome/bin/salome/dummyexe_loggerTraceCollector +0 -0
  44. salome/bin/salome/envSalome.py +59 -0
  45. salome/bin/salome/killSalome.py +48 -0
  46. salome/bin/salome/killSalomeWithPort.py +56 -0
  47. salome/bin/salome/prepare_generating_doc.py +104 -0
  48. salome/bin/salome/pythonpath_reduction.py +184 -0
  49. salome/bin/salome/runConsole.py +39 -0
  50. salome/bin/salome/runIDLparser +58 -0
  51. salome/bin/salome/runRemote.py +101 -0
  52. salome/bin/salome/runSalome.py +30 -0
  53. salome/bin/salome/runSalomeNoServer.py +24 -0
  54. salome/bin/salome/runSalomeOld.py +36 -0
  55. salome/bin/salome/runSalomeOnDemand.py +41 -0
  56. salome/bin/salome/salomeContext.py +36 -0
  57. salome/bin/salome/salome_process_attach +44 -0
  58. salome/bin/salome/salome_process_launcher +58 -0
  59. salome/bin/salome/setenv.py +32 -0
  60. salome/bin/salome/showNS.py +33 -0
  61. salome/bin/salome/test/kernel/ArgvKeeper/CTestTestfile.cmake +31 -0
  62. salome/bin/salome/test/kernel/ArgvKeeper/TestArgvKeeper +0 -0
  63. salome/bin/salome/test/kernel/ArgvKeeper/test_ArgvKeeper.py +34 -0
  64. salome/bin/salome/test/kernel/CTestTestfile.cmake +49 -0
  65. salome/bin/salome/test/kernel/Container/CTestTestfile.cmake +29 -0
  66. salome/bin/salome/test/kernel/Container/testProxy.py +291 -0
  67. salome/bin/salome/test/kernel/Container/testcontainer.py +106 -0
  68. salome/bin/salome/test/kernel/KernelHelpers/CTestTestfile.cmake +31 -0
  69. salome/bin/salome/test/kernel/KernelHelpers/KernelHelpersUnitTests.hxx +58 -0
  70. salome/bin/salome/test/kernel/KernelHelpers/TestKernelHelpers +0 -0
  71. salome/bin/salome/test/kernel/KernelHelpers/TestKernelHelpers.py +55 -0
  72. salome/bin/salome/test/kernel/Launcher/CTestTestfile.cmake +43 -0
  73. salome/bin/salome/test/kernel/Launcher/TestSSLAttached.py +110 -0
  74. salome/bin/salome/test/kernel/Launcher/launcher_use_case.py +65 -0
  75. salome/bin/salome/test/kernel/Launcher/testCrashProofContainer.py +423 -0
  76. salome/bin/salome/test/kernel/Launcher/testPerfLogManager1.py +382 -0
  77. salome/bin/salome/test/kernel/Launcher/test_launcher.py +674 -0
  78. salome/bin/salome/test/kernel/Launcher/test_stress.sh +45 -0
  79. salome/bin/salome/test/kernel/Launcher_SWIG/CTestTestfile.cmake +30 -0
  80. salome/bin/salome/test/kernel/Launcher_SWIG/test_swig_launcher.py +706 -0
  81. salome/bin/salome/test/kernel/LifeCycleCORBA/CTestTestfile.cmake +27 -0
  82. salome/bin/salome/test/kernel/LifeCycleCORBA/LifeCycleCORBATest.hxx +105 -0
  83. salome/bin/salome/test/kernel/LifeCycleCORBA/TestLifeCycleCORBA +0 -0
  84. salome/bin/salome/test/kernel/LifeCycleCORBA/TestLifeCycleCORBA.py +93 -0
  85. salome/bin/salome/test/kernel/LifeCycleCORBA_SWIG/CTestTestfile.cmake +40 -0
  86. salome/bin/salome/test/kernel/LifeCycleCORBA_SWIG/CatalogResources_resource.xml +15 -0
  87. salome/bin/salome/test/kernel/LifeCycleCORBA_SWIG/LifeCycleCORBA_SWIGTest.py +217 -0
  88. salome/bin/salome/test/kernel/LifeCycleCORBA_SWIG/SALOME_TestComponentPy.py +49 -0
  89. salome/bin/salome/test/kernel/LifeCycleCORBA_SWIG/TestLifeCycleCORBA_SWIG.py +100 -0
  90. salome/bin/salome/test/kernel/LifeCycleCORBA_SWIG/testcontainermanager.py +88 -0
  91. salome/bin/salome/test/kernel/LifeCycleCORBA_SWIG/testresourcemanager.py +155 -0
  92. salome/bin/salome/test/kernel/NamingService/CTestTestfile.cmake +28 -0
  93. salome/bin/salome/test/kernel/NamingService/NamingServiceTest.hxx +169 -0
  94. salome/bin/salome/test/kernel/NamingService/TestNamingService +0 -0
  95. salome/bin/salome/test/kernel/NamingService/TestNamingService.py +64 -0
  96. salome/bin/salome/test/kernel/SALOMEDS/CTestTestfile.cmake +27 -0
  97. salome/bin/salome/test/kernel/SALOMEDS/SALOMEDSTest.hxx +192 -0
  98. salome/bin/salome/test/kernel/SALOMEDS/TestSALOMEDS +0 -0
  99. salome/bin/salome/test/kernel/SALOMEDS/TestSALOMEDS.py +55 -0
  100. salome/bin/salome/test/kernel/SALOMEDSImpl/CTestTestfile.cmake +27 -0
  101. salome/bin/salome/test/kernel/SALOMEDSImpl/SALOMEDSImplTest.hxx +51 -0
  102. salome/bin/salome/test/kernel/SALOMEDSImpl/TestSALOMEDSImpl +0 -0
  103. salome/bin/salome/test/kernel/SALOMEDSImpl/TestSALOMEDSImpl.py +55 -0
  104. salome/bin/salome/test/kernel/SALOMELocalTrace/CTestTestfile.cmake +27 -0
  105. salome/bin/salome/test/kernel/SALOMELocalTrace/SALOMELocalTraceTest.hxx +59 -0
  106. salome/bin/salome/test/kernel/SALOMELocalTrace/TestSALOMELocalTrace +0 -0
  107. salome/bin/salome/test/kernel/SALOMELocalTrace/TestSALOMELocalTrace.py +40 -0
  108. salome/bin/salome/test/kernel/SALOMETraceCollector/CTestTestfile.cmake +27 -0
  109. salome/bin/salome/test/kernel/SALOMETraceCollector/SALOMETraceCollectorTest.hxx +51 -0
  110. salome/bin/salome/test/kernel/SALOMETraceCollector/TestSALOMETraceCollector +0 -0
  111. salome/bin/salome/test/kernel/SALOMETraceCollector/TestSALOMETraceCollector.py +57 -0
  112. salome/bin/salome/test/kernel/UnitTests/CTestTestfile.cmake +28 -0
  113. salome/bin/salome/test/kernel/UnitTests/UnitTests +0 -0
  114. salome/bin/salome/test/kernel/UnitTests/UnitTests.py +89 -0
  115. salome/bin/salome/test/kernel/Utils/CTestTestfile.cmake +27 -0
  116. salome/bin/salome/test/kernel/Utils/TestUtils +0 -0
  117. salome/bin/salome/test/kernel/Utils/TestUtils.py +55 -0
  118. salome/bin/salome/test/kernel/Utils/UtilsTest.hxx +58 -0
  119. salome/bin/salome/test/kernel/lib/libLifeCycleCORBATest.so +0 -0
  120. salome/bin/salome/test/kernel/lib/libNamingServiceTest.so +0 -0
  121. salome/bin/salome/test/kernel/lib/libSALOMEDSImplTest.so +0 -0
  122. salome/bin/salome/test/kernel/lib/libSALOMEDSTest.so +0 -0
  123. salome/bin/salome/test/kernel/lib/libSALOMELocalTraceTest.so +0 -0
  124. salome/bin/salome/test/kernel/lib/libSALOMETraceCollectorTest.so +0 -0
  125. salome/bin/salome/test/kernel/lib/libSalomeKernelHelpersTest.so +0 -0
  126. salome/bin/salome/test/kernel/lib/libUtilsTest.so +0 -0
  127. salome/bin/salome/testDF +0 -0
  128. salome/bin/salome/testDS +0 -0
  129. salome/bin/salome/virtual_salome.py +38 -0
  130. salome/bin/salome/waitContainers.py +82 -0
  131. salome/bin/salome/waitNS.py +31 -0
  132. salome/kernel/ArgvKeeper.py +132 -0
  133. salome/kernel/Calcium_Ports_idl.py +645 -0
  134. salome/kernel/DSC_Engines_idl.py +443 -0
  135. salome/kernel/Engines/__init__.py +24 -0
  136. salome/kernel/Engines__POA/__init__.py +24 -0
  137. salome/kernel/Help.py +141 -0
  138. salome/kernel/KernelBasis.py +463 -0
  139. salome/kernel/KernelContainer.py +81 -0
  140. salome/kernel/KernelDS.py +87 -0
  141. salome/kernel/KernelLauncher.py +117 -0
  142. salome/kernel/KernelLogger.py +75 -0
  143. salome/kernel/KernelModuleCatalog.py +76 -0
  144. salome/kernel/KernelSDS.py +92 -0
  145. salome/kernel/KernelServices.py +105 -0
  146. salome/kernel/LifeCycleCORBA.py +92 -0
  147. salome/kernel/Logger_idl.py +89 -0
  148. salome/kernel/NSTEST/__init__.py +13 -0
  149. salome/kernel/NSTEST__POA/__init__.py +13 -0
  150. salome/kernel/NSparam_impl.py +50 -0
  151. salome/kernel/NamingService.py +365 -0
  152. salome/kernel/ORBConfigFile_impl.py +102 -0
  153. salome/kernel/Palm_Ports_idl.py +162 -0
  154. salome/kernel/PortManager.py +259 -0
  155. salome/kernel/Ports/Calcium_Ports/__init__.py +13 -0
  156. salome/kernel/Ports/Palm_Ports/__init__.py +13 -0
  157. salome/kernel/Ports/__init__.py +18 -0
  158. salome/kernel/Ports__POA/Calcium_Ports/__init__.py +13 -0
  159. salome/kernel/Ports__POA/Palm_Ports/__init__.py +13 -0
  160. salome/kernel/Ports__POA/__init__.py +18 -0
  161. salome/kernel/PyInterp.py +99 -0
  162. salome/kernel/Registry/__init__.py +13 -0
  163. salome/kernel/Registry__POA/__init__.py +13 -0
  164. salome/kernel/SALOME/__init__.py +19 -0
  165. salome/kernel/SALOMEDS/__init__.py +14 -0
  166. salome/kernel/SALOMEDS_Attributes_idl.py +2288 -0
  167. salome/kernel/SALOMEDS__POA/__init__.py +14 -0
  168. salome/kernel/SALOMEDS_idl.py +1590 -0
  169. salome/kernel/SALOMEWrappedStdType.py +383 -0
  170. salome/kernel/SALOME_Comm_idl.py +1045 -0
  171. salome/kernel/SALOME_CommonTypes_idl.py +69 -0
  172. salome/kernel/SALOME_ComponentPy.py +338 -0
  173. salome/kernel/SALOME_Component_idl.py +962 -0
  174. salome/kernel/SALOME_Container.py +242 -0
  175. salome/kernel/SALOME_ContainerHelper.py +840 -0
  176. salome/kernel/SALOME_ContainerManager_idl.py +236 -0
  177. salome/kernel/SALOME_DriverPy.py +86 -0
  178. salome/kernel/SALOME_Embedded_NamingService.py +41 -0
  179. salome/kernel/SALOME_Embedded_NamingService_ClientPy.py +59 -0
  180. salome/kernel/SALOME_Embedded_NamingService_idl.py +125 -0
  181. salome/kernel/SALOME_Exception_idl.py +75 -0
  182. salome/kernel/SALOME_ExternalServerLauncher_idl.py +199 -0
  183. salome/kernel/SALOME_GenericObj_idl.py +154 -0
  184. salome/kernel/SALOME_GlobalsImpl.py +38 -0
  185. salome/kernel/SALOME_Launcher_idl.py +327 -0
  186. salome/kernel/SALOME_Locker_idl.py +185 -0
  187. salome/kernel/SALOME_LogManager.py +103 -0
  188. salome/kernel/SALOME_LogManager_idl.py +348 -0
  189. salome/kernel/SALOME_Logger/__init__.py +13 -0
  190. salome/kernel/SALOME_Logger__POA/__init__.py +13 -0
  191. salome/kernel/SALOME_MPIObject_idl.py +100 -0
  192. salome/kernel/SALOME_ModuleCatalog/__init__.py +13 -0
  193. salome/kernel/SALOME_ModuleCatalog__POA/__init__.py +13 -0
  194. salome/kernel/SALOME_ModuleCatalog_idl.py +624 -0
  195. salome/kernel/SALOME_NamingServicePy.py +313 -0
  196. salome/kernel/SALOME_PACOExtension_idl.py +292 -0
  197. salome/kernel/SALOME_ParamPorts_idl.py +102 -0
  198. salome/kernel/SALOME_Parametric_idl.py +154 -0
  199. salome/kernel/SALOME_Ports_idl.py +347 -0
  200. salome/kernel/SALOME_PyNode.py +1557 -0
  201. salome/kernel/SALOME_PyNode_idl.py +387 -0
  202. salome/kernel/SALOME_Registry_idl.py +155 -0
  203. salome/kernel/SALOME_ResourcesManager_idl.py +215 -0
  204. salome/kernel/SALOME_SDS_idl.py +1181 -0
  205. salome/kernel/SALOME_Session_idl.py +214 -0
  206. salome/kernel/SALOME_TYPES/__init__.py +14 -0
  207. salome/kernel/SALOME_TYPES__POA/__init__.py +14 -0
  208. salome/kernel/SALOME_TestComponent_idl.py +121 -0
  209. salome/kernel/SALOME_TestModuleCatalog/__init__.py +13 -0
  210. salome/kernel/SALOME_TestModuleCatalog__POA/__init__.py +13 -0
  211. salome/kernel/SALOME_TestModuleCatalog_idl.py +194 -0
  212. salome/kernel/SALOME_Trace.py +96 -0
  213. salome/kernel/SALOME_Types_idl.py +81 -0
  214. salome/kernel/SALOME__POA/__init__.py +19 -0
  215. salome/kernel/SALOME_utilities.py +63 -0
  216. salome/kernel/SalomeSDSClt.py +552 -0
  217. salome/kernel/TestKiller.py +76 -0
  218. salome/kernel/Utils_Identity.py +93 -0
  219. salome/kernel/_ArgvKeeper.so +0 -0
  220. salome/kernel/_KernelBasis.so +0 -0
  221. salome/kernel/_KernelContainer.so +0 -0
  222. salome/kernel/_KernelDS.so +0 -0
  223. salome/kernel/_KernelLauncher.so +0 -0
  224. salome/kernel/_KernelLogger.so +0 -0
  225. salome/kernel/_KernelModuleCatalog.so +0 -0
  226. salome/kernel/_KernelSDS.so +0 -0
  227. salome/kernel/_KernelServices.so +0 -0
  228. salome/kernel/_NamingService.so +0 -0
  229. salome/kernel/_calcium.so +0 -0
  230. salome/kernel/_libNOTIFICATION.so +0 -0
  231. salome/kernel/_libSALOME_Comm.so +0 -0
  232. salome/kernel/_libSALOME_LifeCycleCORBA.so +0 -0
  233. salome/kernel/_pylauncher.so +0 -0
  234. salome/kernel/addToKillList_impl.py +127 -0
  235. salome/kernel/batchmode_salome.py +295 -0
  236. salome/kernel/calcium.py +866 -0
  237. salome/kernel/dsccalcium.py +98 -0
  238. salome/kernel/iparameters.py +255 -0
  239. salome/kernel/kernel_test.py +114 -0
  240. salome/kernel/killSalomeWithPort_impl.py +518 -0
  241. salome/kernel/killSalome_impl.py +94 -0
  242. salome/kernel/launchConfigureParser.py +1234 -0
  243. salome/kernel/launcher_proxy.py +122 -0
  244. salome/kernel/libNOTIFICATION.py +119 -0
  245. salome/kernel/libSALOME_Comm.py +85 -0
  246. salome/kernel/libSALOME_LifeCycleCORBA.py +232 -0
  247. salome/kernel/main.py +8 -0
  248. salome/kernel/nameserver.py +134 -0
  249. salome/kernel/nstest_idl.py +129 -0
  250. salome/kernel/omnipatch.py +136 -0
  251. salome/kernel/orbmodule.py +246 -0
  252. salome/kernel/parseConfigFile.py +261 -0
  253. salome/kernel/pylauncher.py +883 -0
  254. salome/kernel/runConsole_impl.py +224 -0
  255. salome/kernel/runSalomeCommon.py +418 -0
  256. salome/kernel/runSalomeNoServer_impl.py +48 -0
  257. salome/kernel/runSalomeOld_impl.py +603 -0
  258. salome/kernel/runSalomeOnDemand_impl.py +72 -0
  259. salome/kernel/runSalome_impl.py +341 -0
  260. salome/kernel/runSession.py +360 -0
  261. salome/kernel/runTests.py +90 -0
  262. salome/kernel/salome/__init__.py +646 -0
  263. salome/kernel/salome/kernel/__init__.py +111 -0
  264. salome/kernel/salome/kernel/datamodeler.py +363 -0
  265. salome/kernel/salome/kernel/deprecation.py +165 -0
  266. salome/kernel/salome/kernel/diclookup.py +137 -0
  267. salome/kernel/salome/kernel/enumerate.py +232 -0
  268. salome/kernel/salome/kernel/logconfig.py +27 -0
  269. salome/kernel/salome/kernel/logger.py +290 -0
  270. salome/kernel/salome/kernel/parametric/__init__.py +26 -0
  271. salome/kernel/salome/kernel/parametric/compo_utils.py +137 -0
  272. salome/kernel/salome/kernel/parametric/pyscript_utils.py +135 -0
  273. salome/kernel/salome/kernel/parametric/study_exchange_vars.py +285 -0
  274. salome/kernel/salome/kernel/pyunittester.py +184 -0
  275. salome/kernel/salome/kernel/services.py +267 -0
  276. salome/kernel/salome/kernel/studyedit.py +637 -0
  277. salome/kernel/salome/kernel/syshelper.py +116 -0
  278. salome/kernel/salome/kernel/termcolor.py +239 -0
  279. salome/kernel/salome/kernel/testdata.py +159 -0
  280. salome/kernel/salome/kernel/threadhelper.py +385 -0
  281. salome/kernel/salome/kernel/uiexception.py +121 -0
  282. salome/kernel/salome/kernel/unittester.py +89 -0
  283. salome/kernel/salomeContextUtils.py +353 -0
  284. salome/kernel/salomeContext_impl.py +731 -0
  285. salome/kernel/salome_ComponentGUI.py +92 -0
  286. salome/kernel/salome_genericobj.py +44 -0
  287. salome/kernel/salome_iapp.py +206 -0
  288. salome/kernel/salome_instance_impl.py +109 -0
  289. salome/kernel/salome_kernel_utils.py +88 -0
  290. salome/kernel/salome_notebook.py +183 -0
  291. salome/kernel/salome_psutil.py +94 -0
  292. salome/kernel/salome_pynode.py +74 -0
  293. salome/kernel/salome_study.py +347 -0
  294. salome/kernel/salome_test.py +56 -0
  295. salome/kernel/salome_utils.py +563 -0
  296. salome/kernel/salome_version.py +164 -0
  297. salome/kernel/searchFreePort.py +130 -0
  298. salome/kernel/server.py +154 -0
  299. salome/kernel/setenv_impl.py +240 -0
  300. salome/kernel/version_and_config.py +24 -0
  301. salome/share/salome/resources/kernel/Anita semi square.ttf +0 -0
  302. salome/share/salome/resources/kernel/CatalogModulePersonnel.xml_skel +24 -0
  303. salome/share/salome/resources/kernel/CatalogResources.xml +4 -0
  304. salome/share/salome/resources/kernel/KERNELCatalog.xml +102 -0
  305. salome/share/salome/resources/kernel/SALOMEDS_Resources +10 -0
  306. salome/share/salome/resources/kernel/ScriptsTemplate/SALOME_CM_LOCAL_MPI_LAN.py +19 -0
  307. salome/share/salome/resources/kernel/ScriptsTemplate/SALOME_CM_LOCAL_MPI_MPICH.py +18 -0
  308. salome/share/salome/resources/kernel/ScriptsTemplate/SALOME_CM_LOCAL_MPI_OPENMPI.py +21 -0
  309. salome/share/salome/resources/kernel/ScriptsTemplate/SALOME_CM_LOCAL_NO_MPI.py +25 -0
  310. salome/share/salome/resources/kernel/ScriptsTemplate/SALOME_CM_REMOTE.py +108 -0
  311. salome/share/salome/resources/kernel/ScriptsTemplate/SALOME_CM_REMOTE_OLD.py +115 -0
  312. salome/share/salome/resources/kernel/ScriptsTemplate/script_parameters.py +25 -0
  313. salome/share/salome/resources/kernel/app-template/CMakeLists.txt +125 -0
  314. salome/share/salome/resources/kernel/app-template/LICENCE +504 -0
  315. salome/share/salome/resources/kernel/app-template/README +0 -0
  316. salome/share/salome/resources/kernel/app-template/doc/CMakeLists.txt +31 -0
  317. salome/share/salome/resources/kernel/app-template/doc/README +1 -0
  318. salome/share/salome/resources/kernel/app-template/doc/conf.py.in +197 -0
  319. salome/share/salome/resources/kernel/app-template/doc/index.rst +14 -0
  320. salome/share/salome/resources/kernel/app-template/doc/intro.rst +4 -0
  321. salome/share/salome/resources/kernel/app-template/doc/link.rst +4 -0
  322. salome/share/salome/resources/kernel/app-template/resources/CMakeLists.txt +36 -0
  323. salome/share/salome/resources/kernel/app-template/resources/SalomeApp.xml.in +30 -0
  324. salome/share/salome/resources/kernel/app-template/resources/about.png +0 -0
  325. salome/share/salome/resources/kernel/app-template/resources/app_icon.png +0 -0
  326. salome/share/salome/resources/kernel/app-template/resources/app_logo.png +0 -0
  327. salome/share/salome/resources/kernel/app-template/resources/doc/CMakeLists.txt +27 -0
  328. salome/share/salome/resources/kernel/app-template/resources/doc/README +1 -0
  329. salome/share/salome/resources/kernel/app-template/resources/doc/sample.pdf +0 -0
  330. salome/share/salome/resources/kernel/app-template/resources/icon_about.png +0 -0
  331. salome/share/salome/resources/kernel/app-template/resources/splash.png +0 -0
  332. salome/share/salome/resources/kernel/app-template/src/CMakeLists.txt +22 -0
  333. salome/share/salome/resources/kernel/app-template/src/resources/CMakeLists.txt +34 -0
  334. salome/share/salome/resources/kernel/app-template/src/resources/LightApp_images.ts +23 -0
  335. salome/share/salome/resources/kernel/app-template/src/resources/LightApp_msg_en.ts +35 -0
  336. salome/share/salome/resources/kernel/app-template/src/resources/LightApp_msg_fr.ts +35 -0
  337. salome/share/salome/resources/kernel/app-template/src/resources/LightApp_msg_ja.ts +35 -0
  338. salome/share/salome/resources/kernel/app-template/src/tests/CMakeLists.txt +29 -0
  339. salome/share/salome/resources/kernel/app-template/src/tests/README +1 -0
  340. salome/share/salome/resources/kernel/app-template/src/tests/helloWorld.py +1 -0
  341. salome/share/salome/resources/kernel/background.png +0 -0
  342. salome/share/salome/resources/kernel/channel.cfg +278 -0
  343. salome/share/salome/resources/kernel/testLauncher.xml +10 -0
  344. salome.kernel-9.14.0.dist-info/METADATA +24 -0
  345. salome.kernel-9.14.0.dist-info/RECORD +399 -0
  346. salome.kernel-9.14.0.dist-info/WHEEL +6 -0
  347. salome.kernel-9.14.0.dist-info/entry_points.txt +2 -0
  348. salome.kernel.libs/libArgvKeeper-822351d5.so +0 -0
  349. salome.kernel.libs/libCOS4-b4544fb9.so.2.5 +0 -0
  350. salome.kernel.libs/libCOSDynamic4-618dbb1d.so.2.5 +0 -0
  351. salome.kernel.libs/libCalciumC-a61b99a1.so +0 -0
  352. salome.kernel.libs/libDF-281cc999.so +0 -0
  353. salome.kernel.libs/libLauncher-09c39914.so +0 -0
  354. salome.kernel.libs/libLauncherWrapHelper-5ee25ab2.so +0 -0
  355. salome.kernel.libs/libOpUtil-8d37ccc8.so +0 -0
  356. salome.kernel.libs/libRegistry-e4a63a9e.so +0 -0
  357. salome.kernel.libs/libResourcesManager-f4ef9548.so +0 -0
  358. salome.kernel.libs/libSALOMEBasics-f4d874ac.so +0 -0
  359. salome.kernel.libs/libSALOMELocalTrace-a3992e5b.so +0 -0
  360. salome.kernel.libs/libSALOMELog-55805468.so +0 -0
  361. salome.kernel.libs/libSalomeCalcium-6800d8d0.so +0 -0
  362. salome.kernel.libs/libSalomeCatalog-96c5b2bc.so +0 -0
  363. salome.kernel.libs/libSalomeCommunication-451307b4.so +0 -0
  364. salome.kernel.libs/libSalomeContainer-d4557377.so +0 -0
  365. salome.kernel.libs/libSalomeContainerServer-372d46c2.so +0 -0
  366. salome.kernel.libs/libSalomeDS-34cd5abf.so +0 -0
  367. salome.kernel.libs/libSalomeDSCContainer-ee0cf498.so +0 -0
  368. salome.kernel.libs/libSalomeDSCSuperv-f529bca5.so +0 -0
  369. salome.kernel.libs/libSalomeDSCSupervBasic-e6a3b4cf.so +0 -0
  370. salome.kernel.libs/libSalomeDSClient-dc9947bb.so +0 -0
  371. salome.kernel.libs/libSalomeDSImpl-cb508584.so +0 -0
  372. salome.kernel.libs/libSalomeDatastream-755ff3cb.so +0 -0
  373. salome.kernel.libs/libSalomeGenericObj-3ccf0028.so +0 -0
  374. salome.kernel.libs/libSalomeHDFPersist-69945ed0.so +0 -0
  375. salome.kernel.libs/libSalomeIDLKernel-2eb1ed8e.so +0 -0
  376. salome.kernel.libs/libSalomeKernelHelpers-1514c9e0.so +0 -0
  377. salome.kernel.libs/libSalomeLauncher-f5fc4b7e.so +0 -0
  378. salome.kernel.libs/libSalomeLifeCycleCORBA-69902a7b.so +0 -0
  379. salome.kernel.libs/libSalomeLoggerServer-3668e9ae.so +0 -0
  380. salome.kernel.libs/libSalomeNS-a03a7eba.so +0 -0
  381. salome.kernel.libs/libSalomeNotification-66efcfbd.so +0 -0
  382. salome.kernel.libs/libSalomeORB-f304f4df.so +0 -0
  383. salome.kernel.libs/libSalomePalm-4204405e.so +0 -0
  384. salome.kernel.libs/libSalomeResourcesManager-fd411949.so +0 -0
  385. salome.kernel.libs/libSalomeSDS-896ae3bb.so +0 -0
  386. salome.kernel.libs/libSalomeTestComponentEngine-9899af25.so +0 -0
  387. salome.kernel.libs/libTOOLSDS-db8e8629.so +0 -0
  388. salome.kernel.libs/libbatch-6b5b319f.so +0 -0
  389. salome.kernel.libs/libboost_atomic-489c2d94.so.1.81.0 +0 -0
  390. salome.kernel.libs/libboost_filesystem-e610b554.so.1.81.0 +0 -0
  391. salome.kernel.libs/libboost_system-4a7650ea.so.1.81.0 +0 -0
  392. salome.kernel.libs/libcppunit-1-17e77af1.12.so.1.0.0 +0 -0
  393. salome.kernel.libs/libhdf5-60e81d69.so.103.0.0 +0 -0
  394. salome.kernel.libs/liblzma-004595ca.so.5.2.2 +0 -0
  395. salome.kernel.libs/libomniDynamic4-9edc765d.so.2.5 +0 -0
  396. salome.kernel.libs/libomniORB4-4725824d.so.2.5 +0 -0
  397. salome.kernel.libs/libomnithread-99f9d0d3.so.4.1 +0 -0
  398. salome.kernel.libs/libwith_loggerTraceCollector-6b94c51b.so +0 -0
  399. salome.kernel.libs/libwith_loggerTraceCollector.so +0 -0
  400. salome.kernel.libs/libxml2-3998bec4.so.2.9.1 +0 -0
@@ -0,0 +1,518 @@
1
+ #! /usr/bin/env python3
2
+ # -*- coding: iso-8859-1 -*-
3
+ # Copyright (C) 2007-2024 CEA, EDF, OPEN CASCADE
4
+ #
5
+ # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
6
+ # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
7
+ #
8
+ # This library is free software; you can redistribute it and/or
9
+ # modify it under the terms of the GNU Lesser General Public
10
+ # License as published by the Free Software Foundation; either
11
+ # version 2.1 of the License, or (at your option) any later version.
12
+ #
13
+ # This library is distributed in the hope that it will be useful,
14
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
15
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16
+ # Lesser General Public License for more details.
17
+ #
18
+ # You should have received a copy of the GNU Lesser General Public
19
+ # License along with this library; if not, write to the Free Software
20
+ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21
+ #
22
+ # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
23
+ #
24
+
25
+ ## @file killSalomeWithPort.py
26
+ # @brief Forcibly stop %SALOME processes from given session(s).
27
+ #
28
+ # The sessions are indicated by their ports on the command line as in below example:
29
+ # @code
30
+ # killSalomeWithPort.py 2811 2815
31
+ # @endcode
32
+
33
+ """
34
+ Forcibly stop given SALOME session(s).
35
+
36
+ To stop one or more SALOME sessions, specify network ports they are bound to,
37
+ for example:
38
+
39
+ * in shell
40
+
41
+ $ killSalomeWithPort.py 2811 2815
42
+
43
+ * in Python script:
44
+
45
+ from killSalomeWithPort import killMyPort
46
+ killMyPort(2811, 2815)
47
+
48
+ """
49
+
50
+ # pragma pylint: disable=invalid-name
51
+
52
+ import itertools
53
+ import os
54
+ import os.path as osp
55
+ import pickle
56
+ import re
57
+ import shutil
58
+ import sys
59
+ from contextlib import suppress
60
+ from glob import glob
61
+ from threading import Thread
62
+ from time import sleep
63
+
64
+ import psutil
65
+
66
+ from .salome_utils import (generateFileName, getHostName, getLogDir, getShortHostName,
67
+ getUserName, killOmniNames, killPid, verbose)
68
+ import logging
69
+ logger = logging.getLogger()
70
+
71
+ def getPiDict(port, appname='salome', full=True, hidden=True, hostname=None):
72
+ """
73
+ Get path to the file that stores the list of SALOME processes.
74
+
75
+ This file is located in the user's home directory
76
+ and named .<user>_<host>_<port>_SALOME_pidict
77
+ where
78
+
79
+ - <user> is user name
80
+ - <host> is host name
81
+ - <port> is port number
82
+
83
+ :param port : port number
84
+ :param appname : application name (default: 'salome')
85
+ :param full : if True, full path to the file is returned,
86
+ otherwise only file name is returned
87
+ :param hidden : if True, file name is prefixed with . (dot) symbol;
88
+ this internal parameter is only used to support
89
+ compatibility with older versions of SALOME
90
+ :param hostname : host name (if not given, it is auto-detected)
91
+ :return pidict file's name or path
92
+ """
93
+ # ensure port is an integer
94
+ # warning: this function is also called with port='#####'!!!
95
+ with suppress(ValueError):
96
+ port = int(port)
97
+
98
+ # hostname (if not specified via parameter)
99
+ with suppress(AttributeError):
100
+ hostname = hostname or os.getenv('NSHOST').split('.')[0]
101
+
102
+ # directory to store pidict file (if `full` is True)
103
+ # old style: pidict files aren't dot-prefixed, stored in the user's home directory
104
+ # new style: pidict files are dot-prefixed, stored in the system-dependant temporary directory
105
+ pidict_dir = getLogDir() if hidden else osp.expanduser('~')
106
+
107
+ return generateFileName(pidict_dir if full else '',
108
+ suffix='pidict',
109
+ hidden=hidden,
110
+ with_username=True,
111
+ with_hostname=(hostname or True),
112
+ with_port=port,
113
+ with_app=appname.upper())
114
+
115
+ def appliCleanOmniOrbConfig(port):
116
+ """
117
+ Remove omniorb config files related to given `port` in SALOME application:
118
+ - ${OMNIORB_USER_PATH}/.omniORB_${USER}_${HOSTNAME}_${NSPORT}.cfg
119
+ - ${OMNIORB_USER_PATH}/.omniORB_${USER}_last.cfg
120
+ the last is removed only if the link points to the first file.
121
+ :param port : port number
122
+ """
123
+ omniorb_user_path = os.getenv('OMNIORB_USER_PATH')
124
+ if not omniorb_user_path:
125
+ # outside application context
126
+ return
127
+
128
+ logging.getLogger().debug("Cleaning OmniOrb config for port {}".format(port))
129
+
130
+ omniorb_config = generateFileName(omniorb_user_path,
131
+ prefix='omniORB',
132
+ extension='cfg',
133
+ hidden=True,
134
+ with_username=True,
135
+ with_hostname=True,
136
+ with_port=port)
137
+ last_running_config = generateFileName(omniorb_user_path,
138
+ prefix='omniORB',
139
+ suffix='last',
140
+ extension='cfg',
141
+ hidden=True,
142
+ with_username=True)
143
+ logging.getLogger().debug("Omniorb_config file deduced by port : {}".format(omniorb_config))
144
+ logging.getLogger().debug("Omniorb_config file of last : {}".format(last_running_config))
145
+ if osp.exists(last_running_config):
146
+ if sys.platform == 'win32' or ( osp.exists(omniorb_config) and osp.samefile(last_running_config,omniorb_config) ):
147
+ os.remove(last_running_config)
148
+
149
+ if os.access(omniorb_config, os.F_OK):
150
+ os.remove(omniorb_config)
151
+
152
+ if osp.lexists(last_running_config):
153
+ return
154
+
155
+ # try to relink last.cfg to an existing config file if any
156
+ cfg_files = [(cfg_file, os.stat(cfg_file)) for cfg_file in \
157
+ glob(osp.join(omniorb_user_path,
158
+ '.omniORB_{}_*.cfg'.format(getUserName())))]
159
+ next_config = next((i[0] for i in sorted(cfg_files, key=lambda i: i[1])), None)
160
+ if next_config:
161
+ if sys.platform == 'win32':
162
+ shutil.copyfile(osp.normpath(next_config), last_running_config)
163
+ else:
164
+ os.symlink(osp.normpath(next_config), last_running_config)
165
+
166
+ def shutdownMyPort(port, cleanup=True):
167
+ """
168
+ Shutdown SALOME session running on the specified port.
169
+ :param port : port number
170
+ :param cleanup : perform additional cleanup actions (kill omniNames, etc.)
171
+ """
172
+ if not port:
173
+ return
174
+
175
+ # ensure port is an integer
176
+ with suppress(ValueError):
177
+ port = int(port)
178
+
179
+ # release port
180
+ with suppress(ImportError):
181
+ # DO NOT REMOVE NEXT LINE: it tests PortManager availability!
182
+ from .PortManager import releasePort
183
+ releasePort(port)
184
+
185
+ # set OMNIORB_CONFIG variable to the proper file (if not set yet)
186
+ omniorb_user_path = os.getenv('OMNIORB_USER_PATH')
187
+ kwargs = {}
188
+ if omniorb_user_path is not None:
189
+ kwargs['with_username'] = True
190
+ else:
191
+ omniorb_user_path = osp.realpath(osp.expanduser('~'))
192
+ omniorb_config = generateFileName(omniorb_user_path,
193
+ prefix='omniORB',
194
+ extension='cfg',
195
+ hidden=True,
196
+ with_hostname=True,
197
+ with_port=port,
198
+ **kwargs)
199
+ os.environ['OMNIORB_CONFIG'] = omniorb_config
200
+ os.environ['NSPORT'] = str(port)
201
+
202
+ # give the chance to the servers to shutdown properly
203
+ with suppress(Exception):
204
+ from omniORB import CORBA
205
+ from .LifeCycleCORBA import LifeCycleCORBA
206
+ orb = CORBA.ORB_init([''], CORBA.ORB_ID)
207
+ lcc = LifeCycleCORBA(orb) # see (1) below
208
+ # shutdown all
209
+ if verbose():
210
+ print("Terminating SALOME session on port {}...".format(port))
211
+ lcc.shutdownServers()
212
+ # give some time to shutdown to complete
213
+ sleep(1)
214
+ # shutdown omniNames
215
+ if cleanup:
216
+ killOmniNames(port)
217
+ __killMyPort(port, getPiDict(port))
218
+ # DO NOT REMOVE NEXT LINE: it tests PortManager availability!
219
+ from .PortManager import releasePort
220
+ releasePort(port)
221
+ sleep(1)
222
+ sys.exit(0) # see (1) below
223
+
224
+ # (1) If --shutdown-servers option is set to 1, session close procedure is
225
+ # called twice: first explicitly by salome command, second by automatic
226
+ # atexit to handle Ctrl-C. During second call, LCC does not exist anymore and
227
+ # a RuntimeError is raised; we explicitly exit this function with code 0 to
228
+ # prevent parent thread from crashing.
229
+
230
+ def __killProcesses(processes):
231
+ '''
232
+ Terminate and kill all given processes (inernal).
233
+ :param processes : list of processes, each one is an instance of psutil.Process
234
+ '''
235
+ # terminate processes
236
+ for process in processes:
237
+ process.terminate()
238
+ # wait a little, then check for alive
239
+ _, alive = psutil.wait_procs(processes, timeout=5)
240
+ # finally kill alive
241
+ for process in alive:
242
+ process.kill()
243
+
244
+ def __killPids(pids):
245
+ """
246
+ Kill processes with given `pids`.
247
+ :param pids : processes IDs
248
+ """
249
+ processes = []
250
+ for pid in pids:
251
+ try:
252
+ logger.debug("Add process with PID = {} into PIDList to kill".format(pid))
253
+ processes.append(psutil.Process(pid))
254
+ except psutil.NoSuchProcess:
255
+ logger.debug(" ------------------ Process {} not found".format(pid))
256
+ __killProcesses(processes)
257
+
258
+ def __killMyPort(port, filedict):
259
+ """
260
+ Kill processes for given port (internal).
261
+ :param port : port number
262
+ :param filedict : pidict file
263
+ """
264
+ # ensure port is an integer
265
+ with suppress(ValueError):
266
+ port = int(port)
267
+ logger.debug("Into __killMyPort with port {}. File containing PID to kill is {}".format(port,filedict))
268
+ # read pids from pidict file
269
+ with suppress(Exception), open(filedict, 'rb') as fpid:
270
+ pids_lists = pickle.load(fpid)
271
+ # note: pids_list is a list of tuples!
272
+ for pids in pids_lists:
273
+ __killPids(pids)
274
+
275
+ # finally remove pidict file
276
+ try:
277
+ os.remove(filedict)
278
+ except:
279
+ pass
280
+
281
+ def __guessPiDictFilename(port):
282
+ """
283
+ Guess and return pidict file for given `port` (internal).
284
+ :param port : port number
285
+ :return pidict file's path
286
+ """
287
+ # Check all possible versions of pidict file
288
+ # new-style - dot-prefixed pidict file: hidden is True, auto hostname
289
+ # old-style - not dot-prefixed pidict file: hidden is False, auto hostname
290
+ # old-style - dot-prefixed pidict file: hidden is True, short hostname
291
+ # old-style - not dot-prefixed pidict file: hidden is False, short hostname
292
+ # old-style - dot-prefixed pidict file: hidden is True, long hostname
293
+ # old-style - not dot-prefixed pidict file: hidden is False, long hostname
294
+ for hostname, hidden in itertools.product((None, getShortHostName(), getHostName()),
295
+ (True, False)):
296
+ filedict = getPiDict(port, hidden=hidden, hostname=hostname)
297
+ if not osp.exists(filedict):
298
+ if verbose():
299
+ print('Trying {}... not found'.format(filedict))
300
+ continue
301
+ if verbose():
302
+ print('Trying {}... OK'.format(filedict))
303
+ return filedict
304
+
305
+ return None
306
+
307
+ def killProcessSSL(port, pids_list):
308
+ """ Called by runSalome.py after CTRL-C.
309
+ This method :
310
+ - Kill all PIDS in pids
311
+ - update file of pidict
312
+ """
313
+ __killPids(pids_list)
314
+
315
+ with suppress(ValueError):
316
+ port = int(port)
317
+
318
+ for filedict in glob('{}*'.format(getPiDict(port))):
319
+ with suppress(Exception), open(filedict, 'rb') as fpid:
320
+ logging.getLogger().debug("Removing following PIDS from file \"{}\" : {}"
321
+ .format(filedict,pids_list))
322
+ pids_lists_in_file = pickle.load(fpid)
323
+ for dico_of_pids in pids_lists_in_file:
324
+ for pid in pids_list:
325
+ if pid in dico_of_pids:
326
+ del dico_of_pids[pid]
327
+ pids_lists_in_file = [elt for elt in pids_lists_in_file if len(elt)>0]
328
+ if len(pids_lists_in_file) == 0:
329
+ try:
330
+ logging.getLogger().debug("List of PIDS to Kill is now empty -> Remove file \"{}\"".format(filedict))
331
+ os.remove(filedict)
332
+ except:
333
+ pass
334
+ continue
335
+ with suppress(Exception), open(filedict, 'wb') as fpid:
336
+ logging.getLogger().debug("Writing back into file \"{}\"".format(filedict))
337
+ pickle.dump(pids_lists_in_file,fpid)
338
+ # clear-up omniOrb config files
339
+ appliCleanOmniOrbConfig(port)
340
+
341
+ def killMyPort(*ports):
342
+ """
343
+ Kill SALOME session running on the specified port.
344
+ :param ports : port numbers
345
+ """
346
+ for port in ports:
347
+ # ensure port is an integer
348
+ with suppress(ValueError):
349
+ port = int(port)
350
+
351
+ with suppress(Exception):
352
+ # DO NOT REMOVE NEXT LINE: it tests PortManager availability!
353
+ from .PortManager import releasePort
354
+ # get pidict file
355
+ filedict = getPiDict(port)
356
+ if not osp.isfile(filedict): # removed by previous call, see (1) above
357
+ if verbose():
358
+ print("SALOME session on port {} is already stopped".format(port))
359
+ # remove port from PortManager config file
360
+ with suppress(ImportError):
361
+ if verbose():
362
+ print("Removing port from PortManager configuration file")
363
+ releasePort(port)
364
+ return
365
+
366
+ # try to shutdown session normally
367
+ Thread(target=shutdownMyPort, args=(port, True)).start()
368
+ # wait a little...
369
+ sleep(3)
370
+ # ... then kill processes (should be done if shutdown procedure hangs up)
371
+ try:
372
+ # DO NOT REMOVE NEXT LINE: it tests PortManager availability!
373
+ from . import PortManager # pragma pylint: disable=unused-import
374
+ for file_path in glob('{}*'.format(getPiDict(port))):
375
+ __killMyPort(port, file_path)
376
+ except ImportError:
377
+ __killMyPort(port, __guessPiDictFilename(port))
378
+
379
+ # clear-up omniOrb config files
380
+ appliCleanOmniOrbConfig(port)
381
+
382
+ def cleanApplication(port):
383
+ """
384
+ Clean application running on the specified port.
385
+ :param port : port number
386
+ """
387
+ # ensure port is an integer
388
+ with suppress(ValueError):
389
+ port = int(port)
390
+
391
+ # remove pidict file
392
+ with suppress(Exception):
393
+ filedict = getPiDict(port)
394
+ os.remove(filedict)
395
+
396
+ # clear-up omniOrb config files
397
+ appliCleanOmniOrbConfig(port)
398
+
399
+ def killMyPortSpy(pid, port):
400
+ """
401
+ Start daemon process which watches for given process and kills session when process exits.
402
+ :param pid : process ID
403
+ :param port : port number (to kill)
404
+ """
405
+ while True:
406
+ ret = killPid(int(pid), 0) # 0 is used to check process existence without actual killing it
407
+ if ret == 0:
408
+ break # process does not exist: exit loop
409
+ elif ret < 0:
410
+ return # something got wrong
411
+ sleep(1)
412
+
413
+ filedict = getPiDict(port)
414
+ if not osp.exists(filedict):
415
+ return
416
+
417
+ # check Session server
418
+ try:
419
+ import omniORB
420
+ orb = omniORB.CORBA.ORB_init(sys.argv, omniORB.CORBA.ORB_ID)
421
+ from . import SALOME_NamingServicePy
422
+ naming_service = SALOME_NamingServicePy.SALOME_NamingServicePy_i(orb, 3, True)
423
+ from . import SALOME #@UnresolvedImport @UnusedImport # pragma pylint: disable=unused-import
424
+ session = naming_service.Resolve('/Kernel/Session')
425
+ assert session
426
+ except: # pragma pylint: disable=bare-except
427
+ killMyPort(port)
428
+ return
429
+ try:
430
+ status = session.GetStatSession()
431
+ except: # pragma pylint: disable=bare-except
432
+ # -- session is in naming service but likely crashed
433
+ status = None
434
+ if status is not None and not status.activeGUI:
435
+ return
436
+ killMyPort(port)
437
+
438
+ def __checkUnkilledProcesses():
439
+ '''
440
+ Check all unkilled SALOME processes (internal).
441
+ :return: list of unkilled processes
442
+ '''
443
+ def _checkUserName(_process):
444
+ # The following is a workaround for Windows on which
445
+ # psutil.Process().username() returns 'usergroup' + 'username'
446
+ return getUserName() == _process.username().split('\\')[-1]
447
+
448
+ def _getDictfromOutput(_processes, _wildcard=None):
449
+ for _process in psutil.process_iter(['name', 'username']):
450
+ with suppress(psutil.AccessDenied):
451
+ if _checkUserName(_process) and re.match(_wildcard, _process.info['name']):
452
+ _processes.append(_process)
453
+
454
+ processes = list()
455
+ _getDictfromOutput(processes, '(SALOME_*)')
456
+ _getDictfromOutput(processes, '(omniNames)')
457
+ _getDictfromOutput(processes, '(ghs3d)')
458
+ _getDictfromOutput(processes, '(ompi-server)')
459
+
460
+ return processes
461
+
462
+ def killUnkilledProcesses():
463
+ """
464
+ Kill processes which could remain even after shutdowning SALOME sessions.
465
+ """
466
+ __killProcesses(__checkUnkilledProcesses())
467
+
468
+ def main():
469
+ '''
470
+ Main function
471
+ '''
472
+ from argparse import ArgumentParser, ArgumentDefaultsHelpFormatter
473
+ formatter = lambda prog: ArgumentDefaultsHelpFormatter(prog, max_help_position=50, width=120)
474
+ parser = ArgumentParser(description='Forcibly stop given SALOME session(s)',
475
+ formatter_class=formatter)
476
+ parser.add_argument('ports',
477
+ help='ports to kill',
478
+ nargs='*', type=int)
479
+ group = parser.add_mutually_exclusive_group()
480
+ group.add_argument('-s', '--spy',
481
+ help='start daemon to watch PID and then kill given PORT',
482
+ nargs=2, type=int, metavar=('PID', 'PORT'))
483
+ group.add_argument('-l', '--list',
484
+ help='list unkilled SALOME processes',
485
+ action='store_true')
486
+ args = parser.parse_args()
487
+
488
+ if args.ports and (args.spy or args.list):
489
+ print("{}: error: argument ports cannot be used with -s/--spy or -l/--list"
490
+ .format(parser.prog), file=sys.stderr)
491
+ sys.exit(1)
492
+
493
+ if args.spy:
494
+ killMyPortSpy(*args.spy)
495
+ sys.exit(0)
496
+
497
+ if args.list:
498
+ processes = __checkUnkilledProcesses()
499
+ if processes:
500
+ print("Unkilled processes: ")
501
+ print("---------------------")
502
+ print(" PID : Process name")
503
+ print("--------------------")
504
+ for process in processes:
505
+ print("{0:6} : {1}".format(process.pid, process.name()))
506
+ else:
507
+ print("No SALOME related processed found")
508
+ sys.exit(0)
509
+
510
+ try:
511
+ from salomeContextUtils import setOmniOrbUserPath #@UnresolvedImport
512
+ setOmniOrbUserPath()
513
+ except Exception as exc: # pragma pylint: disable=broad-except
514
+ if verbose():
515
+ print(exc)
516
+ sys.exit(1)
517
+
518
+ killMyPort(*args.ports)
@@ -0,0 +1,94 @@
1
+ #! /usr/bin/env python3
2
+ # -*- coding: iso-8859-1 -*-
3
+ # Copyright (C) 2007-2024 CEA, EDF, OPEN CASCADE
4
+ #
5
+ # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
6
+ # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
7
+ #
8
+ # This library is free software; you can redistribute it and/or
9
+ # modify it under the terms of the GNU Lesser General Public
10
+ # License as published by the Free Software Foundation; either
11
+ # version 2.1 of the License, or (at your option) any later version.
12
+ #
13
+ # This library is distributed in the hope that it will be useful,
14
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
15
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16
+ # Lesser General Public License for more details.
17
+ #
18
+ # You should have received a copy of the GNU Lesser General Public
19
+ # License along with this library; if not, write to the Free Software
20
+ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21
+ #
22
+ # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
23
+ #
24
+
25
+ ## @file killSalome.py
26
+ # @brief Forcibly stop all running %SALOME sessions.
27
+
28
+ """
29
+ Forcibly stop all running SALOME sessions.
30
+
31
+ To stop all SALOME sessions, do the following:
32
+
33
+ * in shell:
34
+
35
+ $ killSalome.py
36
+
37
+ * in Python script:
38
+
39
+ from killSalome import killAllPorts
40
+ killAllPorts()
41
+ """
42
+
43
+ # pragma pylint: disable=invalid-name
44
+
45
+ import os
46
+ import os.path as osp
47
+ import re
48
+ import sys
49
+ from contextlib import suppress
50
+ from glob import glob
51
+
52
+ from salome.kernel.killSalomeWithPort_impl import getPiDict, killMyPort, killUnkilledProcesses
53
+
54
+ def killAllPorts():
55
+ """
56
+ Stop all running SALOME sessions owned by the current user.
57
+ """
58
+ # detect ports used by SALOME session and kill processes
59
+ for hidden in (True, False):
60
+ pidict_t = getPiDict(port='#####', hidden=hidden)
61
+ dir_pidict_t = osp.dirname(pidict_t)
62
+ fn_pidict_t = osp.basename(pidict_t).replace('#####', r'(\d*)')
63
+ fn_rex = re.compile('^{}'.format(fn_pidict_t))
64
+ with suppress(IOError):
65
+ for fname in os.listdir(dir_pidict_t):
66
+ m_res = fn_rex.match(fname)
67
+ if m_res:
68
+ killMyPort(m_res.group(1))
69
+
70
+ # kill possibly unkilled processes
71
+ killUnkilledProcesses()
72
+
73
+ # other clean-up actions
74
+ # - delete uri files needed by ompi-server
75
+ for path in glob(osp.join(osp.expanduser('~'), '.urifile_*')):
76
+ with suppress(IOError):
77
+ os.remove(path)
78
+
79
+ def main():
80
+ """
81
+ Main function
82
+ """
83
+ from argparse import ArgumentParser
84
+ parser = ArgumentParser(description='Forcibly stop all running SALOME sessions')
85
+ parser.parse_args()
86
+
87
+ try:
88
+ from salomeContextUtils import setOmniOrbUserPath
89
+ setOmniOrbUserPath()
90
+ except Exception as exc: # pragma pylint: disable=broad-except
91
+ print(exc)
92
+ sys.exit(1)
93
+
94
+ killAllPorts()