hydra/t/setup-notifications-jobset.pl
2021-12-13 15:37:56 -05:00

58 lines
1.2 KiB
Perl

use strict;
use warnings;
use LWP::UserAgent;
use JSON::MaybeXS;
my $ua = LWP::UserAgent->new;
$ua->cookie_jar({});
sub request_json {
my ($opts) = @_;
my $req = HTTP::Request->new;
$req->method($opts->{method} or "GET");
$req->uri("http://localhost:3000$opts->{uri}");
$req->header(Accept => "application/json");
$req->header(Referer => "http://localhost:3000/") if $opts->{method} eq "POST";
$req->content(encode_json($opts->{data})) if defined $opts->{data};
my $res = $ua->request($req);
print $res->as_string();
return $res;
}
my $result = request_json({
uri => "/login",
method => "POST",
data => {
username => "root",
password => "foobar"
}
});
$result = request_json({
uri => '/project/sample',
method => 'PUT',
data => {
displayname => "Sample",
enabled => "1",
visible => "1",
}
});
$result = request_json({
uri => '/jobset/sample/default',
method => 'PUT',
data => {
nixexprpath => "default.nix",
nixexprinput => "my-src",
inputs => {
"my-src" => {
type => "path",
value => "/run/jobset"
}
},
enabled => "1",
visible => "1",
checkinterval => "5",
keepnr => 1
}
});