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;
162 int operator==(
const Job& other);
196 bool GetURLToResource(ResourceType resource,
URL& url)
const;
198 bool Retrieve(
const UserConfig& uc,
const URL& destination,
bool force)
const;
200 static bool CopyJobFile(
const UserConfig& uc,
const URL& src,
const URL& dst);
201 static bool ListFilesRecursive(
const UserConfig& uc,
const URL& dir, std::list<std::string>& files) { files.clear();
return ListFilesRecursive(uc, dir, files,
""); }
203 static bool CompareJobID(
const Job& a,
const Job& b) {
return a.JobID.compare(b.JobID) < 0; }
204 static bool CompareSubmissionTime(
const Job& a,
const Job& b) {
return a.SubmissionTime < b.SubmissionTime; }
205 static bool CompareJobName(
const Job& a,
const Job& b) {
return a.Name.compare(b.Name) < 0; }
225 static bool ReadJobIDsFromFile(
const std::string& filename, std::list<std::string>& jobids,
unsigned nTries = 10,
unsigned tryInterval = 500000);
243 static bool WriteJobIDToFile(
const std::string& jobid,
const std::string& filename,
unsigned nTries = 10,
unsigned tryInterval = 500000);
261 static bool WriteJobIDsToFile(
const std::list<std::string>& jobids,
const std::string& filename,
unsigned nTries = 10,
unsigned tryInterval = 500000);
263 static bool WriteJobIDsToFile(
const std::list<Job>& jobs,
const std::string& filename,
unsigned nTries = 10,
unsigned tryInterval = 500000);
266 static bool ListFilesRecursive(
const UserConfig& uc,
const URL& dir, std::list<std::string>& files,
const std::string& prefix);
268 JobControllerPlugin* jc;
270 static JobControllerPluginLoader& getLoader();
273 static DataHandle *data_source, *data_destination;
275 static Logger logger;
280 #endif // __ARC_JOB_H__