From 86453e7e1135bd89d90b10d4e2542bb3c83a72ef Mon Sep 17 00:00:00 2001 From: Jan Eitzinger Date: Tue, 5 Aug 2025 10:23:54 +0200 Subject: [PATCH] Port to new job structs Backup commit: Does not build. --- go.mod | 10 +- go.sum | 24 +- internal/api/api_test.go | 1 - internal/api/job.go | 2 +- internal/graph/generated/generated.go | 1382 ++--------------- internal/graph/schema.resolvers.go | 9 +- internal/importer/handleImport.go | 2 +- internal/repository/job.go | 2 +- .../sqlite3/09_add-job-cache.up.sql | 53 +- internal/tagger/classifyJob.go | 14 +- pkg/archive/fsBackend_test.go | 8 +- 11 files changed, 195 insertions(+), 1312 deletions(-) diff --git a/go.mod b/go.mod index df742d7..554ea56 100644 --- a/go.mod +++ b/go.mod @@ -5,8 +5,8 @@ go 1.23.5 toolchain go1.24.1 require ( - github.com/99designs/gqlgen v0.17.76 - github.com/ClusterCockpit/cc-lib v0.6.0 + github.com/99designs/gqlgen v0.17.78 + github.com/ClusterCockpit/cc-lib v0.7.0 github.com/Masterminds/squirrel v1.5.4 github.com/coreos/go-oidc/v3 v3.12.0 github.com/expr-lang/expr v1.17.5 @@ -22,12 +22,12 @@ require ( github.com/jmoiron/sqlx v1.4.0 github.com/joho/godotenv v1.5.1 github.com/mattn/go-sqlite3 v1.14.24 - github.com/prometheus/client_golang v1.22.0 + github.com/prometheus/client_golang v1.23.0 github.com/prometheus/common v0.65.0 github.com/qustavo/sqlhooks/v2 v2.1.0 github.com/santhosh-tekuri/jsonschema/v5 v5.3.1 github.com/swaggo/http-swagger v1.3.4 - github.com/swaggo/swag v1.16.5 + github.com/swaggo/swag v1.16.6 github.com/vektah/gqlparser/v2 v2.5.30 golang.org/x/crypto v0.40.0 golang.org/x/oauth2 v0.30.0 @@ -50,7 +50,7 @@ require ( github.com/go-openapi/jsonreference v0.21.0 // indirect github.com/go-openapi/spec v0.21.0 // indirect github.com/go-openapi/swag v0.23.1 // indirect - github.com/go-viper/mapstructure/v2 v2.3.0 // indirect + github.com/go-viper/mapstructure/v2 v2.4.0 // indirect github.com/google/uuid v1.6.0 // indirect github.com/gorilla/securecookie v1.1.2 // indirect github.com/gorilla/websocket v1.5.3 // indirect diff --git a/go.sum b/go.sum index 1524b5a..6f61908 100644 --- a/go.sum +++ b/go.sum @@ -1,13 +1,13 @@ filippo.io/edwards25519 v1.1.0 h1:FNf4tywRC1HmFuKW5xopWpigGjJKiJSV0Cqo0cJWDaA= filippo.io/edwards25519 v1.1.0/go.mod h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4VDT4= -github.com/99designs/gqlgen v0.17.76 h1:YsJBcfACWmXWU2t1yCjoGdOmqcTfOFpjbLAE443fmYI= -github.com/99designs/gqlgen v0.17.76/go.mod h1:miiU+PkAnTIDKMQ1BseUOIVeQHoiwYDZGCswoxl7xec= +github.com/99designs/gqlgen v0.17.78 h1:bhIi7ynrc3js2O8wu1sMQj1YHPENDt3jQGyifoBvoVI= +github.com/99designs/gqlgen v0.17.78/go.mod h1:yI/o31IauG2kX0IsskM4R894OCCG1jXJORhtLQqB7Oc= github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 h1:L/gRVlceqvL25UVaW/CKtUDjefjrs0SPonmDGUVOYP0= github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= github.com/Azure/go-ntlmssp v0.0.0-20221128193559-754e69321358 h1:mFRzDkZVAjdal+s7s0MwaRv9igoPqLRdzOLzw/8Xvq8= github.com/Azure/go-ntlmssp v0.0.0-20221128193559-754e69321358/go.mod h1:chxPXzSsl7ZWRAuOIE23GDNzjWuZquvFlgA8xmpunjU= -github.com/ClusterCockpit/cc-lib v0.6.0 h1:uK/6DLBkkLznSWD28wmGGumMAa5ovD9rPaGS4Miw9W8= -github.com/ClusterCockpit/cc-lib v0.6.0/go.mod h1:0zLbJprwOWLA+OSNQ+OlUKLscZszwf9J2j8Ly5ztplk= +github.com/ClusterCockpit/cc-lib v0.7.0 h1:THuSYrMcn9pSbrMditSI1LMOluq9TnM0/aVId4uK1Hc= +github.com/ClusterCockpit/cc-lib v0.7.0/go.mod h1:TD1PS8pL2RDvEWaqs8VNejoTSm5OawI9Dcc0CTY/yWQ= github.com/KyleBanks/depth v1.2.1 h1:5h8fQADFrWtarTdtDudMmGsC7GPbOAu6RVB3ffsVFHc= github.com/KyleBanks/depth v1.2.1/go.mod h1:jzSb9d0L43HxTQfT+oSA1EEp2q+ne2uh6XgeJcm8brE= github.com/Masterminds/squirrel v1.5.4 h1:uUcX/aBc8O7Fg9kaISIUsHXdKuqehiXAMQTYX8afzqM= @@ -83,8 +83,8 @@ github.com/go-sql-driver/mysql v1.4.1/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG github.com/go-sql-driver/mysql v1.8.1/go.mod h1:wEBSXgmK//2ZFJyE+qWnIsVGmvmEKlqwuVSjsCm7DZg= github.com/go-sql-driver/mysql v1.9.0 h1:Y0zIbQXhQKmQgTp44Y1dp3wTXcn804QoTptLZT1vtvo= github.com/go-sql-driver/mysql v1.9.0/go.mod h1:pDetrLJeA3oMujJuvXc8RJoasr589B6A9fwzD3QMrqw= -github.com/go-viper/mapstructure/v2 v2.3.0 h1:27XbWsHIqhbdR5TIC911OfYvgSaW93HM+dX7970Q7jk= -github.com/go-viper/mapstructure/v2 v2.3.0/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM= +github.com/go-viper/mapstructure/v2 v2.4.0 h1:EBsztssimR/CONLSZZ04E8qAkxNYq4Qp9LvH92wZUgs= +github.com/go-viper/mapstructure/v2 v2.4.0/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang-jwt/jwt/v5 v5.2.2 h1:Rl4B7itRWVtYIHFrSNd7vhTiz9UpLdi6gZhZ3wEeDy8= @@ -187,8 +187,8 @@ github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f h1:KUppIJq7/+SVif2QVs3tOP0zanoHgBEVAwHxUSIzRqU= github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= -github.com/nats-io/nats.go v1.43.0 h1:uRFZ2FEoRvP64+UUhaTokyS18XBCR/xM2vQZKO4i8ug= -github.com/nats-io/nats.go v1.43.0/go.mod h1:iRWIPokVIFbVijxuMQq4y9ttaBTMe0SFdlZfMDd+33g= +github.com/nats-io/nats.go v1.44.0 h1:ECKVrDLdh/kDPV1g0gAQ+2+m2KprqZK5O/eJAyAnH2M= +github.com/nats-io/nats.go v1.44.0/go.mod h1:iRWIPokVIFbVijxuMQq4y9ttaBTMe0SFdlZfMDd+33g= github.com/nats-io/nkeys v0.4.11 h1:q44qGV008kYd9W1b1nEBkNzvnWxtRSQ7A8BoqRrcfa0= github.com/nats-io/nkeys v0.4.11/go.mod h1:szDimtgmfOi9n25JpfIdGw12tZFYXqhGxjhVxsatHVE= github.com/nats-io/nuid v1.0.1 h1:5iA8DT8V7q8WK2EScv2padNa/rTESc1KdnPw4TC2paw= @@ -204,8 +204,8 @@ github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/prometheus/client_golang v1.22.0 h1:rb93p9lokFEsctTys46VnV1kLCDpVZ0a/Y92Vm0Zc6Q= -github.com/prometheus/client_golang v1.22.0/go.mod h1:R7ljNsLXhuQXYZYtw6GAE9AZg8Y7vEW5scdCXrWRXC0= +github.com/prometheus/client_golang v1.23.0 h1:ust4zpdl9r4trLY/gSjlm07PuiBq2ynaXXlptpfy8Uc= +github.com/prometheus/client_golang v1.23.0/go.mod h1:i/o0R9ByOnHX0McrTMTyhYvKE4haaf2mW08I+jGAjEE= github.com/prometheus/client_model v0.6.2 h1:oBsgwpGs7iVziMvrGhE53c/GrLUsZdHnqNwqPLxwZyk= github.com/prometheus/client_model v0.6.2/go.mod h1:y3m2F6Gdpfy6Ut/GBsUqTWZqCUvMVzSfMLjcu6wAwpE= github.com/prometheus/common v0.65.0 h1:QDwzd+G1twt//Kwj/Ww6E9FQq1iVMmODnILtW1t2VzE= @@ -241,8 +241,8 @@ github.com/swaggo/files v1.0.1 h1:J1bVJ4XHZNq0I46UU90611i9/YzdrF7x92oX1ig5IdE= github.com/swaggo/files v1.0.1/go.mod h1:0qXmMNH6sXNf+73t65aKeB+ApmgxdnkQzVTAj2uaMUg= github.com/swaggo/http-swagger v1.3.4 h1:q7t/XLx0n15H1Q9/tk3Y9L4n210XzJF5WtnDX64a5ww= github.com/swaggo/http-swagger v1.3.4/go.mod h1:9dAh0unqMBAlbp1uE2Uc2mQTxNMU/ha4UbucIg1MFkQ= -github.com/swaggo/swag v1.16.5 h1:nMf2fEV1TetMTJb4XzD0Lz7jFfKJmJKGTygEey8NSxM= -github.com/swaggo/swag v1.16.5/go.mod h1:ngP2etMK5a0P3QBizic5MEwpRmluJZPHjXcMoj4Xesg= +github.com/swaggo/swag v1.16.6 h1:qBNcx53ZaX+M5dxVyTrgQ0PJ/ACK+NzhwcbieTt+9yI= +github.com/swaggo/swag v1.16.6/go.mod h1:ngP2etMK5a0P3QBizic5MEwpRmluJZPHjXcMoj4Xesg= github.com/urfave/cli/v2 v2.27.7 h1:bH59vdhbjLv3LAvIu6gd0usJHgoTTPhCFib8qqOwXYU= github.com/urfave/cli/v2 v2.27.7/go.mod h1:CyNAG/xg+iAOg0N4MPGZqVmv2rCoP267496AOXUZjA4= github.com/vektah/gqlparser/v2 v2.5.30 h1:EqLwGAFLIzt1wpx1IPpY67DwUujF1OfzgEyDsLrN6kE= diff --git a/internal/api/api_test.go b/internal/api/api_test.go index eeb093e..9f47a1f 100644 --- a/internal/api/api_test.go +++ b/internal/api/api_test.go @@ -297,7 +297,6 @@ func TestRestApi(t *testing.T) { job.NumNodes != 1 || job.NumHWThreads != 8 || job.NumAcc != 0 || - job.Exclusive != 1 || job.MonitoringStatus != 1 || job.SMT != 1 || !reflect.DeepEqual(job.Resources, []*schema.Resource{{Hostname: "host123", HWThreads: []int{0, 1, 2, 3, 4, 5, 6, 7}}}) || diff --git a/internal/api/job.go b/internal/api/job.go index 21e42f8..9367bcc 100644 --- a/internal/api/job.go +++ b/internal/api/job.go @@ -647,7 +647,7 @@ func (api *RestApi) removeTags(rw http.ResponseWriter, r *http.Request) { // @router /api/jobs/start_job/ [post] func (api *RestApi) startJob(rw http.ResponseWriter, r *http.Request) { req := schema.Job{ - Exclusive: 1, + Shared: "none", MonitoringStatus: schema.MonitoringStatusRunningOrArchiving, } if err := decode(r.Body, &req); err != nil { diff --git a/internal/graph/generated/generated.go b/internal/graph/generated/generated.go index a6899a1..3a85858 100644 --- a/internal/graph/generated/generated.go +++ b/internal/graph/generated/generated.go @@ -425,6 +425,8 @@ type ClusterResolver interface { type JobResolver interface { StartTime(ctx context.Context, obj *schema.Job) (*time.Time, error) + Exclusive(ctx context.Context, obj *schema.Job) (int, error) + Tags(ctx context.Context, obj *schema.Job) ([]*schema.Tag, error) ConcurrentJobs(ctx context.Context, obj *schema.Job) (*model.JobLinkResultList, error) @@ -2853,1701 +2855,504 @@ var parsedSchema = gqlparser.MustLoadSchema(sources...) func (ec *executionContext) field_Mutation_addTagsToJob_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) { var err error args := map[string]any{} - arg0, err := ec.field_Mutation_addTagsToJob_argsJob(ctx, rawArgs) + arg0, err := graphql.ProcessArgField(ctx, rawArgs, "job", ec.unmarshalNID2string) if err != nil { return nil, err } args["job"] = arg0 - arg1, err := ec.field_Mutation_addTagsToJob_argsTagIds(ctx, rawArgs) + arg1, err := graphql.ProcessArgField(ctx, rawArgs, "tagIds", ec.unmarshalNID2ᚕstringᚄ) if err != nil { return nil, err } args["tagIds"] = arg1 return args, nil } -func (ec *executionContext) field_Mutation_addTagsToJob_argsJob( - ctx context.Context, - rawArgs map[string]any, -) (string, error) { - if _, ok := rawArgs["job"]; !ok { - var zeroVal string - return zeroVal, nil - } - - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("job")) - if tmp, ok := rawArgs["job"]; ok { - return ec.unmarshalNID2string(ctx, tmp) - } - - var zeroVal string - return zeroVal, nil -} - -func (ec *executionContext) field_Mutation_addTagsToJob_argsTagIds( - ctx context.Context, - rawArgs map[string]any, -) ([]string, error) { - if _, ok := rawArgs["tagIds"]; !ok { - var zeroVal []string - return zeroVal, nil - } - - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("tagIds")) - if tmp, ok := rawArgs["tagIds"]; ok { - return ec.unmarshalNID2ᚕstringᚄ(ctx, tmp) - } - - var zeroVal []string - return zeroVal, nil -} func (ec *executionContext) field_Mutation_createTag_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) { var err error args := map[string]any{} - arg0, err := ec.field_Mutation_createTag_argsType(ctx, rawArgs) + arg0, err := graphql.ProcessArgField(ctx, rawArgs, "type", ec.unmarshalNString2string) if err != nil { return nil, err } args["type"] = arg0 - arg1, err := ec.field_Mutation_createTag_argsName(ctx, rawArgs) + arg1, err := graphql.ProcessArgField(ctx, rawArgs, "name", ec.unmarshalNString2string) if err != nil { return nil, err } args["name"] = arg1 - arg2, err := ec.field_Mutation_createTag_argsScope(ctx, rawArgs) + arg2, err := graphql.ProcessArgField(ctx, rawArgs, "scope", ec.unmarshalNString2string) if err != nil { return nil, err } args["scope"] = arg2 return args, nil } -func (ec *executionContext) field_Mutation_createTag_argsType( - ctx context.Context, - rawArgs map[string]any, -) (string, error) { - if _, ok := rawArgs["type"]; !ok { - var zeroVal string - return zeroVal, nil - } - - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("type")) - if tmp, ok := rawArgs["type"]; ok { - return ec.unmarshalNString2string(ctx, tmp) - } - - var zeroVal string - return zeroVal, nil -} - -func (ec *executionContext) field_Mutation_createTag_argsName( - ctx context.Context, - rawArgs map[string]any, -) (string, error) { - if _, ok := rawArgs["name"]; !ok { - var zeroVal string - return zeroVal, nil - } - - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("name")) - if tmp, ok := rawArgs["name"]; ok { - return ec.unmarshalNString2string(ctx, tmp) - } - - var zeroVal string - return zeroVal, nil -} - -func (ec *executionContext) field_Mutation_createTag_argsScope( - ctx context.Context, - rawArgs map[string]any, -) (string, error) { - if _, ok := rawArgs["scope"]; !ok { - var zeroVal string - return zeroVal, nil - } - - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("scope")) - if tmp, ok := rawArgs["scope"]; ok { - return ec.unmarshalNString2string(ctx, tmp) - } - - var zeroVal string - return zeroVal, nil -} func (ec *executionContext) field_Mutation_deleteTag_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) { var err error args := map[string]any{} - arg0, err := ec.field_Mutation_deleteTag_argsID(ctx, rawArgs) + arg0, err := graphql.ProcessArgField(ctx, rawArgs, "id", ec.unmarshalNID2string) if err != nil { return nil, err } args["id"] = arg0 return args, nil } -func (ec *executionContext) field_Mutation_deleteTag_argsID( - ctx context.Context, - rawArgs map[string]any, -) (string, error) { - if _, ok := rawArgs["id"]; !ok { - var zeroVal string - return zeroVal, nil - } - - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("id")) - if tmp, ok := rawArgs["id"]; ok { - return ec.unmarshalNID2string(ctx, tmp) - } - - var zeroVal string - return zeroVal, nil -} func (ec *executionContext) field_Mutation_removeTagFromList_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) { var err error args := map[string]any{} - arg0, err := ec.field_Mutation_removeTagFromList_argsTagIds(ctx, rawArgs) + arg0, err := graphql.ProcessArgField(ctx, rawArgs, "tagIds", ec.unmarshalNID2ᚕstringᚄ) if err != nil { return nil, err } args["tagIds"] = arg0 return args, nil } -func (ec *executionContext) field_Mutation_removeTagFromList_argsTagIds( - ctx context.Context, - rawArgs map[string]any, -) ([]string, error) { - if _, ok := rawArgs["tagIds"]; !ok { - var zeroVal []string - return zeroVal, nil - } - - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("tagIds")) - if tmp, ok := rawArgs["tagIds"]; ok { - return ec.unmarshalNID2ᚕstringᚄ(ctx, tmp) - } - - var zeroVal []string - return zeroVal, nil -} func (ec *executionContext) field_Mutation_removeTagsFromJob_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) { var err error args := map[string]any{} - arg0, err := ec.field_Mutation_removeTagsFromJob_argsJob(ctx, rawArgs) + arg0, err := graphql.ProcessArgField(ctx, rawArgs, "job", ec.unmarshalNID2string) if err != nil { return nil, err } args["job"] = arg0 - arg1, err := ec.field_Mutation_removeTagsFromJob_argsTagIds(ctx, rawArgs) + arg1, err := graphql.ProcessArgField(ctx, rawArgs, "tagIds", ec.unmarshalNID2ᚕstringᚄ) if err != nil { return nil, err } args["tagIds"] = arg1 return args, nil } -func (ec *executionContext) field_Mutation_removeTagsFromJob_argsJob( - ctx context.Context, - rawArgs map[string]any, -) (string, error) { - if _, ok := rawArgs["job"]; !ok { - var zeroVal string - return zeroVal, nil - } - - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("job")) - if tmp, ok := rawArgs["job"]; ok { - return ec.unmarshalNID2string(ctx, tmp) - } - - var zeroVal string - return zeroVal, nil -} - -func (ec *executionContext) field_Mutation_removeTagsFromJob_argsTagIds( - ctx context.Context, - rawArgs map[string]any, -) ([]string, error) { - if _, ok := rawArgs["tagIds"]; !ok { - var zeroVal []string - return zeroVal, nil - } - - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("tagIds")) - if tmp, ok := rawArgs["tagIds"]; ok { - return ec.unmarshalNID2ᚕstringᚄ(ctx, tmp) - } - - var zeroVal []string - return zeroVal, nil -} func (ec *executionContext) field_Mutation_updateConfiguration_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) { var err error args := map[string]any{} - arg0, err := ec.field_Mutation_updateConfiguration_argsName(ctx, rawArgs) + arg0, err := graphql.ProcessArgField(ctx, rawArgs, "name", ec.unmarshalNString2string) if err != nil { return nil, err } args["name"] = arg0 - arg1, err := ec.field_Mutation_updateConfiguration_argsValue(ctx, rawArgs) + arg1, err := graphql.ProcessArgField(ctx, rawArgs, "value", ec.unmarshalNString2string) if err != nil { return nil, err } args["value"] = arg1 return args, nil } -func (ec *executionContext) field_Mutation_updateConfiguration_argsName( - ctx context.Context, - rawArgs map[string]any, -) (string, error) { - if _, ok := rawArgs["name"]; !ok { - var zeroVal string - return zeroVal, nil - } - - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("name")) - if tmp, ok := rawArgs["name"]; ok { - return ec.unmarshalNString2string(ctx, tmp) - } - - var zeroVal string - return zeroVal, nil -} - -func (ec *executionContext) field_Mutation_updateConfiguration_argsValue( - ctx context.Context, - rawArgs map[string]any, -) (string, error) { - if _, ok := rawArgs["value"]; !ok { - var zeroVal string - return zeroVal, nil - } - - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("value")) - if tmp, ok := rawArgs["value"]; ok { - return ec.unmarshalNString2string(ctx, tmp) - } - - var zeroVal string - return zeroVal, nil -} func (ec *executionContext) field_Query___type_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) { var err error args := map[string]any{} - arg0, err := ec.field_Query___type_argsName(ctx, rawArgs) + arg0, err := graphql.ProcessArgField(ctx, rawArgs, "name", ec.unmarshalNString2string) if err != nil { return nil, err } args["name"] = arg0 return args, nil } -func (ec *executionContext) field_Query___type_argsName( - ctx context.Context, - rawArgs map[string]any, -) (string, error) { - if _, ok := rawArgs["name"]; !ok { - var zeroVal string - return zeroVal, nil - } - - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("name")) - if tmp, ok := rawArgs["name"]; ok { - return ec.unmarshalNString2string(ctx, tmp) - } - - var zeroVal string - return zeroVal, nil -} func (ec *executionContext) field_Query_allocatedNodes_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) { var err error args := map[string]any{} - arg0, err := ec.field_Query_allocatedNodes_argsCluster(ctx, rawArgs) + arg0, err := graphql.ProcessArgField(ctx, rawArgs, "cluster", ec.unmarshalNString2string) if err != nil { return nil, err } args["cluster"] = arg0 return args, nil } -func (ec *executionContext) field_Query_allocatedNodes_argsCluster( - ctx context.Context, - rawArgs map[string]any, -) (string, error) { - if _, ok := rawArgs["cluster"]; !ok { - var zeroVal string - return zeroVal, nil - } - - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("cluster")) - if tmp, ok := rawArgs["cluster"]; ok { - return ec.unmarshalNString2string(ctx, tmp) - } - - var zeroVal string - return zeroVal, nil -} func (ec *executionContext) field_Query_jobMetrics_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) { var err error args := map[string]any{} - arg0, err := ec.field_Query_jobMetrics_argsID(ctx, rawArgs) + arg0, err := graphql.ProcessArgField(ctx, rawArgs, "id", ec.unmarshalNID2string) if err != nil { return nil, err } args["id"] = arg0 - arg1, err := ec.field_Query_jobMetrics_argsMetrics(ctx, rawArgs) + arg1, err := graphql.ProcessArgField(ctx, rawArgs, "metrics", ec.unmarshalOString2ᚕstringᚄ) if err != nil { return nil, err } args["metrics"] = arg1 - arg2, err := ec.field_Query_jobMetrics_argsScopes(ctx, rawArgs) + arg2, err := graphql.ProcessArgField(ctx, rawArgs, "scopes", ec.unmarshalOMetricScope2ᚕgithubᚗcomᚋClusterCockpitᚋccᚑlibᚋschemaᚐMetricScopeᚄ) if err != nil { return nil, err } args["scopes"] = arg2 - arg3, err := ec.field_Query_jobMetrics_argsResolution(ctx, rawArgs) + arg3, err := graphql.ProcessArgField(ctx, rawArgs, "resolution", ec.unmarshalOInt2ᚖint) if err != nil { return nil, err } args["resolution"] = arg3 return args, nil } -func (ec *executionContext) field_Query_jobMetrics_argsID( - ctx context.Context, - rawArgs map[string]any, -) (string, error) { - if _, ok := rawArgs["id"]; !ok { - var zeroVal string - return zeroVal, nil - } - - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("id")) - if tmp, ok := rawArgs["id"]; ok { - return ec.unmarshalNID2string(ctx, tmp) - } - - var zeroVal string - return zeroVal, nil -} - -func (ec *executionContext) field_Query_jobMetrics_argsMetrics( - ctx context.Context, - rawArgs map[string]any, -) ([]string, error) { - if _, ok := rawArgs["metrics"]; !ok { - var zeroVal []string - return zeroVal, nil - } - - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("metrics")) - if tmp, ok := rawArgs["metrics"]; ok { - return ec.unmarshalOString2ᚕstringᚄ(ctx, tmp) - } - - var zeroVal []string - return zeroVal, nil -} - -func (ec *executionContext) field_Query_jobMetrics_argsScopes( - ctx context.Context, - rawArgs map[string]any, -) ([]schema.MetricScope, error) { - if _, ok := rawArgs["scopes"]; !ok { - var zeroVal []schema.MetricScope - return zeroVal, nil - } - - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("scopes")) - if tmp, ok := rawArgs["scopes"]; ok { - return ec.unmarshalOMetricScope2ᚕgithubᚗcomᚋClusterCockpitᚋccᚑlibᚋschemaᚐMetricScopeᚄ(ctx, tmp) - } - - var zeroVal []schema.MetricScope - return zeroVal, nil -} - -func (ec *executionContext) field_Query_jobMetrics_argsResolution( - ctx context.Context, - rawArgs map[string]any, -) (*int, error) { - if _, ok := rawArgs["resolution"]; !ok { - var zeroVal *int - return zeroVal, nil - } - - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("resolution")) - if tmp, ok := rawArgs["resolution"]; ok { - return ec.unmarshalOInt2ᚖint(ctx, tmp) - } - - var zeroVal *int - return zeroVal, nil -} func (ec *executionContext) field_Query_jobStats_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) { var err error args := map[string]any{} - arg0, err := ec.field_Query_jobStats_argsID(ctx, rawArgs) + arg0, err := graphql.ProcessArgField(ctx, rawArgs, "id", ec.unmarshalNID2string) if err != nil { return nil, err } args["id"] = arg0 - arg1, err := ec.field_Query_jobStats_argsMetrics(ctx, rawArgs) + arg1, err := graphql.ProcessArgField(ctx, rawArgs, "metrics", ec.unmarshalOString2ᚕstringᚄ) if err != nil { return nil, err } args["metrics"] = arg1 return args, nil } -func (ec *executionContext) field_Query_jobStats_argsID( - ctx context.Context, - rawArgs map[string]any, -) (string, error) { - if _, ok := rawArgs["id"]; !ok { - var zeroVal string - return zeroVal, nil - } - - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("id")) - if tmp, ok := rawArgs["id"]; ok { - return ec.unmarshalNID2string(ctx, tmp) - } - - var zeroVal string - return zeroVal, nil -} - -func (ec *executionContext) field_Query_jobStats_argsMetrics( - ctx context.Context, - rawArgs map[string]any, -) ([]string, error) { - if _, ok := rawArgs["metrics"]; !ok { - var zeroVal []string - return zeroVal, nil - } - - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("metrics")) - if tmp, ok := rawArgs["metrics"]; ok { - return ec.unmarshalOString2ᚕstringᚄ(ctx, tmp) - } - - var zeroVal []string - return zeroVal, nil -} func (ec *executionContext) field_Query_job_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) { var err error args := map[string]any{} - arg0, err := ec.field_Query_job_argsID(ctx, rawArgs) + arg0, err := graphql.ProcessArgField(ctx, rawArgs, "id", ec.unmarshalNID2string) if err != nil { return nil, err } args["id"] = arg0 return args, nil } -func (ec *executionContext) field_Query_job_argsID( - ctx context.Context, - rawArgs map[string]any, -) (string, error) { - if _, ok := rawArgs["id"]; !ok { - var zeroVal string - return zeroVal, nil - } - - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("id")) - if tmp, ok := rawArgs["id"]; ok { - return ec.unmarshalNID2string(ctx, tmp) - } - - var zeroVal string - return zeroVal, nil -} func (ec *executionContext) field_Query_jobsFootprints_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) { var err error args := map[string]any{} - arg0, err := ec.field_Query_jobsFootprints_argsFilter(ctx, rawArgs) + arg0, err := graphql.ProcessArgField(ctx, rawArgs, "filter", ec.unmarshalOJobFilter2ᚕᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐJobFilterᚄ) if err != nil { return nil, err } args["filter"] = arg0 - arg1, err := ec.field_Query_jobsFootprints_argsMetrics(ctx, rawArgs) + arg1, err := graphql.ProcessArgField(ctx, rawArgs, "metrics", ec.unmarshalNString2ᚕstringᚄ) if err != nil { return nil, err } args["metrics"] = arg1 return args, nil } -func (ec *executionContext) field_Query_jobsFootprints_argsFilter( - ctx context.Context, - rawArgs map[string]any, -) ([]*model.JobFilter, error) { - if _, ok := rawArgs["filter"]; !ok { - var zeroVal []*model.JobFilter - return zeroVal, nil - } - - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("filter")) - if tmp, ok := rawArgs["filter"]; ok { - return ec.unmarshalOJobFilter2ᚕᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐJobFilterᚄ(ctx, tmp) - } - - var zeroVal []*model.JobFilter - return zeroVal, nil -} - -func (ec *executionContext) field_Query_jobsFootprints_argsMetrics( - ctx context.Context, - rawArgs map[string]any, -) ([]string, error) { - if _, ok := rawArgs["metrics"]; !ok { - var zeroVal []string - return zeroVal, nil - } - - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("metrics")) - if tmp, ok := rawArgs["metrics"]; ok { - return ec.unmarshalNString2ᚕstringᚄ(ctx, tmp) - } - - var zeroVal []string - return zeroVal, nil -} func (ec *executionContext) field_Query_jobsMetricStats_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) { var err error args := map[string]any{} - arg0, err := ec.field_Query_jobsMetricStats_argsFilter(ctx, rawArgs) + arg0, err := graphql.ProcessArgField(ctx, rawArgs, "filter", ec.unmarshalOJobFilter2ᚕᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐJobFilterᚄ) if err != nil { return nil, err } args["filter"] = arg0 - arg1, err := ec.field_Query_jobsMetricStats_argsMetrics(ctx, rawArgs) + arg1, err := graphql.ProcessArgField(ctx, rawArgs, "metrics", ec.unmarshalOString2ᚕstringᚄ) if err != nil { return nil, err } args["metrics"] = arg1 return args, nil } -func (ec *executionContext) field_Query_jobsMetricStats_argsFilter( - ctx context.Context, - rawArgs map[string]any, -) ([]*model.JobFilter, error) { - if _, ok := rawArgs["filter"]; !ok { - var zeroVal []*model.JobFilter - return zeroVal, nil - } - - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("filter")) - if tmp, ok := rawArgs["filter"]; ok { - return ec.unmarshalOJobFilter2ᚕᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐJobFilterᚄ(ctx, tmp) - } - - var zeroVal []*model.JobFilter - return zeroVal, nil -} - -func (ec *executionContext) field_Query_jobsMetricStats_argsMetrics( - ctx context.Context, - rawArgs map[string]any, -) ([]string, error) { - if _, ok := rawArgs["metrics"]; !ok { - var zeroVal []string - return zeroVal, nil - } - - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("metrics")) - if tmp, ok := rawArgs["metrics"]; ok { - return ec.unmarshalOString2ᚕstringᚄ(ctx, tmp) - } - - var zeroVal []string - return zeroVal, nil -} func (ec *executionContext) field_Query_jobsStatistics_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) { var err error args := map[string]any{} - arg0, err := ec.field_Query_jobsStatistics_argsFilter(ctx, rawArgs) + arg0, err := graphql.ProcessArgField(ctx, rawArgs, "filter", ec.unmarshalOJobFilter2ᚕᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐJobFilterᚄ) if err != nil { return nil, err } args["filter"] = arg0 - arg1, err := ec.field_Query_jobsStatistics_argsMetrics(ctx, rawArgs) + arg1, err := graphql.ProcessArgField(ctx, rawArgs, "metrics", ec.unmarshalOString2ᚕstringᚄ) if err != nil { return nil, err } args["metrics"] = arg1 - arg2, err := ec.field_Query_jobsStatistics_argsPage(ctx, rawArgs) + arg2, err := graphql.ProcessArgField(ctx, rawArgs, "page", ec.unmarshalOPageRequest2ᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐPageRequest) if err != nil { return nil, err } args["page"] = arg2 - arg3, err := ec.field_Query_jobsStatistics_argsSortBy(ctx, rawArgs) + arg3, err := graphql.ProcessArgField(ctx, rawArgs, "sortBy", ec.unmarshalOSortByAggregate2ᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐSortByAggregate) if err != nil { return nil, err } args["sortBy"] = arg3 - arg4, err := ec.field_Query_jobsStatistics_argsGroupBy(ctx, rawArgs) + arg4, err := graphql.ProcessArgField(ctx, rawArgs, "groupBy", ec.unmarshalOAggregate2ᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐAggregate) if err != nil { return nil, err } args["groupBy"] = arg4 - arg5, err := ec.field_Query_jobsStatistics_argsNumDurationBins(ctx, rawArgs) + arg5, err := graphql.ProcessArgField(ctx, rawArgs, "numDurationBins", ec.unmarshalOString2ᚖstring) if err != nil { return nil, err } args["numDurationBins"] = arg5 - arg6, err := ec.field_Query_jobsStatistics_argsNumMetricBins(ctx, rawArgs) + arg6, err := graphql.ProcessArgField(ctx, rawArgs, "numMetricBins", ec.unmarshalOInt2ᚖint) if err != nil { return nil, err } args["numMetricBins"] = arg6 return args, nil } -func (ec *executionContext) field_Query_jobsStatistics_argsFilter( - ctx context.Context, - rawArgs map[string]any, -) ([]*model.JobFilter, error) { - if _, ok := rawArgs["filter"]; !ok { - var zeroVal []*model.JobFilter - return zeroVal, nil - } - - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("filter")) - if tmp, ok := rawArgs["filter"]; ok { - return ec.unmarshalOJobFilter2ᚕᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐJobFilterᚄ(ctx, tmp) - } - - var zeroVal []*model.JobFilter - return zeroVal, nil -} - -func (ec *executionContext) field_Query_jobsStatistics_argsMetrics( - ctx context.Context, - rawArgs map[string]any, -) ([]string, error) { - if _, ok := rawArgs["metrics"]; !ok { - var zeroVal []string - return zeroVal, nil - } - - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("metrics")) - if tmp, ok := rawArgs["metrics"]; ok { - return ec.unmarshalOString2ᚕstringᚄ(ctx, tmp) - } - - var zeroVal []string - return zeroVal, nil -} - -func (ec *executionContext) field_Query_jobsStatistics_argsPage( - ctx context.Context, - rawArgs map[string]any, -) (*model.PageRequest, error) { - if _, ok := rawArgs["page"]; !ok { - var zeroVal *model.PageRequest - return zeroVal, nil - } - - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("page")) - if tmp, ok := rawArgs["page"]; ok { - return ec.unmarshalOPageRequest2ᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐPageRequest(ctx, tmp) - } - - var zeroVal *model.PageRequest - return zeroVal, nil -} - -func (ec *executionContext) field_Query_jobsStatistics_argsSortBy( - ctx context.Context, - rawArgs map[string]any, -) (*model.SortByAggregate, error) { - if _, ok := rawArgs["sortBy"]; !ok { - var zeroVal *model.SortByAggregate - return zeroVal, nil - } - - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("sortBy")) - if tmp, ok := rawArgs["sortBy"]; ok { - return ec.unmarshalOSortByAggregate2ᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐSortByAggregate(ctx, tmp) - } - - var zeroVal *model.SortByAggregate - return zeroVal, nil -} - -func (ec *executionContext) field_Query_jobsStatistics_argsGroupBy( - ctx context.Context, - rawArgs map[string]any, -) (*model.Aggregate, error) { - if _, ok := rawArgs["groupBy"]; !ok { - var zeroVal *model.Aggregate - return zeroVal, nil - } - - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("groupBy")) - if tmp, ok := rawArgs["groupBy"]; ok { - return ec.unmarshalOAggregate2ᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐAggregate(ctx, tmp) - } - - var zeroVal *model.Aggregate - return zeroVal, nil -} - -func (ec *executionContext) field_Query_jobsStatistics_argsNumDurationBins( - ctx context.Context, - rawArgs map[string]any, -) (*string, error) { - if _, ok := rawArgs["numDurationBins"]; !ok { - var zeroVal *string - return zeroVal, nil - } - - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("numDurationBins")) - if tmp, ok := rawArgs["numDurationBins"]; ok { - return ec.unmarshalOString2ᚖstring(ctx, tmp) - } - - var zeroVal *string - return zeroVal, nil -} - -func (ec *executionContext) field_Query_jobsStatistics_argsNumMetricBins( - ctx context.Context, - rawArgs map[string]any, -) (*int, error) { - if _, ok := rawArgs["numMetricBins"]; !ok { - var zeroVal *int - return zeroVal, nil - } - - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("numMetricBins")) - if tmp, ok := rawArgs["numMetricBins"]; ok { - return ec.unmarshalOInt2ᚖint(ctx, tmp) - } - - var zeroVal *int - return zeroVal, nil -} func (ec *executionContext) field_Query_jobs_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) { var err error args := map[string]any{} - arg0, err := ec.field_Query_jobs_argsFilter(ctx, rawArgs) + arg0, err := graphql.ProcessArgField(ctx, rawArgs, "filter", ec.unmarshalOJobFilter2ᚕᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐJobFilterᚄ) if err != nil { return nil, err } args["filter"] = arg0 - arg1, err := ec.field_Query_jobs_argsPage(ctx, rawArgs) + arg1, err := graphql.ProcessArgField(ctx, rawArgs, "page", ec.unmarshalOPageRequest2ᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐPageRequest) if err != nil { return nil, err } args["page"] = arg1 - arg2, err := ec.field_Query_jobs_argsOrder(ctx, rawArgs) + arg2, err := graphql.ProcessArgField(ctx, rawArgs, "order", ec.unmarshalOOrderByInput2ᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐOrderByInput) if err != nil { return nil, err } args["order"] = arg2 return args, nil } -func (ec *executionContext) field_Query_jobs_argsFilter( - ctx context.Context, - rawArgs map[string]any, -) ([]*model.JobFilter, error) { - if _, ok := rawArgs["filter"]; !ok { - var zeroVal []*model.JobFilter - return zeroVal, nil - } - - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("filter")) - if tmp, ok := rawArgs["filter"]; ok { - return ec.unmarshalOJobFilter2ᚕᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐJobFilterᚄ(ctx, tmp) - } - - var zeroVal []*model.JobFilter - return zeroVal, nil -} - -func (ec *executionContext) field_Query_jobs_argsPage( - ctx context.Context, - rawArgs map[string]any, -) (*model.PageRequest, error) { - if _, ok := rawArgs["page"]; !ok { - var zeroVal *model.PageRequest - return zeroVal, nil - } - - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("page")) - if tmp, ok := rawArgs["page"]; ok { - return ec.unmarshalOPageRequest2ᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐPageRequest(ctx, tmp) - } - - var zeroVal *model.PageRequest - return zeroVal, nil -} - -func (ec *executionContext) field_Query_jobs_argsOrder( - ctx context.Context, - rawArgs map[string]any, -) (*model.OrderByInput, error) { - if _, ok := rawArgs["order"]; !ok { - var zeroVal *model.OrderByInput - return zeroVal, nil - } - - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("order")) - if tmp, ok := rawArgs["order"]; ok { - return ec.unmarshalOOrderByInput2ᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐOrderByInput(ctx, tmp) - } - - var zeroVal *model.OrderByInput - return zeroVal, nil -} func (ec *executionContext) field_Query_nodeMetricsList_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) { var err error args := map[string]any{} - arg0, err := ec.field_Query_nodeMetricsList_argsCluster(ctx, rawArgs) + arg0, err := graphql.ProcessArgField(ctx, rawArgs, "cluster", ec.unmarshalNString2string) if err != nil { return nil, err } args["cluster"] = arg0 - arg1, err := ec.field_Query_nodeMetricsList_argsSubCluster(ctx, rawArgs) + arg1, err := graphql.ProcessArgField(ctx, rawArgs, "subCluster", ec.unmarshalNString2string) if err != nil { return nil, err } args["subCluster"] = arg1 - arg2, err := ec.field_Query_nodeMetricsList_argsNodeFilter(ctx, rawArgs) + arg2, err := graphql.ProcessArgField(ctx, rawArgs, "nodeFilter", ec.unmarshalNString2string) if err != nil { return nil, err } args["nodeFilter"] = arg2 - arg3, err := ec.field_Query_nodeMetricsList_argsScopes(ctx, rawArgs) + arg3, err := graphql.ProcessArgField(ctx, rawArgs, "scopes", ec.unmarshalOMetricScope2ᚕgithubᚗcomᚋClusterCockpitᚋccᚑlibᚋschemaᚐMetricScopeᚄ) if err != nil { return nil, err } args["scopes"] = arg3 - arg4, err := ec.field_Query_nodeMetricsList_argsMetrics(ctx, rawArgs) + arg4, err := graphql.ProcessArgField(ctx, rawArgs, "metrics", ec.unmarshalOString2ᚕstringᚄ) if err != nil { return nil, err } args["metrics"] = arg4 - arg5, err := ec.field_Query_nodeMetricsList_argsFrom(ctx, rawArgs) + arg5, err := graphql.ProcessArgField(ctx, rawArgs, "from", ec.unmarshalNTime2timeᚐTime) if err != nil { return nil, err } args["from"] = arg5 - arg6, err := ec.field_Query_nodeMetricsList_argsTo(ctx, rawArgs) + arg6, err := graphql.ProcessArgField(ctx, rawArgs, "to", ec.unmarshalNTime2timeᚐTime) if err != nil { return nil, err } args["to"] = arg6 - arg7, err := ec.field_Query_nodeMetricsList_argsPage(ctx, rawArgs) + arg7, err := graphql.ProcessArgField(ctx, rawArgs, "page", ec.unmarshalOPageRequest2ᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐPageRequest) if err != nil { return nil, err } args["page"] = arg7 - arg8, err := ec.field_Query_nodeMetricsList_argsResolution(ctx, rawArgs) + arg8, err := graphql.ProcessArgField(ctx, rawArgs, "resolution", ec.unmarshalOInt2ᚖint) if err != nil { return nil, err } args["resolution"] = arg8 return args, nil } -func (ec *executionContext) field_Query_nodeMetricsList_argsCluster( - ctx context.Context, - rawArgs map[string]any, -) (string, error) { - if _, ok := rawArgs["cluster"]; !ok { - var zeroVal string - return zeroVal, nil - } - - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("cluster")) - if tmp, ok := rawArgs["cluster"]; ok { - return ec.unmarshalNString2string(ctx, tmp) - } - - var zeroVal string - return zeroVal, nil -} - -func (ec *executionContext) field_Query_nodeMetricsList_argsSubCluster( - ctx context.Context, - rawArgs map[string]any, -) (string, error) { - if _, ok := rawArgs["subCluster"]; !ok { - var zeroVal string - return zeroVal, nil - } - - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("subCluster")) - if tmp, ok := rawArgs["subCluster"]; ok { - return ec.unmarshalNString2string(ctx, tmp) - } - - var zeroVal string - return zeroVal, nil -} - -func (ec *executionContext) field_Query_nodeMetricsList_argsNodeFilter( - ctx context.Context, - rawArgs map[string]any, -) (string, error) { - if _, ok := rawArgs["nodeFilter"]; !ok { - var zeroVal string - return zeroVal, nil - } - - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("nodeFilter")) - if tmp, ok := rawArgs["nodeFilter"]; ok { - return ec.unmarshalNString2string(ctx, tmp) - } - - var zeroVal string - return zeroVal, nil -} - -func (ec *executionContext) field_Query_nodeMetricsList_argsScopes( - ctx context.Context, - rawArgs map[string]any, -) ([]schema.MetricScope, error) { - if _, ok := rawArgs["scopes"]; !ok { - var zeroVal []schema.MetricScope - return zeroVal, nil - } - - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("scopes")) - if tmp, ok := rawArgs["scopes"]; ok { - return ec.unmarshalOMetricScope2ᚕgithubᚗcomᚋClusterCockpitᚋccᚑlibᚋschemaᚐMetricScopeᚄ(ctx, tmp) - } - - var zeroVal []schema.MetricScope - return zeroVal, nil -} - -func (ec *executionContext) field_Query_nodeMetricsList_argsMetrics( - ctx context.Context, - rawArgs map[string]any, -) ([]string, error) { - if _, ok := rawArgs["metrics"]; !ok { - var zeroVal []string - return zeroVal, nil - } - - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("metrics")) - if tmp, ok := rawArgs["metrics"]; ok { - return ec.unmarshalOString2ᚕstringᚄ(ctx, tmp) - } - - var zeroVal []string - return zeroVal, nil -} - -func (ec *executionContext) field_Query_nodeMetricsList_argsFrom( - ctx context.Context, - rawArgs map[string]any, -) (time.Time, error) { - if _, ok := rawArgs["from"]; !ok { - var zeroVal time.Time - return zeroVal, nil - } - - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("from")) - if tmp, ok := rawArgs["from"]; ok { - return ec.unmarshalNTime2timeᚐTime(ctx, tmp) - } - - var zeroVal time.Time - return zeroVal, nil -} - -func (ec *executionContext) field_Query_nodeMetricsList_argsTo( - ctx context.Context, - rawArgs map[string]any, -) (time.Time, error) { - if _, ok := rawArgs["to"]; !ok { - var zeroVal time.Time - return zeroVal, nil - } - - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("to")) - if tmp, ok := rawArgs["to"]; ok { - return ec.unmarshalNTime2timeᚐTime(ctx, tmp) - } - - var zeroVal time.Time - return zeroVal, nil -} - -func (ec *executionContext) field_Query_nodeMetricsList_argsPage( - ctx context.Context, - rawArgs map[string]any, -) (*model.PageRequest, error) { - if _, ok := rawArgs["page"]; !ok { - var zeroVal *model.PageRequest - return zeroVal, nil - } - - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("page")) - if tmp, ok := rawArgs["page"]; ok { - return ec.unmarshalOPageRequest2ᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐPageRequest(ctx, tmp) - } - - var zeroVal *model.PageRequest - return zeroVal, nil -} - -func (ec *executionContext) field_Query_nodeMetricsList_argsResolution( - ctx context.Context, - rawArgs map[string]any, -) (*int, error) { - if _, ok := rawArgs["resolution"]; !ok { - var zeroVal *int - return zeroVal, nil - } - - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("resolution")) - if tmp, ok := rawArgs["resolution"]; ok { - return ec.unmarshalOInt2ᚖint(ctx, tmp) - } - - var zeroVal *int - return zeroVal, nil -} func (ec *executionContext) field_Query_nodeMetrics_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) { var err error args := map[string]any{} - arg0, err := ec.field_Query_nodeMetrics_argsCluster(ctx, rawArgs) + arg0, err := graphql.ProcessArgField(ctx, rawArgs, "cluster", ec.unmarshalNString2string) if err != nil { return nil, err } args["cluster"] = arg0 - arg1, err := ec.field_Query_nodeMetrics_argsNodes(ctx, rawArgs) + arg1, err := graphql.ProcessArgField(ctx, rawArgs, "nodes", ec.unmarshalOString2ᚕstringᚄ) if err != nil { return nil, err } args["nodes"] = arg1 - arg2, err := ec.field_Query_nodeMetrics_argsScopes(ctx, rawArgs) + arg2, err := graphql.ProcessArgField(ctx, rawArgs, "scopes", ec.unmarshalOMetricScope2ᚕgithubᚗcomᚋClusterCockpitᚋccᚑlibᚋschemaᚐMetricScopeᚄ) if err != nil { return nil, err } args["scopes"] = arg2 - arg3, err := ec.field_Query_nodeMetrics_argsMetrics(ctx, rawArgs) + arg3, err := graphql.ProcessArgField(ctx, rawArgs, "metrics", ec.unmarshalOString2ᚕstringᚄ) if err != nil { return nil, err } args["metrics"] = arg3 - arg4, err := ec.field_Query_nodeMetrics_argsFrom(ctx, rawArgs) + arg4, err := graphql.ProcessArgField(ctx, rawArgs, "from", ec.unmarshalNTime2timeᚐTime) if err != nil { return nil, err } args["from"] = arg4 - arg5, err := ec.field_Query_nodeMetrics_argsTo(ctx, rawArgs) + arg5, err := graphql.ProcessArgField(ctx, rawArgs, "to", ec.unmarshalNTime2timeᚐTime) if err != nil { return nil, err } args["to"] = arg5 return args, nil } -func (ec *executionContext) field_Query_nodeMetrics_argsCluster( - ctx context.Context, - rawArgs map[string]any, -) (string, error) { - if _, ok := rawArgs["cluster"]; !ok { - var zeroVal string - return zeroVal, nil - } - - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("cluster")) - if tmp, ok := rawArgs["cluster"]; ok { - return ec.unmarshalNString2string(ctx, tmp) - } - - var zeroVal string - return zeroVal, nil -} - -func (ec *executionContext) field_Query_nodeMetrics_argsNodes( - ctx context.Context, - rawArgs map[string]any, -) ([]string, error) { - if _, ok := rawArgs["nodes"]; !ok { - var zeroVal []string - return zeroVal, nil - } - - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("nodes")) - if tmp, ok := rawArgs["nodes"]; ok { - return ec.unmarshalOString2ᚕstringᚄ(ctx, tmp) - } - - var zeroVal []string - return zeroVal, nil -} - -func (ec *executionContext) field_Query_nodeMetrics_argsScopes( - ctx context.Context, - rawArgs map[string]any, -) ([]schema.MetricScope, error) { - if _, ok := rawArgs["scopes"]; !ok { - var zeroVal []schema.MetricScope - return zeroVal, nil - } - - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("scopes")) - if tmp, ok := rawArgs["scopes"]; ok { - return ec.unmarshalOMetricScope2ᚕgithubᚗcomᚋClusterCockpitᚋccᚑlibᚋschemaᚐMetricScopeᚄ(ctx, tmp) - } - - var zeroVal []schema.MetricScope - return zeroVal, nil -} - -func (ec *executionContext) field_Query_nodeMetrics_argsMetrics( - ctx context.Context, - rawArgs map[string]any, -) ([]string, error) { - if _, ok := rawArgs["metrics"]; !ok { - var zeroVal []string - return zeroVal, nil - } - - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("metrics")) - if tmp, ok := rawArgs["metrics"]; ok { - return ec.unmarshalOString2ᚕstringᚄ(ctx, tmp) - } - - var zeroVal []string - return zeroVal, nil -} - -func (ec *executionContext) field_Query_nodeMetrics_argsFrom( - ctx context.Context, - rawArgs map[string]any, -) (time.Time, error) { - if _, ok := rawArgs["from"]; !ok { - var zeroVal time.Time - return zeroVal, nil - } - - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("from")) - if tmp, ok := rawArgs["from"]; ok { - return ec.unmarshalNTime2timeᚐTime(ctx, tmp) - } - - var zeroVal time.Time - return zeroVal, nil -} - -func (ec *executionContext) field_Query_nodeMetrics_argsTo( - ctx context.Context, - rawArgs map[string]any, -) (time.Time, error) { - if _, ok := rawArgs["to"]; !ok { - var zeroVal time.Time - return zeroVal, nil - } - - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("to")) - if tmp, ok := rawArgs["to"]; ok { - return ec.unmarshalNTime2timeᚐTime(ctx, tmp) - } - - var zeroVal time.Time - return zeroVal, nil -} func (ec *executionContext) field_Query_nodeStats_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) { var err error args := map[string]any{} - arg0, err := ec.field_Query_nodeStats_argsFilter(ctx, rawArgs) + arg0, err := graphql.ProcessArgField(ctx, rawArgs, "filter", ec.unmarshalONodeFilter2ᚕᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐNodeFilterᚄ) if err != nil { return nil, err } args["filter"] = arg0 return args, nil } -func (ec *executionContext) field_Query_nodeStats_argsFilter( - ctx context.Context, - rawArgs map[string]any, -) ([]*model.NodeFilter, error) { - if _, ok := rawArgs["filter"]; !ok { - var zeroVal []*model.NodeFilter - return zeroVal, nil - } - - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("filter")) - if tmp, ok := rawArgs["filter"]; ok { - return ec.unmarshalONodeFilter2ᚕᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐNodeFilterᚄ(ctx, tmp) - } - - var zeroVal []*model.NodeFilter - return zeroVal, nil -} func (ec *executionContext) field_Query_node_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) { var err error args := map[string]any{} - arg0, err := ec.field_Query_node_argsID(ctx, rawArgs) + arg0, err := graphql.ProcessArgField(ctx, rawArgs, "id", ec.unmarshalNID2string) if err != nil { return nil, err } args["id"] = arg0 return args, nil } -func (ec *executionContext) field_Query_node_argsID( - ctx context.Context, - rawArgs map[string]any, -) (string, error) { - if _, ok := rawArgs["id"]; !ok { - var zeroVal string - return zeroVal, nil - } - - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("id")) - if tmp, ok := rawArgs["id"]; ok { - return ec.unmarshalNID2string(ctx, tmp) - } - - var zeroVal string - return zeroVal, nil -} func (ec *executionContext) field_Query_nodes_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) { var err error args := map[string]any{} - arg0, err := ec.field_Query_nodes_argsFilter(ctx, rawArgs) + arg0, err := graphql.ProcessArgField(ctx, rawArgs, "filter", ec.unmarshalONodeFilter2ᚕᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐNodeFilterᚄ) if err != nil { return nil, err } args["filter"] = arg0 - arg1, err := ec.field_Query_nodes_argsOrder(ctx, rawArgs) + arg1, err := graphql.ProcessArgField(ctx, rawArgs, "order", ec.unmarshalOOrderByInput2ᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐOrderByInput) if err != nil { return nil, err } args["order"] = arg1 return args, nil } -func (ec *executionContext) field_Query_nodes_argsFilter( - ctx context.Context, - rawArgs map[string]any, -) ([]*model.NodeFilter, error) { - if _, ok := rawArgs["filter"]; !ok { - var zeroVal []*model.NodeFilter - return zeroVal, nil - } - - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("filter")) - if tmp, ok := rawArgs["filter"]; ok { - return ec.unmarshalONodeFilter2ᚕᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐNodeFilterᚄ(ctx, tmp) - } - - var zeroVal []*model.NodeFilter - return zeroVal, nil -} - -func (ec *executionContext) field_Query_nodes_argsOrder( - ctx context.Context, - rawArgs map[string]any, -) (*model.OrderByInput, error) { - if _, ok := rawArgs["order"]; !ok { - var zeroVal *model.OrderByInput - return zeroVal, nil - } - - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("order")) - if tmp, ok := rawArgs["order"]; ok { - return ec.unmarshalOOrderByInput2ᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐOrderByInput(ctx, tmp) - } - - var zeroVal *model.OrderByInput - return zeroVal, nil -} func (ec *executionContext) field_Query_rooflineHeatmap_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) { var err error args := map[string]any{} - arg0, err := ec.field_Query_rooflineHeatmap_argsFilter(ctx, rawArgs) + arg0, err := graphql.ProcessArgField(ctx, rawArgs, "filter", ec.unmarshalNJobFilter2ᚕᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐJobFilterᚄ) if err != nil { return nil, err } args["filter"] = arg0 - arg1, err := ec.field_Query_rooflineHeatmap_argsRows(ctx, rawArgs) + arg1, err := graphql.ProcessArgField(ctx, rawArgs, "rows", ec.unmarshalNInt2int) if err != nil { return nil, err } args["rows"] = arg1 - arg2, err := ec.field_Query_rooflineHeatmap_argsCols(ctx, rawArgs) + arg2, err := graphql.ProcessArgField(ctx, rawArgs, "cols", ec.unmarshalNInt2int) if err != nil { return nil, err } args["cols"] = arg2 - arg3, err := ec.field_Query_rooflineHeatmap_argsMinX(ctx, rawArgs) + arg3, err := graphql.ProcessArgField(ctx, rawArgs, "minX", ec.unmarshalNFloat2float64) if err != nil { return nil, err } args["minX"] = arg3 - arg4, err := ec.field_Query_rooflineHeatmap_argsMinY(ctx, rawArgs) + arg4, err := graphql.ProcessArgField(ctx, rawArgs, "minY", ec.unmarshalNFloat2float64) if err != nil { return nil, err } args["minY"] = arg4 - arg5, err := ec.field_Query_rooflineHeatmap_argsMaxX(ctx, rawArgs) + arg5, err := graphql.ProcessArgField(ctx, rawArgs, "maxX", ec.unmarshalNFloat2float64) if err != nil { return nil, err } args["maxX"] = arg5 - arg6, err := ec.field_Query_rooflineHeatmap_argsMaxY(ctx, rawArgs) + arg6, err := graphql.ProcessArgField(ctx, rawArgs, "maxY", ec.unmarshalNFloat2float64) if err != nil { return nil, err } args["maxY"] = arg6 return args, nil } -func (ec *executionContext) field_Query_rooflineHeatmap_argsFilter( - ctx context.Context, - rawArgs map[string]any, -) ([]*model.JobFilter, error) { - if _, ok := rawArgs["filter"]; !ok { - var zeroVal []*model.JobFilter - return zeroVal, nil - } - - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("filter")) - if tmp, ok := rawArgs["filter"]; ok { - return ec.unmarshalNJobFilter2ᚕᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐJobFilterᚄ(ctx, tmp) - } - - var zeroVal []*model.JobFilter - return zeroVal, nil -} - -func (ec *executionContext) field_Query_rooflineHeatmap_argsRows( - ctx context.Context, - rawArgs map[string]any, -) (int, error) { - if _, ok := rawArgs["rows"]; !ok { - var zeroVal int - return zeroVal, nil - } - - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("rows")) - if tmp, ok := rawArgs["rows"]; ok { - return ec.unmarshalNInt2int(ctx, tmp) - } - - var zeroVal int - return zeroVal, nil -} - -func (ec *executionContext) field_Query_rooflineHeatmap_argsCols( - ctx context.Context, - rawArgs map[string]any, -) (int, error) { - if _, ok := rawArgs["cols"]; !ok { - var zeroVal int - return zeroVal, nil - } - - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("cols")) - if tmp, ok := rawArgs["cols"]; ok { - return ec.unmarshalNInt2int(ctx, tmp) - } - - var zeroVal int - return zeroVal, nil -} - -func (ec *executionContext) field_Query_rooflineHeatmap_argsMinX( - ctx context.Context, - rawArgs map[string]any, -) (float64, error) { - if _, ok := rawArgs["minX"]; !ok { - var zeroVal float64 - return zeroVal, nil - } - - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("minX")) - if tmp, ok := rawArgs["minX"]; ok { - return ec.unmarshalNFloat2float64(ctx, tmp) - } - - var zeroVal float64 - return zeroVal, nil -} - -func (ec *executionContext) field_Query_rooflineHeatmap_argsMinY( - ctx context.Context, - rawArgs map[string]any, -) (float64, error) { - if _, ok := rawArgs["minY"]; !ok { - var zeroVal float64 - return zeroVal, nil - } - - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("minY")) - if tmp, ok := rawArgs["minY"]; ok { - return ec.unmarshalNFloat2float64(ctx, tmp) - } - - var zeroVal float64 - return zeroVal, nil -} - -func (ec *executionContext) field_Query_rooflineHeatmap_argsMaxX( - ctx context.Context, - rawArgs map[string]any, -) (float64, error) { - if _, ok := rawArgs["maxX"]; !ok { - var zeroVal float64 - return zeroVal, nil - } - - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("maxX")) - if tmp, ok := rawArgs["maxX"]; ok { - return ec.unmarshalNFloat2float64(ctx, tmp) - } - - var zeroVal float64 - return zeroVal, nil -} - -func (ec *executionContext) field_Query_rooflineHeatmap_argsMaxY( - ctx context.Context, - rawArgs map[string]any, -) (float64, error) { - if _, ok := rawArgs["maxY"]; !ok { - var zeroVal float64 - return zeroVal, nil - } - - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("maxY")) - if tmp, ok := rawArgs["maxY"]; ok { - return ec.unmarshalNFloat2float64(ctx, tmp) - } - - var zeroVal float64 - return zeroVal, nil -} func (ec *executionContext) field_Query_scopedJobStats_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) { var err error args := map[string]any{} - arg0, err := ec.field_Query_scopedJobStats_argsID(ctx, rawArgs) + arg0, err := graphql.ProcessArgField(ctx, rawArgs, "id", ec.unmarshalNID2string) if err != nil { return nil, err } args["id"] = arg0 - arg1, err := ec.field_Query_scopedJobStats_argsMetrics(ctx, rawArgs) + arg1, err := graphql.ProcessArgField(ctx, rawArgs, "metrics", ec.unmarshalOString2ᚕstringᚄ) if err != nil { return nil, err } args["metrics"] = arg1 - arg2, err := ec.field_Query_scopedJobStats_argsScopes(ctx, rawArgs) + arg2, err := graphql.ProcessArgField(ctx, rawArgs, "scopes", ec.unmarshalOMetricScope2ᚕgithubᚗcomᚋClusterCockpitᚋccᚑlibᚋschemaᚐMetricScopeᚄ) if err != nil { return nil, err } args["scopes"] = arg2 return args, nil } -func (ec *executionContext) field_Query_scopedJobStats_argsID( - ctx context.Context, - rawArgs map[string]any, -) (string, error) { - if _, ok := rawArgs["id"]; !ok { - var zeroVal string - return zeroVal, nil - } - - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("id")) - if tmp, ok := rawArgs["id"]; ok { - return ec.unmarshalNID2string(ctx, tmp) - } - - var zeroVal string - return zeroVal, nil -} - -func (ec *executionContext) field_Query_scopedJobStats_argsMetrics( - ctx context.Context, - rawArgs map[string]any, -) ([]string, error) { - if _, ok := rawArgs["metrics"]; !ok { - var zeroVal []string - return zeroVal, nil - } - - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("metrics")) - if tmp, ok := rawArgs["metrics"]; ok { - return ec.unmarshalOString2ᚕstringᚄ(ctx, tmp) - } - - var zeroVal []string - return zeroVal, nil -} - -func (ec *executionContext) field_Query_scopedJobStats_argsScopes( - ctx context.Context, - rawArgs map[string]any, -) ([]schema.MetricScope, error) { - if _, ok := rawArgs["scopes"]; !ok { - var zeroVal []schema.MetricScope - return zeroVal, nil - } - - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("scopes")) - if tmp, ok := rawArgs["scopes"]; ok { - return ec.unmarshalOMetricScope2ᚕgithubᚗcomᚋClusterCockpitᚋccᚑlibᚋschemaᚐMetricScopeᚄ(ctx, tmp) - } - - var zeroVal []schema.MetricScope - return zeroVal, nil -} func (ec *executionContext) field_Query_user_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) { var err error args := map[string]any{} - arg0, err := ec.field_Query_user_argsUsername(ctx, rawArgs) + arg0, err := graphql.ProcessArgField(ctx, rawArgs, "username", ec.unmarshalNString2string) if err != nil { return nil, err } args["username"] = arg0 return args, nil } -func (ec *executionContext) field_Query_user_argsUsername( - ctx context.Context, - rawArgs map[string]any, -) (string, error) { - if _, ok := rawArgs["username"]; !ok { - var zeroVal string - return zeroVal, nil - } - - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("username")) - if tmp, ok := rawArgs["username"]; ok { - return ec.unmarshalNString2string(ctx, tmp) - } - - var zeroVal string - return zeroVal, nil -} func (ec *executionContext) field___Directive_args_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) { var err error args := map[string]any{} - arg0, err := ec.field___Directive_args_argsIncludeDeprecated(ctx, rawArgs) + arg0, err := graphql.ProcessArgField(ctx, rawArgs, "includeDeprecated", ec.unmarshalOBoolean2ᚖbool) if err != nil { return nil, err } args["includeDeprecated"] = arg0 return args, nil } -func (ec *executionContext) field___Directive_args_argsIncludeDeprecated( - ctx context.Context, - rawArgs map[string]any, -) (*bool, error) { - if _, ok := rawArgs["includeDeprecated"]; !ok { - var zeroVal *bool - return zeroVal, nil - } - - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("includeDeprecated")) - if tmp, ok := rawArgs["includeDeprecated"]; ok { - return ec.unmarshalOBoolean2ᚖbool(ctx, tmp) - } - - var zeroVal *bool - return zeroVal, nil -} func (ec *executionContext) field___Field_args_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) { var err error args := map[string]any{} - arg0, err := ec.field___Field_args_argsIncludeDeprecated(ctx, rawArgs) + arg0, err := graphql.ProcessArgField(ctx, rawArgs, "includeDeprecated", ec.unmarshalOBoolean2ᚖbool) if err != nil { return nil, err } args["includeDeprecated"] = arg0 return args, nil } -func (ec *executionContext) field___Field_args_argsIncludeDeprecated( - ctx context.Context, - rawArgs map[string]any, -) (*bool, error) { - if _, ok := rawArgs["includeDeprecated"]; !ok { - var zeroVal *bool - return zeroVal, nil - } - - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("includeDeprecated")) - if tmp, ok := rawArgs["includeDeprecated"]; ok { - return ec.unmarshalOBoolean2ᚖbool(ctx, tmp) - } - - var zeroVal *bool - return zeroVal, nil -} func (ec *executionContext) field___Type_enumValues_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) { var err error args := map[string]any{} - arg0, err := ec.field___Type_enumValues_argsIncludeDeprecated(ctx, rawArgs) + arg0, err := graphql.ProcessArgField(ctx, rawArgs, "includeDeprecated", ec.unmarshalOBoolean2bool) if err != nil { return nil, err } args["includeDeprecated"] = arg0 return args, nil } -func (ec *executionContext) field___Type_enumValues_argsIncludeDeprecated( - ctx context.Context, - rawArgs map[string]any, -) (bool, error) { - if _, ok := rawArgs["includeDeprecated"]; !ok { - var zeroVal bool - return zeroVal, nil - } - - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("includeDeprecated")) - if tmp, ok := rawArgs["includeDeprecated"]; ok { - return ec.unmarshalOBoolean2bool(ctx, tmp) - } - - var zeroVal bool - return zeroVal, nil -} func (ec *executionContext) field___Type_fields_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) { var err error args := map[string]any{} - arg0, err := ec.field___Type_fields_argsIncludeDeprecated(ctx, rawArgs) + arg0, err := graphql.ProcessArgField(ctx, rawArgs, "includeDeprecated", ec.unmarshalOBoolean2bool) if err != nil { return nil, err } args["includeDeprecated"] = arg0 return args, nil } -func (ec *executionContext) field___Type_fields_argsIncludeDeprecated( - ctx context.Context, - rawArgs map[string]any, -) (bool, error) { - if _, ok := rawArgs["includeDeprecated"]; !ok { - var zeroVal bool - return zeroVal, nil - } - - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("includeDeprecated")) - if tmp, ok := rawArgs["includeDeprecated"]; ok { - return ec.unmarshalOBoolean2bool(ctx, tmp) - } - - var zeroVal bool - return zeroVal, nil -} // endregion ***************************** args.gotpl ***************************** @@ -6426,7 +5231,7 @@ func (ec *executionContext) _Job_exclusive(ctx context.Context, field graphql.Co }() resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children - return obj.Exclusive, nil + return ec.resolvers.Job().Exclusive(rctx, obj) }) if err != nil { ec.Error(ctx, err) @@ -6438,17 +5243,17 @@ func (ec *executionContext) _Job_exclusive(ctx context.Context, field graphql.Co } return graphql.Null } - res := resTmp.(int32) + res := resTmp.(int) fc.Result = res - return ec.marshalNInt2int32(ctx, field.Selections, res) + return ec.marshalNInt2int(ctx, field.Selections, res) } func (ec *executionContext) fieldContext_Job_exclusive(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ Object: "Job", Field: field, - IsMethod: false, - IsResolver: false, + IsMethod: true, + IsResolver: true, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { return nil, errors.New("field of type Int does not have child fields") }, @@ -18593,10 +17398,41 @@ func (ec *executionContext) _Job(ctx context.Context, sel ast.SelectionSet, obj atomic.AddUint32(&out.Invalids, 1) } case "exclusive": - out.Values[i] = ec._Job_exclusive(ctx, field, obj) - if out.Values[i] == graphql.Null { - atomic.AddUint32(&out.Invalids, 1) + field := field + + innerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) { + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + } + }() + res = ec._Job_exclusive(ctx, field, obj) + if res == graphql.Null { + atomic.AddUint32(&fs.Invalids, 1) + } + return res } + + if field.Deferrable != nil { + dfs, ok := deferred[field.Deferrable.Label] + di := 0 + if ok { + dfs.AddField(field) + di = len(dfs.Values) - 1 + } else { + dfs = graphql.NewFieldSet([]graphql.CollectedField{field}) + deferred[field.Deferrable.Label] = dfs + } + dfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler { + return innerFunc(ctx, dfs) + }) + + // don't run the out.Concurrently() call below + out.Values[i] = graphql.Null + continue + } + + out.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) }) case "partition": out.Values[i] = ec._Job_partition(ctx, field, obj) if out.Values[i] == graphql.Null { diff --git a/internal/graph/schema.resolvers.go b/internal/graph/schema.resolvers.go index e0e74b5..8868497 100644 --- a/internal/graph/schema.resolvers.go +++ b/internal/graph/schema.resolvers.go @@ -2,7 +2,7 @@ package graph // This file will be automatically regenerated based on the schema, any resolver implementations // will be copied through when generating and any unknown code will be moved to the end. -// Code generated by github.com/99designs/gqlgen version v0.17.76 +// Code generated by github.com/99designs/gqlgen version v0.17.78 import ( "context" @@ -35,6 +35,11 @@ func (r *jobResolver) StartTime(ctx context.Context, obj *schema.Job) (*time.Tim return ×tamp, nil } +// Exclusive is the resolver for the exclusive field. +func (r *jobResolver) Exclusive(ctx context.Context, obj *schema.Job) (int, error) { + panic(fmt.Errorf("not implemented: Exclusive - exclusive")) +} + // Tags is the resolver for the tags field. func (r *jobResolver) Tags(ctx context.Context, obj *schema.Job) ([]*schema.Tag, error) { return r.Repo.GetTags(repository.GetUserFromContext(ctx), obj.ID) @@ -43,7 +48,7 @@ func (r *jobResolver) Tags(ctx context.Context, obj *schema.Job) ([]*schema.Tag, // ConcurrentJobs is the resolver for the concurrentJobs field. func (r *jobResolver) ConcurrentJobs(ctx context.Context, obj *schema.Job) (*model.JobLinkResultList, error) { // FIXME: Make the hardcoded duration configurable - if obj.Exclusive != 1 && obj.Duration > 600 { + if obj.Shared != "none" && obj.Duration > 600 { return r.Repo.FindConcurrentJobs(ctx, obj) } diff --git a/internal/importer/handleImport.go b/internal/importer/handleImport.go index 71c4d24..f527781 100644 --- a/internal/importer/handleImport.go +++ b/internal/importer/handleImport.go @@ -43,7 +43,7 @@ func HandleImportFlag(flag string) error { dec := json.NewDecoder(bytes.NewReader(raw)) dec.DisallowUnknownFields() job := schema.Job{ - Exclusive: 1, + Shared: "none", MonitoringStatus: schema.MonitoringStatusRunningOrArchiving, } if err = dec.Decode(&job); err != nil { diff --git a/internal/repository/job.go b/internal/repository/job.go index b6aa323..dd40ebc 100644 --- a/internal/repository/job.go +++ b/internal/repository/job.go @@ -74,7 +74,7 @@ func scanJob(row interface{ Scan(...any) error }) (*schema.Job, error) { if err := row.Scan( &job.ID, &job.JobID, &job.User, &job.Project, &job.Cluster, &job.SubCluster, &job.StartTime, &job.Partition, &job.ArrayJobId, &job.NumNodes, &job.NumHWThreads, - &job.NumAcc, &job.Exclusive, &job.MonitoringStatus, &job.SMT, &job.State, + &job.NumAcc, &job.Shared, &job.MonitoringStatus, &job.SMT, &job.State, &job.Duration, &job.Walltime, &job.RawResources, &job.RawFootprint, &job.Energy); err != nil { cclog.Warnf("Error while scanning rows (Job): %v", err) return nil, err diff --git a/internal/repository/migrations/sqlite3/09_add-job-cache.up.sql b/internal/repository/migrations/sqlite3/09_add-job-cache.up.sql index 7840369..003eab0 100644 --- a/internal/repository/migrations/sqlite3/09_add-job-cache.up.sql +++ b/internal/repository/migrations/sqlite3/09_add-job-cache.up.sql @@ -1,9 +1,10 @@ CREATE TABLE "job_cache" ( id INTEGER PRIMARY KEY, job_id BIGINT NOT NULL, - cluster VARCHAR(255) NOT NULL, + hpc_cluster VARCHAR(255) NOT NULL, subcluster VARCHAR(255) NOT NULL, - start_time BIGINT NOT NULL, -- Unix timestamp + submit_time BIGINT NOT NULL, -- Unix timestamp + start_time BIGINT NOT NULL DEFAULT 0, -- Unix timestamp hpc_user VARCHAR(255) NOT NULL, project VARCHAR(255) NOT NULL, cluster_partition VARCHAR(255), @@ -12,8 +13,9 @@ CREATE TABLE "job_cache" ( walltime INT NOT NULL, job_state VARCHAR(255) NOT NULL CHECK (job_state IN ( - 'running', 'completed', 'failed', 'cancelled', - 'stopped', 'timeout', 'preempted', 'out_of_memory' + 'boot_fail', 'cancelled', 'completed', 'deadline', + 'failed', 'node_fail', 'out-of-memory', 'pending', + 'preempted', 'running', 'suspended', 'timeout' )), meta_data TEXT, -- JSON resources TEXT NOT NULL, -- JSON @@ -21,7 +23,8 @@ CREATE TABLE "job_cache" ( num_hwthreads INT, num_acc INT, smt TINYINT NOT NULL DEFAULT 1 CHECK (smt IN (0, 1)), - exclusive TINYINT NOT NULL DEFAULT 1 CHECK (exclusive IN (0, 1, 2)), + shared TEXT NOT NULL + CHECK (shared IN ("none", "single_user", "multi_user")), monitoring_status TINYINT NOT NULL DEFAULT 1 CHECK (monitoring_status IN (0, 1, 2, 3)), energy REAL NOT NULL DEFAULT 0.0, @@ -29,3 +32,43 @@ CREATE TABLE "job_cache" ( footprint TEXT DEFAULT NULL, UNIQUE (job_id, cluster, start_time) ); + +CREATE TABLE "job_new" ( + id INTEGER PRIMARY KEY, + job_id BIGINT NOT NULL, + hpc_cluster TEXT NOT NULL, + subcluster TEXT NOT NULL, + submit_time BIGINT NOT NULL DEFAULT 0, -- Unix timestamp + start_time BIGINT NOT NULL DEFAULT 0, -- Unix timestamp + hpc_user TEXT NOT NULL, + project TEXT NOT NULL, + cluster_partition TEXT, + array_job_id BIGINT, + duration INT NOT NULL, + walltime INT NOT NULL, + job_state TEXT NOT NULL + CHECK (job_state IN ( + 'boot_fail', 'cancelled', 'completed', 'deadline', + 'failed', 'node_fail', 'out-of-memory', 'pending', + 'preempted', 'running', 'suspended', 'timeout' + )), + meta_data TEXT, -- JSON + resources TEXT NOT NULL, -- JSON + num_nodes INT NOT NULL, + num_hwthreads INT, + num_acc INT, + smt INT NOT NULL DEFAULT 1, + shared TEXT NOT NULL + CHECK (shared IN ("none", "single_user", "multi_user")), + monitoring_status TINYINT NOT NULL DEFAULT 1 + CHECK (monitoring_status IN (0, 1, 2, 3)), + energy REAL NOT NULL DEFAULT 0.0, + energy_footprint TEXT DEFAULT NULL, + footprint TEXT DEFAULT NULL, + UNIQUE (job_id, cluster, start_time) +); + +ALTER TABLE job RENAME COLUMN cluster TO hpc_cluster; +INSERT INTO job_new SELECT * FROM job; +DROP TABLE job; +ALTER TABLE job_new RENAME TO job; diff --git a/internal/tagger/classifyJob.go b/internal/tagger/classifyJob.go index 32063cd..0317f81 100644 --- a/internal/tagger/classifyJob.go +++ b/internal/tagger/classifyJob.go @@ -240,13 +240,13 @@ func (t *JobClassTagger) Match(job *schema.Job) { // Initialize environment env["job"] = map[string]any{ - "exclusive": job.Exclusive, - "duration": job.Duration, - "numCores": job.NumHWThreads, - "numNodes": job.NumNodes, - "jobState": job.State, - "numAcc": job.NumAcc, - "smt": job.SMT, + "shared": job.Shared, + "duration": job.Duration, + "numCores": job.NumHWThreads, + "numNodes": job.NumNodes, + "jobState": job.State, + "numAcc": job.NumAcc, + "smt": job.SMT, } // add metrics to env diff --git a/pkg/archive/fsBackend_test.go b/pkg/archive/fsBackend_test.go index cdc892f..c872d0a 100644 --- a/pkg/archive/fsBackend_test.go +++ b/pkg/archive/fsBackend_test.go @@ -86,7 +86,7 @@ func TestLoadJobMeta(t *testing.T) { } jobIn := schema.Job{ - Exclusive: 1, + Shared: "none", MonitoringStatus: schema.MonitoringStatusRunningOrArchiving, } jobIn.StartTime = 1608923076 @@ -117,7 +117,7 @@ func TestLoadJobData(t *testing.T) { } jobIn := schema.Job{ - Exclusive: 1, + Shared: "none", MonitoringStatus: schema.MonitoringStatusRunningOrArchiving, } jobIn.StartTime = 1608923076 @@ -148,7 +148,7 @@ func BenchmarkLoadJobData(b *testing.B) { fsa.Init(json.RawMessage(archiveCfg)) jobIn := schema.Job{ - Exclusive: 1, + Shared: "none", MonitoringStatus: schema.MonitoringStatusRunningOrArchiving, } jobIn.StartTime = 1608923076 @@ -174,7 +174,7 @@ func BenchmarkLoadJobDataCompressed(b *testing.B) { fsa.Init(json.RawMessage(archiveCfg)) jobIn := schema.Job{ - Exclusive: 1, + Shared: "none", MonitoringStatus: schema.MonitoringStatusRunningOrArchiving, } jobIn.StartTime = 1608923076