hydra-evaluator: deal in jobset IDs
[?]
Jan 25, 2021, 9:08 PM
JO3DDLJMWMKCNKANQC5N7E7ZW5ZZMF6T3YODH2NHDUKHILGX7G3ACDependencies
- [2]
5MVWRWHThydra-evaluator: Don't use the "timeout" command - [3]
R22F6CV5hydra-evaluator: reformat readJobsets query - [4]
RWGZHHEGhydra-evaluator: JobsetName -> JobsetIdentity - [5]
M25EG2BKFixes for macOS - [6]
ZM6WYVL7hydra-evaluator: Set jobset error if hydra-eval-jobset dies - [7]
PYTVXHMHhydra-evaluator: Show friendlier exit status - [8]
3A7HTJZPMerge branch 'master' into libpqxx_undeprecate - [9]
W4G5MZZShydra-evaluator improvements - [10]
P6EWEJHLhydra-evaluator: Allow setting the maximum number of concurrent evaluations - [11]
UANT7MOVhydra-evaluator: add a 'ONE_AT_A_TIME' evaluator style - [12]
K6CGDFOThydra-evaluator: make the logic of the scheduler easier to read - [13]
DKR2GXSAUpdate libpqxx usage to move away from deprecated API interactions. - [14]
FLFMDC54Fix hydra-evaluator --unlock - [15]
4YCF3KBGConcurrent hydra-evaluator
Change contents
- edit in src/hydra-evaluator/hydra-evaluator.cc at line 15
typedef std::pair<std::string, std::string> JobsetSymbolicIdentity;class JobsetIdentity {public:std::string project;std::string jobset;int id;JobsetIdentity(const std::string& project, const std::string& jobset, const int id): project{ project }, jobset{ jobset }, id{ id }{} - replacement in src/hydra-evaluator/hydra-evaluator.cc at line 31
typedef std::pair<std::string, std::string> JobsetIdentity;friend bool operator== (const JobsetIdentity &lhs, const JobsetIdentity &rhs);friend bool operator!= (const JobsetIdentity &lhs, const JobsetIdentity &rhs);friend bool operator< (const JobsetIdentity &lhs, const JobsetIdentity &rhs);friend bool operator== (const JobsetIdentity &lhs, const JobsetSymbolicIdentity &rhs);friend bool operator!= (const JobsetIdentity &lhs, const JobsetSymbolicIdentity &rhs);std::string display() const {return str(format("%1%:%2% (jobset#%3%)") % project % jobset % id);}};bool operator==(const JobsetIdentity & lhs, const JobsetIdentity & rhs){return lhs.id == rhs.id;}bool operator!=(const JobsetIdentity & lhs, const JobsetIdentity & rhs){return lhs.id != rhs.id;}bool operator<(const JobsetIdentity & lhs, const JobsetIdentity & rhs){return lhs.id < rhs.id;}bool operator==(const JobsetIdentity & lhs, const JobsetSymbolicIdentity & rhs){return lhs.project == rhs.first && lhs.jobset == rhs.second;} - edit in src/hydra-evaluator/hydra-evaluator.cc at line 63
bool operator!=(const JobsetIdentity & lhs, const JobsetSymbolicIdentity & rhs){return ! (lhs == rhs);} - replacement in src/hydra-evaluator/hydra-evaluator.cc at line 92
std::optional<JobsetIdentity> evalOne;std::optional<JobsetSymbolicIdentity> evalOne; - replacement in src/hydra-evaluator/hydra-evaluator.cc at line 121
("select project, j.name, lastCheckedTime, triggerTime, checkInterval, j.enabled as jobset_enabled "("select j.id as id, project, j.name, lastCheckedTime, triggerTime, checkInterval, j.enabled as jobset_enabled " - replacement in src/hydra-evaluator/hydra-evaluator.cc at line 132
auto name = JobsetIdentity{row["project"].as<std::string>(), row["name"].as<std::string>()};auto name = JobsetIdentity{row["project"].as<std::string>(), row["name"].as<std::string>(), row["id"].as<int>()}; - replacement in src/hydra-evaluator/hydra-evaluator.cc at line 166
printInfo("forgetting jobset ‘%s:%s’", i->first.first, i->first.second);printInfo("forgetting jobset ‘%s’", i->first.display()); - replacement in src/hydra-evaluator/hydra-evaluator.cc at line 175
printInfo("starting evaluation of jobset ‘%s:%s’ (last checked %d s ago)",jobset.name.first, jobset.name.second,printInfo("starting evaluation of jobset ‘%s’ (last checked %d s ago)",jobset.name.display(), - replacement in src/hydra-evaluator/hydra-evaluator.cc at line 183
("update Jobsets set startTime = $1 where project = $2 and name = $3",("update Jobsets set startTime = $1 where id = $2", - replacement in src/hydra-evaluator/hydra-evaluator.cc at line 185
jobset.name.first,jobset.name.second);jobset.name.id); - replacement in src/hydra-evaluator/hydra-evaluator.cc at line 192
Strings args = { "hydra-eval-jobset", jobset.name.first, jobset.name.second };Strings args = { "hydra-eval-jobset", jobset.name.project, jobset.name.jobset }; - replacement in src/hydra-evaluator/hydra-evaluator.cc at line 206
debug("shouldEvaluate %s:%s? no: already running",jobset.name.first, jobset.name.second);debug("shouldEvaluate %s? no: already running",jobset.name.display()); - replacement in src/hydra-evaluator/hydra-evaluator.cc at line 213
debug("shouldEvaluate %s:%s? yes: requested",jobset.name.first, jobset.name.second);debug("shouldEvaluate %s? yes: requested",jobset.name.display()); - replacement in src/hydra-evaluator/hydra-evaluator.cc at line 221
debug("shouldEvaluate %s:%s? no: checkInterval <= 0",jobset.name.first, jobset.name.second);debug("shouldEvaluate %s? no: checkInterval <= 0",jobset.name.display()); - replacement in src/hydra-evaluator/hydra-evaluator.cc at line 238
"where project = $1 and jobset = $2 ""where jobset_id = $1 " - replacement in src/hydra-evaluator/hydra-evaluator.cc at line 240
(jobset.name.first)(jobset.name.second)(jobset.name.id) - replacement in src/hydra-evaluator/hydra-evaluator.cc at line 245
debug("shouldEvaluate(one-at-a-time) %s:%s? yes: no prior eval",jobset.name.first, jobset.name.second);debug("shouldEvaluate(one-at-a-time) %s? yes: no prior eval",jobset.name.display()); - replacement in src/hydra-evaluator/hydra-evaluator.cc at line 265
debug("shouldEvaluate(one-at-a-time) %s:%s? yes: no unfinished builds",jobset.name.first, jobset.name.second);debug("shouldEvaluate(one-at-a-time) %s? yes: no unfinished builds",jobset.name.display()); - replacement in src/hydra-evaluator/hydra-evaluator.cc at line 270
jobset.name.first, jobset.name.second);jobset.name.display()); - replacement in src/hydra-evaluator/hydra-evaluator.cc at line 277
debug("shouldEvaluate(oneshot/scheduled) %s:%s? yes: checkInterval elapsed",jobset.name.first, jobset.name.second);debug("shouldEvaluate(oneshot/scheduled) %s? yes: checkInterval elapsed",jobset.name.display()); - replacement in src/hydra-evaluator/hydra-evaluator.cc at line 403
printInfo("evaluation of jobset ‘%s:%s’ %s",jobset.name.first, jobset.name.second, statusToString(status));printInfo("evaluation of jobset ‘%s’ %s",jobset.name.display(), statusToString(status)); - replacement in src/hydra-evaluator/hydra-evaluator.cc at line 420
("update Jobsets set triggerTime = null where project = $1 and name = $2 and startTime is not null and triggerTime <= startTime",jobset.name.first,jobset.name.second);("update Jobsets set triggerTime = null where id = $1 and startTime is not null and triggerTime <= startTime",jobset.name.id); - replacement in src/hydra-evaluator/hydra-evaluator.cc at line 425
("update Jobsets set startTime = null where project = $1 and name = $2",jobset.name.first,jobset.name.second);("update Jobsets set startTime = null where id = $1",jobset.name.id); - replacement in src/hydra-evaluator/hydra-evaluator.cc at line 430
("update Jobsets set errorMsg = $1, lastCheckedTime = $2, errorTime = $2, fetchErrorMsg = null where project = $3 and name = $4",("update Jobsets set errorMsg = $1, lastCheckedTime = $2, errorTime = $2, fetchErrorMsg = null where id = $3", - replacement in src/hydra-evaluator/hydra-evaluator.cc at line 433
jobset.name.first,jobset.name.second);jobset.name.id); - replacement in src/hydra-evaluator/hydra-evaluator.cc at line 514
evaluator.evalOne = JobsetIdentity(args[0], args[1]);evaluator.evalOne = JobsetSymbolicIdentity(args[0], args[1]);