9 #include <arc/DateTime.h> 11 #include <arc/compute/JobState.h> 16 class JobControllerPlugin;
17 class JobControllerPluginLoader;
50 URL ServiceInformationURL;
51 std::string ServiceInformationInterfaceName;
53 std::string JobStatusInterfaceName;
55 std::string JobManagementInterfaceName;
62 std::string IDFromEndpoint;
64 std::string LocalIDFromManager;
82 std::string ComputingManagerExitCode;
83 std::list<std::string> Error;
85 std::string UserDomain;
87 std::string LocalOwner;
88 Period RequestedTotalWallTime;
89 Period RequestedTotalCPUTime;
91 std::list<std::string> RequestedApplicationEnvironment;
96 std::list<std::string> ExecutionNode;
101 Time LocalSubmissionTime;
103 Time ComputingManagerSubmissionTime;
105 Time ComputingManagerEndTime;
107 Time WorkingAreaEraseTime;
108 Time ProxyExpirationTime;
109 std::string SubmissionHost;
110 std::string SubmissionClientName;
113 std::list<std::string> OtherMessages;
115 std::list<std::string> ActivityOldID;
116 std::map<std::string, std::string> LocalInputFiles;
145 void SaveToStream(std::ostream& out,
bool longlist)
const;
146 void SaveToStreamJSON(std::ostream& out,
bool longlist)
const;
163 int operator==(
const Job& other);
197 bool GetURLToResource(ResourceType resource,
URL& url)
const;
199 bool Retrieve(
const UserConfig& uc,
const URL& destination,
bool force)
const;
201 static bool CopyJobFile(
const UserConfig& uc,
const URL& src,
const URL& dst);
202 static bool ListFilesRecursive(
const UserConfig& uc,
const URL& dir, std::list<std::string>& files) { files.clear();
return ListFilesRecursive(uc, dir, files,
""); }
204 static bool CompareJobID(
const Job& a,
const Job& b) {
return a.JobID.compare(b.JobID) < 0; }
205 static bool CompareSubmissionTime(
const Job& a,
const Job& b) {
return a.SubmissionTime < b.SubmissionTime; }
206 static bool CompareJobName(
const Job& a,
const Job& b) {
return a.Name.compare(b.Name) < 0; }
226 static bool ReadJobIDsFromFile(
const std::string& filename, std::list<std::string>& jobids,
unsigned nTries = 10,
unsigned tryInterval = 500000);
244 static bool WriteJobIDToFile(
const std::string& jobid,
const std::string& filename,
unsigned nTries = 10,
unsigned tryInterval = 500000);
262 static bool WriteJobIDsToFile(
const std::list<std::string>& jobids,
const std::string& filename,
unsigned nTries = 10,
unsigned tryInterval = 500000);
264 static bool WriteJobIDsToFile(
const std::list<Job>& jobs,
const std::string& filename,
unsigned nTries = 10,
unsigned tryInterval = 500000);
267 static bool ListFilesRecursive(
const UserConfig& uc,
const URL& dir, std::list<std::string>& files,
const std::string& prefix);
269 JobControllerPlugin* jc;
271 static JobControllerPluginLoader& getLoader();
274 static DataHandle *data_source, *data_destination;
276 static Logger logger;
281 #endif // __ARC_JOB_H__ Arc namespace contains all core ARC classes.
Definition: ArcConfig.h:11
Job & operator=(XMLNode job)
Set Job attributes from a XMLNode.
static bool WriteJobIDsToFile(const std::list< std::string > &jobids, const std::string &filename, unsigned nTries=10, unsigned tryInterval=500000)
Append list of URLs to a file.
User configuration class
Definition: UserConfig.h:196
std::string JobDescriptionDocument
Job description document describing job.
Definition: Job.h:77
Wrapper for LibXML library Tree interface.
Definition: XMLNode.h:61
A class for storing and manipulating times.
Definition: DateTime.h:125
std::list< std::string > DelegationID
Definition: Job.h:121
void SetFromXML(XMLNode job)
Set Job attributes from a XMLNode representing GLUE2 ComputingActivity.
static bool ReadJobIDsFromFile(const std::string &filename, std::list< std::string > &jobids, unsigned nTries=10, unsigned tryInterval=500000)
Read a list of Job IDs from a file, and append them to a list.
Job.
Definition: Job.h:33
void SaveToStream(std::ostream &out, bool longlist) const
Write job information to a std::ostream object.
Job()
Create a Job object.
JobSupervisor class.
Definition: JobSupervisor.h:48
static bool WriteJobIDToFile(const std::string &jobid, const std::string &filename, unsigned nTries=10, unsigned tryInterval=500000)
Append a jobID to a file.
void ToXML(XMLNode job) const
Add job information to a XMLNode.
A Period represents a length of time.
Definition: DateTime.h:48
Class to represent general URLs.
Definition: URL.h:88
Definition: JobState.h:42
std::string JobDescription
Language of job description describing job.
Definition: Job.h:70