Make queue runner internal status available under /queue-runner-status

[?]
Feb 18, 2016, 4:11 PM
3ECTCHKL2EQ4GPHGEGWK4CKPCAX7ERETRSPFGTV7IDYPZ2XZJ2ZAC

Dependencies

  • [2] FULDVXE2 Periodically dump/log status
  • [3] XV4AEKJC hydra-queue-runner: Handle status queries on the main thread
  • [4] GS4BE6TB Asynchronously compress build logs
  • [5] IE2PRAQU hydra-queue-runner: Send build notifications
  • [*] 24BMQDZA Start of single-process hydra-queue-runner
  • [*] J5UVLXOK * Start of a basic Catalyst web interface.
  • [*] LZVO64YG Merge in the first bits of the API work
  • [*] EFWN7JBV * Added a status page that shows all the currently executing build steps.

Change contents

  • replacement in src/hydra-queue-runner/hydra-queue-runner.cc at line 708
    [3.469][3.469:524]()
    receiver dumpStatus(*conn, "dump_status");
    [3.469]
    [3.524]
    receiver dumpStatus_(*conn, "dump_status");
  • replacement in src/hydra-queue-runner/hydra-queue-runner.cc at line 711
    [2.278][2.278:329]()
    State::dumpStatus(*conn, timeout);
    [2.278]
    [3.674]
    dumpStatus(*conn, timeout);
  • edit in src/lib/Hydra/Controller/Root.pm at line 118
    [9.23098]
    [10.646]
    }
    sub queue_runner_status :Local :Path('queue-runner-status') :Args(0) :ActionClass('REST') { }
    sub queue_runner_status_GET {
    my ($self, $c) = @_;
    #my $status = from_json($c->model('DB::SystemStatus')->find('queue-runner')->status);
    my $status = from_json(`hydra-queue-runner --status`);
    if ($?) { $status->{status} = "unknown"; }
    my $json = JSON->new->pretty()->canonical();
    $c->stash->{template} = 'queue-runner-status.tt';
    $c->stash->{status} = $json->encode($status);
    $self->status_ok($c, entity => $status);