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)
{
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)
{
// 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);
#include "FactBatchManager.hxx"
#include "BatchManager.hxx"
#include "Utils.hxx"
+#include "NotYetImplementedException.hxx"
#ifdef WIN32
#define sleep(seconds) Sleep((seconds)*1000)
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))
{
string BatchManager::__repr__() const
{
ostringstream oss;
- oss << "<BatchManager of type '" << (_parent ? _parent->getType() : "unknown (no factory)") << "' connected to server '" << _hostname << "'>";
+ oss << "<BatchManager of type '" << _type << "' connected to server '" << _hostname << "'>";
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
/*!
//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 );
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
}
// Accesseur
- string FactBatchManager::getType() const
+ const string & FactBatchManager::getType() const
{
return type;
}
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:
}
// 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
}
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 &);
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)
{
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)
{
// 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);
#include <fstream>
#include <sstream>
-#include <NotYetImplementedException.hxx>
#include <Constants.hxx>
#include <Utils.hxx>
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
return jobinfo;
}
- const JobId BatchManager_LL::addJob(const Job & job, const string reference)
- {
- return JobId(this, reference);
- }
-
}
// 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);
// @@@ --------> 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)
{
// 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");
}
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
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)
{
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)
{
// 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);
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)
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)
{
// 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);
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
return jobinfo;
}
- const JobId BatchManager_Slurm::addJob(const Job & job, const string reference)
- {
- return JobId(this, reference);
- }
-
}
// 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:
#include <fstream>
#include <sstream>
-#include <NotYetImplementedException.hxx>
#include <Constants.hxx>
#include <Utils.hxx>
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
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
// 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: