Salome HOME
Avoid FileNotFound exception
[modules/kernel.git] / idl / SALOME_Launcher.idl
index ec3188069f44982db3fdb59ba005c5f88804f5d6..c9be320492dd75be0b4113c17af246a530af9527 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2014  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2021  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,13 +69,19 @@ struct JobParameters
   */
   string job_file;
 
+  //! 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;
+
   //! Local path to a script to be sourced in the environment of the job.
   /*! It may contain modifications of environment variables.
   */
   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.
   */
@@ -94,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;
 
@@ -122,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.
@@ -132,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;
 
@@ -153,6 +167,9 @@ struct JobParameters
         when the job type is "yacs_file". It gives the number of seconds
         between two updates of the state dump file. There will be no dump file
         if this parameter is missing or if its value is less than 1.
+      - YACSDriverOptions : options of the driver command when the job type is
+        "yacs_file".
+      - LoalLevelerJobType : LL_JOBTYPE.
   */
   Engines::ParameterList specific_parameters;
 
@@ -195,13 +212,14 @@ interface SalomeLauncher
   /*! Launching the job consists of:
       - create the working directory on the remote file system
       - copy the input files into the working directory
+      - launch the pre processing command if one is defined
       - submit the job to the batch manager
   */
   void   launchJob    (in long job_id)                           raises (SALOME::SALOME_Exception);
 
   //! 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);
@@ -209,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.
@@ -240,7 +261,13 @@ interface SalomeLauncher
   */
   boolean getJobDumpState(in long job_id, in string directory)   raises (SALOME::SALOME_Exception);
 
-  //! Retrieve one sigle file from the working directory.
+  //! Remove the working directory on the remote file system.
+  /*!
+     \param job_id    Job id returned by createJob().
+  */
+  void clearJobWorkingDir(in long job_id) raises (SALOME::SALOME_Exception);
+
+  //! 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.
@@ -261,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);
@@ -283,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);
-
 };
 
 };