Salome HOME
Merge branch 'omu/multijob'
[modules/kernel.git] / idl / SALOME_Launcher.idl
index b3619363c77b9291cea34453519208f4ddd20c77..70911c276b767ac54af4645612fded2c097d3bae 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2016  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2020  CEA/DEN, EDF R&D, OPEN CASCADE
 //
 // Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
@@ -52,6 +52,9 @@ struct JobParameters
   //! Type of the job.
   /*! There are three supported types:
         - "command" : execute #job_file script without %SALOME environment
+        - "command_salome" : execute #job_file script within %SALOME environment
+                             (salome shell) but the %SALOME application is not
+                             launched
         - "python_salome" : execute #job_file python script by %SALOME
         - "yacs_file" : execute #job_file by YACS module as a xml YACS schema
   */
@@ -66,8 +69,8 @@ struct JobParameters
   */
   string job_file;
 
-  //! Pre processing command.
-  /*! This command is called on the remote resource, from #work_directory, after
+  //! Pre processing script.
+  /*! This script is called on the remote resource, from #work_directory, after
       the copy of #in_files and before submiting the job.
   */
   string pre_command;
@@ -78,7 +81,7 @@ struct JobParameters
   string env_file; 
 
   //! List of local data files to be copied to #work_directory.
-  /*! #job_file and #env_file are automaticaly copied, without adding them
+  /*! #job_file and #env_file are automatically copied, without adding them
       to this list. If basenames are specified, then the files are supposed
       to be located in #local_directory.
   */
@@ -100,16 +103,16 @@ struct JobParameters
       this directory. A change directory toward this working directory is done
       by the batch system before running the job.
       If not specified (empty string), the launcher will use the working
-      directory of the chosen ressource and if this is also an empty string
+      directory of the chosen resource and if this is also an empty string
       the value used will be $HOME/Batch/workdir_"date" where $HOME is the
-      value of the environment variable on the remote ressource and "date" is
+      value of the environment variable on the remote resource and "date" is
       the current date.
   */
   string work_directory;
 
   //! Prefix to be applied to #in_files.
   /*! It can be used to specify where to find the local input files.
-      It's optionnal if you specify the absolute path name of input files.
+      It's optional if you specify the absolute path name of input files.
   */
   string local_directory;
 
@@ -128,8 +131,8 @@ struct JobParameters
   */
   string maximum_duration; 
 
-  //! Specifies the rules to choose the ressource where to execute the job.
-  /*! The additionnal two following parameters MUST be specified explicitly,
+  //! Specifies the rules to choose the resource where to execute the job.
+  /*! The additional two following parameters MUST be specified explicitly,
       because they are not provided by the resource definition:
       - mem_mb -> Memory expressed in megabytes.
       - nb_proc -> Number of Processors.
@@ -138,7 +141,12 @@ struct JobParameters
 
   //!  Name of the batch queue chosen - optional
   string queue;
-  
+
+  //! Name of the partition - optional
+  /*! It can be used only for slurm batch managers.
+  */
+  string partition;
+
   //! Specifies if the job must run in exclusive mode (without sharing nodes with other jobs)
   boolean exclusive;
 
@@ -211,7 +219,7 @@ interface SalomeLauncher
 
   //! Get the execution state of the job.
   /*! \return "CREATED", "IN_PROCESS", "QUEUED", "RUNNING", "PAUSED",
-             "FINISHED" or "FAILED"
+             "FINISHED", "ERROR" or "FAILED"
       \see LIBBATCH/src/core/Constants.hxx
   */
   string getJobState  (in long job_id)                           raises (SALOME::SALOME_Exception);
@@ -219,6 +227,9 @@ interface SalomeLauncher
   //! Get names or ids of hosts assigned to the job
   string getAssignedHostnames  (in long job_id)                  raises (SALOME::SALOME_Exception);
 
+  //! Copy all the in_files of the job to the work_directory.
+  void exportInputFiles(in long job_id) raises (SALOME::SALOME_Exception);
+
   //! Copy the result files from the work directory of the job
   //! to a local directory.
   /*! The list of result files is given by the JobParameters::out_files parameter.
@@ -256,7 +267,7 @@ interface SalomeLauncher
   */
   void clearJobWorkingDir(in long job_id) raises (SALOME::SALOME_Exception);
 
-  //! Retrieve one sigle file from the working directory.
+  //! Retrieve one single file from the working directory.
   /*! Use this method if you don't want to copy all the results of the job,
       for instance if you want to obtain a file which contains the computing
       progress while the job is running.
@@ -277,6 +288,14 @@ interface SalomeLauncher
   //! Kill the job and remove it from the jobs list
   void   removeJob    (in long job_id)                           raises (SALOME::SALOME_Exception);
 
+  //! Get the job's serialization string
+  string dumpJob(in long job_id) raises (SALOME::SALOME_Exception);
+  //! Create a job from its serialization string
+  /*! \param dumpedJob Serialization string returned by dumpJob.
+      \return          Job id
+  */
+  long restoreJob(in string dumpedJob) raises (SALOME::SALOME_Exception);
+
   // Useful methods
   long    createJobWithFile(in string xmlJobFile, in string clusterName) raises (SALOME::SALOME_Exception);
   boolean testBatch        (in ResourceParameters params)                raises (SALOME::SALOME_Exception);
@@ -299,7 +318,6 @@ interface SalomeLauncher
   void loadJobs(in string jobs_file) raises (SALOME::SALOME_Exception);
   //! Save the current list of jobs in an xml file.
   void saveJobs(in string jobs_file) raises (SALOME::SALOME_Exception);
-
 };
 
 };