salome.kernel 9.14.0__cp310-cp310-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.
- salome/bin/salome/IDLparser.py +882 -0
- salome/bin/salome/KernelHelpersUseCases +0 -0
- salome/bin/salome/NSparam.py +51 -0
- salome/bin/salome/ORBConfigFile.py +55 -0
- salome/bin/salome/SALOMEDS_Client +0 -0
- salome/bin/salome/SALOMEDS_Server +0 -0
- salome/bin/salome/SALOME_ConnectionManagerServer +0 -0
- salome/bin/salome/SALOME_Container +0 -0
- salome/bin/salome/SALOME_ContainerPy.py +397 -0
- salome/bin/salome/SALOME_Container_No_NS_Serv +0 -0
- salome/bin/salome/SALOME_Container_No_NS_Serv_OutProcess +0 -0
- salome/bin/salome/SALOME_Container_No_NS_Serv_OutProcess_FT +0 -0
- salome/bin/salome/SALOME_Container_No_NS_Serv_OutProcess_Replay +0 -0
- salome/bin/salome/SALOME_Container_No_NS_Serv_OutProcess_Replay_FT +0 -0
- salome/bin/salome/SALOME_DataScopeServer +0 -0
- salome/bin/salome/SALOME_DataScopeServer_SSL +0 -0
- salome/bin/salome/SALOME_LauncherServer +0 -0
- salome/bin/salome/SALOME_Logger_Server +0 -0
- salome/bin/salome/SALOME_ModuleCatalog_Client +0 -0
- salome/bin/salome/SALOME_ModuleCatalog_Server +0 -0
- salome/bin/salome/SALOME_Registry_Server +0 -0
- salome/bin/salome/TestComponentPy.py +71 -0
- salome/bin/salome/TestContainer +0 -0
- salome/bin/salome/TestContainerManager +0 -0
- salome/bin/salome/TestLauncher +0 -0
- salome/bin/salome/TestLifeCycleCORBA.py +89 -0
- salome/bin/salome/TestLogger +0 -0
- salome/bin/salome/TestLogger.py +27 -0
- salome/bin/salome/TestModuleCatalog.py +87 -0
- salome/bin/salome/Test_LifeCycleCORBA +0 -0
- salome/bin/salome/VERSION +3 -0
- salome/bin/salome/addToKillList.py +35 -0
- salome/bin/salome/app-quickstart.py +288 -0
- salome/bin/salome/appli/.bashrc +50 -0
- salome/bin/salome/appli/extra.env.d/001.py +39 -0
- salome/bin/salome/appli/python_test_driver.py +148 -0
- salome/bin/salome/appli/salome +193 -0
- salome/bin/salome/appli/salome_instance.py +31 -0
- salome/bin/salome/appli/salome_test_driver.py +150 -0
- salome/bin/salome/appli/salome_test_driver_gui.py +82 -0
- salome/bin/salome/appli_clean.sh +53 -0
- salome/bin/salome/appli_gen.py +606 -0
- salome/bin/salome/dummyexe_loggerTraceCollector +0 -0
- salome/bin/salome/envSalome.py +59 -0
- salome/bin/salome/killSalome.py +48 -0
- salome/bin/salome/killSalomeWithPort.py +56 -0
- salome/bin/salome/prepare_generating_doc.py +104 -0
- salome/bin/salome/pythonpath_reduction.py +184 -0
- salome/bin/salome/runConsole.py +39 -0
- salome/bin/salome/runIDLparser +58 -0
- salome/bin/salome/runRemote.py +101 -0
- salome/bin/salome/runSalome.py +30 -0
- salome/bin/salome/runSalomeNoServer.py +24 -0
- salome/bin/salome/runSalomeOld.py +36 -0
- salome/bin/salome/runSalomeOnDemand.py +41 -0
- salome/bin/salome/salomeContext.py +36 -0
- salome/bin/salome/salome_process_attach +44 -0
- salome/bin/salome/salome_process_launcher +58 -0
- salome/bin/salome/setenv.py +32 -0
- salome/bin/salome/showNS.py +33 -0
- salome/bin/salome/test/kernel/ArgvKeeper/CTestTestfile.cmake +31 -0
- salome/bin/salome/test/kernel/ArgvKeeper/TestArgvKeeper +0 -0
- salome/bin/salome/test/kernel/ArgvKeeper/test_ArgvKeeper.py +34 -0
- salome/bin/salome/test/kernel/CTestTestfile.cmake +49 -0
- salome/bin/salome/test/kernel/Container/CTestTestfile.cmake +29 -0
- salome/bin/salome/test/kernel/Container/testProxy.py +291 -0
- salome/bin/salome/test/kernel/Container/testcontainer.py +106 -0
- salome/bin/salome/test/kernel/KernelHelpers/CTestTestfile.cmake +31 -0
- salome/bin/salome/test/kernel/KernelHelpers/KernelHelpersUnitTests.hxx +58 -0
- salome/bin/salome/test/kernel/KernelHelpers/TestKernelHelpers +0 -0
- salome/bin/salome/test/kernel/KernelHelpers/TestKernelHelpers.py +55 -0
- salome/bin/salome/test/kernel/Launcher/CTestTestfile.cmake +43 -0
- salome/bin/salome/test/kernel/Launcher/TestSSLAttached.py +110 -0
- salome/bin/salome/test/kernel/Launcher/launcher_use_case.py +65 -0
- salome/bin/salome/test/kernel/Launcher/testCrashProofContainer.py +423 -0
- salome/bin/salome/test/kernel/Launcher/testPerfLogManager1.py +382 -0
- salome/bin/salome/test/kernel/Launcher/test_launcher.py +674 -0
- salome/bin/salome/test/kernel/Launcher/test_stress.sh +45 -0
- salome/bin/salome/test/kernel/Launcher_SWIG/CTestTestfile.cmake +30 -0
- salome/bin/salome/test/kernel/Launcher_SWIG/test_swig_launcher.py +706 -0
- salome/bin/salome/test/kernel/LifeCycleCORBA/CTestTestfile.cmake +27 -0
- salome/bin/salome/test/kernel/LifeCycleCORBA/LifeCycleCORBATest.hxx +105 -0
- salome/bin/salome/test/kernel/LifeCycleCORBA/TestLifeCycleCORBA +0 -0
- salome/bin/salome/test/kernel/LifeCycleCORBA/TestLifeCycleCORBA.py +93 -0
- salome/bin/salome/test/kernel/LifeCycleCORBA_SWIG/CTestTestfile.cmake +40 -0
- salome/bin/salome/test/kernel/LifeCycleCORBA_SWIG/CatalogResources_resource.xml +15 -0
- salome/bin/salome/test/kernel/LifeCycleCORBA_SWIG/LifeCycleCORBA_SWIGTest.py +217 -0
- salome/bin/salome/test/kernel/LifeCycleCORBA_SWIG/SALOME_TestComponentPy.py +49 -0
- salome/bin/salome/test/kernel/LifeCycleCORBA_SWIG/TestLifeCycleCORBA_SWIG.py +100 -0
- salome/bin/salome/test/kernel/LifeCycleCORBA_SWIG/testcontainermanager.py +88 -0
- salome/bin/salome/test/kernel/LifeCycleCORBA_SWIG/testresourcemanager.py +155 -0
- salome/bin/salome/test/kernel/NamingService/CTestTestfile.cmake +28 -0
- salome/bin/salome/test/kernel/NamingService/NamingServiceTest.hxx +169 -0
- salome/bin/salome/test/kernel/NamingService/TestNamingService +0 -0
- salome/bin/salome/test/kernel/NamingService/TestNamingService.py +64 -0
- salome/bin/salome/test/kernel/SALOMEDS/CTestTestfile.cmake +27 -0
- salome/bin/salome/test/kernel/SALOMEDS/SALOMEDSTest.hxx +192 -0
- salome/bin/salome/test/kernel/SALOMEDS/TestSALOMEDS +0 -0
- salome/bin/salome/test/kernel/SALOMEDS/TestSALOMEDS.py +55 -0
- salome/bin/salome/test/kernel/SALOMEDSImpl/CTestTestfile.cmake +27 -0
- salome/bin/salome/test/kernel/SALOMEDSImpl/SALOMEDSImplTest.hxx +51 -0
- salome/bin/salome/test/kernel/SALOMEDSImpl/TestSALOMEDSImpl +0 -0
- salome/bin/salome/test/kernel/SALOMEDSImpl/TestSALOMEDSImpl.py +55 -0
- salome/bin/salome/test/kernel/SALOMELocalTrace/CTestTestfile.cmake +27 -0
- salome/bin/salome/test/kernel/SALOMELocalTrace/SALOMELocalTraceTest.hxx +59 -0
- salome/bin/salome/test/kernel/SALOMELocalTrace/TestSALOMELocalTrace +0 -0
- salome/bin/salome/test/kernel/SALOMELocalTrace/TestSALOMELocalTrace.py +40 -0
- salome/bin/salome/test/kernel/SALOMETraceCollector/CTestTestfile.cmake +27 -0
- salome/bin/salome/test/kernel/SALOMETraceCollector/SALOMETraceCollectorTest.hxx +51 -0
- salome/bin/salome/test/kernel/SALOMETraceCollector/TestSALOMETraceCollector +0 -0
- salome/bin/salome/test/kernel/SALOMETraceCollector/TestSALOMETraceCollector.py +57 -0
- salome/bin/salome/test/kernel/UnitTests/CTestTestfile.cmake +28 -0
- salome/bin/salome/test/kernel/UnitTests/UnitTests +0 -0
- salome/bin/salome/test/kernel/UnitTests/UnitTests.py +89 -0
- salome/bin/salome/test/kernel/Utils/CTestTestfile.cmake +27 -0
- salome/bin/salome/test/kernel/Utils/TestUtils +0 -0
- salome/bin/salome/test/kernel/Utils/TestUtils.py +55 -0
- salome/bin/salome/test/kernel/Utils/UtilsTest.hxx +58 -0
- salome/bin/salome/test/kernel/lib/libLifeCycleCORBATest.so +0 -0
- salome/bin/salome/test/kernel/lib/libNamingServiceTest.so +0 -0
- salome/bin/salome/test/kernel/lib/libSALOMEDSImplTest.so +0 -0
- salome/bin/salome/test/kernel/lib/libSALOMEDSTest.so +0 -0
- salome/bin/salome/test/kernel/lib/libSALOMELocalTraceTest.so +0 -0
- salome/bin/salome/test/kernel/lib/libSALOMETraceCollectorTest.so +0 -0
- salome/bin/salome/test/kernel/lib/libSalomeKernelHelpersTest.so +0 -0
- salome/bin/salome/test/kernel/lib/libUtilsTest.so +0 -0
- salome/bin/salome/testDF +0 -0
- salome/bin/salome/testDS +0 -0
- salome/bin/salome/virtual_salome.py +38 -0
- salome/bin/salome/waitContainers.py +82 -0
- salome/bin/salome/waitNS.py +31 -0
- salome/kernel/ArgvKeeper.py +132 -0
- salome/kernel/Calcium_Ports_idl.py +645 -0
- salome/kernel/DSC_Engines_idl.py +443 -0
- salome/kernel/Engines/__init__.py +24 -0
- salome/kernel/Engines__POA/__init__.py +24 -0
- salome/kernel/Help.py +141 -0
- salome/kernel/KernelBasis.py +463 -0
- salome/kernel/KernelContainer.py +81 -0
- salome/kernel/KernelDS.py +87 -0
- salome/kernel/KernelLauncher.py +117 -0
- salome/kernel/KernelLogger.py +75 -0
- salome/kernel/KernelModuleCatalog.py +76 -0
- salome/kernel/KernelSDS.py +92 -0
- salome/kernel/KernelServices.py +105 -0
- salome/kernel/LifeCycleCORBA.py +92 -0
- salome/kernel/Logger_idl.py +89 -0
- salome/kernel/NSTEST/__init__.py +13 -0
- salome/kernel/NSTEST__POA/__init__.py +13 -0
- salome/kernel/NSparam_impl.py +50 -0
- salome/kernel/NamingService.py +365 -0
- salome/kernel/ORBConfigFile_impl.py +102 -0
- salome/kernel/Palm_Ports_idl.py +162 -0
- salome/kernel/PortManager.py +259 -0
- salome/kernel/Ports/Calcium_Ports/__init__.py +13 -0
- salome/kernel/Ports/Palm_Ports/__init__.py +13 -0
- salome/kernel/Ports/__init__.py +18 -0
- salome/kernel/Ports__POA/Calcium_Ports/__init__.py +13 -0
- salome/kernel/Ports__POA/Palm_Ports/__init__.py +13 -0
- salome/kernel/Ports__POA/__init__.py +18 -0
- salome/kernel/PyInterp.py +99 -0
- salome/kernel/Registry/__init__.py +13 -0
- salome/kernel/Registry__POA/__init__.py +13 -0
- salome/kernel/SALOME/__init__.py +19 -0
- salome/kernel/SALOMEDS/__init__.py +14 -0
- salome/kernel/SALOMEDS_Attributes_idl.py +2288 -0
- salome/kernel/SALOMEDS__POA/__init__.py +14 -0
- salome/kernel/SALOMEDS_idl.py +1590 -0
- salome/kernel/SALOMEWrappedStdType.py +383 -0
- salome/kernel/SALOME_Comm_idl.py +1045 -0
- salome/kernel/SALOME_CommonTypes_idl.py +69 -0
- salome/kernel/SALOME_ComponentPy.py +338 -0
- salome/kernel/SALOME_Component_idl.py +962 -0
- salome/kernel/SALOME_Container.py +242 -0
- salome/kernel/SALOME_ContainerHelper.py +840 -0
- salome/kernel/SALOME_ContainerManager_idl.py +236 -0
- salome/kernel/SALOME_DriverPy.py +86 -0
- salome/kernel/SALOME_Embedded_NamingService.py +41 -0
- salome/kernel/SALOME_Embedded_NamingService_ClientPy.py +59 -0
- salome/kernel/SALOME_Embedded_NamingService_idl.py +125 -0
- salome/kernel/SALOME_Exception_idl.py +75 -0
- salome/kernel/SALOME_ExternalServerLauncher_idl.py +199 -0
- salome/kernel/SALOME_GenericObj_idl.py +154 -0
- salome/kernel/SALOME_GlobalsImpl.py +38 -0
- salome/kernel/SALOME_Launcher_idl.py +327 -0
- salome/kernel/SALOME_Locker_idl.py +185 -0
- salome/kernel/SALOME_LogManager.py +103 -0
- salome/kernel/SALOME_LogManager_idl.py +348 -0
- salome/kernel/SALOME_Logger/__init__.py +13 -0
- salome/kernel/SALOME_Logger__POA/__init__.py +13 -0
- salome/kernel/SALOME_MPIObject_idl.py +100 -0
- salome/kernel/SALOME_ModuleCatalog/__init__.py +13 -0
- salome/kernel/SALOME_ModuleCatalog__POA/__init__.py +13 -0
- salome/kernel/SALOME_ModuleCatalog_idl.py +624 -0
- salome/kernel/SALOME_NamingServicePy.py +313 -0
- salome/kernel/SALOME_PACOExtension_idl.py +292 -0
- salome/kernel/SALOME_ParamPorts_idl.py +102 -0
- salome/kernel/SALOME_Parametric_idl.py +154 -0
- salome/kernel/SALOME_Ports_idl.py +347 -0
- salome/kernel/SALOME_PyNode.py +1557 -0
- salome/kernel/SALOME_PyNode_idl.py +387 -0
- salome/kernel/SALOME_Registry_idl.py +155 -0
- salome/kernel/SALOME_ResourcesManager_idl.py +215 -0
- salome/kernel/SALOME_SDS_idl.py +1181 -0
- salome/kernel/SALOME_Session_idl.py +214 -0
- salome/kernel/SALOME_TYPES/__init__.py +14 -0
- salome/kernel/SALOME_TYPES__POA/__init__.py +14 -0
- salome/kernel/SALOME_TestComponent_idl.py +121 -0
- salome/kernel/SALOME_TestModuleCatalog/__init__.py +13 -0
- salome/kernel/SALOME_TestModuleCatalog__POA/__init__.py +13 -0
- salome/kernel/SALOME_TestModuleCatalog_idl.py +194 -0
- salome/kernel/SALOME_Trace.py +96 -0
- salome/kernel/SALOME_Types_idl.py +81 -0
- salome/kernel/SALOME__POA/__init__.py +19 -0
- salome/kernel/SALOME_utilities.py +63 -0
- salome/kernel/SalomeSDSClt.py +552 -0
- salome/kernel/TestKiller.py +76 -0
- salome/kernel/Utils_Identity.py +93 -0
- salome/kernel/_ArgvKeeper.so +0 -0
- salome/kernel/_KernelBasis.so +0 -0
- salome/kernel/_KernelContainer.so +0 -0
- salome/kernel/_KernelDS.so +0 -0
- salome/kernel/_KernelLauncher.so +0 -0
- salome/kernel/_KernelLogger.so +0 -0
- salome/kernel/_KernelModuleCatalog.so +0 -0
- salome/kernel/_KernelSDS.so +0 -0
- salome/kernel/_KernelServices.so +0 -0
- salome/kernel/_NamingService.so +0 -0
- salome/kernel/_calcium.so +0 -0
- salome/kernel/_libNOTIFICATION.so +0 -0
- salome/kernel/_libSALOME_Comm.so +0 -0
- salome/kernel/_libSALOME_LifeCycleCORBA.so +0 -0
- salome/kernel/_pylauncher.so +0 -0
- salome/kernel/addToKillList_impl.py +127 -0
- salome/kernel/batchmode_salome.py +295 -0
- salome/kernel/calcium.py +866 -0
- salome/kernel/dsccalcium.py +98 -0
- salome/kernel/iparameters.py +255 -0
- salome/kernel/kernel_test.py +114 -0
- salome/kernel/killSalomeWithPort_impl.py +518 -0
- salome/kernel/killSalome_impl.py +94 -0
- salome/kernel/launchConfigureParser.py +1234 -0
- salome/kernel/launcher_proxy.py +122 -0
- salome/kernel/libNOTIFICATION.py +119 -0
- salome/kernel/libSALOME_Comm.py +85 -0
- salome/kernel/libSALOME_LifeCycleCORBA.py +232 -0
- salome/kernel/main.py +8 -0
- salome/kernel/nameserver.py +134 -0
- salome/kernel/nstest_idl.py +129 -0
- salome/kernel/omnipatch.py +136 -0
- salome/kernel/orbmodule.py +246 -0
- salome/kernel/parseConfigFile.py +261 -0
- salome/kernel/pylauncher.py +883 -0
- salome/kernel/runConsole_impl.py +224 -0
- salome/kernel/runSalomeCommon.py +418 -0
- salome/kernel/runSalomeNoServer_impl.py +48 -0
- salome/kernel/runSalomeOld_impl.py +603 -0
- salome/kernel/runSalomeOnDemand_impl.py +72 -0
- salome/kernel/runSalome_impl.py +341 -0
- salome/kernel/runSession.py +360 -0
- salome/kernel/runTests.py +90 -0
- salome/kernel/salome/__init__.py +646 -0
- salome/kernel/salome/kernel/__init__.py +111 -0
- salome/kernel/salome/kernel/datamodeler.py +363 -0
- salome/kernel/salome/kernel/deprecation.py +165 -0
- salome/kernel/salome/kernel/diclookup.py +137 -0
- salome/kernel/salome/kernel/enumerate.py +232 -0
- salome/kernel/salome/kernel/logconfig.py +27 -0
- salome/kernel/salome/kernel/logger.py +290 -0
- salome/kernel/salome/kernel/parametric/__init__.py +26 -0
- salome/kernel/salome/kernel/parametric/compo_utils.py +137 -0
- salome/kernel/salome/kernel/parametric/pyscript_utils.py +135 -0
- salome/kernel/salome/kernel/parametric/study_exchange_vars.py +285 -0
- salome/kernel/salome/kernel/pyunittester.py +184 -0
- salome/kernel/salome/kernel/services.py +267 -0
- salome/kernel/salome/kernel/studyedit.py +637 -0
- salome/kernel/salome/kernel/syshelper.py +116 -0
- salome/kernel/salome/kernel/termcolor.py +239 -0
- salome/kernel/salome/kernel/testdata.py +159 -0
- salome/kernel/salome/kernel/threadhelper.py +385 -0
- salome/kernel/salome/kernel/uiexception.py +121 -0
- salome/kernel/salome/kernel/unittester.py +89 -0
- salome/kernel/salomeContextUtils.py +353 -0
- salome/kernel/salomeContext_impl.py +731 -0
- salome/kernel/salome_ComponentGUI.py +92 -0
- salome/kernel/salome_genericobj.py +44 -0
- salome/kernel/salome_iapp.py +206 -0
- salome/kernel/salome_instance_impl.py +109 -0
- salome/kernel/salome_kernel_utils.py +88 -0
- salome/kernel/salome_notebook.py +183 -0
- salome/kernel/salome_psutil.py +94 -0
- salome/kernel/salome_pynode.py +74 -0
- salome/kernel/salome_study.py +347 -0
- salome/kernel/salome_test.py +56 -0
- salome/kernel/salome_utils.py +563 -0
- salome/kernel/salome_version.py +164 -0
- salome/kernel/searchFreePort.py +130 -0
- salome/kernel/server.py +154 -0
- salome/kernel/setenv_impl.py +240 -0
- salome/kernel/version_and_config.py +24 -0
- salome/share/salome/resources/kernel/Anita semi square.ttf +0 -0
- salome/share/salome/resources/kernel/CatalogModulePersonnel.xml_skel +24 -0
- salome/share/salome/resources/kernel/CatalogResources.xml +4 -0
- salome/share/salome/resources/kernel/KERNELCatalog.xml +102 -0
- salome/share/salome/resources/kernel/SALOMEDS_Resources +10 -0
- salome/share/salome/resources/kernel/ScriptsTemplate/SALOME_CM_LOCAL_MPI_LAN.py +19 -0
- salome/share/salome/resources/kernel/ScriptsTemplate/SALOME_CM_LOCAL_MPI_MPICH.py +18 -0
- salome/share/salome/resources/kernel/ScriptsTemplate/SALOME_CM_LOCAL_MPI_OPENMPI.py +21 -0
- salome/share/salome/resources/kernel/ScriptsTemplate/SALOME_CM_LOCAL_NO_MPI.py +25 -0
- salome/share/salome/resources/kernel/ScriptsTemplate/SALOME_CM_REMOTE.py +108 -0
- salome/share/salome/resources/kernel/ScriptsTemplate/SALOME_CM_REMOTE_OLD.py +115 -0
- salome/share/salome/resources/kernel/ScriptsTemplate/script_parameters.py +25 -0
- salome/share/salome/resources/kernel/app-template/CMakeLists.txt +125 -0
- salome/share/salome/resources/kernel/app-template/LICENCE +504 -0
- salome/share/salome/resources/kernel/app-template/README +0 -0
- salome/share/salome/resources/kernel/app-template/doc/CMakeLists.txt +31 -0
- salome/share/salome/resources/kernel/app-template/doc/README +1 -0
- salome/share/salome/resources/kernel/app-template/doc/conf.py.in +197 -0
- salome/share/salome/resources/kernel/app-template/doc/index.rst +14 -0
- salome/share/salome/resources/kernel/app-template/doc/intro.rst +4 -0
- salome/share/salome/resources/kernel/app-template/doc/link.rst +4 -0
- salome/share/salome/resources/kernel/app-template/resources/CMakeLists.txt +36 -0
- salome/share/salome/resources/kernel/app-template/resources/SalomeApp.xml.in +30 -0
- salome/share/salome/resources/kernel/app-template/resources/about.png +0 -0
- salome/share/salome/resources/kernel/app-template/resources/app_icon.png +0 -0
- salome/share/salome/resources/kernel/app-template/resources/app_logo.png +0 -0
- salome/share/salome/resources/kernel/app-template/resources/doc/CMakeLists.txt +27 -0
- salome/share/salome/resources/kernel/app-template/resources/doc/README +1 -0
- salome/share/salome/resources/kernel/app-template/resources/doc/sample.pdf +0 -0
- salome/share/salome/resources/kernel/app-template/resources/icon_about.png +0 -0
- salome/share/salome/resources/kernel/app-template/resources/splash.png +0 -0
- salome/share/salome/resources/kernel/app-template/src/CMakeLists.txt +22 -0
- salome/share/salome/resources/kernel/app-template/src/resources/CMakeLists.txt +34 -0
- salome/share/salome/resources/kernel/app-template/src/resources/LightApp_images.ts +23 -0
- salome/share/salome/resources/kernel/app-template/src/resources/LightApp_msg_en.ts +35 -0
- salome/share/salome/resources/kernel/app-template/src/resources/LightApp_msg_fr.ts +35 -0
- salome/share/salome/resources/kernel/app-template/src/resources/LightApp_msg_ja.ts +35 -0
- salome/share/salome/resources/kernel/app-template/src/tests/CMakeLists.txt +29 -0
- salome/share/salome/resources/kernel/app-template/src/tests/README +1 -0
- salome/share/salome/resources/kernel/app-template/src/tests/helloWorld.py +1 -0
- salome/share/salome/resources/kernel/background.png +0 -0
- salome/share/salome/resources/kernel/channel.cfg +278 -0
- salome/share/salome/resources/kernel/testLauncher.xml +10 -0
- salome.kernel-9.14.0.dist-info/METADATA +24 -0
- salome.kernel-9.14.0.dist-info/RECORD +399 -0
- salome.kernel-9.14.0.dist-info/WHEEL +6 -0
- salome.kernel-9.14.0.dist-info/entry_points.txt +2 -0
- salome.kernel.libs/libArgvKeeper-822351d5.so +0 -0
- salome.kernel.libs/libCOS4-b4544fb9.so.2.5 +0 -0
- salome.kernel.libs/libCOSDynamic4-618dbb1d.so.2.5 +0 -0
- salome.kernel.libs/libCalciumC-91a70951.so +0 -0
- salome.kernel.libs/libDF-281cc999.so +0 -0
- salome.kernel.libs/libLauncher-d5172385.so +0 -0
- salome.kernel.libs/libLauncherWrapHelper-b990b914.so +0 -0
- salome.kernel.libs/libOpUtil-b4b3b9b6.so +0 -0
- salome.kernel.libs/libRegistry-e24daafb.so +0 -0
- salome.kernel.libs/libResourcesManager-f4ef9548.so +0 -0
- salome.kernel.libs/libSALOMEBasics-f4d874ac.so +0 -0
- salome.kernel.libs/libSALOMELocalTrace-a3992e5b.so +0 -0
- salome.kernel.libs/libSALOMELog-55805468.so +0 -0
- salome.kernel.libs/libSalomeCalcium-781cb934.so +0 -0
- salome.kernel.libs/libSalomeCatalog-5b91a229.so +0 -0
- salome.kernel.libs/libSalomeCommunication-6013ebb8.so +0 -0
- salome.kernel.libs/libSalomeContainer-decf499e.so +0 -0
- salome.kernel.libs/libSalomeContainerServer-9c26efb9.so +0 -0
- salome.kernel.libs/libSalomeDS-fb6237e6.so +0 -0
- salome.kernel.libs/libSalomeDSCContainer-9aba4abc.so +0 -0
- salome.kernel.libs/libSalomeDSCSuperv-cb0c82c4.so +0 -0
- salome.kernel.libs/libSalomeDSCSupervBasic-5e119792.so +0 -0
- salome.kernel.libs/libSalomeDSClient-cfd124a5.so +0 -0
- salome.kernel.libs/libSalomeDSImpl-b0ca6717.so +0 -0
- salome.kernel.libs/libSalomeDatastream-755ff3cb.so +0 -0
- salome.kernel.libs/libSalomeGenericObj-2571fdbd.so +0 -0
- salome.kernel.libs/libSalomeHDFPersist-97851d0e.so +0 -0
- salome.kernel.libs/libSalomeIDLKernel-2eb1ed8e.so +0 -0
- salome.kernel.libs/libSalomeKernelHelpers-ac8d226c.so +0 -0
- salome.kernel.libs/libSalomeLauncher-773b54ed.so +0 -0
- salome.kernel.libs/libSalomeLifeCycleCORBA-3e113d61.so +0 -0
- salome.kernel.libs/libSalomeLoggerServer-973d3d94.so +0 -0
- salome.kernel.libs/libSalomeNS-d87194d5.so +0 -0
- salome.kernel.libs/libSalomeNotification-83bfb2ff.so +0 -0
- salome.kernel.libs/libSalomeORB-07883efb.so +0 -0
- salome.kernel.libs/libSalomePalm-b748443e.so +0 -0
- salome.kernel.libs/libSalomeResourcesManager-5a7077a0.so +0 -0
- salome.kernel.libs/libSalomeSDS-cc7aada7.so +0 -0
- salome.kernel.libs/libSalomeTestComponentEngine-ae724ce1.so +0 -0
- salome.kernel.libs/libTOOLSDS-82342bb4.so +0 -0
- salome.kernel.libs/libbatch-6b5b319f.so +0 -0
- salome.kernel.libs/libboost_atomic-489c2d94.so.1.81.0 +0 -0
- salome.kernel.libs/libboost_filesystem-e610b554.so.1.81.0 +0 -0
- salome.kernel.libs/libboost_system-4a7650ea.so.1.81.0 +0 -0
- salome.kernel.libs/libcppunit-1-17e77af1.12.so.1.0.0 +0 -0
- salome.kernel.libs/libhdf5-60e81d69.so.103.0.0 +0 -0
- salome.kernel.libs/liblzma-004595ca.so.5.2.2 +0 -0
- salome.kernel.libs/libomniDynamic4-9edc765d.so.2.5 +0 -0
- salome.kernel.libs/libomniORB4-4725824d.so.2.5 +0 -0
- salome.kernel.libs/libomnithread-99f9d0d3.so.4.1 +0 -0
- salome.kernel.libs/libwith_loggerTraceCollector-7ed0f3a0.so +0 -0
- salome.kernel.libs/libwith_loggerTraceCollector.so +0 -0
- 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()
|