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;
140 void SaveToStream(std::ostream& out,
bool longlist)
const;
157 int operator==(
const Job& other);
191 bool GetURLToResource(ResourceType resource,
URL& url)
const;
193 bool Retrieve(
const UserConfig& uc,
const URL& destination,
bool force)
const;
195 static bool CopyJobFile(
const UserConfig& uc,
const URL& src,
const URL& dst);
196 static bool ListFilesRecursive(
const UserConfig& uc,
const URL& dir, std::list<std::string>& files) { files.clear();
return ListFilesRecursive(uc, dir, files,
""); }
198 static bool CompareJobID(
const Job& a,
const Job& b) {
return a.JobID.compare(b.JobID) < 0; }
199 static bool CompareSubmissionTime(
const Job& a,
const Job& b) {
return a.SubmissionTime < b.SubmissionTime; }
200 static bool CompareJobName(
const Job& a,
const Job& b) {
return a.Name.compare(b.Name) < 0; }
220 static bool ReadJobIDsFromFile(
const std::string& filename, std::list<std::string>& jobids,
unsigned nTries = 10,
unsigned tryInterval = 500000);
238 static bool WriteJobIDToFile(
const std::string& jobid,
const std::string& filename,
unsigned nTries = 10,
unsigned tryInterval = 500000);
256 static bool WriteJobIDsToFile(
const std::list<std::string>& jobids,
const std::string& filename,
unsigned nTries = 10,
unsigned tryInterval = 500000);
258 static bool WriteJobIDsToFile(
const std::list<Job>& jobs,
const std::string& filename,
unsigned nTries = 10,
unsigned tryInterval = 500000);
261 static bool ListFilesRecursive(
const UserConfig& uc,
const URL& dir, std::list<std::string>& files,
const std::string& prefix);
263 JobControllerPlugin* jc;
265 static JobControllerPluginLoader& getLoader();
268 static DataHandle *data_source, *data_destination;
270 static Logger logger;
275 #endif // __ARC_JOB_H__