UOINKJ2JBCRTZPFTAXDPRJOEUWWPJ43IGVWLRIRLIGHLBMWDOGDQC DETQRBBRPJ2ICGNLQVCD3H6A23ZHQNYPC5XVDISJYEFSM2GVLFWAC GEADFVZ5LXXFIE3VIP4UJ4AEI2VX57DXER47JA4IHH5BG3QNPAEAC 6HWHYPSW4Y2QBY3OWAJYEOOVICFFIWSL5OEAU2ZMLD3H4NXXKBOAC 67NFGL7DFEKIS7D7HC72XJ5CET6SE6AOE5F37XXFTBU6GZAZ64HQC R6B5CAFF3BWJPW6I5YGKXOKKCW6S7D7AHO2HLZVFUW3NL77ZW44QC ZWCTAZGLJZQNTYWTC2XQUKMILJF6JGDL5IND6QNYWK4FIGMLRFXAC 5NSQUYBSCEFAVO5XMM7PIAYAO4NELWWXB5QKC3LCUXCM4W4Q4MLQC OD5FSS5AJ3XRTV5Q4UQQF6JMBT6UUL7UUOMPPUBNOM6ZMVIHW35QC ZILILXXKP4Z64UGIXIPTQ3KXPV76LFGSXVFLMLCO2HJBCQ5GP6AQC LBNVQXUBEZ45SOTGVXK5UEZXIAIZTJLWZNUYFI4JZ6J65N3KPDVQC A52HEFHQNVNF2OUSWDSUYVVXLYR2UFCGOORPCN27CJJYA4UDJA3AC GJFYEU3SVP7TDSYXVZEYGKN4NVWSZX4754PPPTOYPRHUO5RMDWPQC LZO3C2KIACZ3HN72RBGWWIT5ED4RJMYKI3SAHXT6RIUPHDFL3STQC MOX7XJ2E3XISXA7V7T4W6GEAGECGWBZ4PYSLTYBVVR4VAKOI33CQC YLMZLL2UL5GNOIYYEZ63EZBEUFAHTR7EQTJFSBQDYR5HAOQHHZRQC LZVO64YG43JD7YMZSCTZNOBS5ROZA4FMPKJW2YOMHX2V5PTGBVWQC NEWDDAOFCDLYBXQCZNQ2GDH7HPAHVN3YRDL52ZYEMVA4YH6LBDXAC PMNWRTGJ4GVSMSSAWSUD57B26PCRAHMZIQ5SIWJIK7A74ENKEQLAC Z6MDQIGODVE7RXX5U5D64EEC2ZDEZ36Z4ZMPFYIHWBG42IXUDYFQC 3XTHEUMP2ZOMPQWE3S5QWHIHCEJNEXGDPQB3JUVZFPS3RFMY455QC T273UOB7WVB3NK52EBN65FQR6XP746D3BZM5SOYXEV6NCARIRYOQC U4TD3AIQXBJFFUORTMIC4IHZTVBORRKL2TZ2FSP4G665ECZOEMNAC 2GK5DOU7ODF4WBSN3QTD3WIO52VTL2LOAXKGCDEMMAQPTEO4A4HAC BDSD2JLV4V4I52SE7MCZLYNDC4XU27ZNH7TYKLT7CA7YR5WRMQBAC AFTXA575C6JTVLVXTYJUKQGPLBO3NFORLO5XDSPHNL44HXLRH4TAC OEPUOUNBNTHTFZVDXREGBQCKFRCWMVP2MDVK4OA47VK2DBKEWVYAC S5GCSCNSR43NZ23DR22G7E7ZWNCSQ44WUPXLESYHJCM7XBKED3SQC QL55ECJ6KMMBUOWQ6LKSOVN7L43CH4S6SPE2AQ3VX3KSGC32RP4AC JARRBLZDQ2JZWY7IUVPTOT7WJMBPMLFLF2MGLVGOYROAAISYGLSAC txn_do($c->model('DB')->schema, sub {error($c, "This build cannot be cancelled.")if $build->finished || $build->busy;# !!! Actually, it would be nice to be able to cancel busy# builds as well, but we would have to send a signal or# something to the build process.my $time = time();$build->update({ finished => 1, busy => 0, iscachedbuild => 0, buildstatus => 4 # = cancelled, starttime => $time, stoptime => $time});});$c->flash->{buildMsg} = "Build has been cancelled.";
my $n = cancelBuilds($c->model('DB')->schema, $c->model('DB::Builds')->search({ id => $build->id }));error($c, "This build cannot be cancelled.") if $n != 1;$c->flash->{successMsg} = "Build has been cancelled.";
sub cancel : Chained('eval') PathPart('cancel') Args(0) {my ($self, $c) = @_;requireProjectOwner($c, $c->stash->{eval}->project);my $n = cancelBuilds($c->model('DB')->schema, $c->stash->{eval}->builds);$c->flash->{successMsg} = "$n builds have been cancelled.";$c->res->redirect($c->uri_for($c->controller('JobsetEval')->action_for('view'), $c->req->captures));}
sub cancelBuilds($$) {my ($db, $builds) = @_;return txn_do($db, sub {$builds = $builds->search({ finished => 0, busy => 0 });my $n = $builds->count;my $time = time();$builds->update({ finished => 1,, iscachedbuild => 0, buildstatus => 4 # = cancelled, starttime => $time, stoptime => $time});return $n;});}