1 // Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
2 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
4 // This library is free software; you can redistribute it and/or
5 // modify it under the terms of the GNU Lesser General Public
6 // License as published by the Free Software Foundation; either
7 // version 2.1 of the License.
9 // This library is distributed in the hope that it will be useful
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 // Lesser General Public License for more details.
14 // You should have received a copy of the GNU Lesser General Public
15 // License along with this library; if not, write to the Free Software
16 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
20 #ifndef _SALOME_CONTAINERMANAGER_IDL_
21 #define _SALOME_CONTAINERMANAGER_IDL_
23 #include "SALOME_Exception.idl"
24 #include "SALOME_Component.idl"
30 Type to transmit list of machines.
32 typedef sequence<string> MachineList;
33 typedef sequence<string> CompoList;
34 typedef sequence<string> FilesList;
35 typedef sequence<string> ModulesList;
38 Type to describe properties of resource.
40 struct MachineParameters
42 string container_name;
52 long nb_proc_per_node;
59 // PaCO specific informations
61 long nb_component_nodes;
65 exception thrown if a computer is not found in the catalog
67 exception NotFound {};
69 enum policy {P_FIRST,P_CYCL,P_BEST};
70 typedef policy ResPolicy;
73 Structure used for Salome Batch Job parameters
75 struct BatchParameters
77 string batch_directory; // Where batch command will be launched
78 // and log files will be created
79 string expected_during_time; // Time for the batch
80 // has to be like this : hh:mm
81 string mem; // Minimum of memory needed
82 // has to be like : 32gb or 512mb
83 long nb_proc; // Number of processors requested
86 /*! \brief Interface of the %salomelauncher
87 This interface is used for interaction with the unique instance
90 interface SalomeLauncher
92 long submitSalomeJob( in string fileToExecute,
93 in FilesList filesToExport,
94 in FilesList filesToImport,
95 in BatchParameters batch_params,
96 in MachineParameters params ) raises (SALOME::SALOME_Exception);
97 string querySalomeJob( in long jobId, in MachineParameters params ) raises (SALOME::SALOME_Exception);
98 void deleteSalomeJob( in long jobId, in MachineParameters params ) raises (SALOME::SALOME_Exception);
99 void getResultSalomeJob( in string directory, in long jobId, in MachineParameters params ) raises (SALOME::SALOME_Exception);
101 boolean testBatch(in MachineParameters params) raises (SALOME::SALOME_Exception);
109 /*! \brief Interface of the %containerManager
110 This interface is used for interaction with the unique instance
113 interface ContainerManager
115 Container FindOrStartContainer( in MachineParameters params,
116 in MachineList possibleComputers);
119 This operation launches a PaCO++ container.
121 \param Description of the container resquested.
122 \param List of computers ressources.
124 \return Container's CORBA reference.
126 Container FindOrStartParallelContainer( in MachineParameters params,
127 in MachineList possibleComputers);
129 Container StartContainer( in MachineParameters params,
131 in CompoList componentList );
133 Container GiveContainer( in MachineParameters params,
135 in CompoList componentList );
137 void ShutdownContainers();
141 /*! \brief Interface of the %resourcesManager
142 This interface is used for interaction with the unique instance
145 interface ResourcesManager
147 string FindFirst(in MachineList possibleComputers);
149 MachineList GetFittingResources( in MachineParameters params,
150 in CompoList componentList )
151 raises (SALOME::SALOME_Exception);
153 MachineParameters GetMachineParameters( in string hostname );