mirror of
https://github.com/ohwgiles/laminar.git
synced 2026-10-17 08:40:54 +00:00
resolves #67: laminarc list jobs
Implements the following laminarc commands: - show-jobs - show-running - show-queued - abort
This commit is contained in:
@@ -117,8 +117,8 @@ public:
|
||||
|
||||
// Set a parameter on a running build
|
||||
kj::Promise<void> set(SetContext context) override {
|
||||
std::string jobName = context.getParams().getJobName();
|
||||
uint buildNum = context.getParams().getBuildNum();
|
||||
std::string jobName = context.getParams().getRun().getJob();
|
||||
uint buildNum = context.getParams().getRun().getBuildNum();
|
||||
LLOG(INFO, "RPC set", jobName, buildNum);
|
||||
|
||||
LaminarCi::MethodResult result = laminar.setParam(jobName, buildNum,
|
||||
@@ -129,6 +129,52 @@ public:
|
||||
return kj::READY_NOW;
|
||||
}
|
||||
|
||||
// List jobs in queue
|
||||
kj::Promise<void> listQueued(ListQueuedContext context) override {
|
||||
const std::list<std::shared_ptr<Run>>& queue = laminar.listQueuedJobs();
|
||||
auto res = context.getResults().initResult(queue.size());
|
||||
int i = 0;
|
||||
for(auto it : queue) {
|
||||
res.set(i++, it->name);
|
||||
}
|
||||
return kj::READY_NOW;
|
||||
}
|
||||
|
||||
// List running jobs
|
||||
kj::Promise<void> listRunning(ListRunningContext context) override {
|
||||
const RunSet& active = laminar.listRunningJobs();
|
||||
auto res = context.getResults().initResult(active.size());
|
||||
int i = 0;
|
||||
for(auto it : active) {
|
||||
res[i].setJob(it->name);
|
||||
res[i].setBuildNum(it->build);
|
||||
i++;
|
||||
}
|
||||
return kj::READY_NOW;
|
||||
}
|
||||
|
||||
// List known jobs
|
||||
kj::Promise<void> listKnown(ListKnownContext context) override {
|
||||
std::list<std::string> known = laminar.listKnownJobs();
|
||||
auto res = context.getResults().initResult(known.size());
|
||||
int i = 0;
|
||||
for(auto it : known) {
|
||||
res.set(i++, it);
|
||||
}
|
||||
return kj::READY_NOW;
|
||||
}
|
||||
|
||||
kj::Promise<void> abort(AbortContext context) override {
|
||||
std::string jobName = context.getParams().getRun().getJob();
|
||||
uint buildNum = context.getParams().getRun().getBuildNum();
|
||||
LLOG(INFO, "RPC abort", jobName, buildNum);
|
||||
LaminarCi::MethodResult result = laminar.abort(jobName, buildNum)
|
||||
? LaminarCi::MethodResult::SUCCESS
|
||||
: LaminarCi::MethodResult::FAILED;
|
||||
context.getResults().setResult(result);
|
||||
return kj::READY_NOW;
|
||||
}
|
||||
|
||||
private:
|
||||
// Helper to convert an RPC parameter list to a hash map
|
||||
ParamMap params(const capnp::List<LaminarCi::JobParam>::Reader& paramReader) {
|
||||
|
||||
Reference in New Issue
Block a user