diff --git a/hydra-api.yaml b/hydra-api.yaml
index 766cfd0b..6b67a9fe 100644
--- a/hydra-api.yaml
+++ b/hydra-api.yaml
@@ -589,17 +589,15 @@ components:
name:
description: name of the input
type: string
+ value:
+ description: value of the input
+ type: string
type:
description: type of input
type: string
emailresponsible:
description: whether or not to email responsible parties
type: boolean
- jobsetinputalts:
- type: array
- description: ???
- items:
- type: string
Jobset:
type: object
@@ -644,8 +642,8 @@ components:
enableemail:
description: when true the jobset sends emails when previously-successful builds fail
type: boolean
- hidden:
- description: when false the jobset is visible in the web frontend
+ visible:
+ description: when true the jobset is visible in the web frontend
type: boolean
emailoverride:
description: email address to send notices to instead of the package maintainer (can be a comma separated list)
@@ -669,12 +667,12 @@ components:
type: integer
type:
description: the type of the jobset
- type: string
+ type: integer
flake:
nullable: true
description: the flake uri to evaluate
type: string
- jobsetinputs:
+ inputs:
description: inputs configured for this jobset
type: object
additionalProperties:
diff --git a/src/lib/Hydra/Component/ToJSON.pm b/src/lib/Hydra/Component/ToJSON.pm
index e8f439de..727a5b1f 100644
--- a/src/lib/Hydra/Component/ToJSON.pm
+++ b/src/lib/Hydra/Component/ToJSON.pm
@@ -10,6 +10,10 @@ use JSON;
sub TO_JSON {
my $self = shift;
+ if ($self->can("as_json")) {
+ return $self->as_json();
+ }
+
my $hint = $self->json_hint;
my %json = ();
diff --git a/src/lib/Hydra/Controller/Jobset.pm b/src/lib/Hydra/Controller/Jobset.pm
index b391e231..24776994 100644
--- a/src/lib/Hydra/Controller/Jobset.pm
+++ b/src/lib/Hydra/Controller/Jobset.pm
@@ -270,8 +270,8 @@ sub updateJobset {
$jobset->jobsetinputs->delete;
if ($type == 0) {
- foreach my $name (keys %{$c->stash->{params}->{jobsetinputs}}) {
- my $inputData = $c->stash->{params}->{jobsetinputs}->{$name};
+ foreach my $name (keys %{$c->stash->{params}->{inputs}}) {
+ my $inputData = $c->stash->{params}->{inputs}->{$name};
my $type = $inputData->{type};
my $value = $inputData->{value};
my $emailresponsible = defined $inputData->{emailresponsible} ? 1 : 0;
diff --git a/src/lib/Hydra/Schema/JobsetInputs.pm b/src/lib/Hydra/Schema/JobsetInputs.pm
index d0d1665d..8ac2a560 100644
--- a/src/lib/Hydra/Schema/JobsetInputs.pm
+++ b/src/lib/Hydra/Schema/JobsetInputs.pm
@@ -134,21 +134,22 @@ __PACKAGE__->has_many(
# Created by DBIx::Class::Schema::Loader v0.07049 @ 2020-02-06 12:22:36
# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:5uKwEhDXso4IR1TFmwRxiA
-my %hint = (
- string_columns => [
- "name",
- "type"
- ],
- boolean_columns => [
- "emailresponsible"
- ],
- relations => {
- "jobsetinputalts" => "value"
- }
-);
+sub as_json {
+ my $self = shift;
-sub json_hint {
- return \%hint;
+ my ($input) = $self->jobsetinputalts;
+
+ my %json = (
+ # string_columns
+ "name" => $self->get_column("name") // "",
+ "type" => $self->get_column("type") // "",
+ "value" => $input->value // "",
+
+ # boolean_columns
+ "emailresponsible" => $self->get_column("emailresponsible") ? JSON::true : JSON::false,
+ );
+
+ return \%json;
}
1;
diff --git a/src/lib/Hydra/Schema/Jobsets.pm b/src/lib/Hydra/Schema/Jobsets.pm
index ee93f349..fcb5772e 100644
--- a/src/lib/Hydra/Schema/Jobsets.pm
+++ b/src/lib/Hydra/Schema/Jobsets.pm
@@ -410,40 +410,40 @@ __PACKAGE__->add_column(
"+id" => { retrieve_on_insert => 1 }
);
-my %hint = (
- columns => [
- "errortime",
- "lastcheckedtime",
- "triggertime",
- "enabled",
- "keepnr",
- "checkinterval",
- "schedulingshares",
- "starttime"
- ],
- string_columns => [
- "name",
- "project",
- "description",
- "nixexprinput",
- "nixexprpath",
- "errormsg",
- "emailoverride",
- "fetcherrormsg",
- "type",
- "flake"
- ],
- boolean_columns => [
- "enableemail",
- "hidden"
- ],
- eager_relations => {
- jobsetinputs => "name"
- }
-);
+sub as_json {
+ my $self = shift;
-sub json_hint {
- return \%hint;
+ my %json = (
+ # columns
+ "errortime" => $self->get_column("errortime"),
+ "lastcheckedtime" => $self->get_column("lastcheckedtime"),
+ "triggertime" => $self->get_column("triggertime"),
+ "enabled" => $self->get_column("enabled"),
+ "keepnr" => $self->get_column("keepnr"),
+ "checkinterval" => $self->get_column("checkinterval"),
+ "schedulingshares" => $self->get_column("schedulingshares"),
+ "starttime" => $self->get_column("starttime"),
+
+ # string_columns
+ "name" => $self->get_column("name") // "",
+ "project" => $self->get_column("project") // "",
+ "description" => $self->get_column("description") // "",
+ "nixexprinput" => $self->get_column("nixexprinput") // "",
+ "nixexprpath" => $self->get_column("nixexprpath") // "",
+ "errormsg" => $self->get_column("errormsg") // "",
+ "emailoverride" => $self->get_column("emailoverride") // "",
+ "fetcherrormsg" => $self->get_column("fetcherrormsg") // "",
+ "type" => $self->get_column("type") // "",
+ "flake" => $self->get_column("flake") // "",
+
+ # boolean_columns
+ "enableemail" => $self->get_column("enableemail") ? JSON::true : JSON::false,
+ "visible" => $self->get_column("hidden") ? JSON::false : JSON::true,
+
+ "inputs" => { map { $_->name => $_ } $self->jobsetinputs }
+ );
+
+ return \%json;
}
1;
diff --git a/src/root/edit-jobset.tt b/src/root/edit-jobset.tt
index 4243f1fa..22874815 100644
--- a/src/root/edit-jobset.tt
+++ b/src/root/edit-jobset.tt
@@ -46,8 +46,8 @@
- Input name Type Value Notify committers