salome.kernel 9.14.0__cp37-cp37m-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-d1a25367.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-6d57b2ba.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-7822101d.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,706 @@
1
+ #! /usr/bin/env python3
2
+ # -*- coding: utf-8 -*-
3
+ # Copyright (C) 2014-2024 CEA, EDF
4
+ #
5
+ # This library is free software; you can redistribute it and/or
6
+ # modify it under the terms of the GNU Lesser General Public
7
+ # License as published by the Free Software Foundation; either
8
+ # version 2.1 of the License, or (at your option) any later version.
9
+ #
10
+ # This library is distributed in the hope that it will be useful,
11
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13
+ # Lesser General Public License for more details.
14
+ #
15
+ # You should have received a copy of the GNU Lesser General Public
16
+ # License along with this library; if not, write to the Free Software
17
+ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18
+ #
19
+ # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
20
+ #
21
+
22
+ import unittest
23
+ import os
24
+ import sys
25
+ import time
26
+ import tempfile
27
+ import errno
28
+
29
+ def mkdir_p(path):
30
+ try:
31
+ os.makedirs(path)
32
+ except OSError as exc: # Python >2.5
33
+ if exc.errno == errno.EEXIST and os.path.isdir(path):
34
+ pass
35
+ else:
36
+ raise
37
+
38
+ from salome.kernel import pylauncher
39
+ def createLauncher():
40
+ launcher = pylauncher.Launcher_cpp()
41
+ launcher.SetResourcesManager(createResourcesManager())
42
+ return launcher
43
+
44
+ def createResourcesManager():
45
+ # localhost is defined anyway, even if the catalog file does not exist.
46
+ catalog_path = os.environ.get("USER_CATALOG_RESOURCES_FILE", "")
47
+ return pylauncher.ResourcesManager_cpp(catalog_path)
48
+
49
+ def createJobParameters():
50
+ jp = pylauncher.JobParameters_cpp()
51
+ jp.resource_required = createResourceParameters()
52
+ return jp
53
+
54
+ def createResourceParameters():
55
+ return pylauncher.resourceParams()
56
+
57
+ # Test of SalomeLauncher.
58
+ # This test should be run in the salome environment, using "salome shell".
59
+ # It does not need a salome application running.
60
+ # The test will try to launch batch jobs on every available resources which
61
+ # have the can_launch_batch_jobs parameter set to True.
62
+ # You can use the environment variable USER_CATALOG_RESOURCES_FILE in order to
63
+ # define a customised resource catalog.
64
+ # If YACS_ROOT_DIR is not set, the test of submitting a YACS schema will be
65
+ # skipped.
66
+ class TestCompo(unittest.TestCase):
67
+ @classmethod
68
+ def setUpClass(cls):
69
+ # Prepare the test directory
70
+ temp = tempfile.NamedTemporaryFile()
71
+ cls.test_dir = os.path.join(temp.name, "test_dir")
72
+ name = os.path.basename(temp.name)
73
+ temp.close()
74
+ cls.suffix = time.strftime("-%Y-%m-%d-%H-%M-%S")+"-%s"%(os.getpid())
75
+ mkdir_p(cls.test_dir)
76
+
77
+ # Get the list of possible ressources
78
+ ressource_param = createResourceParameters()
79
+ ressource_param.can_launch_batch_jobs = True
80
+ rm = createResourcesManager()
81
+ cls.ressources = rm.GetFittingResources(ressource_param)
82
+
83
+ def verifyFile(self, path, content):
84
+ try:
85
+ f = open(path, 'r')
86
+ text = f.read()
87
+ f.close()
88
+ self.assertEqual(text, content)
89
+ except IOError as ex:
90
+ self.fail("IO exception:" + str(ex));
91
+
92
+ def create_JobParameters(self):
93
+ job_params = createJobParameters()
94
+ job_params.wckey="P11U5:CARBONES" #needed by edf clusters
95
+ job_params.resource_required.nb_proc = 1
96
+ return job_params
97
+
98
+ ##############################
99
+ # test of python_salome job
100
+ ##############################
101
+ def test_salome_py_job(self):
102
+ case_test_dir = os.path.join(TestCompo.test_dir, "salome_py")
103
+ mkdir_p(case_test_dir)
104
+
105
+ old_dir = os.getcwd()
106
+ os.chdir(case_test_dir)
107
+
108
+ # job script
109
+ script_file = "myScript.py"
110
+ job_script_file = os.path.join(case_test_dir, script_file)
111
+ script_text = """#! /usr/bin/env python3
112
+ # -*- coding: utf-8 -*-
113
+
114
+ # verify import salome
115
+ from salome.kernel import salome
116
+ salome.salome_init()
117
+
118
+ f = open('result.txt', 'w')
119
+ f.write("Salut!")
120
+ f.close()
121
+
122
+ import os
123
+ os.mkdir("subdir")
124
+ f = open(os.path.join("subdir",'autre.txt'), 'w')
125
+ f.write("Hello!")
126
+ f.close()
127
+ """
128
+ f = open(job_script_file, "w")
129
+ f.write(script_text)
130
+ f.close()
131
+
132
+ local_result_dir = os.path.join(case_test_dir, "result_py_job-")
133
+ job_params = self.create_JobParameters()
134
+ job_params.job_type = "python_salome"
135
+ job_params.job_file = job_script_file
136
+ job_params.in_files = []
137
+ job_params.out_files = ["result.txt", "subdir"]
138
+
139
+ launcher = createLauncher()
140
+
141
+ for resource in self.ressources:
142
+ print("Testing python_salome job on ", resource)
143
+ job_params.result_directory = local_result_dir + resource
144
+ job_params.job_name = "PyJob" + resource
145
+ job_params.resource_required.name = resource
146
+ # use default working directory for this test
147
+
148
+ job_id = launcher.createJob(job_params)
149
+ launcher.launchJob(job_id)
150
+
151
+ jobState = launcher.getJobState(job_id)
152
+ print("Job %d state: %s" % (job_id,jobState))
153
+ while jobState != "FINISHED" and jobState != "FAILED" :
154
+ time.sleep(5)
155
+ jobState = launcher.getJobState(job_id)
156
+ print("Job %d state: %s" % (job_id,jobState))
157
+ pass
158
+
159
+ self.assertEqual(jobState, "FINISHED")
160
+
161
+ # getJobResults to default directory (result_directory)
162
+ launcher.getJobResults(job_id, "")
163
+ self.verifyFile(os.path.join(job_params.result_directory, "result.txt"),
164
+ "Salut!")
165
+ self.verifyFile(os.path.join(job_params.result_directory,
166
+ "subdir", "autre.txt"),
167
+ "Hello!")
168
+
169
+ # getJobResults to a specific directory
170
+ mydir = os.path.join(case_test_dir, "custom_result_dir" + resource)
171
+ launcher.getJobResults(job_id, mydir)
172
+ self.verifyFile(os.path.join(mydir, "result.txt"), "Salut!")
173
+ self.verifyFile(os.path.join(mydir, "subdir", "autre.txt"), "Hello!")
174
+ pass #for
175
+
176
+ os.chdir(old_dir)
177
+
178
+ ##############################
179
+ # test of command job type
180
+ ##############################
181
+ def test_command(self):
182
+ case_test_dir = os.path.join(TestCompo.test_dir, "command")
183
+ mkdir_p(case_test_dir)
184
+
185
+ # job script
186
+ data_file = "in.txt"
187
+ script_file = "myEnvScript.py"
188
+ script_text = """#! /usr/bin/env python3
189
+ # -*- coding: utf-8 -*-
190
+
191
+ import os,sys
192
+
193
+ text_result = os.getenv("ENV_TEST_VAR","")
194
+
195
+ f = open('result.txt', 'w')
196
+ f.write(text_result)
197
+ f.close()
198
+
199
+ in_f = open("in.txt", "r")
200
+ in_text = in_f.read()
201
+ in_f.close()
202
+
203
+ os.mkdir("copie")
204
+ f = open(os.path.join("copie",'copie.txt'), 'w')
205
+ f.write(in_text)
206
+ f.close()
207
+ """
208
+ abs_script_file = os.path.join(case_test_dir, script_file)
209
+ f = open(abs_script_file, "w")
210
+ f.write(script_text)
211
+ f.close()
212
+ os.chmod(abs_script_file, 0o755)
213
+
214
+ #environment script
215
+ env_file = "myEnv.sh"
216
+ env_text = """export ENV_TEST_VAR="expected"
217
+ """
218
+ f = open(os.path.join(case_test_dir, env_file), "w")
219
+ f.write(env_text)
220
+ f.close()
221
+
222
+ # write data file
223
+ f = open(os.path.join(case_test_dir, data_file), "w")
224
+ f.write("to be copied")
225
+ f.close()
226
+
227
+ # job params
228
+ local_result_dir = os.path.join(case_test_dir, "result_com_job-")
229
+ job_params = self.create_JobParameters()
230
+ job_params.job_type = "command"
231
+ job_params.job_file = script_file
232
+ job_params.env_file = env_file
233
+ job_params.in_files = [data_file]
234
+ job_params.out_files = ["result.txt", "copie"]
235
+ job_params.local_directory = case_test_dir
236
+
237
+ # create and launch the job
238
+ launcher = createLauncher()
239
+ resManager= createResourcesManager()
240
+
241
+ for resource in self.ressources:
242
+ print("Testing command job on ", resource)
243
+ job_params.result_directory = local_result_dir + resource
244
+ job_params.job_name = "CommandJob_" + resource
245
+ job_params.resource_required.name = resource
246
+
247
+ # use the working directory of the resource
248
+ resParams = resManager.GetResourceDefinition(resource)
249
+ wd = os.path.join(resParams.working_directory,
250
+ "CommandJob" + self.suffix)
251
+ job_params.work_directory = wd
252
+
253
+ job_id = launcher.createJob(job_params)
254
+ launcher.launchJob(job_id)
255
+ # wait for the end of the job
256
+ jobState = launcher.getJobState(job_id)
257
+ print("Job %d state: %s" % (job_id,jobState))
258
+ while jobState != "FINISHED" and jobState != "FAILED" :
259
+ time.sleep(3)
260
+ jobState = launcher.getJobState(job_id)
261
+ print("Job %d state: %s" % (job_id,jobState))
262
+ pass
263
+
264
+ # verify the results
265
+ self.assertEqual(jobState, "FINISHED")
266
+ launcher.getJobResults(job_id, "")
267
+ self.verifyFile(os.path.join(job_params.result_directory, "result.txt"),
268
+ "expected")
269
+ self.verifyFile(os.path.join(job_params.result_directory,
270
+ "copie",'copie.txt'),
271
+ "to be copied")
272
+
273
+ # verify getJobWorkFile
274
+ mydir = os.path.join(case_test_dir, "work_dir" + resource)
275
+ success = launcher.getJobWorkFile(job_id, "result.txt", mydir)
276
+ self.assertEqual(success, True)
277
+ self.verifyFile(os.path.join(mydir, "result.txt"), "expected")
278
+
279
+ success = launcher.getJobWorkFile(job_id, "copie", mydir)
280
+ self.assertEqual(success, True)
281
+ self.verifyFile(os.path.join(mydir, "copie", "copie.txt"),
282
+ "to be copied")
283
+
284
+
285
+ ##############################
286
+ # test of yacs job type
287
+ ##############################
288
+ def test_yacs(self):
289
+ yacs_path = os.getenv("YACS_ROOT_DIR", "")
290
+ if not os.path.isdir(yacs_path):
291
+ self.skipTest("Needs YACS module to run. Please define YACS_ROOT_DIR.")
292
+
293
+ case_test_dir = os.path.join(TestCompo.test_dir, "yacs")
294
+ mkdir_p(case_test_dir)
295
+
296
+ #environment script
297
+ env_file = "myEnv.sh"
298
+ env_text = """export ENV_TEST_VAR="expected"
299
+ """
300
+ f = open(os.path.join(case_test_dir, env_file), "w")
301
+ f.write(env_text)
302
+ f.close()
303
+
304
+ # job script
305
+ script_text = """<?xml version='1.0' encoding='iso-8859-1' ?>
306
+ <proc name="newSchema_1">
307
+ <container name="DefaultContainer">
308
+ <property name="container_kind" value="Salome"/>
309
+ <property name="attached_on_cloning" value="0"/>
310
+ <property name="container_name" value="FactoryServer"/>
311
+ <property name="name" value="localhost"/>
312
+ </container>
313
+ <inline name="PyScript0">
314
+ <script><code><![CDATA[import os
315
+ text_result = os.getenv("ENV_TEST_VAR","")
316
+ f = open('result.txt', 'w')
317
+ f.write(text_result)
318
+ f.close()
319
+ ]]></code></script>
320
+ <load container="DefaultContainer"/>
321
+ </inline>
322
+ </proc>
323
+ """
324
+ yacs_file = "mySchema.xml"
325
+ job_script_file = os.path.join(case_test_dir, yacs_file)
326
+ f = open(job_script_file, "w")
327
+ f.write(script_text)
328
+ f.close()
329
+
330
+ local_result_dir = os.path.join(case_test_dir, "result_yacs_job-")
331
+ job_params = self.create_JobParameters()
332
+ job_params.job_type = "yacs_file"
333
+ job_params.job_file = job_script_file
334
+ job_params.env_file = os.path.join(case_test_dir,env_file)
335
+ job_params.out_files = ["result.txt"]
336
+
337
+ # define the interval between two YACS schema dumps (3 seconds)
338
+ #import Engines
339
+ #job_params.specific_parameters = [Engines.Parameter("EnableDumpYACS", "3")]
340
+ job_params.specific_parameters = {"EnableDumpYACS": "3"}
341
+
342
+ launcher = createLauncher()
343
+ resManager= createResourcesManager()
344
+
345
+ for resource in self.ressources:
346
+ print("Testing yacs job on ", resource)
347
+ job_params.result_directory = local_result_dir + resource
348
+ job_params.job_name = "YacsJob_" + resource
349
+ job_params.resource_required.name = resource
350
+
351
+ # use the working directory of the resource
352
+ resParams = resManager.GetResourceDefinition(resource)
353
+ wd = os.path.join(resParams.working_directory,
354
+ "YacsJob" + self.suffix)
355
+ job_params.work_directory = wd
356
+
357
+ job_id = launcher.createJob(job_params)
358
+ launcher.launchJob(job_id)
359
+ jobState = launcher.getJobState(job_id)
360
+
361
+ yacs_dump_success = False
362
+ print("Job %d state: %s" % (job_id,jobState))
363
+ while jobState != "FINISHED" and jobState != "FAILED" :
364
+ time.sleep(5)
365
+ jobState = launcher.getJobState(job_id)
366
+ # yacs_dump_success = launcher.getJobWorkFile(job_id, "dumpState_mySchema.xml",
367
+ yacs_dump_success = launcher.getJobDumpState(job_id,
368
+ job_params.result_directory)
369
+ print("Job %d state: %s - dump: %s" % (job_id,jobState, yacs_dump_success))
370
+ pass
371
+
372
+ self.assertEqual(jobState, "FINISHED")
373
+
374
+ # Verify dumpState file is in the results
375
+ self.assertTrue(yacs_dump_success)
376
+ dump_file_path = os.path.join(job_params.result_directory,
377
+ "dumpState_mySchema.xml")
378
+ self.assertTrue(os.path.isfile(dump_file_path))
379
+
380
+ """
381
+ # Load the schema state from the dump file and verify the state of a node
382
+ import SALOMERuntime
383
+ SALOMERuntime.RuntimeSALOME_setRuntime(1)
384
+ import loader
385
+ schema = loader.YACSLoader().load(job_script_file)
386
+ stateParser = loader.stateParser()
387
+ sl = loader.stateLoader(stateParser, schema)
388
+ sl.parse(dump_file_path)
389
+ # 106 : "DONE" state code
390
+ self.assertEqual(106, schema.getChildByName("PyScript0").getEffectiveState())
391
+ """
392
+
393
+ # getJobResults to default directory (result_directory)
394
+ launcher.getJobResults(job_id, "")
395
+ self.verifyFile(os.path.join(job_params.result_directory, "result.txt"),
396
+ "expected")
397
+
398
+ ##############################
399
+ # test of yacs job type using "--init_port" driver option
400
+ ##############################
401
+ def test_yacsopt(self):
402
+ yacs_path = os.getenv("YACS_ROOT_DIR", "")
403
+ if not os.path.isdir(yacs_path):
404
+ self.skipTest("Needs YACS module to run. Please define YACS_ROOT_DIR.")
405
+
406
+ case_test_dir = os.path.join(TestCompo.test_dir, "yacs_opt")
407
+ mkdir_p(case_test_dir)
408
+
409
+ # job script
410
+ script_text = """<?xml version='1.0' encoding='iso-8859-1' ?>
411
+ <proc name="myschema">
412
+ <type name="string" kind="string"/>
413
+ <type name="bool" kind="bool"/>
414
+ <type name="double" kind="double"/>
415
+ <type name="int" kind="int"/>
416
+ <container name="DefaultContainer">
417
+ <property name="container_kind" value="Salome"/>
418
+ <property name="attached_on_cloning" value="0"/>
419
+ <property name="container_name" value="FactoryServer"/>
420
+ <property name="name" value="localhost"/>
421
+ </container>
422
+ <inline name="mynode">
423
+ <script><code><![CDATA[
424
+ text_result = "i=%s,d=%s,b=%s,s=%s" % (i,d,b,s)
425
+ f = open('result.txt', 'w')
426
+ f.write(text_result)
427
+ f.close()
428
+ ]]></code></script>
429
+ <load container="DefaultContainer"/>
430
+ <inport name="i" type="int"/>
431
+ <inport name="d" type="double"/>
432
+ <inport name="b" type="bool"/>
433
+ <inport name="s" type="string"/>
434
+ </inline>
435
+ </proc>
436
+ """
437
+ yacs_file = "simpleSchema.xml"
438
+ job_script_file = os.path.join(case_test_dir, yacs_file)
439
+ f = open(job_script_file, "w")
440
+ f.write(script_text)
441
+ f.close()
442
+
443
+ local_result_dir = os.path.join(case_test_dir, "result_yacsopt_job-")
444
+ job_params = self.create_JobParameters()
445
+ job_params.job_type = "yacs_file"
446
+ job_params.job_file = job_script_file
447
+ job_params.out_files = ["result.txt"]
448
+
449
+ # define the interval between two YACS schema dumps (3 seconds)
450
+ #import Engines
451
+ #job_params.specific_parameters = [Engines.Parameter("YACSDriverOptions",
452
+ # "-imynode.i=5 -imynode.d=3.7 -imynode.b=False -imynode.s=lili")]
453
+ job_params.specific_parameters = {"YACSDriverOptions":
454
+ "-imynode.i=5 -imynode.d=3.7 -imynode.b=False -imynode.s=lili"}
455
+ expected_result="i=5,d=3.7,b=False,s=lili"
456
+
457
+ launcher = createLauncher()
458
+ resManager= createResourcesManager()
459
+
460
+ for resource in self.ressources:
461
+ print("Testing yacs job with options on ", resource)
462
+ job_params.result_directory = local_result_dir + resource
463
+ job_params.job_name = "YacsJobOpt_" + resource
464
+ job_params.resource_required.name = resource
465
+
466
+ # use the working directory of the resource
467
+ resParams = resManager.GetResourceDefinition(resource)
468
+ wd = os.path.join(resParams.working_directory,
469
+ "YacsJobOpt" + self.suffix)
470
+ job_params.work_directory = wd
471
+
472
+ job_id = launcher.createJob(job_params)
473
+ launcher.launchJob(job_id)
474
+ jobState = launcher.getJobState(job_id)
475
+
476
+ yacs_dump_success = False
477
+ print("Job %d state: %s" % (job_id,jobState))
478
+ while jobState != "FINISHED" and jobState != "FAILED" :
479
+ time.sleep(5)
480
+ jobState = launcher.getJobState(job_id)
481
+ print("Job %d state: %s " % (job_id,jobState))
482
+ pass
483
+
484
+ self.assertEqual(jobState, "FINISHED")
485
+
486
+ # getJobResults to default directory (result_directory)
487
+ launcher.getJobResults(job_id, "")
488
+ self.verifyFile(os.path.join(job_params.result_directory, "result.txt"),
489
+ expected_result)
490
+
491
+ ############################################
492
+ # test of command job type with pre_command
493
+ ############################################
494
+ def test_command_pre(self):
495
+ case_test_dir = os.path.join(TestCompo.test_dir, "command_pre")
496
+ mkdir_p(case_test_dir)
497
+
498
+ # command to be run before the job
499
+ pre_command = "pre_command.sh"
500
+ pre_command_text = "echo 'it works!' > in.txt"
501
+ abs_pre_command_file = os.path.join(case_test_dir, pre_command)
502
+ f = open(abs_pre_command_file, "w")
503
+ f.write(pre_command_text)
504
+ f.close()
505
+ os.chmod(abs_pre_command_file, 0o755)
506
+
507
+ # job script
508
+ script_file = "myTestScript.py"
509
+ script_text = """#! /usr/bin/env python3
510
+ # -*- coding: utf-8 -*-
511
+
512
+ in_f = open("in.txt", "r")
513
+ in_text = in_f.read()
514
+ in_f.close()
515
+
516
+ f = open('result.txt', 'w')
517
+ f.write(in_text)
518
+ f.close()
519
+ """
520
+ abs_script_file = os.path.join(case_test_dir, script_file)
521
+ f = open(abs_script_file, "w")
522
+ f.write(script_text)
523
+ f.close()
524
+ os.chmod(abs_script_file, 0o755)
525
+
526
+ # job params
527
+ local_result_dir = os.path.join(case_test_dir, "result_com_pre_job-")
528
+ job_params = self.create_JobParameters()
529
+ job_params.job_type = "command"
530
+ job_params.job_file = script_file
531
+ job_params.pre_command = pre_command
532
+ job_params.in_files = []
533
+ job_params.out_files = ["result.txt"]
534
+ job_params.local_directory = case_test_dir
535
+
536
+ # create and launch the job
537
+ launcher = createLauncher()
538
+ resManager= createResourcesManager()
539
+
540
+ for resource in self.ressources:
541
+ print("Testing command job on ", resource)
542
+ job_params.result_directory = local_result_dir + resource
543
+ job_params.job_name = "CommandPreJob_" + resource
544
+ job_params.resource_required.name = resource
545
+
546
+ # use the working directory of the resource
547
+ resParams = resManager.GetResourceDefinition(resource)
548
+ wd = os.path.join(resParams.working_directory,
549
+ "CommandPreJob" + self.suffix)
550
+ job_params.work_directory = wd
551
+
552
+ job_id = launcher.createJob(job_params)
553
+ launcher.launchJob(job_id)
554
+ # wait for the end of the job
555
+ jobState = launcher.getJobState(job_id)
556
+ print("Job %d state: %s" % (job_id,jobState))
557
+ while jobState != "FINISHED" and jobState != "FAILED" :
558
+ time.sleep(3)
559
+ jobState = launcher.getJobState(job_id)
560
+ print("Job %d state: %s" % (job_id,jobState))
561
+ pass
562
+
563
+ # verify the results
564
+ self.assertEqual(jobState, "FINISHED")
565
+ launcher.getJobResults(job_id, "")
566
+ self.verifyFile(os.path.join(job_params.result_directory, "result.txt"),
567
+ "it works!\n")
568
+
569
+ #################################
570
+ # test of command salome job type
571
+ #################################
572
+ def test_command_salome(self):
573
+ case_test_dir = os.path.join(TestCompo.test_dir, "command_salome")
574
+ mkdir_p(case_test_dir)
575
+
576
+ # job script
577
+ data_file = "in.txt"
578
+ script_file = "myEnvScript.py"
579
+ script_text = """#! /usr/bin/env python3
580
+ # -*- coding: utf-8 -*-
581
+
582
+ import os,sys
583
+ # verify import salome
584
+ from salome.kernel import salome
585
+
586
+ text_result = os.getenv("ENV_TEST_VAR","")
587
+
588
+ f = open('result.txt', 'w')
589
+ f.write(text_result)
590
+ f.close()
591
+
592
+ in_f = open("in.txt", "r")
593
+ in_text = in_f.read()
594
+ in_f.close()
595
+
596
+ os.mkdir("copie")
597
+ f = open(os.path.join("copie",'copie.txt'), 'w')
598
+ f.write(in_text)
599
+ f.close()
600
+ """
601
+ abs_script_file = os.path.join(case_test_dir, script_file)
602
+ f = open(abs_script_file, "w")
603
+ f.write(script_text)
604
+ f.close()
605
+ os.chmod(abs_script_file, 0o755)
606
+
607
+ #environment script
608
+ env_file = "myEnv.sh"
609
+ env_text = """export ENV_TEST_VAR="expected"
610
+ """
611
+ f = open(os.path.join(case_test_dir, env_file), "w")
612
+ f.write(env_text)
613
+ f.close()
614
+
615
+ # write data file
616
+ f = open(os.path.join(case_test_dir, data_file), "w")
617
+ f.write("to be copied")
618
+ f.close()
619
+
620
+ # job params
621
+ local_result_dir = os.path.join(case_test_dir, "result_comsalome_job-")
622
+ job_params = self.create_JobParameters()
623
+ job_params.job_type = "command_salome"
624
+ job_params.job_file = script_file
625
+ job_params.env_file = env_file
626
+ job_params.in_files = [data_file]
627
+ job_params.out_files = ["result.txt", "copie"]
628
+ job_params.local_directory = case_test_dir
629
+
630
+ # create and launch the job
631
+ launcher = createLauncher()
632
+ resManager= createResourcesManager()
633
+
634
+ for resource in self.ressources:
635
+ print("Testing command salome job on ", resource)
636
+ job_params.result_directory = local_result_dir + resource
637
+ job_params.job_name = "CommandSalomeJob_" + resource
638
+ job_params.resource_required.name = resource
639
+
640
+ # use the working directory of the resource
641
+ resParams = resManager.GetResourceDefinition(resource)
642
+ wd = os.path.join(resParams.working_directory,
643
+ "CommandSalomeJob" + self.suffix)
644
+ job_params.work_directory = wd
645
+
646
+ job_id = launcher.createJob(job_params)
647
+ launcher.launchJob(job_id)
648
+ # wait for the end of the job
649
+ jobState = launcher.getJobState(job_id)
650
+ print("Job %d state: %s" % (job_id,jobState))
651
+ while jobState != "FINISHED" and jobState != "FAILED" :
652
+ time.sleep(3)
653
+ jobState = launcher.getJobState(job_id)
654
+ print("Job %d state: %s" % (job_id,jobState))
655
+ pass
656
+
657
+ # verify the results
658
+ self.assertEqual(jobState, "FINISHED")
659
+ launcher.getJobResults(job_id, "")
660
+ self.verifyFile(os.path.join(job_params.result_directory, "result.txt"),
661
+ "expected")
662
+ self.verifyFile(os.path.join(job_params.result_directory,
663
+ "copie",'copie.txt'),
664
+ "to be copied")
665
+
666
+ # verify getJobWorkFile
667
+ mydir = os.path.join(case_test_dir, "work_dir" + resource)
668
+ success = launcher.getJobWorkFile(job_id, "result.txt", mydir)
669
+ self.assertEqual(success, True)
670
+ self.verifyFile(os.path.join(mydir, "result.txt"), "expected")
671
+
672
+ success = launcher.getJobWorkFile(job_id, "copie", mydir)
673
+ self.assertEqual(success, True)
674
+ self.verifyFile(os.path.join(mydir, "copie", "copie.txt"),
675
+ "to be copied")
676
+ pass
677
+
678
+
679
+ def test_maximum_duration_management_0(self):
680
+ """
681
+ [EDF30356] : Check correct conversion of format DD-HH:MM into second before sending it to libbatch
682
+ """
683
+ def EndUserMaxDurationToSecond( endUserEntry ):
684
+ params = pylauncher.JobParameters_cpp()
685
+ params.maximum_duration = endUserEntry
686
+ launcher = pylauncher.Launcher_cpp()
687
+ params.job_type = "command_salome"
688
+ params.resource_required = pylauncher.resourceParams()
689
+ params.job_file = "test.py"
690
+ params.resource_required.nb_proc = 1
691
+ jobId = launcher.createJob( params )
692
+ return launcher.getMaximumDurationInSecond( jobId )
693
+
694
+ self.assertEqual( EndUserMaxDurationToSecond( "15:10" ), 54600)
695
+ self.assertEqual( EndUserMaxDurationToSecond( "0-02:10" ), 7800)
696
+ self.assertEqual( EndUserMaxDurationToSecond( "0-00:59" ), 3540)
697
+ self.assertEqual( EndUserMaxDurationToSecond( "1-00:00" ), 86400)
698
+ self.assertEqual( EndUserMaxDurationToSecond( "2-00:00" ), 172800)
699
+ self.assertEqual( EndUserMaxDurationToSecond( "2-03:04" ), 183840)
700
+
701
+ pass
702
+ pass
703
+
704
+ if __name__ == '__main__':
705
+ # create study
706
+ unittest.main()