return id;
}
+ // Ce manager permet de faire de la reprise
+ const Batch::JobId
+ BatchManager_eCCC::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_eCCC::deleteJob(const JobId & jobid)
{
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);
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
virtual std::string waitForJobEnd(const Batch::JobId & jobid, long timeout = -1,
long initSleepTime = 1, long maxSleepTime = 600);
Parametre params = job.getParametre();
Versatile V = params[INFILE];
Versatile::iterator Vit;
- _username = string(params[USER]);
status = _protocol.makeDirectory(string(params[TMPDIR]) + "/logs", _hostname, _username);
if(status) {
virtual ~BatchManager_eClient();
void importOutputFiles( const Job & job, const std::string directory ) throw(EmulationException);
+ void setUsername(const std::string & username) {_username = username;}
+
protected:
const CommunicationProtocol & _protocol; // protocol to access _hostname
std::string _username; // username to access _hostname
return _reference;
}
+ // Permet de recharger un job depuis un fichier
+ void JobId::setReference(const std::string & new_reference)
+ {
+ _reference = new_reference;
+ }
+
// Methode pour le controle du job : retire le job du gestionnaire
void JobId::deleteJob() const
{
// Accesseur pour la reference interne
virtual std::string getReference() const;
+ // Permet de recharger un job depuis un fichier
+ virtual void setReference(const std::string & new_reference);
+
// Methodes pour le controle du job
virtual void deleteJob() const; // retire un job du gestionnaire
virtual void holdJob() const; // suspend un job en file d'attente
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)
{
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:
int _connect; // LSF connect id
return id;
}
+ // Ce manager permet de faire de la reprise
+ const Batch::JobId
+ BatchManager_eLSF::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_eLSF::deleteJob(const JobId & jobid)
{
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);
}
+ // Ce manager ne peut pas reprendre un job
+ // 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)
+ {
+ return JobId(this, "undefined");
+ }
// Methode pour le controle des jobs : teste si un job est present en machine
bool BatchManager_Local::isRunning(const JobId & jobid)
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:
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)
{
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 getErrorMessage(const char * operation) const;
return id;
}
+ // Ce manager permet de faire de la reprise
+ const Batch::JobId
+ BatchManager_ePBS::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_ePBS::deleteJob(const JobId & jobid)
{
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);
return id;
}
+ // Ce manager permet de faire de la reprise
+ const Batch::JobId
+ BatchManager_eSGE::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_eSGE::deleteJob(const JobId & jobid)
{
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);