ARC SDK
Public Member Functions | Protected Member Functions | Protected Attributes | Static Protected Attributes
Arc::SubmitterPlugin Class Referenceabstract

Base class for the SubmitterPlugins. More...

#include <arc/compute/SubmitterPlugin.h>

Inheritance diagram for Arc::SubmitterPlugin:

Public Member Functions

virtual SubmissionStatus Submit (const JobDescription &j, const ExecutionTarget &et, EntityConsumer< Job > &jc)
 Submit a single job description. More...
 
virtual SubmissionStatus Submit (const std::list< JobDescription > &jobdesc, const ExecutionTarget &et, EntityConsumer< Job > &jc, std::list< const JobDescription *> &notSubmitted)=0
 Submit job. More...
 
virtual SubmissionStatus Submit (const std::list< JobDescription > &jobdesc, const std::string &endpoint, EntityConsumer< Job > &jc, std::list< const JobDescription *> &notSubmitted)
 
virtual bool Migrate (const std::string &jobid, const JobDescription &jobdesc, const ExecutionTarget &et, bool forcemigration, Job &job)
 Migrate job. More...
 
virtual const std::list< std::string > & SupportedInterfaces () const
 
virtual void SetUserConfig (const UserConfig &uc)
 

Protected Member Functions

 SubmitterPlugin (const UserConfig &usercfg, PluginArgument *parg)
 
bool PutFiles (const JobDescription &jobdesc, const URL &url) const
 
void AddJobDetails (const JobDescription &jobdesc, Job &job) const
 

Protected Attributes

const UserConfigusercfg
 
std::list< std::string > supportedInterfaces
 
DataHandledest_handle
 

Static Protected Attributes

static Logger logger
 

Detailed Description

Base class for the SubmitterPlugins.

SubmitterPlugin is the base class for Grid middleware specialized SubmitterPlugin objects. The class submits job(s) to the computing resource it represents and uploads (needed by the job) local input files.

Member Function Documentation

◆ Migrate()

virtual bool Arc::SubmitterPlugin::Migrate ( const std::string &  jobid,
const JobDescription jobdesc,
const ExecutionTarget et,
bool  forcemigration,
Job job 
)
virtual

Migrate job.

This virtual method should be overridden by plugins which should be capable of migrating jobs. The active job which should be migrated is pointed to by the URL jobid, and is represented by the JobDescription jobdesc. The forcemigration boolean specifies if the migration should succeed if the active job cannot be terminated. The protected method AddJob can be used to save job information. This method should return the URL of the migrated job. In case migration fails an empty URL should be returned.

◆ SetUserConfig()

virtual void Arc::SubmitterPlugin::SetUserConfig ( const UserConfig uc)
virtual
Since
Added in 5.1.0

◆ Submit() [1/2]

virtual SubmissionStatus Arc::SubmitterPlugin::Submit ( const JobDescription j,
const ExecutionTarget et,
EntityConsumer< Job > &  jc 
)
inlinevirtual

Submit a single job description.

Convenience method for submitting single job description, it simply calls the SubmitterPlugin::Submit method taking a list of job descriptions.

Parameters
jJobDescription object to be submitted.
etExecutionTarget to submit the job description to.
jccallback object used to add Job object of newly submitted job to.
Returns
a bool indicating whether job submission suceeded or not.

◆ Submit() [2/2]

virtual SubmissionStatus Arc::SubmitterPlugin::Submit ( const std::list< JobDescription > &  jobdesc,
const ExecutionTarget et,
EntityConsumer< Job > &  jc,
std::list< const JobDescription *> &  notSubmitted 
)
pure virtual

Submit job.

This virtual method should be overridden by plugins which should be capable of submitting jobs, defined in the JobDescription jobdesc, to the ExecutionTarget et. The protected convenience method AddJob can be used to save job information. This method should return the URL of the submitted job. In case submission fails an empty URL should be returned.

Field Documentation

◆ usercfg

const UserConfig* Arc::SubmitterPlugin::usercfg
protected

UserConfig object not owned by this class, and relies on its existence throughout lifetime of objects from this class. Must not be deleted by this class. Pointers to this object must not be exposed publicly.


The documentation for this class was generated from the following file: