hydra-evaluator: deal in jobset IDs

[?]
Jan 25, 2021, 9:08 PM
JO3DDLJMWMKCNKANQC5N7E7ZW5ZZMF6T3YODH2NHDUKHILGX7G3AC

Dependencies

  • [2] 5MVWRWHT hydra-evaluator: Don't use the "timeout" command
  • [3] R22F6CV5 hydra-evaluator: reformat readJobsets query
  • [4] RWGZHHEG hydra-evaluator: JobsetName -> JobsetIdentity
  • [5] M25EG2BK Fixes for macOS
  • [6] ZM6WYVL7 hydra-evaluator: Set jobset error if hydra-eval-jobset dies
  • [7] PYTVXHMH hydra-evaluator: Show friendlier exit status
  • [8] 3A7HTJZP Merge branch 'master' into libpqxx_undeprecate
  • [9] W4G5MZZS hydra-evaluator improvements
  • [10] P6EWEJHL hydra-evaluator: Allow setting the maximum number of concurrent evaluations
  • [11] UANT7MOV hydra-evaluator: add a 'ONE_AT_A_TIME' evaluator style
  • [12] K6CGDFOT hydra-evaluator: make the logic of the scheduler easier to read
  • [13] DKR2GXSA Update libpqxx usage to move away from deprecated API interactions.
  • [14] FLFMDC54 Fix hydra-evaluator --unlock
  • [15] 4YCF3KBG Concurrent hydra-evaluator

Change contents

  • edit in src/hydra-evaluator/hydra-evaluator.cc at line 15
    [5.760]
    [5.760]
    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
    [5.761][4.0:60]()
    typedef std::pair<std::string, std::string> JobsetIdentity;
    [5.761]
    [5.165]
    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
    [5.166]
    [5.0]
    bool operator!=(const JobsetIdentity & lhs, const JobsetSymbolicIdentity & rhs)
    {
    return ! (lhs == rhs);
    }
  • replacement in src/hydra-evaluator/hydra-evaluator.cc at line 92
    [5.1102][4.146:189]()
    std::optional<JobsetIdentity> evalOne;
    [5.1102]
    [5.220]
    std::optional<JobsetSymbolicIdentity> evalOne;
  • replacement in src/hydra-evaluator/hydra-evaluator.cc at line 121
    [5.28][3.0:113]()
    ("select project, j.name, lastCheckedTime, triggerTime, checkInterval, j.enabled as jobset_enabled "
    [5.28]
    [3.113]
    ("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
    [5.1840][4.230:335]()
    auto name = JobsetIdentity{row["project"].as<std::string>(), row["name"].as<std::string>()};
    [5.1840]
    [5.222]
    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
    [5.2480][5.2480:2573]()
    printInfo("forgetting jobset ‘%s:%s’", i->first.first, i->first.second);
    [5.2480]
    [5.2573]
    printInfo("forgetting jobset ‘%s’", i->first.display());
  • replacement in src/hydra-evaluator/hydra-evaluator.cc at line 175
    [5.451][5.451:589]()
    printInfo("starting evaluation of jobset ‘%s:%s’ (last checked %d s ago)",
    jobset.name.first, jobset.name.second,
    [5.451]
    [5.589]
    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
    [5.116][5.116:203]()
    ("update Jobsets set startTime = $1 where project = $2 and name = $3",
    [5.116]
    [5.203]
    ("update Jobsets set startTime = $1 where id = $2",
  • replacement in src/hydra-evaluator/hydra-evaluator.cc at line 185
    [5.225][5.225:299]()
    jobset.name.first,
    jobset.name.second);
    [5.225]
    [5.952]
    jobset.name.id);
  • replacement in src/hydra-evaluator/hydra-evaluator.cc at line 192
    [5.2877][2.0:91]()
    Strings args = { "hydra-eval-jobset", jobset.name.first, jobset.name.second };
    [5.2877]
    [5.3022]
    Strings args = { "hydra-eval-jobset", jobset.name.project, jobset.name.jobset };
  • replacement in src/hydra-evaluator/hydra-evaluator.cc at line 206
    [5.111][5.764:885]()
    debug("shouldEvaluate %s:%s? no: already running",
    jobset.name.first, jobset.name.second);
    [5.111]
    [5.111]
    debug("shouldEvaluate %s? no: already running",
    jobset.name.display());
  • replacement in src/hydra-evaluator/hydra-evaluator.cc at line 213
    [5.277][5.959:1075]()
    debug("shouldEvaluate %s:%s? yes: requested",
    jobset.name.first, jobset.name.second);
    [5.277]
    [5.277]
    debug("shouldEvaluate %s? yes: requested",
    jobset.name.display());
  • replacement in src/hydra-evaluator/hydra-evaluator.cc at line 221
    [5.480][5.1076:1200]()
    debug("shouldEvaluate %s:%s? no: checkInterval <= 0",
    jobset.name.first, jobset.name.second);
    [5.480]
    [5.480]
    debug("shouldEvaluate %s? no: checkInterval <= 0",
    jobset.name.display());
  • replacement in src/hydra-evaluator/hydra-evaluator.cc at line 238
    [5.1718][5.1718:1777]()
    "where project = $1 and jobset = $2 "
    [5.1718]
    [5.1777]
    "where jobset_id = $1 "
  • replacement in src/hydra-evaluator/hydra-evaluator.cc at line 240
    [5.1826][5.1826:1903]()
    (jobset.name.first)
    (jobset.name.second)
    [5.1826]
    [5.1903]
    (jobset.name.id)
  • replacement in src/hydra-evaluator/hydra-evaluator.cc at line 245
    [5.2039][5.2039:2190]()
    debug("shouldEvaluate(one-at-a-time) %s:%s? yes: no prior eval",
    jobset.name.first, jobset.name.second);
    [5.2039]
    [5.2190]
    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
    [5.2891][5.2891:3049]()
    debug("shouldEvaluate(one-at-a-time) %s:%s? yes: no unfinished builds",
    jobset.name.first, jobset.name.second);
    [5.2891]
    [5.3049]
    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
    [5.3207][5.3207:3274]()
    jobset.name.first, jobset.name.second);
    [5.3207]
    [5.3274]
    jobset.name.display());
  • replacement in src/hydra-evaluator/hydra-evaluator.cc at line 277
    [5.3421][5.3421:3576]()
    debug("shouldEvaluate(oneshot/scheduled) %s:%s? yes: checkInterval elapsed",
    jobset.name.first, jobset.name.second);
    [5.3421]
    [5.3576]
    debug("shouldEvaluate(oneshot/scheduled) %s? yes: checkInterval elapsed",
    jobset.name.display());
  • replacement in src/hydra-evaluator/hydra-evaluator.cc at line 403
    [5.1440][5.0:73](),[5.7818][5.0:73](),[5.73][5.1441:1533]()
    printInfo("evaluation of jobset ‘%s:%s’ %s",
    jobset.name.first, jobset.name.second, statusToString(status));
    [5.1440]
    [5.1533]
    printInfo("evaluation of jobset ‘%s’ %s",
    jobset.name.display(), statusToString(status));
  • replacement in src/hydra-evaluator/hydra-evaluator.cc at line 420
    [5.345][5.345:613]()
    ("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);
    [5.345]
    [5.2346]
    ("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
    [5.659][5.659:870]()
    ("update Jobsets set startTime = null where project = $1 and name = $2",
    jobset.name.first,
    jobset.name.second);
    [5.659]
    [5.31]
    ("update Jobsets set startTime = null where id = $1",
    jobset.name.id);
  • replacement in src/hydra-evaluator/hydra-evaluator.cc at line 430
    [5.920][5.920:1086]()
    ("update Jobsets set errorMsg = $1, lastCheckedTime = $2, errorTime = $2, fetchErrorMsg = null where project = $3 and name = $4",
    [5.920]
    [5.1086]
    ("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
    [5.1211][5.1211:1325]()
    jobset.name.first,
    jobset.name.second);
    [5.1211]
    [5.584]
    jobset.name.id);
  • replacement in src/hydra-evaluator/hydra-evaluator.cc at line 514
    [5.152][4.336:406]()
    evaluator.evalOne = JobsetIdentity(args[0], args[1]);
    [5.152]
    [5.218]
    evaluator.evalOne = JobsetSymbolicIdentity(args[0], args[1]);