Salome HOME
Use the single thread policy for Launcher Server.
[modules/kernel.git] / src / Launcher / Test / launcher_use_case.py
diff --git a/src/Launcher/Test/launcher_use_case.py b/src/Launcher/Test/launcher_use_case.py
new file mode 100644 (file)
index 0000000..eac14d7
--- /dev/null
@@ -0,0 +1,44 @@
+#! /usr/bin/env python
+# -*- coding: utf-8 -*-
+# classic use case of a job
+import os
+import salome
+import tempfile
+import time
+import sys
+
+if __name__ == '__main__':
+  salome.salome_init()
+  launcher = salome.naming_service.Resolve('/SalomeLauncher')
+  job_params = salome.JobParameters()
+  job_params.resource_required = salome.ResourceParameters()
+  job_params.resource_required.name = "localhost"
+  job_params.resource_required.nb_proc = 1 # slurm: --ntasks
+
+  job_params.job_type = "command"
+  #cwd = os.getcwd()
+  cwd = sys.argv[1]
+  case_dir = tempfile.mkdtemp(prefix="test")
+  job_params.local_directory = cwd
+  job_params.job_file = "command.sh"
+  job_params.work_directory = os.path.join(case_dir, "run")
+  job_params.result_directory = os.path.join(case_dir, "result")
+  job_params.out_files = ["result.txt"]
+  job_params.wckey="P11U5:CARBONES"
+  job_params.job_name = "MyJob"
+  job_id = launcher.createJob(job_params)
+  launcher.launchJob(job_id)
+  job_string = launcher.dumpJob(job_id)
+  jobState = launcher.getJobState(job_id)
+  while jobState != 'FINISHED' and jobState != 'FAILED':
+      time.sleep(1)
+      jobState = launcher.getJobState(job_id)
+  launcher.getJobResults(job_id, '')
+  launcher.getJobWorkFile(job_id, "result.txt", '')
+  launcher.clearJobWorkingDir(job_id)
+  launcher.removeJob(job_id)
+  new_id = launcher.restoreJob(job_string)
+  job_params_bis = launcher.getJobParameters(new_id)
+  jobState = launcher.getJobState(new_id)
+  launcher.removeJob(new_id)
+  launcher.saveJobs(os.path.join(case_dir,"savejobs.xml"))