From 988dc233e5aadbe17e1eec90f9139d0fac255bea Mon Sep 17 00:00:00 2001 From: barate Date: Wed, 16 Jan 2013 18:10:42 +0000 Subject: [PATCH] Code factorization --- src/CCC/BatchManager_CCC.cxx | 38 ---------- src/CCC/BatchManager_CCC.hxx | 7 -- src/Core/BatchManager.cxx | 113 ++++++++++++++-------------- src/Core/BatchManager.hxx | 22 +++--- src/Core/FactBatchManager.cxx | 2 +- src/Core/FactBatchManager.hxx | 2 +- src/Core/JobId.cxx | 2 +- src/Core/JobId.hxx | 2 +- src/LSF/BatchManager_LSF.cxx | 38 ---------- src/LSF/BatchManager_LSF.hxx | 7 -- src/LoadLeveler/BatchManager_LL.cxx | 31 -------- src/LoadLeveler/BatchManager_LL.hxx | 6 -- src/Local/BatchManager_Local.cxx | 22 +----- src/Local/BatchManager_Local.hxx | 5 +- src/PBS/BatchManager_PBS.cxx | 38 ---------- src/PBS/BatchManager_PBS.hxx | 7 -- src/SGE/BatchManager_SGE.cxx | 37 --------- src/SGE/BatchManager_SGE.hxx | 7 -- src/Slurm/BatchManager_Slurm.cxx | 30 -------- src/Slurm/BatchManager_Slurm.hxx | 6 -- src/Vishnu/BatchManager_Vishnu.cxx | 31 -------- src/Vishnu/BatchManager_Vishnu.hxx | 6 -- 22 files changed, 72 insertions(+), 387 deletions(-) diff --git a/src/CCC/BatchManager_CCC.cxx b/src/CCC/BatchManager_CCC.cxx index 1403704..1703e5b 100644 --- a/src/CCC/BatchManager_CCC.cxx +++ b/src/CCC/BatchManager_CCC.cxx @@ -117,13 +117,6 @@ namespace Batch { return id; } - // Ce manager permet de faire de la reprise - const Batch::JobId - BatchManager_CCC::addJob(const Batch::Job & job, const std::string reference) - { - return JobId(this, reference); - } - // Methode pour le controle des jobs : retire un job du gestionnaire void BatchManager_CCC::deleteJob(const JobId & jobid) { @@ -143,37 +136,6 @@ namespace Batch { cerr << "jobId = " << ref << "killed" << endl; } - // Methode pour le controle des jobs : suspend un job en file d'attente - void BatchManager_CCC::holdJob(const JobId & jobid) - { - throw NotYetImplementedException("BatchManager_CCC::holdJob"); - } - - // Methode pour le controle des jobs : relache un job suspendu - void BatchManager_CCC::releaseJob(const JobId & jobid) - { - throw NotYetImplementedException("BatchManager_CCC::releaseJob"); - } - - - // Methode pour le controle des jobs : modifie un job en file d'attente - void BatchManager_CCC::alterJob(const JobId & jobid, const Parametre & param, const Environnement & env) - { - throw NotYetImplementedException("BatchManager_CCC::alterJob"); - } - - // Methode pour le controle des jobs : modifie un job en file d'attente - void BatchManager_CCC::alterJob(const JobId & jobid, const Parametre & param) - { - alterJob(jobid, param, Environnement()); - } - - // Methode pour le controle des jobs : modifie un job en file d'attente - void BatchManager_CCC::alterJob(const JobId & jobid, const Environnement & env) - { - alterJob(jobid, Parametre(), env); - } - // Methode pour le controle des jobs : renvoie l'etat du job JobInfo BatchManager_CCC::queryJob(const JobId & jobid) { diff --git a/src/CCC/BatchManager_CCC.hxx b/src/CCC/BatchManager_CCC.hxx index b3dcf91..67a5228 100644 --- a/src/CCC/BatchManager_CCC.hxx +++ b/src/CCC/BatchManager_CCC.hxx @@ -55,19 +55,12 @@ namespace Batch { // Methodes pour le controle des jobs virtual const JobId submitJob(const Job & job); // soumet un job au gestionnaire virtual void deleteJob(const JobId & jobid); // retire un job du gestionnaire - virtual void holdJob(const JobId & jobid); // suspend un job en file d'attente - virtual void releaseJob(const JobId & jobid); // relache un job suspendu - virtual void alterJob(const JobId & jobid, const Parametre & param, const Environnement & env); // modifie un job en file d'attente - virtual void alterJob(const JobId & jobid, const Parametre & param); // modifie un job en file d'attente - virtual void alterJob(const JobId & jobid, const Environnement & env); // modifie un job en file d'attente virtual JobInfo queryJob(const JobId & jobid); // renvoie l'etat du job virtual bool isRunning(const JobId & jobid); // teste si un job est present en machine virtual void setParametre(const JobId & jobid, const Parametre & param) { return alterJob(jobid, param); } // modifie un job en file d'attente virtual void setEnvironnement(const JobId & jobid, const Environnement & env) { return alterJob(jobid, env); } // modifie un job en file d'attente - virtual const Batch::JobId addJob(const Batch::Job & job, const std::string reference); // ajoute un nouveau job sans le soumettre - protected: void buildBatchScript(const Job & job); std::string getWallTime(const long edt); diff --git a/src/Core/BatchManager.cxx b/src/Core/BatchManager.cxx index 337fd91..233ee46 100644 --- a/src/Core/BatchManager.cxx +++ b/src/Core/BatchManager.cxx @@ -46,6 +46,7 @@ #include "FactBatchManager.hxx" #include "BatchManager.hxx" #include "Utils.hxx" +#include "NotYetImplementedException.hxx" #ifdef WIN32 #define sleep(seconds) Sleep((seconds)*1000) @@ -58,7 +59,7 @@ namespace Batch { BatchManager::BatchManager(const Batch::FactBatchManager * parent, const char* host, const char * username, CommunicationProtocolType protocolType, const char* mpiImpl) - : _hostname(host), jobid_map(), _parent(parent), + : _hostname(host), jobid_map(), _type(parent->getType()), _protocol(CommunicationProtocol::getInstance(protocolType)), _username(username), _mpiImpl(FactoryMpiImpl(mpiImpl)) { @@ -74,72 +75,68 @@ namespace Batch { string BatchManager::__repr__() const { ostringstream oss; - oss << "getType() : "unknown (no factory)") << "' connected to server '" << _hostname << "'>"; + oss << ""; return oss.str(); } // Recupere le l'identifiant d'un job deja soumis au BatchManager -// const JobId BatchManager::getJobIdByReference(const string & ref) -// { -// return JobId(this, ref); -// } const JobId BatchManager::getJobIdByReference(const char * ref) { return JobId(this, ref); } -// // Methode pour le controle des jobs : soumet un job au gestionnaire -// const JobId BatchManager::submitJob(const Job & job) -// { -// static int idx = 0; -// //MEDMEM::STRING sst; -// ostringstream sst; -// sst << "Jobid_" << idx++; -// JobId id(this, sst.str()); -// return id; -// } - -// // Methode pour le controle des jobs : retire un job du gestionnaire -// void BatchManager::deleteJob(const JobId & jobid) -// { -// // Nothing to do -// } - -// // Methode pour le controle des jobs : suspend un job en file d'attente -// void BatchManager::holdJob(const JobId & jobid) -// { -// // Nothing to do -// } - -// // Methode pour le controle des jobs : relache un job suspendu -// void BatchManager::releaseJob(const JobId & jobid) -// { -// // Nothing to do -// } - -// // Methode pour le controle des jobs : modifie un job en file d'attente -// void BatchManager::alterJob(const JobId & jobid, const Parametre & param, const Environnement & env) -// { -// // Nothing to do -// } - -// // Methode pour le controle des jobs : modifie un job en file d'attente -// void BatchManager::alterJob(const JobId & jobid, const Parametre & param) -// { -// // Nothing to do -// } - -// // Methode pour le controle des jobs : modifie un job en file d'attente -// void BatchManager::alterJob(const JobId & jobid, const Environnement & env) -// { -// // Nothing to do -// } - -// // Methode pour le controle des jobs : renvoie l'etat du job -// JobInfo BatchManager::queryJob(const JobId & jobid) -// { -// return JobInfo(); -// } + // Methode pour le controle des jobs : soumet un job au gestionnaire + const JobId BatchManager::submitJob(const Job & job) + { + throw NotYetImplementedException("Method submitJob not implemented by Batch Manager \"" + _type + "\""); + } + + // Methode pour le controle des jobs : retire un job du gestionnaire + void BatchManager::deleteJob(const JobId & jobid) + { + throw NotYetImplementedException("Method deleteJob not implemented by Batch Manager \"" + _type + "\""); + } + + // Methode pour le controle des jobs : suspend un job en file d'attente + void BatchManager::holdJob(const JobId & jobid) + { + throw NotYetImplementedException("Method holdJob not implemented by Batch Manager \"" + _type + "\""); + } + + // Methode pour le controle des jobs : relache un job suspendu + void BatchManager::releaseJob(const JobId & jobid) + { + throw NotYetImplementedException("Method releaseJob not implemented by Batch Manager \"" + _type + "\""); + } + + // Methode pour le controle des jobs : modifie un job en file d'attente + void BatchManager::alterJob(const JobId & jobid, const Parametre & param, const Environnement & env) + { + throw NotYetImplementedException("Method alterJob not implemented by Batch Manager \"" + _type + "\""); + } + + // Methode pour le controle des jobs : modifie un job en file d'attente + void BatchManager::alterJob(const JobId & jobid, const Parametre & param) + { + throw NotYetImplementedException("Method alterJob not implemented by Batch Manager \"" + _type + "\""); + } + + // Methode pour le controle des jobs : modifie un job en file d'attente + void BatchManager::alterJob(const JobId & jobid, const Environnement & env) + { + throw NotYetImplementedException("Method alterJob not implemented by Batch Manager \"" + _type + "\""); + } + + // Methode pour le controle des jobs : renvoie l'etat du job + JobInfo BatchManager::queryJob(const JobId & jobid) + { + throw NotYetImplementedException("Method queryJob not implemented by Batch Manager \"" + _type + "\""); + } + + const JobId BatchManager::addJob(const Job & job, const string & reference) + { + return JobId(this, reference); + } //! Wait for the end of a job /*! diff --git a/src/Core/BatchManager.hxx b/src/Core/BatchManager.hxx index e12332c..c5ad00d 100644 --- a/src/Core/BatchManager.hxx +++ b/src/Core/BatchManager.hxx @@ -63,16 +63,16 @@ namespace Batch { //virtual const JobId getJobIdByReference(const std::string & ref); virtual const Batch::JobId getJobIdByReference(const char * ref); - // Methodes pour le controle des jobs : virtuelles pures - virtual const Batch::JobId submitJob(const Batch::Job & job) = 0; // soumet un job au gestionnaire - virtual void deleteJob(const Batch::JobId & jobid) = 0; // retire un job du gestionnaire - virtual void holdJob(const Batch::JobId & jobid) = 0; // suspend un job en file d'attente - virtual void releaseJob(const Batch::JobId & jobid) = 0; // relache un job suspendu - virtual void alterJob(const Batch::JobId & jobid, const Batch::Parametre & param, const Batch::Environnement & env) = 0; // modifie un job en file d'attente - virtual void alterJob(const Batch::JobId & jobid, const Batch::Parametre & param) = 0; // modifie un job en file d'attente - virtual void alterJob(const Batch::JobId & jobid, const Batch::Environnement & env) = 0; // modifie un job en file d'attente - virtual Batch::JobInfo queryJob(const Batch::JobId & jobid) = 0; // renvoie l'etat du job - virtual const Batch::JobId addJob(const Batch::Job & job, const std::string reference) = 0; // ajoute un nouveau job sans le soumettre + // Methodes pour le controle des jobs : doivent etre implementees dans les classes filles + virtual const Batch::JobId submitJob(const Batch::Job & job); // soumet un job au gestionnaire + virtual void deleteJob(const Batch::JobId & jobid); // retire un job du gestionnaire + virtual void holdJob(const Batch::JobId & jobid); // suspend un job en file d'attente + virtual void releaseJob(const Batch::JobId & jobid); // relache un job suspendu + virtual void alterJob(const Batch::JobId & jobid, const Batch::Parametre & param, const Batch::Environnement & env); // modifie un job en file d'attente + virtual void alterJob(const Batch::JobId & jobid, const Batch::Parametre & param); // modifie un job en file d'attente + virtual void alterJob(const Batch::JobId & jobid, const Batch::Environnement & env); // modifie un job en file d'attente + virtual Batch::JobInfo queryJob(const Batch::JobId & jobid); // renvoie l'etat du job + virtual const Batch::JobId addJob(const Batch::Job & job, const std::string & reference); // ajoute un nouveau job sans le soumettre virtual std::string waitForJobEnd(const Batch::JobId & jobid, long timeout = -1, long initSleepTime = 1, long maxSleepTime = 600); virtual void importOutputFiles( const Job & job, const std::string directory ); @@ -85,7 +85,7 @@ namespace Batch { std::string _hostname; // serveur ou tourne le BatchManager // std::map< const std::string, const Batch::JobId * > jobid_map; // table des jobs deja soumis std::map< std::string, const Batch::JobId * > jobid_map; // table des jobs deja soumis - const Batch::FactBatchManager * _parent; + const std::string & _type; const CommunicationProtocol & _protocol; // protocol to access _hostname const std::string _username; // username to access _hostname MpiImpl *_mpiImpl; // Mpi implementation to launch executable in batch script diff --git a/src/Core/FactBatchManager.cxx b/src/Core/FactBatchManager.cxx index f926830..e286e5b 100644 --- a/src/Core/FactBatchManager.cxx +++ b/src/Core/FactBatchManager.cxx @@ -56,7 +56,7 @@ namespace Batch { } // Accesseur - string FactBatchManager::getType() const + const string & FactBatchManager::getType() const { return type; } diff --git a/src/Core/FactBatchManager.hxx b/src/Core/FactBatchManager.hxx index dd36f7f..9b4fd73 100644 --- a/src/Core/FactBatchManager.hxx +++ b/src/Core/FactBatchManager.hxx @@ -51,7 +51,7 @@ namespace Batch { const char * username = "", CommunicationProtocolType protocolType = SSH, const char * mpi = "nompi") const = 0; - std::string getType() const; + const std::string & getType() const; std::string __repr__() const; protected: diff --git a/src/Core/JobId.cxx b/src/Core/JobId.cxx index c7a740c..1ff3c58 100644 --- a/src/Core/JobId.cxx +++ b/src/Core/JobId.cxx @@ -44,7 +44,7 @@ namespace Batch { } // Constructeur avec le pointeur sur le BatchManager associe et avec une reference - JobId::JobId(BatchManager * _p_bm, string ref) : _p_batchmanager(_p_bm), _reference(ref) + JobId::JobId(BatchManager * _p_bm, const string & ref) : _p_batchmanager(_p_bm), _reference(ref) { // Nothing to do } diff --git a/src/Core/JobId.hxx b/src/Core/JobId.hxx index ebbcc75..48a3c02 100644 --- a/src/Core/JobId.hxx +++ b/src/Core/JobId.hxx @@ -51,7 +51,7 @@ namespace Batch { virtual ~JobId(); // Constructeur avec le pointeur sur le BatchManager associe et avec une reference - JobId(Batch::BatchManager *, std::string ref); + JobId(Batch::BatchManager *, const std::string & ref); // Operateur d'affectation entre objets virtual JobId & operator =(const Batch::JobId &); diff --git a/src/LSF/BatchManager_LSF.cxx b/src/LSF/BatchManager_LSF.cxx index 2103ee8..d35532e 100644 --- a/src/LSF/BatchManager_LSF.cxx +++ b/src/LSF/BatchManager_LSF.cxx @@ -92,13 +92,6 @@ namespace Batch { return id; } - // Ce manager permet de faire de la reprise - const Batch::JobId - BatchManager_LSF::addJob(const Batch::Job & job, const std::string reference) - { - return JobId(this, reference); - } - // Methode pour le controle des jobs : retire un job du gestionnaire void BatchManager_LSF::deleteJob(const JobId & jobid) { @@ -118,37 +111,6 @@ namespace Batch { cerr << "jobId = " << ref << "killed" << endl; } - // Methode pour le controle des jobs : suspend un job en file d'attente - void BatchManager_LSF::holdJob(const JobId & jobid) - { - throw NotYetImplementedException("BatchManager_LSF::holdJob"); - } - - // Methode pour le controle des jobs : relache un job suspendu - void BatchManager_LSF::releaseJob(const JobId & jobid) - { - throw NotYetImplementedException("BatchManager_LSF::releaseJob"); - } - - - // Methode pour le controle des jobs : modifie un job en file d'attente - void BatchManager_LSF::alterJob(const JobId & jobid, const Parametre & param, const Environnement & env) - { - throw NotYetImplementedException("BatchManager_LSF::alterJob"); - } - - // Methode pour le controle des jobs : modifie un job en file d'attente - void BatchManager_LSF::alterJob(const JobId & jobid, const Parametre & param) - { - alterJob(jobid, param, Environnement()); - } - - // Methode pour le controle des jobs : modifie un job en file d'attente - void BatchManager_LSF::alterJob(const JobId & jobid, const Environnement & env) - { - alterJob(jobid, Parametre(), env); - } - // Methode pour le controle des jobs : renvoie l'etat du job JobInfo BatchManager_LSF::queryJob(const JobId & jobid) { diff --git a/src/LSF/BatchManager_LSF.hxx b/src/LSF/BatchManager_LSF.hxx index 201e3b3..a794d91 100644 --- a/src/LSF/BatchManager_LSF.hxx +++ b/src/LSF/BatchManager_LSF.hxx @@ -55,19 +55,12 @@ namespace Batch { // Methodes pour le controle des jobs virtual const JobId submitJob(const Job & job); // soumet un job au gestionnaire virtual void deleteJob(const JobId & jobid); // retire un job du gestionnaire - virtual void holdJob(const JobId & jobid); // suspend un job en file d'attente - virtual void releaseJob(const JobId & jobid); // relache un job suspendu - virtual void alterJob(const JobId & jobid, const Parametre & param, const Environnement & env); // modifie un job en file d'attente - virtual void alterJob(const JobId & jobid, const Parametre & param); // modifie un job en file d'attente - virtual void alterJob(const JobId & jobid, const Environnement & env); // modifie un job en file d'attente virtual JobInfo queryJob(const JobId & jobid); // renvoie l'etat du job virtual bool isRunning(const JobId & jobid); // teste si un job est present en machine virtual void setParametre(const JobId & jobid, const Parametre & param) { return alterJob(jobid, param); } // modifie un job en file d'attente virtual void setEnvironnement(const JobId & jobid, const Environnement & env) { return alterJob(jobid, env); } // modifie un job en file d'attente - virtual const Batch::JobId addJob(const Batch::Job & job, const std::string reference); // ajoute un nouveau job sans le soumettre - protected: std::string buildSubmissionScript(const Job & job); std::string getWallTime(const long edt); diff --git a/src/LoadLeveler/BatchManager_LL.cxx b/src/LoadLeveler/BatchManager_LL.cxx index 1de7738..c5fe1b2 100644 --- a/src/LoadLeveler/BatchManager_LL.cxx +++ b/src/LoadLeveler/BatchManager_LL.cxx @@ -31,7 +31,6 @@ #include #include -#include #include #include @@ -226,31 +225,6 @@ namespace Batch { cerr << "job " << jobid.getReference() << " killed" << endl; } - void BatchManager_LL::holdJob(const JobId & jobid) - { - throw NotYetImplementedException("BatchManager_LL::holdJob"); - } - - void BatchManager_LL::releaseJob(const JobId & jobid) - { - throw NotYetImplementedException("BatchManager_LL::releaseJob"); - } - - void BatchManager_LL::alterJob(const JobId & jobid, const Parametre & param, const Environnement & env) - { - throw NotYetImplementedException("BatchManager_LL::alterJob"); - } - - void BatchManager_LL::alterJob(const JobId & jobid, const Parametre & param) - { - throw NotYetImplementedException("BatchManager_LL::alterJob"); - } - - void BatchManager_LL::alterJob(const JobId & jobid, const Environnement & env) - { - throw NotYetImplementedException("BatchManager_LL::alterJob"); - } - JobInfo BatchManager_LL::queryJob(const JobId & jobid) { // define command to query batch @@ -266,9 +240,4 @@ namespace Batch { return jobinfo; } - const JobId BatchManager_LL::addJob(const Job & job, const string reference) - { - return JobId(this, reference); - } - } diff --git a/src/LoadLeveler/BatchManager_LL.hxx b/src/LoadLeveler/BatchManager_LL.hxx index fe805de..6bfd342 100644 --- a/src/LoadLeveler/BatchManager_LL.hxx +++ b/src/LoadLeveler/BatchManager_LL.hxx @@ -50,13 +50,7 @@ namespace Batch { // Methods to control jobs virtual const JobId submitJob(const Job & job); virtual void deleteJob(const JobId & jobid); - virtual void holdJob(const JobId & jobid); - virtual void releaseJob(const JobId & jobid); - virtual void alterJob(const JobId & jobid, const Parametre & param, const Environnement & env); - virtual void alterJob(const JobId & jobid, const Parametre & param); - virtual void alterJob(const JobId & jobid, const Environnement & env); virtual JobInfo queryJob(const JobId & jobid); - virtual const JobId addJob(const Job & job, const std::string reference); protected: std::string buildCommandFile(const Job & job); diff --git a/src/Local/BatchManager_Local.cxx b/src/Local/BatchManager_Local.cxx index 6be23d5..e5ee672 100644 --- a/src/Local/BatchManager_Local.cxx +++ b/src/Local/BatchManager_Local.cxx @@ -193,26 +193,6 @@ namespace Batch { // @@@ --------> SECTION CRITIQUE <-------- @@@ } - - // Methode pour le controle des jobs : modifie un job en file d'attente - void BatchManager_Local::alterJob(const JobId & jobid, const Parametre & param, const Environnement & env) - { - } - - // Methode pour le controle des jobs : modifie un job en file d'attente - void BatchManager_Local::alterJob(const JobId & jobid, const Parametre & param) - { - alterJob(jobid, param, Environnement()); - } - - // Methode pour le controle des jobs : modifie un job en file d'attente - void BatchManager_Local::alterJob(const JobId & jobid, const Environnement & env) - { - alterJob(jobid, Parametre(), env); - } - - - // Methode pour le controle des jobs : renvoie l'etat du job JobInfo BatchManager_Local::queryJob(const JobId & jobid) { @@ -247,7 +227,7 @@ namespace Batch { // On force donc l'état du job à erreur - pour cela on ne donne pas d'Id // au JobId const Batch::JobId - BatchManager_Local::addJob(const Batch::Job & job, const std::string reference) + BatchManager_Local::addJob(const Batch::Job & job, const std::string & reference) { return JobId(this, "undefined"); } diff --git a/src/Local/BatchManager_Local.hxx b/src/Local/BatchManager_Local.hxx index fc1c3eb..4946d6a 100644 --- a/src/Local/BatchManager_Local.hxx +++ b/src/Local/BatchManager_Local.hxx @@ -130,16 +130,13 @@ namespace Batch { virtual void deleteJob(const JobId & jobid); // retire un job du gestionnaire virtual void holdJob(const JobId & jobid); // suspend un job en file d'attente virtual void releaseJob(const JobId & jobid); // relache un job suspendu - virtual void alterJob(const JobId & jobid, const Parametre & param, const Environnement & env); // modifie un job en file d'attente - virtual void alterJob(const JobId & jobid, const Parametre & param); // modifie un job en file d'attente - virtual void alterJob(const JobId & jobid, const Environnement & env); // modifie un job en file d'attente virtual JobInfo queryJob(const JobId & jobid); // renvoie l'etat du job virtual bool isRunning(const JobId & jobid); // teste si un job est present en machine virtual void setParametre(const JobId & jobid, const Parametre & param) { return alterJob(jobid, param); } // modifie un job en file d'attente virtual void setEnvironnement(const JobId & jobid, const Environnement & env) { return alterJob(jobid, env); } // modifie un job en file d'attente - virtual const Batch::JobId addJob(const Batch::Job & job, const std::string reference); // ajoute un nouveau job sans le soumettre + virtual const Batch::JobId addJob(const Batch::Job & job, const std::string & reference); // ajoute un nouveau job sans le soumettre protected: int _connect; // Local connect id diff --git a/src/PBS/BatchManager_PBS.cxx b/src/PBS/BatchManager_PBS.cxx index 024ebc1..7dfd666 100644 --- a/src/PBS/BatchManager_PBS.cxx +++ b/src/PBS/BatchManager_PBS.cxx @@ -89,13 +89,6 @@ namespace Batch { return id; } - // Ce manager permet de faire de la reprise - const Batch::JobId - BatchManager_PBS::addJob(const Batch::Job & job, const std::string reference) - { - return JobId(this, reference); - } - // Methode pour le controle des jobs : retire un job du gestionnaire void BatchManager_PBS::deleteJob(const JobId & jobid) { @@ -115,37 +108,6 @@ namespace Batch { cerr << "jobId = " << ref << "killed" << endl; } - // Methode pour le controle des jobs : suspend un job en file d'attente - void BatchManager_PBS::holdJob(const JobId & jobid) - { - throw NotYetImplementedException("BatchManager_PBS::holdJob"); - } - - // Methode pour le controle des jobs : relache un job suspendu - void BatchManager_PBS::releaseJob(const JobId & jobid) - { - throw NotYetImplementedException("BatchManager_PBS::releaseJob"); - } - - - // Methode pour le controle des jobs : modifie un job en file d'attente - void BatchManager_PBS::alterJob(const JobId & jobid, const Parametre & param, const Environnement & env) - { - throw NotYetImplementedException("BatchManager_PBS::alterJob"); - } - - // Methode pour le controle des jobs : modifie un job en file d'attente - void BatchManager_PBS::alterJob(const JobId & jobid, const Parametre & param) - { - alterJob(jobid, param, Environnement()); - } - - // Methode pour le controle des jobs : modifie un job en file d'attente - void BatchManager_PBS::alterJob(const JobId & jobid, const Environnement & env) - { - alterJob(jobid, Parametre(), env); - } - // Methode pour le controle des jobs : renvoie l'etat du job JobInfo BatchManager_PBS::queryJob(const JobId & jobid) { diff --git a/src/PBS/BatchManager_PBS.hxx b/src/PBS/BatchManager_PBS.hxx index ebd5105..d0e9c3f 100644 --- a/src/PBS/BatchManager_PBS.hxx +++ b/src/PBS/BatchManager_PBS.hxx @@ -55,19 +55,12 @@ namespace Batch { // Methodes pour le controle des jobs virtual const JobId submitJob(const Job & job); // soumet un job au gestionnaire virtual void deleteJob(const JobId & jobid); // retire un job du gestionnaire - virtual void holdJob(const JobId & jobid); // suspend un job en file d'attente - virtual void releaseJob(const JobId & jobid); // relache un job suspendu - virtual void alterJob(const JobId & jobid, const Parametre & param, const Environnement & env); // modifie un job en file d'attente - virtual void alterJob(const JobId & jobid, const Parametre & param); // modifie un job en file d'attente - virtual void alterJob(const JobId & jobid, const Environnement & env); // modifie un job en file d'attente virtual JobInfo queryJob(const JobId & jobid); // renvoie l'etat du job virtual bool isRunning(const JobId & jobid); // teste si un job est present en machine virtual void setParametre(const JobId & jobid, const Parametre & param) { return alterJob(jobid, param); } // modifie un job en file d'attente virtual void setEnvironnement(const JobId & jobid, const Environnement & env) { return alterJob(jobid, env); } // modifie un job en file d'attente - virtual const Batch::JobId addJob(const Batch::Job & job, const std::string reference); // ajoute un nouveau job sans le soumettre - protected: std::string buildSubmissionScript(const Job & job); diff --git a/src/SGE/BatchManager_SGE.cxx b/src/SGE/BatchManager_SGE.cxx index cb71a06..6e6df08 100644 --- a/src/SGE/BatchManager_SGE.cxx +++ b/src/SGE/BatchManager_SGE.cxx @@ -108,12 +108,6 @@ namespace Batch { return id; } - // Ce manager permet de faire de la reprise - const Batch::JobId - BatchManager_SGE::addJob(const Batch::Job & job, const std::string reference) - { - return JobId(this, reference); - } // Methode pour le controle des jobs : retire un job du gestionnaire void BatchManager_SGE::deleteJob(const JobId & jobid) @@ -134,37 +128,6 @@ namespace Batch { cerr << "jobId = " << ref << "killed" << endl; } - // Methode pour le controle des jobs : suspend un job en file d'attente - void BatchManager_SGE::holdJob(const JobId & jobid) - { - throw NotYetImplementedException("BatchManager_SGE::holdJob"); - } - - // Methode pour le controle des jobs : relache un job suspendu - void BatchManager_SGE::releaseJob(const JobId & jobid) - { - throw NotYetImplementedException("BatchManager_SGE::releaseJob"); - } - - - // Methode pour le controle des jobs : modifie un job en file d'attente - void BatchManager_SGE::alterJob(const JobId & jobid, const Parametre & param, const Environnement & env) - { - throw NotYetImplementedException("BatchManager_SGE::alterJob"); - } - - // Methode pour le controle des jobs : modifie un job en file d'attente - void BatchManager_SGE::alterJob(const JobId & jobid, const Parametre & param) - { - alterJob(jobid, param, Environnement()); - } - - // Methode pour le controle des jobs : modifie un job en file d'attente - void BatchManager_SGE::alterJob(const JobId & jobid, const Environnement & env) - { - alterJob(jobid, Parametre(), env); - } - // Methode pour le controle des jobs : renvoie l'etat du job JobInfo BatchManager_SGE::queryJob(const JobId & jobid) { diff --git a/src/SGE/BatchManager_SGE.hxx b/src/SGE/BatchManager_SGE.hxx index ec12da2..acdb75d 100644 --- a/src/SGE/BatchManager_SGE.hxx +++ b/src/SGE/BatchManager_SGE.hxx @@ -55,19 +55,12 @@ namespace Batch { // Methodes pour le controle des jobs virtual const JobId submitJob(const Job & job); // soumet un job au gestionnaire virtual void deleteJob(const JobId & jobid); // retire un job du gestionnaire - virtual void holdJob(const JobId & jobid); // suspend un job en file d'attente - virtual void releaseJob(const JobId & jobid); // relache un job suspendu - virtual void alterJob(const JobId & jobid, const Parametre & param, const Environnement & env); // modifie un job en file d'attente - virtual void alterJob(const JobId & jobid, const Parametre & param); // modifie un job en file d'attente - virtual void alterJob(const JobId & jobid, const Environnement & env); // modifie un job en file d'attente virtual JobInfo queryJob(const JobId & jobid); // renvoie l'etat du job virtual bool isRunning(const JobId & jobid); // teste si un job est present en machine virtual void setParametre(const JobId & jobid, const Parametre & param) { return alterJob(jobid, param); } // modifie un job en file d'attente virtual void setEnvironnement(const JobId & jobid, const Environnement & env) { return alterJob(jobid, env); } // modifie un job en file d'attente - virtual const Batch::JobId addJob(const Batch::Job & job, const std::string reference); // ajoute un nouveau job sans le soumettre - protected: void buildBatchScript(const Job & job); std::string getWallTime(const long edt); diff --git a/src/Slurm/BatchManager_Slurm.cxx b/src/Slurm/BatchManager_Slurm.cxx index b1953ea..e74f82c 100644 --- a/src/Slurm/BatchManager_Slurm.cxx +++ b/src/Slurm/BatchManager_Slurm.cxx @@ -197,31 +197,6 @@ namespace Batch { cerr << "job " << jobid.getReference() << " killed" << endl; } - void BatchManager_Slurm::holdJob(const JobId & jobid) - { - throw NotYetImplementedException("BatchManager_Slurm::holdJob"); - } - - void BatchManager_Slurm::releaseJob(const JobId & jobid) - { - throw NotYetImplementedException("BatchManager_Slurm::releaseJob"); - } - - void BatchManager_Slurm::alterJob(const JobId & jobid, const Parametre & param, const Environnement & env) - { - throw NotYetImplementedException("BatchManager_Slurm::alterJob"); - } - - void BatchManager_Slurm::alterJob(const JobId & jobid, const Parametre & param) - { - throw NotYetImplementedException("BatchManager_Slurm::alterJob"); - } - - void BatchManager_Slurm::alterJob(const JobId & jobid, const Environnement & env) - { - throw NotYetImplementedException("BatchManager_Slurm::alterJob"); - } - JobInfo BatchManager_Slurm::queryJob(const JobId & jobid) { // define command to query batch @@ -238,9 +213,4 @@ namespace Batch { return jobinfo; } - const JobId BatchManager_Slurm::addJob(const Job & job, const string reference) - { - return JobId(this, reference); - } - } diff --git a/src/Slurm/BatchManager_Slurm.hxx b/src/Slurm/BatchManager_Slurm.hxx index 14f9dbf..fd40a7f 100644 --- a/src/Slurm/BatchManager_Slurm.hxx +++ b/src/Slurm/BatchManager_Slurm.hxx @@ -53,13 +53,7 @@ namespace Batch { // Methods to control jobs virtual const JobId submitJob(const Job & job); virtual void deleteJob(const JobId & jobid); - virtual void holdJob(const JobId & jobid); - virtual void releaseJob(const JobId & jobid); - virtual void alterJob(const JobId & jobid, const Parametre & param, const Environnement & env); - virtual void alterJob(const JobId & jobid, const Parametre & param); - virtual void alterJob(const JobId & jobid, const Environnement & env); virtual JobInfo queryJob(const JobId & jobid); - virtual const JobId addJob(const Job & job, const std::string reference); protected: diff --git a/src/Vishnu/BatchManager_Vishnu.cxx b/src/Vishnu/BatchManager_Vishnu.cxx index f9069b1..16d116f 100644 --- a/src/Vishnu/BatchManager_Vishnu.cxx +++ b/src/Vishnu/BatchManager_Vishnu.cxx @@ -35,7 +35,6 @@ #include #include -#include #include #include @@ -250,31 +249,6 @@ namespace Batch { cerr << "job " << jobid.getReference() << " killed" << endl; } - void BatchManager_Vishnu::holdJob(const JobId & jobid) - { - throw NotYetImplementedException("BatchManager_Vishnu::holdJob"); - } - - void BatchManager_Vishnu::releaseJob(const JobId & jobid) - { - throw NotYetImplementedException("BatchManager_Vishnu::releaseJob"); - } - - void BatchManager_Vishnu::alterJob(const JobId & jobid, const Parametre & param, const Environnement & env) - { - throw NotYetImplementedException("BatchManager_Vishnu::alterJob"); - } - - void BatchManager_Vishnu::alterJob(const JobId & jobid, const Parametre & param) - { - throw NotYetImplementedException("BatchManager_Vishnu::alterJob"); - } - - void BatchManager_Vishnu::alterJob(const JobId & jobid, const Environnement & env) - { - throw NotYetImplementedException("BatchManager_Vishnu::alterJob"); - } - JobInfo BatchManager_Vishnu::queryJob(const JobId & jobid) { // define command to query batch @@ -293,11 +267,6 @@ namespace Batch { return jobinfo; } - const JobId BatchManager_Vishnu::addJob(const Job & job, const string reference) - { - return JobId(this, reference); - } - void BatchManager_Vishnu::importOutputFiles(const Job & job, const std::string directory) { // Create local result directory diff --git a/src/Vishnu/BatchManager_Vishnu.hxx b/src/Vishnu/BatchManager_Vishnu.hxx index d43eaaa..c558ec1 100644 --- a/src/Vishnu/BatchManager_Vishnu.hxx +++ b/src/Vishnu/BatchManager_Vishnu.hxx @@ -53,13 +53,7 @@ namespace Batch { // Methods to control jobs virtual const JobId submitJob(const Job & job); virtual void deleteJob(const JobId & jobid); - virtual void holdJob(const JobId & jobid); - virtual void releaseJob(const JobId & jobid); - virtual void alterJob(const JobId & jobid, const Parametre & param, const Environnement & env); - virtual void alterJob(const JobId & jobid, const Parametre & param); - virtual void alterJob(const JobId & jobid, const Environnement & env); virtual JobInfo queryJob(const JobId & jobid); - virtual const JobId addJob(const Job & job, const std::string reference); virtual void importOutputFiles(const Job & job, const std::string directory); protected: -- 2.39.2