From bf48389aeb5b038b3446fd08fc271777c7c60239 Mon Sep 17 00:00:00 2001 From: Jan Eitzinger Date: Fri, 20 Mar 2026 05:39:19 +0100 Subject: [PATCH 01/63] Optimize sortby in stats queries Entire-Checkpoint: 9b5b833472e1 --- internal/graph/schema.resolvers.go | 5 +++++ internal/graph/stats_cache.go | 27 +++++++++++++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/internal/graph/schema.resolvers.go b/internal/graph/schema.resolvers.go index c84cb713..9cfb808e 100644 --- a/internal/graph/schema.resolvers.go +++ b/internal/graph/schema.resolvers.go @@ -676,6 +676,11 @@ func (r *queryResolver) JobsStatistics(ctx context.Context, filter []*model.JobF // Use request-scoped cache: multiple aliases with same (filter, groupBy) // but different sortBy/page hit the DB only once. if cache := getStatsGroupCache(ctx); cache != nil { + // Ensure the sort field is computed even if not in the GraphQL selection, + // because sortAndPageStats will sort by it in memory. + if sortBy != nil { + reqFields[sortByFieldName(*sortBy)] = true + } key := statsCacheKey(filter, groupBy, reqFields) var allStats []*model.JobsStatistics allStats, err = cache.getOrCompute(key, func() ([]*model.JobsStatistics, error) { diff --git a/internal/graph/stats_cache.go b/internal/graph/stats_cache.go index 92e8e85b..c4f0d7f8 100644 --- a/internal/graph/stats_cache.go +++ b/internal/graph/stats_cache.go @@ -107,6 +107,33 @@ func sortAndPageStats(allStats []*model.JobsStatistics, sortBy *model.SortByAggr return sorted } +// sortByFieldName maps a SortByAggregate enum to the corresponding reqFields key. +// This ensures the DB computes the column that sortAndPageStats will sort by. +func sortByFieldName(sortBy model.SortByAggregate) string { + switch sortBy { + case model.SortByAggregateTotaljobs: + return "totalJobs" + case model.SortByAggregateTotalusers: + return "totalUsers" + case model.SortByAggregateTotalwalltime: + return "totalWalltime" + case model.SortByAggregateTotalnodes: + return "totalNodes" + case model.SortByAggregateTotalnodehours: + return "totalNodeHours" + case model.SortByAggregateTotalcores: + return "totalCores" + case model.SortByAggregateTotalcorehours: + return "totalCoreHours" + case model.SortByAggregateTotalaccs: + return "totalAccs" + case model.SortByAggregateTotalacchours: + return "totalAccHours" + default: + return "totalJobs" + } +} + // statsFieldGetter returns a function that extracts the sortable int field // from a JobsStatistics struct for the given sort key. func statsFieldGetter(sortBy model.SortByAggregate) func(*model.JobsStatistics) int { From 60554896d5b621f3e8678ee51c90fd29bd1eef7a Mon Sep 17 00:00:00 2001 From: Jan Eitzinger Date: Fri, 20 Mar 2026 08:21:16 +0100 Subject: [PATCH 02/63] Update ReleaseNote for upcoming release Entire-Checkpoint: 30099a746fc7 --- ReleaseNotes.md | 41 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 40 insertions(+), 1 deletion(-) diff --git a/ReleaseNotes.md b/ReleaseNotes.md index 1ac2f229..8fde060c 100644 --- a/ReleaseNotes.md +++ b/ReleaseNotes.md @@ -10,7 +10,10 @@ If you are upgrading from v1.5.0 you need to do another DB migration. This should not take long. For optimal database performance after the migration it is recommended to apply the new `optimize-db` flag, which runs the sqlite `ANALYZE` and `VACUUM` commands. Depending on your database size (more then 40GB) the -`VACUUM` may take up to 2h. +`VACUUM` may take up to 2h. You can also run the `ANALYZE` command manually. +While we are confident that the memory issue with the metricstore cleanup move +policy is fixed, it is still recommended to use delete policy for cleanup. +This is also the default. ## Changes in 1.5.2 @@ -19,6 +22,14 @@ and `VACUUM` commands. Depending on your database size (more then 40GB) the - **Memory spike in parquet writer**: Fixed memory spikes when using the metricstore move (archive) policy with the parquet writer. The writer now processes data in a streaming fashion to avoid accumulating large allocations. +- **Top list query fixes**: Fixed top list queries in analysis and dashboard + views. +- **Exclude down nodes from HealthCheck**: Down nodes are now excluded from + health checks in both the REST and NATS handlers. +- **Node state priority order**: Node state determination now enforces a + priority order. Exception: idle+down results in idle. +- **Blocking ReceiveNats call**: Fixed a blocking NATS receive call in the + metricstore. ### Database performance @@ -33,6 +44,16 @@ and `VACUUM` commands. Depending on your database size (more then 40GB) the write load. - **Increased default SQLite timeout**: The default SQLite connection timeout has been raised to reduce spurious timeout errors under load. +- **Optimized stats queries**: Improved sortby handling in stats queries, fixed + cache key passing, and simplified a stats query condition that caused an + expensive unnecessary subquery. + +### MetricStore performance + +- **Sharded WAL consumer**: The WAL consumer is now sharded for significantly + higher write throughput. +- **NATS contention fix**: Fixed contention in the metricstore NATS ingestion + path. ### NATS API @@ -52,6 +73,24 @@ and `VACUUM` commands. Depending on your database size (more then 40GB) the operation. - **Checkpoint archiving log**: Added an informational log message when the metricstore checkpoint archiving process runs. +- **Auth failure context**: Auth failure log messages now include more context + information. + +### Behavior changes + +- **DB-based metricHealth**: Replaced heuristic-based metric health with + DB-based metric health for the node view, providing more accurate health + status information. +- **Removed minRunningFor filter remnants**: Cleaned up remaining `minRunningFor` + references from the GraphQL schema and query builder. + +### Frontend + +- **Streamlined statsSeries**: Unified stats series calculation and rendering + across plot components. +- **Clarified plot titles**: Improved titles in dashboard and health views. +- **Bumped frontend dependencies**: Updated frontend dependencies to latest + versions. ### Dependencies From 359962d1660467db50ebf992f4b468d61a89a9c5 Mon Sep 17 00:00:00 2001 From: Jan Eitzinger Date: Fri, 20 Mar 2026 08:23:46 +0100 Subject: [PATCH 03/63] Fix typo --- ReleaseNotes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ReleaseNotes.md b/ReleaseNotes.md index 8fde060c..42e8e149 100644 --- a/ReleaseNotes.md +++ b/ReleaseNotes.md @@ -106,7 +106,7 @@ This is also the default. running has to be allowed to execute the journalctl command. - The user configuration keys for the ui have changed. Therefore old user configuration persisted in the database is not used anymore. It is recommended - to configure the metrics shown in the ui-config sestion and remove all records + to configure the metrics shown in the ui-config section and remove all records in the table after the update. - Currently energy footprint metrics of type energy are ignored for calculating total energy. From 999d93efc370336d7362fc7648bb739d4216d743 Mon Sep 17 00:00:00 2001 From: Jan Eitzinger Date: Fri, 20 Mar 2026 09:19:13 +0100 Subject: [PATCH 04/63] Fix goreleaser config. Cleanup. --- .goreleaser.yaml | 10 ++++++++++ go.sum | 4 ---- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/.goreleaser.yaml b/.goreleaser.yaml index afc70dc8..f16c5425 100644 --- a/.goreleaser.yaml +++ b/.goreleaser.yaml @@ -5,6 +5,7 @@ before: builds: - env: - CGO_ENABLED=1 + - CC=x86_64-linux-musl-gcc goos: - linux goarch: @@ -24,6 +25,9 @@ builds: pre: make frontend - env: - CGO_ENABLED=0 + - CC=x86_64-linux-musl-gcc + ldflags: + - -linkmode external -extldflags -static goos: - linux goarch: @@ -37,6 +41,9 @@ builds: - static_build - env: - CGO_ENABLED=0 + - CC=x86_64-linux-musl-gcc + ldflags: + - -linkmode external -extldflags -static goos: - linux goarch: @@ -50,6 +57,9 @@ builds: - static_build - env: - CGO_ENABLED=0 + - CC=x86_64-linux-musl-gcc + ldflags: + - -linkmode external -extldflags -static goos: - linux goarch: diff --git a/go.sum b/go.sum index 4006036e..9a68b179 100644 --- a/go.sum +++ b/go.sum @@ -4,10 +4,6 @@ github.com/99designs/gqlgen v0.17.88 h1:neMQDgehMwT1vYIOx/w5ZYPUU/iMNAJzRO44I5In github.com/99designs/gqlgen v0.17.88/go.mod h1:qeqYFEgOeSKqWedOjogPizimp2iu4E23bdPvl4jTYic= github.com/Azure/go-ntlmssp v0.1.0 h1:DjFo6YtWzNqNvQdrwEyr/e4nhU3vRiwenz5QX7sFz+A= github.com/Azure/go-ntlmssp v0.1.0/go.mod h1:NYqdhxd/8aAct/s4qSYZEerdPuH1liG2/X9DiVTbhpk= -github.com/ClusterCockpit/cc-lib/v2 v2.8.2 h1:rCLZk8wz8yq8xBnBEdVKigvA2ngR8dPmHbEFwxxb3jw= -github.com/ClusterCockpit/cc-lib/v2 v2.8.2/go.mod h1:FwD8vnTIbBM3ngeLNKmCvp9FoSjQZm7xnuaVxEKR23o= -github.com/ClusterCockpit/cc-lib/v2 v2.9.0 h1:mzUYakcjwb+UP5II4jOvr36rSYct90gXBbtUg+nvm9c= -github.com/ClusterCockpit/cc-lib/v2 v2.9.0/go.mod h1:FwD8vnTIbBM3ngeLNKmCvp9FoSjQZm7xnuaVxEKR23o= github.com/ClusterCockpit/cc-lib/v2 v2.9.1 h1:eplKhXQyGAElBGCEGdmxwj7fLv26Op16uK0KxUePDak= github.com/ClusterCockpit/cc-lib/v2 v2.9.1/go.mod h1:FwD8vnTIbBM3ngeLNKmCvp9FoSjQZm7xnuaVxEKR23o= github.com/ClusterCockpit/cc-line-protocol/v2 v2.4.0 h1:hIzxgTBWcmCIHtoDKDkSCsKCOCOwUC34sFsbD2wcW0Q= From fb176c5afba6562945aaaa77b2d18b5902816058 Mon Sep 17 00:00:00 2001 From: Jan Eitzinger Date: Fri, 20 Mar 2026 09:34:49 +0100 Subject: [PATCH 05/63] Remove static linkage for helper tools --- .goreleaser.yaml | 9 --------- 1 file changed, 9 deletions(-) diff --git a/.goreleaser.yaml b/.goreleaser.yaml index f16c5425..5a37c27a 100644 --- a/.goreleaser.yaml +++ b/.goreleaser.yaml @@ -25,9 +25,6 @@ builds: pre: make frontend - env: - CGO_ENABLED=0 - - CC=x86_64-linux-musl-gcc - ldflags: - - -linkmode external -extldflags -static goos: - linux goarch: @@ -41,9 +38,6 @@ builds: - static_build - env: - CGO_ENABLED=0 - - CC=x86_64-linux-musl-gcc - ldflags: - - -linkmode external -extldflags -static goos: - linux goarch: @@ -57,9 +51,6 @@ builds: - static_build - env: - CGO_ENABLED=0 - - CC=x86_64-linux-musl-gcc - ldflags: - - -linkmode external -extldflags -static goos: - linux goarch: From 01ec70baa83b973e6e2636dc6845c1d2268d285c Mon Sep 17 00:00:00 2001 From: Jan Eitzinger Date: Fri, 20 Mar 2026 11:39:34 +0100 Subject: [PATCH 06/63] Iterate over subCluster MetricConfig directly so that removed metrics are not included Entire-Checkpoint: efb6f0a96069 --- pkg/archive/clusterConfig.go | 41 +++++++++---------------------- pkg/archive/clusterConfig_test.go | 24 ++++++++++++++++++ 2 files changed, 36 insertions(+), 29 deletions(-) diff --git a/pkg/archive/clusterConfig.go b/pkg/archive/clusterConfig.go index 3e27e415..48fc5e48 100644 --- a/pkg/archive/clusterConfig.go +++ b/pkg/archive/clusterConfig.go @@ -198,36 +198,19 @@ func GetSubCluster(cluster, subcluster string) (*schema.SubCluster, error) { func GetMetricConfigSubCluster(cluster, subcluster string) map[string]*schema.Metric { metrics := make(map[string]*schema.Metric) - for _, c := range Clusters { - if c.Name == cluster { - for _, m := range c.MetricConfig { - for _, s := range m.SubClusters { - if s.Name == subcluster { - metrics[m.Name] = &schema.Metric{ - Name: m.Name, - Unit: s.Unit, - Peak: s.Peak, - Normal: s.Normal, - Caution: s.Caution, - Alert: s.Alert, - } - break - } - } + sc, err := GetSubCluster(cluster, subcluster) + if err != nil { + return metrics + } - _, ok := metrics[m.Name] - if !ok { - metrics[m.Name] = &schema.Metric{ - Name: m.Name, - Unit: m.Unit, - Peak: m.Peak, - Normal: m.Normal, - Caution: m.Caution, - Alert: m.Alert, - } - } - } - break + for _, m := range sc.MetricConfig { + metrics[m.Name] = &schema.Metric{ + Name: m.Name, + Unit: m.Unit, + Peak: m.Peak, + Normal: m.Normal, + Caution: m.Caution, + Alert: m.Alert, } } diff --git a/pkg/archive/clusterConfig_test.go b/pkg/archive/clusterConfig_test.go index 510c1747..7c3d8bea 100644 --- a/pkg/archive/clusterConfig_test.go +++ b/pkg/archive/clusterConfig_test.go @@ -37,3 +37,27 @@ func TestClusterConfig(t *testing.T) { // spew.Dump(archive.GlobalMetricList) // t.Fail() } + +func TestGetMetricConfigSubClusterRespectsRemovedMetrics(t *testing.T) { + if err := archive.Init(json.RawMessage(`{"kind": "file","path": "testdata/archive"}`)); err != nil { + t.Fatal(err) + } + + sc, err := archive.GetSubCluster("fritz", "spr2tb") + if err != nil { + t.Fatal(err) + } + + metrics := archive.GetMetricConfigSubCluster("fritz", "spr2tb") + if len(metrics) != len(sc.MetricConfig) { + t.Fatalf("GetMetricConfigSubCluster() returned %d metrics, want %d", len(metrics), len(sc.MetricConfig)) + } + + if _, ok := metrics["flops_any"]; ok { + t.Fatalf("GetMetricConfigSubCluster() returned removed metric flops_any for subcluster spr2tb") + } + + if _, ok := metrics["cpu_power"]; !ok { + t.Fatalf("GetMetricConfigSubCluster() missing active metric cpu_power for subcluster spr2tb") + } +} From 586c902044161182617584be7bd0f1a31824853b Mon Sep 17 00:00:00 2001 From: Jan Eitzinger Date: Mon, 23 Mar 2026 06:32:24 +0100 Subject: [PATCH 07/63] Restructure metricstore cleanup archiving to stay withinh 32k parquet-go limit Entire-Checkpoint: 1660b8cf2571 --- pkg/metricstore/archive.go | 12 +++++++++--- pkg/metricstore/parquetArchive.go | 9 +++++++-- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/pkg/metricstore/archive.go b/pkg/metricstore/archive.go index 7eb1b72f..2246b0f3 100644 --- a/pkg/metricstore/archive.go +++ b/pkg/metricstore/archive.go @@ -22,6 +22,7 @@ import ( func CleanUp(wg *sync.WaitGroup, ctx context.Context) { if Keys.Cleanup.Mode == "archive" { + cclog.Info("[METRICSTORE]> enable archive cleanup to parquet") // Run as Archiver cleanUpWorker(wg, ctx, Keys.RetentionInMemory, @@ -43,7 +44,6 @@ func CleanUp(wg *sync.WaitGroup, ctx context.Context) { // cleanUpWorker takes simple values to configure what it does func cleanUpWorker(wg *sync.WaitGroup, ctx context.Context, interval string, mode string, cleanupDir string, delete bool) { wg.Go(func() { - d, err := time.ParseDuration(interval) if err != nil { cclog.Fatalf("[METRICSTORE]> error parsing %s interval duration: %v\n", mode, err) @@ -99,8 +99,8 @@ func deleteCheckpoints(checkpointsDir string, from int64) (int, error) { } type workItem struct { - dir string - cluster, host string + dir string + cluster, host string } var wg sync.WaitGroup @@ -275,6 +275,12 @@ func archiveCheckpoints(checkpointsDir, cleanupDir string, from int64) (int, err break } } + // Flush once per host to keep row group count within parquet limits. + if writeErr == nil { + if err := writer.FlushRowGroup(); err != nil { + writeErr = err + } + } } // Always track files for deletion (even if write failed, we still drain) toDelete = append(toDelete, deleteItem{dir: r.dir, files: r.files}) diff --git a/pkg/metricstore/parquetArchive.go b/pkg/metricstore/parquetArchive.go index 260bd8dd..81c8be5a 100644 --- a/pkg/metricstore/parquetArchive.go +++ b/pkg/metricstore/parquetArchive.go @@ -99,7 +99,7 @@ func newParquetArchiveWriter(filename string) (*parquetArchiveWriter, error) { // WriteCheckpointFile streams a CheckpointFile tree directly to Parquet rows, // writing metrics in sorted order without materializing all rows in memory. -// Produces one row group per call (typically one host's data). +// Call FlushRowGroup() after writing all checkpoint files for a host. func (w *parquetArchiveWriter) WriteCheckpointFile(cf *CheckpointFile, cluster, hostname, scope, scopeID string) error { w.writeLevel(cf, cluster, hostname, scope, scopeID) @@ -112,10 +112,15 @@ func (w *parquetArchiveWriter) WriteCheckpointFile(cf *CheckpointFile, cluster, w.batch = w.batch[:0] } + return nil +} + +// FlushRowGroup flushes the current row group to the Parquet file. +// Should be called once per host after all checkpoint files for that host are written. +func (w *parquetArchiveWriter) FlushRowGroup() error { if err := w.writer.Flush(); err != nil { return fmt.Errorf("flushing parquet row group: %w", err) } - return nil } From e41d1251ba52de53e18fdf7c8920d0f7b28209cf Mon Sep 17 00:00:00 2001 From: Jan Eitzinger Date: Mon, 23 Mar 2026 06:37:24 +0100 Subject: [PATCH 08/63] fix: Continue on error Entire-Checkpoint: 6000eb5a5bb8 --- pkg/metricstore/archive.go | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/pkg/metricstore/archive.go b/pkg/metricstore/archive.go index 2246b0f3..3b92a3e0 100644 --- a/pkg/metricstore/archive.go +++ b/pkg/metricstore/archive.go @@ -11,6 +11,7 @@ import ( "fmt" "os" "path/filepath" + "strings" "sync" "sync/atomic" "time" @@ -181,6 +182,7 @@ func archiveCheckpoints(checkpointsDir, cleanupDir string, from int64) (int, err } totalFiles := 0 + var clusterErrors []string for _, clusterEntry := range clusterEntries { if !clusterEntry.IsDir() { @@ -190,7 +192,9 @@ func archiveCheckpoints(checkpointsDir, cleanupDir string, from int64) (int, err cluster := clusterEntry.Name() hostEntries, err := os.ReadDir(filepath.Join(checkpointsDir, cluster)) if err != nil { - return totalFiles, err + cclog.Errorf("[METRICSTORE]> error reading host entries for cluster %s: %s", cluster, err.Error()) + clusterErrors = append(clusterErrors, cluster) + continue } // Workers load checkpoint files from disk; main thread writes to parquet. @@ -255,7 +259,9 @@ func archiveCheckpoints(checkpointsDir, cleanupDir string, from int64) (int, err // Drain results channel to unblock workers for range results { } - return totalFiles, fmt.Errorf("creating parquet writer for cluster %s: %w", cluster, err) + cclog.Errorf("[METRICSTORE]> error creating parquet writer for cluster %s: %s", cluster, err.Error()) + clusterErrors = append(clusterErrors, cluster) + continue } type deleteItem struct { @@ -291,7 +297,10 @@ func archiveCheckpoints(checkpointsDir, cleanupDir string, from int64) (int, err } if errs > 0 { - return totalFiles, fmt.Errorf("%d errors reading checkpoints for cluster %s", errs, cluster) + cclog.Errorf("[METRICSTORE]> %d errors reading checkpoints for cluster %s", errs, cluster) + clusterErrors = append(clusterErrors, cluster) + os.Remove(parquetFile) + continue } if writer.count == 0 { @@ -302,7 +311,9 @@ func archiveCheckpoints(checkpointsDir, cleanupDir string, from int64) (int, err if writeErr != nil { os.Remove(parquetFile) - return totalFiles, fmt.Errorf("writing parquet archive for cluster %s: %w", cluster, writeErr) + cclog.Errorf("[METRICSTORE]> error writing parquet archive for cluster %s: %s", cluster, writeErr.Error()) + clusterErrors = append(clusterErrors, cluster) + continue } // Delete archived checkpoint files @@ -322,5 +333,10 @@ func archiveCheckpoints(checkpointsDir, cleanupDir string, from int64) (int, err } cclog.Infof("[METRICSTORE]> archiving checkpoints completed in %s (%d files)", time.Since(startTime).Round(time.Millisecond), totalFiles) + + if len(clusterErrors) > 0 { + return totalFiles, fmt.Errorf("archiving failed for clusters: %s", strings.Join(clusterErrors, ", ")) + } + return totalFiles, nil } From 192c94a78d97ade717ada97d1a2bb781e41c49a5 Mon Sep 17 00:00:00 2001 From: Jan Eitzinger Date: Mon, 23 Mar 2026 07:12:13 +0100 Subject: [PATCH 09/63] fix: Prevent interruption of body lineprotocol parsing on locks Entire-Checkpoint: ccda3b2ff4cb --- cmd/cc-backend/server.go | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/cmd/cc-backend/server.go b/cmd/cc-backend/server.go index bdbb8a7e..4e6120e9 100644 --- a/cmd/cc-backend/server.go +++ b/cmd/cc-backend/server.go @@ -344,18 +344,18 @@ func (s *Server) init() error { // Server timeout defaults (in seconds) const ( - defaultReadTimeout = 20 - defaultWriteTimeout = 20 + defaultReadHeaderTimeout = 20 + defaultWriteTimeout = 20 ) func (s *Server) Start(ctx context.Context) error { // Use configurable timeouts with defaults - readTimeout := time.Duration(defaultReadTimeout) * time.Second + readHeaderTimeout := time.Duration(defaultReadHeaderTimeout) * time.Second writeTimeout := time.Duration(defaultWriteTimeout) * time.Second s.server = &http.Server{ - ReadTimeout: readTimeout, - WriteTimeout: writeTimeout, + ReadHeaderTimeout: readHeaderTimeout, + WriteTimeout: writeTimeout, Handler: s.router, Addr: config.Keys.Addr, } From 45f329e5fbdf0643246f3413b9831523bde7d2c3 Mon Sep 17 00:00:00 2001 From: Jan Eitzinger Date: Mon, 23 Mar 2026 07:58:35 +0100 Subject: [PATCH 10/63] feat: Add command line switch to trigger manual metricstore checkpoint cleanup Entire-Checkpoint: 29b9d52db89c --- cmd/cc-backend/cli.go | 4 +++- cmd/cc-backend/main.go | 38 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 41 insertions(+), 1 deletion(-) diff --git a/cmd/cc-backend/cli.go b/cmd/cc-backend/cli.go index 47f534be..3896383a 100644 --- a/cmd/cc-backend/cli.go +++ b/cmd/cc-backend/cli.go @@ -11,7 +11,8 @@ import "flag" var ( flagReinitDB, flagInit, flagServer, flagSyncLDAP, flagGops, flagMigrateDB, flagRevertDB, - flagForceDB, flagDev, flagVersion, flagLogDateTime, flagApplyTags, flagOptimizeDB bool + flagForceDB, flagDev, flagVersion, flagLogDateTime, flagApplyTags, flagOptimizeDB, + flagCleanupCheckpoints bool flagNewUser, flagDelUser, flagGenJWT, flagConfigFile, flagImportJob, flagLogLevel string ) @@ -28,6 +29,7 @@ func cliInit() { flag.BoolVar(&flagApplyTags, "apply-tags", false, "Run taggers on all completed jobs and exit") flag.BoolVar(&flagForceDB, "force-db", false, "Force database version, clear dirty flag and exit") flag.BoolVar(&flagOptimizeDB, "optimize-db", false, "Optimize database: run VACUUM to reclaim space, then ANALYZE to update query planner statistics") + flag.BoolVar(&flagCleanupCheckpoints, "cleanup-checkpoints", false, "Clean up old checkpoint files (delete or archive) based on retention settings, then exit") flag.BoolVar(&flagLogDateTime, "logdate", false, "Set this flag to add date and time to log messages") flag.StringVar(&flagConfigFile, "config", "./config.json", "Specify alternative path to `config.json`") flag.StringVar(&flagNewUser, "add-user", "", "Add a new user. Argument format: :[admin,support,manager,api,user]:") diff --git a/cmd/cc-backend/main.go b/cmd/cc-backend/main.go index 12faeae5..f8f0a767 100644 --- a/cmd/cc-backend/main.go +++ b/cmd/cc-backend/main.go @@ -14,6 +14,7 @@ import ( "fmt" "os" "os/signal" + goruntime "runtime" "runtime/debug" "strings" "sync" @@ -536,6 +537,43 @@ func run() error { return err } + // Handle checkpoint cleanup + if flagCleanupCheckpoints { + mscfg := ccconf.GetPackageConfig("metric-store") + if mscfg == nil { + return fmt.Errorf("metric-store configuration required for checkpoint cleanup") + } + if err := json.Unmarshal(mscfg, &metricstore.Keys); err != nil { + return fmt.Errorf("decoding metric-store config: %w", err) + } + if metricstore.Keys.NumWorkers <= 0 { + metricstore.Keys.NumWorkers = min(goruntime.NumCPU()/2+1, metricstore.DefaultMaxWorkers) + } + + d, err := time.ParseDuration(metricstore.Keys.RetentionInMemory) + if err != nil { + return fmt.Errorf("parsing retention-in-memory: %w", err) + } + from := time.Now().Add(-d) + deleteMode := metricstore.Keys.Cleanup == nil || metricstore.Keys.Cleanup.Mode != "archive" + cleanupDir := "" + if !deleteMode { + cleanupDir = metricstore.Keys.Cleanup.RootDir + } + + cclog.Infof("Cleaning up checkpoints older than %s...", from.Format(time.RFC3339)) + n, err := metricstore.CleanupCheckpoints( + metricstore.Keys.Checkpoints.RootDir, cleanupDir, from.Unix(), deleteMode) + if err != nil { + return fmt.Errorf("checkpoint cleanup: %w", err) + } + if deleteMode { + cclog.Exitf("Cleanup done: %d checkpoint files deleted.", n) + } else { + cclog.Exitf("Cleanup done: %d checkpoint files archived to parquet.", n) + } + } + // Exit if start server is not requested if !flagServer { cclog.Exit("No errors, server flag not set. Exiting cc-backend.") From d5ea2b4cf57517dbdadee0bfe30cfca4fcbf1989 Mon Sep 17 00:00:00 2001 From: Christoph Kluge Date: Mon, 23 Mar 2026 17:23:54 +0100 Subject: [PATCH 11/63] change: query node states explicitly in node view --- web/frontend/src/Node.root.svelte | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/web/frontend/src/Node.root.svelte b/web/frontend/src/Node.root.svelte index 35cfcca9..44628ba7 100644 --- a/web/frontend/src/Node.root.svelte +++ b/web/frontend/src/Node.root.svelte @@ -54,11 +54,16 @@ const paging = { itemsPerPage: 50, page: 1 }; const sorting = { field: "startTime", type: "col", order: "DESC" }; const nodeMetricsQuery = gql` - query ($cluster: String!, $nodes: [String!], $from: Time!, $to: Time!) { + query ( + $cluster: String!, + $nodes: [String!], + $from: Time!, + $to: Time!, + $nodeFilter: [NodeFilter!]!, + $sorting: OrderByInput! + ) { nodeMetrics(cluster: $cluster, nodes: $nodes, from: $from, to: $to) { host - nodeState - metricHealth subCluster metrics { name @@ -79,7 +84,14 @@ } } } - } + }, + nodeStatus: nodes(filter: $nodeFilter, order: $sorting) { + count + items { + schedulerState + healthState + } + } } `; const nodeJobsQuery = gql` @@ -146,6 +158,8 @@ nodes: [hostname], from: from?.toISOString(), to: to?.toISOString(), + nodeFilter: { hostname: { eq: hostname }}, + sorting // $sorting unused in backend: Use placeholder }, }) ); @@ -157,8 +171,8 @@ }) ); - const thisNodeState = $derived($nodeMetricsData?.data?.nodeMetrics[0]?.nodeState || 'notindb'); - const thisMetricHealth = $derived($nodeMetricsData?.data?.nodeMetrics[0]?.metricHealth || 'unknown'); + const thisNodeState = $derived($nodeMetricsData?.data?.nodeStatus?.items[0]?.schedulerState || 'notindb'); + const thisMetricHealth = $derived($nodeMetricsData?.data?.nodeStatus?.items[0]?.healthState || 'unknown'); From 0325d9e866ec97994e77770ca189838c0ee3b3f0 Mon Sep 17 00:00:00 2001 From: Jan Eitzinger Date: Tue, 24 Mar 2026 06:53:12 +0100 Subject: [PATCH 12/63] fix: Increase throughput for WAL writers Entire-Checkpoint: ddd40d290c56 --- pkg/metricstore/walCheckpoint.go | 63 +++++++++++++++++++++----------- 1 file changed, 42 insertions(+), 21 deletions(-) diff --git a/pkg/metricstore/walCheckpoint.go b/pkg/metricstore/walCheckpoint.go index 38585cf5..85e5047e 100644 --- a/pkg/metricstore/walCheckpoint.go +++ b/pkg/metricstore/walCheckpoint.go @@ -69,6 +69,7 @@ import ( "strings" "sync" "sync/atomic" + "time" cclog "github.com/ClusterCockpit/cc-lib/v2/ccLogger" "github.com/ClusterCockpit/cc-lib/v2/schema" @@ -111,10 +112,16 @@ type walRotateReq struct { // walFileState holds an open WAL file handle and buffered writer for one host directory. type walFileState struct { - f *os.File - w *bufio.Writer + f *os.File + w *bufio.Writer + dirty bool } +// walFlushInterval controls how often dirty WAL files are flushed to disk. +// Decoupling flushes from message processing lets the consumer run at memory +// speed, amortizing syscall overhead across many writes. +const walFlushInterval = 5 * time.Second + // walShardIndex computes which shard a message belongs to based on cluster+node. // Uses FNV-1a hash for fast, well-distributed mapping. func walShardIndex(cluster, node string) int { @@ -222,6 +229,7 @@ func WALStaging(wg *sync.WaitGroup, ctx context.Context) { if err := writeWALRecordDirect(ws.w, msg); err != nil { cclog.Errorf("[METRICSTORE]> WAL: write record: %v", err) } + ws.dirty = true } processRotate := func(req walRotateReq) { @@ -238,10 +246,11 @@ func WALStaging(wg *sync.WaitGroup, ctx context.Context) { close(req.done) } - flushAll := func() { + flushDirty := func() { for _, ws := range hostFiles { - if ws.f != nil { + if ws.dirty { ws.w.Flush() + ws.dirty = false } } } @@ -257,12 +266,35 @@ func WALStaging(wg *sync.WaitGroup, ctx context.Context) { case req := <-rotateCh: processRotate(req) default: - flushAll() + flushDirty() return } } } + ticker := time.NewTicker(walFlushInterval) + defer ticker.Stop() + + // drainBatch processes up to 4096 pending messages without blocking. + // Returns false if the channel was closed. + drainBatch := func() bool { + for range 4096 { + select { + case msg, ok := <-msgCh: + if !ok { + flushDirty() + return false + } + processMsg(msg) + case req := <-rotateCh: + processRotate(req) + default: + return true + } + } + return true + } + for { select { case <-ctx.Done(): @@ -273,23 +305,12 @@ func WALStaging(wg *sync.WaitGroup, ctx context.Context) { return } processMsg(msg) - - // Drain up to 256 more messages without blocking to batch writes. - for range 256 { - select { - case msg, ok := <-msgCh: - if !ok { - return - } - processMsg(msg) - case req := <-rotateCh: - processRotate(req) - default: - goto flushed - } + if !drainBatch() { + return } - flushed: - flushAll() + // No flush here — timer handles periodic flushing. + case <-ticker.C: + flushDirty() case req := <-rotateCh: processRotate(req) } From 6f7dda53ee1d98481855effeadfd8a2e7d26c7ec Mon Sep 17 00:00:00 2001 From: Jan Eitzinger Date: Tue, 24 Mar 2026 07:03:46 +0100 Subject: [PATCH 13/63] Cleanup Entire-Checkpoint: ed68d32218ac --- pkg/metricstore/walCheckpoint.go | 63 -------------------------------- 1 file changed, 63 deletions(-) diff --git a/pkg/metricstore/walCheckpoint.go b/pkg/metricstore/walCheckpoint.go index 85e5047e..57064e5f 100644 --- a/pkg/metricstore/walCheckpoint.go +++ b/pkg/metricstore/walCheckpoint.go @@ -434,69 +434,6 @@ func writeWALRecordDirect(w *bufio.Writer, msg *WALMessage) error { return err } -// buildWALPayload encodes a WALMessage into a binary payload (without magic/length/CRC). -func buildWALPayload(msg *WALMessage) []byte { - size := 8 + 2 + len(msg.MetricName) + 1 + 4 - for _, s := range msg.Selector { - size += 1 + len(s) - } - - buf := make([]byte, 0, size) - - // Timestamp (8 bytes, little-endian int64) - var ts [8]byte - binary.LittleEndian.PutUint64(ts[:], uint64(msg.Timestamp)) - buf = append(buf, ts[:]...) - - // Metric name (2-byte length prefix + bytes) - var mLen [2]byte - binary.LittleEndian.PutUint16(mLen[:], uint16(len(msg.MetricName))) - buf = append(buf, mLen[:]...) - buf = append(buf, msg.MetricName...) - - // Selector count (1 byte) - buf = append(buf, byte(len(msg.Selector))) - - // Selectors (1-byte length prefix + bytes each) - for _, sel := range msg.Selector { - buf = append(buf, byte(len(sel))) - buf = append(buf, sel...) - } - - // Value (4 bytes, float32 bit representation) - var val [4]byte - binary.LittleEndian.PutUint32(val[:], math.Float32bits(float32(msg.Value))) - buf = append(buf, val[:]...) - - return buf -} - -// writeWALRecord appends a binary WAL record to the writer. -// Format: [4B magic][4B payload_len][payload][4B CRC32] -func writeWALRecord(w io.Writer, msg *WALMessage) error { - payload := buildWALPayload(msg) - crc := crc32.ChecksumIEEE(payload) - - record := make([]byte, 0, 4+4+len(payload)+4) - - var magic [4]byte - binary.LittleEndian.PutUint32(magic[:], walRecordMagic) - record = append(record, magic[:]...) - - var pLen [4]byte - binary.LittleEndian.PutUint32(pLen[:], uint32(len(payload))) - record = append(record, pLen[:]...) - - record = append(record, payload...) - - var crcBytes [4]byte - binary.LittleEndian.PutUint32(crcBytes[:], crc) - record = append(record, crcBytes[:]...) - - _, err := w.Write(record) - return err -} - // readWALRecord reads one WAL record from the reader. // Returns (nil, nil) on clean EOF. Returns error on data corruption. // A CRC mismatch indicates a truncated trailing record (expected on crash). From 93a9d732a48cf3c9dc1969d467c8a4b6ecf99adb Mon Sep 17 00:00:00 2001 From: Jan Eitzinger Date: Tue, 24 Mar 2026 07:17:34 +0100 Subject: [PATCH 14/63] fix: Improve shutdown time Entire-Checkpoint: a4d012e1edcf --- cmd/cc-backend/server.go | 48 ++++++++++++++++++++++------------------ 1 file changed, 27 insertions(+), 21 deletions(-) diff --git a/cmd/cc-backend/server.go b/cmd/cc-backend/server.go index 4e6120e9..b37d3450 100644 --- a/cmd/cc-backend/server.go +++ b/cmd/cc-backend/server.go @@ -18,6 +18,7 @@ import ( "net/http" "os" "strings" + "sync" "time" "github.com/99designs/gqlgen/graphql" @@ -399,16 +400,6 @@ func (s *Server) Start(ctx context.Context) error { return fmt.Errorf("dropping privileges: %w", err) } - // Handle context cancellation for graceful shutdown - go func() { - <-ctx.Done() - shutdownCtx, cancel := context.WithTimeout(context.Background(), 30*time.Second) - defer cancel() - if err := s.server.Shutdown(shutdownCtx); err != nil { - cclog.Errorf("Server shutdown error: %v", err) - } - }() - if err = s.server.Serve(listener); err != nil && err != http.ErrServerClosed { return fmt.Errorf("server failed: %w", err) } @@ -416,8 +407,7 @@ func (s *Server) Start(ctx context.Context) error { } func (s *Server) Shutdown(ctx context.Context) { - // Create a shutdown context with timeout - shutdownCtx, cancel := context.WithTimeout(ctx, 30*time.Second) + shutdownCtx, cancel := context.WithTimeout(ctx, 5*time.Second) defer cancel() nc := nats.GetClient() @@ -425,20 +415,36 @@ func (s *Server) Shutdown(ctx context.Context) { nc.Close() } - // First shut down the server gracefully (waiting for all ongoing requests) if err := s.server.Shutdown(shutdownCtx); err != nil { cclog.Errorf("Server shutdown error: %v", err) } - // Archive all the metric store data - ms := metricstore.GetMemoryStore() + // Run metricstore and archiver shutdown concurrently. + // They are independent: metricstore writes .bin snapshots, + // archiver flushes pending job archives. + done := make(chan struct{}) + go func() { + defer close(done) + var wg sync.WaitGroup - if ms != nil { - metricstore.Shutdown() - } + if ms := metricstore.GetMemoryStore(); ms != nil { + wg.Go(func() { + metricstore.Shutdown() + }) + } - // Shutdown archiver with 10 second timeout for fast shutdown - if err := archiver.Shutdown(10 * time.Second); err != nil { - cclog.Warnf("Archiver shutdown: %v", err) + wg.Go(func() { + if err := archiver.Shutdown(10 * time.Second); err != nil { + cclog.Warnf("Archiver shutdown: %v", err) + } + }) + + wg.Wait() + }() + + select { + case <-done: + case <-time.After(10 * time.Second): + cclog.Warn("Shutdown deadline exceeded, forcing exit") } } From bd7125a52e3dcaa7aba6545ccf6131915825027f Mon Sep 17 00:00:00 2001 From: Christoph Kluge Date: Tue, 24 Mar 2026 15:00:41 +0100 Subject: [PATCH 15/63] review doubleranged filters, fix and improve valeu selection --- internal/repository/jobQuery.go | 18 ++--- internal/routerConfig/routes.go | 10 +-- web/frontend/src/generic/Filters.svelte | 79 ++++++++++--------- .../src/generic/filters/Energy.svelte | 19 ++--- .../src/generic/filters/Resources.svelte | 79 +++++-------------- web/frontend/src/generic/filters/Stats.svelte | 11 +-- .../generic/select/DoubleRangeSlider.svelte | 43 +++++----- web/frontend/src/generic/utils.js | 8 +- 8 files changed, 120 insertions(+), 147 deletions(-) diff --git a/internal/repository/jobQuery.go b/internal/repository/jobQuery.go index 36c5892e..5256bacb 100644 --- a/internal/repository/jobQuery.go +++ b/internal/repository/jobQuery.go @@ -280,11 +280,11 @@ func BuildWhereClause(filter *model.JobFilter, query sq.SelectBuilder) sq.Select // buildIntCondition creates clauses for integer range filters, using BETWEEN only if required. func buildIntCondition(field string, cond *config.IntRange, query sq.SelectBuilder) sq.SelectBuilder { - if cond.From != 1 && cond.To != 0 { + if cond.From > 0 && cond.To > 0 { return query.Where(field+" BETWEEN ? AND ?", cond.From, cond.To) - } else if cond.From != 1 && cond.To == 0 { + } else if cond.From > 0 && cond.To == 0 { return query.Where(field+" >= ?", cond.From) - } else if cond.From == 1 && cond.To != 0 { + } else if cond.From == 0 && cond.To > 0 { return query.Where(field+" <= ?", cond.To) } else { return query @@ -293,11 +293,11 @@ func buildIntCondition(field string, cond *config.IntRange, query sq.SelectBuild // buildFloatCondition creates a clauses for float range filters, using BETWEEN only if required. func buildFloatCondition(field string, cond *model.FloatRange, query sq.SelectBuilder) sq.SelectBuilder { - if cond.From != 1.0 && cond.To != 0.0 { + if cond.From > 0.0 && cond.To > 0.0 { return query.Where(field+" BETWEEN ? AND ?", cond.From, cond.To) - } else if cond.From != 1.0 && cond.To == 0.0 { + } else if cond.From > 0.0 && cond.To == 0.0 { return query.Where(field+" >= ?", cond.From) - } else if cond.From == 1.0 && cond.To != 0.0 { + } else if cond.From == 0.0 && cond.To > 0.0 { return query.Where(field+" <= ?", cond.To) } else { return query @@ -339,11 +339,11 @@ func buildTimeCondition(field string, cond *config.TimeRange, query sq.SelectBui // buildFloatJSONCondition creates a filter on a numeric field within the footprint JSON column, using BETWEEN only if required. func buildFloatJSONCondition(jsonField string, cond *model.FloatRange, query sq.SelectBuilder) sq.SelectBuilder { query = query.Where("JSON_VALID(footprint)") - if cond.From != 1.0 && cond.To != 0.0 { + if cond.From > 0.0 && cond.To > 0.0 { return query.Where("JSON_EXTRACT(footprint, \"$."+jsonField+"\") BETWEEN ? AND ?", cond.From, cond.To) - } else if cond.From != 1.0 && cond.To == 0.0 { + } else if cond.From > 0.0 && cond.To == 0.0 { return query.Where("JSON_EXTRACT(footprint, \"$."+jsonField+"\") >= ?", cond.From) - } else if cond.From == 1.0 && cond.To != 0.0 { + } else if cond.From == 0.0 && cond.To > 0.0 { return query.Where("JSON_EXTRACT(footprint, \"$."+jsonField+"\") <= ?", cond.To) } else { return query diff --git a/internal/routerConfig/routes.go b/internal/routerConfig/routes.go index e24038e2..78bab931 100644 --- a/internal/routerConfig/routes.go +++ b/internal/routerConfig/routes.go @@ -308,7 +308,7 @@ func buildFilterPresets(query url.Values) map[string]any { if parts[0] == "lessthan" { lt, lte := strconv.Atoi(parts[1]) if lte == nil { - filterPresets["numNodes"] = map[string]int{"from": 1, "to": lt} + filterPresets["numNodes"] = map[string]int{"from": 0, "to": lt} } } else if parts[0] == "morethan" { mt, mte := strconv.Atoi(parts[1]) @@ -330,7 +330,7 @@ func buildFilterPresets(query url.Values) map[string]any { if parts[0] == "lessthan" { lt, lte := strconv.Atoi(parts[1]) if lte == nil { - filterPresets["numHWThreads"] = map[string]int{"from": 1, "to": lt} + filterPresets["numHWThreads"] = map[string]int{"from": 0, "to": lt} } } else if parts[0] == "morethan" { mt, mte := strconv.Atoi(parts[1]) @@ -352,7 +352,7 @@ func buildFilterPresets(query url.Values) map[string]any { if parts[0] == "lessthan" { lt, lte := strconv.Atoi(parts[1]) if lte == nil { - filterPresets["numAccelerators"] = map[string]int{"from": 1, "to": lt} + filterPresets["numAccelerators"] = map[string]int{"from": 0, "to": lt} } } else if parts[0] == "morethan" { mt, mte := strconv.Atoi(parts[1]) @@ -408,7 +408,7 @@ func buildFilterPresets(query url.Values) map[string]any { if parts[0] == "lessthan" { lt, lte := strconv.Atoi(parts[1]) if lte == nil { - filterPresets["energy"] = map[string]int{"from": 1, "to": lt} + filterPresets["energy"] = map[string]int{"from": 0, "to": lt} } } else if parts[0] == "morethan" { mt, mte := strconv.Atoi(parts[1]) @@ -434,7 +434,7 @@ func buildFilterPresets(query url.Values) map[string]any { if lte == nil { statEntry := map[string]any{ "field": parts[0], - "from": 1, + "from": 0, "to": lt, } statList = append(statList, statEntry) diff --git a/web/frontend/src/generic/Filters.svelte b/web/frontend/src/generic/Filters.svelte index 02f801a0..3c0091ad 100644 --- a/web/frontend/src/generic/Filters.svelte +++ b/web/frontend/src/generic/Filters.svelte @@ -166,12 +166,12 @@ items.push({ project: { [filters.projectMatch]: filters.project } }); if (filters.user) items.push({ user: { [filters.userMatch]: filters.user } }); - if (filters.numNodes.from != null || filters.numNodes.to != null) { + if (filters.numNodes.from != null && filters.numNodes.to != null) { items.push({ numNodes: { from: filters.numNodes.from, to: filters.numNodes.to }, }); } - if (filters.numAccelerators.from != null || filters.numAccelerators.to != null) { + if (filters.numAccelerators.from != null && filters.numAccelerators.to != null) { items.push({ numAccelerators: { from: filters.numAccelerators.from, @@ -179,7 +179,7 @@ }, }); } - if (filters.numHWThreads.from != null || filters.numHWThreads.to != null) { + if (filters.numHWThreads.from != null && filters.numHWThreads.to != null) { items.push({ numHWThreads: { from: filters.numHWThreads.from, @@ -206,14 +206,21 @@ items.push({ duration: { to: filters.duration.lessThan, from: 0 } }); if (filters.duration.moreThan) items.push({ duration: { to: 0, from: filters.duration.moreThan } }); - if (filters.energy.from != null || filters.energy.to != null) + if (filters.energy.from != null && filters.energy.to != null) items.push({ energy: { from: filters.energy.from, to: filters.energy.to }, }); if (filters.jobId) items.push({ jobId: { [filters.jobIdMatch]: filters.jobId } }); - if (filters.stats.length != 0) - items.push({ metricStats: filters.stats.map((st) => { return { metricName: st.field, range: { from: st.from, to: st.to }} }) }); + if (filters.stats.length != 0) { + const metricStats = []; + filters.stats.forEach((st) => { + if (st.from != null && st.to != null) + metricStats.push({ metricName: st.field, range: { from: st.from, to: st.to }}); + }); + if (metricStats.length != 0) + items.push({metricStats}) + }; if (filters.node) items.push({ node: { [filters.nodeMatch]: filters.node } }); if (filters.jobName) items.push({ jobName: { contains: filters.jobName } }); if (filters.schedule) items.push({ schedule: filters.schedule }); @@ -280,40 +287,40 @@ opts.push(`duration=morethan-${filters.duration.moreThan}`); if (filters.tags.length != 0) for (let tag of filters.tags) opts.push(`tag=${tag}`); - if (filters.numNodes.from > 1 && filters.numNodes.to > 0) + if (filters.numNodes.from > 0 && filters.numNodes.to > 0) opts.push(`numNodes=${filters.numNodes.from}-${filters.numNodes.to}`); - else if (filters.numNodes.from > 1 && filters.numNodes.to == 0) + else if (filters.numNodes.from > 0 && filters.numNodes.to == 0) opts.push(`numNodes=morethan-${filters.numNodes.from}`); - else if (filters.numNodes.from == 1 && filters.numNodes.to > 0) + else if (filters.numNodes.from == 0 && filters.numNodes.to > 0) opts.push(`numNodes=lessthan-${filters.numNodes.to}`); - if (filters.numHWThreads.from > 1 && filters.numHWThreads.to > 0) + if (filters.numHWThreads.from > 0 && filters.numHWThreads.to > 0) opts.push(`numHWThreads=${filters.numHWThreads.from}-${filters.numHWThreads.to}`); - else if (filters.numHWThreads.from > 1 && filters.numHWThreads.to == 0) + else if (filters.numHWThreads.from > 0 && filters.numHWThreads.to == 0) opts.push(`numHWThreads=morethan-${filters.numHWThreads.from}`); - else if (filters.numHWThreads.from == 1 && filters.numHWThreads.to > 0) + else if (filters.numHWThreads.from == 0 && filters.numHWThreads.to > 0) opts.push(`numHWThreads=lessthan-${filters.numHWThreads.to}`); - if (filters.numAccelerators.from && filters.numAccelerators.to) + if (filters.numAccelerators.from > 0 && filters.numAccelerators.to > 0) opts.push(`numAccelerators=${filters.numAccelerators.from}-${filters.numAccelerators.to}`); - else if (filters.numAccelerators.from > 1 && filters.numAccelerators.to == 0) + else if (filters.numAccelerators.from > 0 && filters.numAccelerators.to == 0) opts.push(`numAccelerators=morethan-${filters.numAccelerators.from}`); - else if (filters.numAccelerators.from == 1 && filters.numAccelerators.to > 0) + else if (filters.numAccelerators.from == 0 && filters.numAccelerators.to > 0) opts.push(`numAccelerators=lessthan-${filters.numAccelerators.to}`); if (filters.node) opts.push(`node=${filters.node}`); if (filters.node && filters.nodeMatch != "eq") // "eq" is default-case opts.push(`nodeMatch=${filters.nodeMatch}`); - if (filters.energy.from > 1 && filters.energy.to > 0) + if (filters.energy.from > 0 && filters.energy.to > 0) opts.push(`energy=${filters.energy.from}-${filters.energy.to}`); - else if (filters.energy.from > 1 && filters.energy.to == 0) + else if (filters.energy.from > 0 && filters.energy.to == 0) opts.push(`energy=morethan-${filters.energy.from}`); - else if (filters.energy.from == 1 && filters.energy.to > 0) + else if (filters.energy.from == 0 && filters.energy.to > 0) opts.push(`energy=lessthan-${filters.energy.to}`); if (filters.stats.length > 0) for (let stat of filters.stats) { - if (stat.from > 1 && stat.to > 0) + if (stat.from > 0 && stat.to > 0) opts.push(`stat=${stat.field}-${stat.from}-${stat.to}`); - else if (stat.from > 1 && stat.to == 0) + else if (stat.from > 0 && stat.to == 0) opts.push(`stat=${stat.field}-morethan-${stat.from}`); - else if (stat.from == 1 && stat.to > 0) + else if (stat.from == 0 && stat.to > 0) opts.push(`stat=${stat.field}-lessthan-${stat.to}`); } // Build && Return @@ -511,43 +518,43 @@ {/if} - {#if filters.numNodes.from > 1 && filters.numNodes.to > 0} + {#if filters.numNodes.from > 0 && filters.numNodes.to > 0} (isResourcesOpen = true)}> Nodes: {filters.numNodes.from} - {filters.numNodes.to} - {:else if filters.numNodes.from > 1 && filters.numNodes.to == 0} + {:else if filters.numNodes.from > 0 && filters.numNodes.to == 0} (isResourcesOpen = true)}>  ≥ {filters.numNodes.from} Node(s) - {:else if filters.numNodes.from == 1 && filters.numNodes.to > 0} + {:else if filters.numNodes.from == 0 && filters.numNodes.to > 0} (isResourcesOpen = true)}>  ≤ {filters.numNodes.to} Node(s) {/if} - {#if filters.numHWThreads.from > 1 && filters.numHWThreads.to > 0} + {#if filters.numHWThreads.from > 0 && filters.numHWThreads.to > 0} (isResourcesOpen = true)}> HWThreads: {filters.numHWThreads.from} - {filters.numHWThreads.to} - {:else if filters.numHWThreads.from > 1 && filters.numHWThreads.to == 0} + {:else if filters.numHWThreads.from > 0 && filters.numHWThreads.to == 0} (isResourcesOpen = true)}>  ≥ {filters.numHWThreads.from} HWThread(s) - {:else if filters.numHWThreads.from == 1 && filters.numHWThreads.to > 0} + {:else if filters.numHWThreads.from == 0 && filters.numHWThreads.to > 0} (isResourcesOpen = true)}>  ≤ {filters.numHWThreads.to} HWThread(s) {/if} - {#if filters.numAccelerators.from > 1 && filters.numAccelerators.to > 0} + {#if filters.numAccelerators.from > 0 && filters.numAccelerators.to > 0} (isResourcesOpen = true)}> Accelerators: {filters.numAccelerators.from} - {filters.numAccelerators.to} - {:else if filters.numAccelerators.from > 1 && filters.numAccelerators.to == 0} + {:else if filters.numAccelerators.from > 0 && filters.numAccelerators.to == 0} (isResourcesOpen = true)}>  ≥ {filters.numAccelerators.from} Acc(s) - {:else if filters.numAccelerators.from == 1 && filters.numAccelerators.to > 0} + {:else if filters.numAccelerators.from == 0 && filters.numAccelerators.to > 0} (isResourcesOpen = true)}>  ≤ {filters.numAccelerators.to} Acc(s) @@ -559,15 +566,15 @@ {/if} - {#if filters.energy.from > 1 && filters.energy.to > 0} + {#if filters.energy.from > 0 && filters.energy.to > 0} (isEnergyOpen = true)}> Total Energy: {filters.energy.from} - {filters.energy.to} kWh - {:else if filters.energy.from > 1 && filters.energy.to == 0} + {:else if filters.energy.from > 0 && filters.energy.to == 0} (isEnergyOpen = true)}> Total Energy ≥ {filters.energy.from} kWh - {:else if filters.energy.from == 1 && filters.energy.to > 0} + {:else if filters.energy.from == 0 && filters.energy.to > 0} (isEnergyOpen = true)}> Total Energy ≤ {filters.energy.to} kWh @@ -575,15 +582,15 @@ {#if filters.stats.length > 0} {#each filters.stats as stat} - {#if stat.from > 1 && stat.to > 0} + {#if stat.from > 0 && stat.to > 0} (isStatsOpen = true)}> {stat.field}: {stat.from} - {stat.to} {stat.unit}   - {:else if stat.from > 1 && stat.to == 0} + {:else if stat.from > 0 && stat.to == 0} (isStatsOpen = true)}> {stat.field} ≥ {stat.from} {stat.unit}   - {:else if stat.from == 1 && stat.to > 0} + {:else if stat.from == 0 && stat.to > 0} (isStatsOpen = true)}> {stat.field} ≤ {stat.to} {stat.unit}   diff --git a/web/frontend/src/generic/filters/Energy.svelte b/web/frontend/src/generic/filters/Energy.svelte index dc532c86..c8013b1b 100644 --- a/web/frontend/src/generic/filters/Energy.svelte +++ b/web/frontend/src/generic/filters/Energy.svelte @@ -28,31 +28,29 @@ } = $props(); /* Const */ - const minEnergyPreset = 1; + const minEnergyPreset = 0; const maxEnergyPreset = 100; /* Derived */ // Pending let pendingEnergyState = $derived({ - from: presetEnergy?.from ? presetEnergy.from : minEnergyPreset, - to: !(presetEnergy.to == null || presetEnergy.to == 0) ? presetEnergy.to : maxEnergyPreset, + from: presetEnergy?.from || minEnergyPreset, + to: (presetEnergy.to == 0) ? null : presetEnergy.to, }); // Changable let energyState = $derived({ - from: presetEnergy?.from ? presetEnergy.from : minEnergyPreset, - to: !(presetEnergy.to == null || presetEnergy.to == 0) ? presetEnergy.to : maxEnergyPreset, + from: presetEnergy?.from || minEnergyPreset, + to: (presetEnergy.to == 0) ? null : presetEnergy.to, }); - const energyActive = $derived(!(JSON.stringify(energyState) === JSON.stringify({ from: minEnergyPreset, to: maxEnergyPreset }))); - // Block Apply if null - const disableApply = $derived(energyState.from === null || energyState.to === null); + const energyActive = $derived(!(JSON.stringify(energyState) === JSON.stringify({ from: minEnergyPreset, to: null }))); /* Function */ function setEnergy() { if (energyActive) { pendingEnergyState = { - from: energyState.from, - to: (energyState.to == maxEnergyPreset) ? 0 : energyState.to + from: (!energyState?.from) ? 0 : energyState.from, + to: (energyState.to === null) ? 0 : energyState.to }; } else { pendingEnergyState = { from: null, to: null}; @@ -86,7 +84,6 @@ {#if !disableClusterSelection} @@ -105,7 +128,8 @@ isOpen = false; pendingCluster = null; pendingPartition = null; - setFilter({ cluster: pendingCluster, partition: pendingPartition}) + pendingSubCluster = null; + setFilter({ cluster: pendingCluster, subCluster: pendingSubCluster, partition: pendingPartition }) }}>Reset {/if} From c76219651e7783884eb5bd1b5702490b59c25b8d Mon Sep 17 00:00:00 2001 From: Thomas Roehl Date: Mon, 4 May 2026 18:10:01 +0200 Subject: [PATCH 45/63] Fix parsing of metric subtypes (key stype) --- pkg/metricstore/api.go | 6 +++--- pkg/metricstore/lineprotocol.go | 16 ++++++++-------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/pkg/metricstore/api.go b/pkg/metricstore/api.go index 01dec633..8e02f44c 100644 --- a/pkg/metricstore/api.go +++ b/pkg/metricstore/api.go @@ -78,7 +78,7 @@ type APIQueryResponse struct { // - Type + TypeIds: First level of hierarchy (e.g., "cpu" + ["0", "1", "2"]) // - SubType + SubTypeIds: Second level of hierarchy (e.g., "core" + ["0", "1"]) // -// If Aggregate is true, data from multiple type/subtype IDs will be aggregated according +// If Aggregate is true, data from multiple type/stype IDs will be aggregated according // to the metric's aggregation strategy. Otherwise, separate results are returned for each combination. type APIQuery struct { Type *string `json:"type,omitempty"` @@ -174,13 +174,13 @@ func (data *APIMetricData) PadDataWithNull(ms *MemoryStore, from, to int64, metr // This is the primary API for retrieving metric data from the memory store. It supports: // - Individual queries via req.Queries // - Batch queries for all nodes via req.ForAllNodes -// - Hierarchical selector construction (cluster → host → type → subtype) +// - Hierarchical selector construction (cluster → host → type → stype) // - Optional statistics computation (avg, min, max) // - Optional data scaling // - Optional data padding with NaN values // // The function constructs selectors based on the query parameters and calls MemoryStore.Read() -// for each selector. If a query specifies Aggregate=false with multiple type/subtype IDs, +// for each selector. If a query specifies Aggregate=false with multiple type/stype IDs, // separate results are returned for each combination. // // Parameters: diff --git a/pkg/metricstore/lineprotocol.go b/pkg/metricstore/lineprotocol.go index caec82e9..ed42eead 100644 --- a/pkg/metricstore/lineprotocol.go +++ b/pkg/metricstore/lineprotocol.go @@ -6,11 +6,11 @@ // This file implements ingestion of InfluxDB line-protocol metric data received // over NATS. Each line encodes one metric sample with the following structure: // -// [,cluster=][,hostname=][,type=][,type-id=][,subtype=][,stype-id=] value= [] +// [,cluster=][,hostname=][,type=][,type-id=][,stype=][,stype-id=] value= [] // // The measurement name identifies the metric (e.g. "cpu_load"). Tags provide // routing information (cluster, host) and optional sub-device selectors (type, -// subtype). Only one field is expected per line: "value". +// stype). Only one field is expected per line: "value". // // After decoding, each sample is: // 1. Written to the in-memory store via ms.WriteToLevel. @@ -103,7 +103,7 @@ func ReceiveNats(ms *MemoryStore, // reorder prepends prefix to buf in-place when buf has enough spare capacity, // avoiding an allocation. Falls back to a regular append otherwise. // -// It is used to assemble the "type" and "subtype" selector +// It is used to assemble the "type" and "stype" selector // strings when the type tag arrives before the type-id tag in the line, so the // two byte slices need to be concatenated in tag-declaration order regardless // of wire order. @@ -145,7 +145,7 @@ type decodeState struct { // current line. Reset at the start of each line's tag-decode loop. typeBuf []byte - // subTypeBuf accumulates the concatenated "subtype"+"stype-id" tag value. + // subTypeBuf accumulates the concatenated "stype"+"stype-id" tag value. // Reset at the start of each line's tag-decode loop. subTypeBuf []byte @@ -186,7 +186,7 @@ var decodeStatePool = sync.Pool{ // - The Level pointer (host-level node in the metric tree) is cached across // consecutive lines that share the same cluster+host pair to avoid // repeated lock acquisitions on the root and cluster levels. -// - []byte→string conversions for type/subtype selectors are cached via +// - []byte→string conversions for type/stype selectors are cached via // prevType*/prevSubType* fields because batches typically repeat the same // sub-device identifiers. // - Timestamp parsing tries Second precision first; if that fails it retries @@ -269,8 +269,8 @@ func DecodeLine(dec *lineprotocol.Decoder, } case "type-id": st.typeBuf = append(st.typeBuf, val...) - case "subtype": - // We cannot be sure that the "subtype" tag comes before the "stype-id" tag: + case "stype": + // We cannot be sure that the "stype" tag comes before the "stype-id" tag: if len(st.subTypeBuf) == 0 { st.subTypeBuf = append(st.subTypeBuf, val...) } else { @@ -291,7 +291,7 @@ func DecodeLine(dec *lineprotocol.Decoder, } // subtypes: cache []byte→string conversions; messages in a batch typically - // share the same type/subtype so the hit rate is very high. + // share the same type/stype so the hit rate is very high. st.selector = st.selector[:0] if len(st.typeBuf) > 0 { if !bytes.Equal(st.typeBuf, st.prevTypeBytes) { From 77fdcddc26a15908ecdb63c82a542c1ff09b62f4 Mon Sep 17 00:00:00 2001 From: Jan Eitzinger Date: Tue, 12 May 2026 12:00:05 +0200 Subject: [PATCH 46/63] Prepare Release 1.5.4 Entire-Checkpoint: 535c1737ceb2 --- Makefile | 2 +- ReleaseNotes.md | 22 +++++++++++++++++++++- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index d139583d..04ad954c 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,6 @@ TARGET = ./cc-backend FRONTEND = ./web/frontend -VERSION = 1.5.3 +VERSION = 1.5.4 GIT_HASH := $(shell git rev-parse --short HEAD || echo 'development') CURRENT_TIME = $(shell date +"%Y-%m-%d:T%H:%M:%S") LD_FLAGS = '-s -X main.date=${CURRENT_TIME} -X main.version=${VERSION} -X main.commit=${GIT_HASH}' diff --git a/ReleaseNotes.md b/ReleaseNotes.md index 16e0eaf8..9909879d 100644 --- a/ReleaseNotes.md +++ b/ReleaseNotes.md @@ -1,4 +1,4 @@ -# `cc-backend` version 1.5.3 +# `cc-backend` version 1.5.4 Supports job archive version 3 and database version 11. @@ -15,6 +15,26 @@ While we are confident that the memory issue with the metricstore cleanup move policy is fixed, it is still recommended to use delete policy for cleanup. This is also the default. +## Changes in 1.5.4 + +### Bug fixes + +- **Roofline legend placement**: Roofline plot legends now use fixed + coordinates instead of dynamic placement, preventing the legend from + overlapping data points or being rendered off-canvas (#546). +- **Subcluster usage tab labels**: Subcluster names in the status dashboard + usage tabs are no longer force-capitalized; the original cluster-defined + casing is preserved. +- **NodeListRow host filter**: The running-jobs query in the node list row now + filters by exact node hostname (`eq`) instead of substring match + (`contains`), avoiding incorrect matches when one hostname is a prefix of + another. + +### Dependencies + +- **Go module upgrades**: Refreshed Go module dependencies to their latest + compatible versions. + ## Changes in 1.5.3 ### Bug fixes From 8bf5f67bb28bd1d86008fee7e85ac2a1f839ed50 Mon Sep 17 00:00:00 2001 From: Jan Eitzinger Date: Fri, 29 May 2026 16:44:05 +0200 Subject: [PATCH 47/63] Update dependencies --- go.mod | 74 +++++++++++++++---------------- go.sum | 79 ++++++++++++++++++++++++++++++++++ web/frontend/package-lock.json | 76 +++++++++++++++----------------- 3 files changed, 151 insertions(+), 78 deletions(-) diff --git a/go.mod b/go.mod index e95df7fd..d90daa32 100644 --- a/go.mod +++ b/go.mod @@ -8,19 +8,19 @@ tool ( ) require ( - github.com/99designs/gqlgen v0.17.89 - github.com/ClusterCockpit/cc-lib/v2 v2.11.0 + github.com/99designs/gqlgen v0.17.90 + github.com/ClusterCockpit/cc-lib/v2 v2.12.0 github.com/ClusterCockpit/cc-line-protocol/v2 v2.4.0 github.com/Masterminds/squirrel v1.5.4 - github.com/aws/aws-sdk-go-v2 v1.41.6 - github.com/aws/aws-sdk-go-v2/config v1.32.16 - github.com/aws/aws-sdk-go-v2/credentials v1.19.15 - github.com/aws/aws-sdk-go-v2/service/s3 v1.100.0 + github.com/aws/aws-sdk-go-v2 v1.41.7 + github.com/aws/aws-sdk-go-v2/config v1.32.18 + github.com/aws/aws-sdk-go-v2/credentials v1.19.17 + github.com/aws/aws-sdk-go-v2/service/s3 v1.102.0 github.com/coreos/go-oidc/v3 v3.18.0 github.com/expr-lang/expr v1.17.8 - github.com/go-chi/chi/v5 v5.2.5 + github.com/go-chi/chi/v5 v5.3.0 github.com/go-chi/cors v1.2.2 - github.com/go-co-op/gocron/v2 v2.21.1 + github.com/go-co-op/gocron/v2 v2.21.2 github.com/go-ldap/ldap/v3 v3.4.13 github.com/golang-jwt/jwt/v5 v5.3.1 github.com/golang-migrate/migrate/v4 v4.19.1 @@ -28,15 +28,15 @@ require ( github.com/gorilla/sessions v1.4.0 github.com/jmoiron/sqlx v1.4.0 github.com/joho/godotenv v1.5.1 - github.com/mattn/go-sqlite3 v1.14.42 - github.com/parquet-go/parquet-go v0.29.0 + github.com/mattn/go-sqlite3 v1.14.44 + github.com/parquet-go/parquet-go v0.30.1 github.com/qustavo/sqlhooks/v2 v2.1.0 github.com/santhosh-tekuri/jsonschema/v5 v5.3.1 github.com/stretchr/testify v1.11.1 github.com/swaggo/http-swagger v1.3.4 github.com/swaggo/swag v1.16.6 - github.com/vektah/gqlparser/v2 v2.5.32 - golang.org/x/crypto v0.50.0 + github.com/vektah/gqlparser/v2 v2.5.33 + golang.org/x/crypto v0.52.0 golang.org/x/oauth2 v0.36.0 golang.org/x/sync v0.20.0 golang.org/x/time v0.15.0 @@ -48,24 +48,24 @@ require ( github.com/agnivade/levenshtein v1.2.1 // indirect github.com/andybalholm/brotli v1.2.1 // indirect github.com/apapsch/go-jsonmerge/v2 v2.0.0 // indirect - github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.9 // indirect - github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.22 // indirect - github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.22 // indirect - github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.22 // indirect + github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.10 // indirect + github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.23 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.23 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.23 // indirect github.com/aws/aws-sdk-go-v2/internal/ini v1.8.6 // indirect - github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.23 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.8 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.14 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.22 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.22 // indirect - github.com/aws/aws-sdk-go-v2/service/signin v1.0.10 // indirect - github.com/aws/aws-sdk-go-v2/service/sso v1.30.16 // indirect - github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.20 // indirect - github.com/aws/aws-sdk-go-v2/service/sts v1.42.0 // indirect - github.com/aws/smithy-go v1.25.1 // indirect + github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.24 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.9 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.16 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.23 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.23 // indirect + github.com/aws/aws-sdk-go-v2/service/signin v1.0.11 // indirect + github.com/aws/aws-sdk-go-v2/service/sso v1.30.17 // indirect + github.com/aws/aws-sdk-go-v2/service/ssooidc v1.36.0 // indirect + github.com/aws/aws-sdk-go-v2/service/sts v1.42.1 // indirect + github.com/aws/smithy-go v1.26.0 // indirect github.com/cpuguy83/go-md2man/v2 v2.0.7 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect - github.com/fsnotify/fsnotify v1.9.0 // indirect + github.com/fsnotify/fsnotify v1.10.1 // indirect github.com/go-asn1-ber/asn1-ber v1.5.8-0.20250403174932-29230038a667 // indirect github.com/go-jose/go-jose/v4 v4.1.4 // indirect github.com/go-openapi/jsonpointer v0.23.1 // indirect @@ -87,14 +87,14 @@ require ( github.com/influxdata/influxdb-client-go/v2 v2.14.0 // indirect github.com/influxdata/line-protocol v0.0.0-20210922203350-b1ad95c89adf // indirect github.com/jonboulle/clockwork v0.5.0 // indirect - github.com/klauspost/compress v1.18.5 // indirect + github.com/klauspost/compress v1.18.6 // indirect github.com/kr/pretty v0.3.1 // indirect github.com/lann/builder v0.0.0-20180802200727-47ae307949d0 // indirect github.com/lann/ps v0.0.0-20150810152359-62de8c46ede0 // indirect - github.com/nats-io/nats.go v1.51.0 // indirect + github.com/nats-io/nats.go v1.52.0 // indirect github.com/nats-io/nkeys v0.4.15 // indirect github.com/nats-io/nuid v1.0.1 // indirect - github.com/oapi-codegen/runtime v1.4.0 // indirect + github.com/oapi-codegen/runtime v1.4.1 // indirect github.com/parquet-go/bitpack v1.0.0 // indirect github.com/parquet-go/jsonlite v1.5.2 // indirect github.com/pierrec/lz4/v4 v4.1.26 // indirect @@ -103,20 +103,20 @@ require ( github.com/rogpeppe/go-internal v1.10.0 // indirect github.com/russross/blackfriday/v2 v2.1.0 // indirect github.com/sosodev/duration v1.4.0 // indirect - github.com/stmcginnis/gofish v0.21.6 // indirect + github.com/stmcginnis/gofish v0.22.0 // indirect github.com/stretchr/objx v0.5.2 // indirect github.com/swaggo/files v1.0.1 // indirect github.com/twpayne/go-geom v1.6.1 // indirect github.com/urfave/cli/v2 v2.27.7 // indirect - github.com/urfave/cli/v3 v3.7.0 // indirect + github.com/urfave/cli/v3 v3.8.0 // indirect github.com/xrash/smetrics v0.0.0-20250705151800-55b8f293f342 // indirect go.yaml.in/yaml/v2 v2.4.4 // indirect go.yaml.in/yaml/v3 v3.0.4 // indirect - golang.org/x/mod v0.35.0 // indirect - golang.org/x/net v0.53.0 // indirect - golang.org/x/sys v0.43.0 // indirect - golang.org/x/text v0.36.0 // indirect - golang.org/x/tools v0.44.0 // indirect + golang.org/x/mod v0.36.0 // indirect + golang.org/x/net v0.55.0 // indirect + golang.org/x/sys v0.45.0 // indirect + golang.org/x/text v0.37.0 // indirect + golang.org/x/tools v0.45.0 // indirect google.golang.org/protobuf v1.36.11 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect sigs.k8s.io/yaml v1.6.0 // indirect diff --git a/go.sum b/go.sum index 1945d09a..ef0295e4 100644 --- a/go.sum +++ b/go.sum @@ -4,6 +4,8 @@ github.com/99designs/gqlgen v0.17.88 h1:neMQDgehMwT1vYIOx/w5ZYPUU/iMNAJzRO44I5In github.com/99designs/gqlgen v0.17.88/go.mod h1:qeqYFEgOeSKqWedOjogPizimp2iu4E23bdPvl4jTYic= github.com/99designs/gqlgen v0.17.89 h1:KzEcxPiMgQoMw3m/E85atUEHyZyt0PbAflMia5Kw8z8= github.com/99designs/gqlgen v0.17.89/go.mod h1:GFqruTVGB7ZTdrf1uzOagpXbY7DrEt1pIxnTdhIbWvQ= +github.com/99designs/gqlgen v0.17.90 h1:wSv6blm/PoplU6QoNw83EcQpNtC0HX3/+44vITJOzpk= +github.com/99designs/gqlgen v0.17.90/go.mod h1:GqYrEwYsqCG8VaOsq2kJUCUKwAE1T+u2i+Nj7NtXiVI= github.com/Azure/go-ntlmssp v0.1.0 h1:DjFo6YtWzNqNvQdrwEyr/e4nhU3vRiwenz5QX7sFz+A= github.com/Azure/go-ntlmssp v0.1.0/go.mod h1:NYqdhxd/8aAct/s4qSYZEerdPuH1liG2/X9DiVTbhpk= github.com/Azure/go-ntlmssp v0.1.1 h1:l+FM/EEMb0U9QZE7mKNEDw5Mu3mFiaa2GKOoTSsNDPw= @@ -12,6 +14,8 @@ github.com/ClusterCockpit/cc-lib/v2 v2.9.1 h1:eplKhXQyGAElBGCEGdmxwj7fLv26Op16uK github.com/ClusterCockpit/cc-lib/v2 v2.9.1/go.mod h1:FwD8vnTIbBM3ngeLNKmCvp9FoSjQZm7xnuaVxEKR23o= github.com/ClusterCockpit/cc-lib/v2 v2.11.0 h1:LaLs4J0b7FArIXT8byMUcIcUr55R5obATjVi7qI02r4= github.com/ClusterCockpit/cc-lib/v2 v2.11.0/go.mod h1:Oj+N2lpFqiBOBzjfrLIGJ2YSWT400TX4M0ii4lNl81A= +github.com/ClusterCockpit/cc-lib/v2 v2.12.0 h1:ZbGD68nDniuvzFjJCdyYawpCBrabdSyWOg5FFSyFbjQ= +github.com/ClusterCockpit/cc-lib/v2 v2.12.0/go.mod h1:ml8xtcYa5WhPM7JDQ+M9/R9ZBxITCR/5xqGJ//GxXJI= github.com/ClusterCockpit/cc-line-protocol/v2 v2.4.0 h1:hIzxgTBWcmCIHtoDKDkSCsKCOCOwUC34sFsbD2wcW0Q= github.com/ClusterCockpit/cc-line-protocol/v2 v2.4.0/go.mod h1:y42qUu+YFmu5fdNuUAS4VbbIKxVjxCvbVqFdpdh8ahY= github.com/DATA-DOG/go-sqlmock v1.5.2 h1:OcvFkGmslmlZibjAjaHm3L//6LiuBgolP7OputlJIzU= @@ -24,6 +28,7 @@ github.com/NVIDIA/go-nvml v0.13.0-1 h1:OLX8Jq3dONuPOQPC7rndB6+iDmDakw0XTYgzMxObk github.com/NVIDIA/go-nvml v0.13.0-1/go.mod h1:+KNA7c7gIBH7SKSJ1ntlwkfN80zdx8ovl4hrK3LmPt4= github.com/PuerkitoBio/goquery v1.11.0 h1:jZ7pwMQXIITcUXNH83LLk+txlaEy6NVOfTuP43xxfqw= github.com/PuerkitoBio/goquery v1.11.0/go.mod h1:wQHgxUOU3JGuj3oD/QFfxUdlzW6xPHfqyHre6VMY4DQ= +github.com/PuerkitoBio/goquery v1.12.0 h1:pAcL4g3WRXekcB9AU/y1mbKez2dbY2AajVhtkO8RIBo= github.com/RaveNoX/go-jsoncommentstrip v1.0.0/go.mod h1:78ihd09MekBnJnxpICcwzCMzGrKSKYe4AqU6PDYYpjk= github.com/agnivade/levenshtein v1.2.1 h1:EHBY3UOn1gwdy/VbFwgo4cxecRznFk7fKWN1KOX7eoM= github.com/agnivade/levenshtein v1.2.1/go.mod h1:QVVI16kDrtSuwcpd0p1+xMC6Z/VfhtCyDIjcwga4/DU= @@ -43,6 +48,7 @@ github.com/andybalholm/cascadia v1.3.3 h1:AG2YHrzJIm4BZ19iwJ/DAua6Btl3IwJX+VI4kk github.com/andybalholm/cascadia v1.3.3/go.mod h1:xNd9bqTn98Ln4DwST8/nG+H0yuB8Hmgu1YHNnWw0GeA= github.com/antithesishq/antithesis-sdk-go v0.5.0-default-no-op h1:Ucf+QxEKMbPogRO5guBNe5cgd9uZgfoJLOYs8WWhtjM= github.com/antithesishq/antithesis-sdk-go v0.5.0-default-no-op/go.mod h1:IUpT2DPAKh6i/YhSbt6Gl3v2yvUZjmKncl7U91fup7E= +github.com/antithesishq/antithesis-sdk-go v0.6.0-default-no-op h1:kpBdlEPbRvff0mDD1gk7o9BhI16b9p5yYAXRlidpqJE= github.com/apapsch/go-jsonmerge/v2 v2.0.0 h1:axGnT1gRIfimI7gJifB699GoE/oq+F2MU7Dml6nw9rQ= github.com/apapsch/go-jsonmerge/v2 v2.0.0/go.mod h1:lvDnEdqiQrp0O42VQGgmlKpxL1AP2+08jFMw88y4klk= github.com/arbovm/levenshtein v0.0.0-20160628152529-48b4e1c0c4d0 h1:jfIu9sQUG6Ig+0+Ap1h4unLjW6YQJpKZVmUzxsD4E/Q= @@ -51,30 +57,44 @@ github.com/aws/aws-sdk-go-v2 v1.41.3 h1:4kQ/fa22KjDt13QCy1+bYADvdgcxpfH18f0zP542 github.com/aws/aws-sdk-go-v2 v1.41.3/go.mod h1:mwsPRE8ceUUpiTgF7QmQIJ7lgsKUPQOUl3o72QBrE1o= github.com/aws/aws-sdk-go-v2 v1.41.6 h1:1AX0AthnBQzMx1vbmir3Y4WsnJgiydmnJjiLu+LvXOg= github.com/aws/aws-sdk-go-v2 v1.41.6/go.mod h1:dy0UzBIfwSeot4grGvY1AqFWN5zgziMmWGzysDnHFcQ= +github.com/aws/aws-sdk-go-v2 v1.41.7 h1:DWpAJt66FmnnaRIOT/8ASTucrvuDPZASqhhLey6tLY8= +github.com/aws/aws-sdk-go-v2 v1.41.7/go.mod h1:4LAfZOPHNVNQEckOACQx60Y8pSRjIkNZQz1w92xpMJc= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.6 h1:N4lRUXZpZ1KVEUn6hxtco/1d2lgYhNn1fHkkl8WhlyQ= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.6/go.mod h1:lyw7GFp3qENLh7kwzf7iMzAxDn+NzjXEAGjKS2UOKqI= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.9 h1:adBsCIIpLbLmYnkQU+nAChU5yhVTvu5PerROm+/Kq2A= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.9/go.mod h1:uOYhgfgThm/ZyAuJGNQ5YgNyOlYfqnGpTHXvk3cpykg= +github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.10 h1:gx1AwW1Iyk9Z9dD9F4akX5gnN3QZwUB20GGKH/I+Rho= +github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.10/go.mod h1:qqY157uZoqm5OXq/amuaBJyC9hgBCBQnsaWnPe905GY= github.com/aws/aws-sdk-go-v2/config v1.32.11 h1:ftxI5sgz8jZkckuUHXfC/wMUc8u3fG1vQS0plr2F2Zs= github.com/aws/aws-sdk-go-v2/config v1.32.11/go.mod h1:twF11+6ps9aNRKEDimksp923o44w/Thk9+8YIlzWMmo= github.com/aws/aws-sdk-go-v2/config v1.32.16 h1:Q0iQ7quUgJP0F/SCRTieScnaMdXr9h/2+wze1u3cNeM= github.com/aws/aws-sdk-go-v2/config v1.32.16/go.mod h1:duCCnJEFqpt2RC6no1iK6q+8HpwOAkiUua0pY507dQc= +github.com/aws/aws-sdk-go-v2/config v1.32.18 h1:Hcia46bxhGgF3BaSnG8nSNCWmqTK6bj9xN9/FJ3WK6Q= +github.com/aws/aws-sdk-go-v2/config v1.32.18/go.mod h1:zEjCAYmxqDadH1WX8CdBvmLKhUEUVFgKRQG38zjDmrY= github.com/aws/aws-sdk-go-v2/credentials v1.19.11 h1:NdV8cwCcAXrCWyxArt58BrvZJ9pZ9Fhf9w6Uh5W3Uyc= github.com/aws/aws-sdk-go-v2/credentials v1.19.11/go.mod h1:30yY2zqkMPdrvxBqzI9xQCM+WrlrZKSOpSJEsylVU+8= github.com/aws/aws-sdk-go-v2/credentials v1.19.15 h1:fyvgWTszojq8hEnMi8PPBTvZdTtEVmAVyo+NFLHBhH4= github.com/aws/aws-sdk-go-v2/credentials v1.19.15/go.mod h1:gJiYyMOjNg8OEdRWOf3CrFQxM2a98qmrtjx1zuiQfB8= +github.com/aws/aws-sdk-go-v2/credentials v1.19.17 h1:gP2nkGsS+KMvF/jfFz2Vv2qiiOqWKyPACSzPsqHgoW8= +github.com/aws/aws-sdk-go-v2/credentials v1.19.17/go.mod h1:Bsew3S/moG5iT77giPj1q8wb/s0RE5/QfH+ASjYtuQc= github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.19 h1:INUvJxmhdEbVulJYHI061k4TVuS3jzzthNvjqvVvTKM= github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.19/go.mod h1:FpZN2QISLdEBWkayloda+sZjVJL+e9Gl0k1SyTgcswU= github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.22 h1:IOGsJ1xVWhsi+ZO7/NW8OuZZBtMJLZbk4P5HDjJO0jQ= github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.22/go.mod h1:b+hYdbU+jGKfXE8kKM6g1+h+L/Go3vMvzlxBsiuGsxg= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.23 h1:UuSfcORqNSz/ey3VPRS8TcVH2Ikf0/sC+Hdj400QI6U= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.23/go.mod h1:+G/OSGiOFnSOkYloKj/9M35s74LgVAdJBSD5lsFfqKg= github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.19 h1:/sECfyq2JTifMI2JPyZ4bdRN77zJmr6SrS1eL3augIA= github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.19/go.mod h1:dMf8A5oAqr9/oxOfLkC/c2LU/uMcALP0Rgn2BD5LWn0= github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.22 h1:GmLa5Kw1ESqtFpXsx5MmC84QWa/ZrLZvlJGa2y+4kcQ= github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.22/go.mod h1:6sW9iWm9DK9YRpRGga/qzrzNLgKpT2cIxb7Vo2eNOp0= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.23 h1:GpT/TrnBYuE5gan2cZbTtvP+JlHsutdmlV2YfEyNde0= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.23/go.mod h1:xYWD6BS9ywC5bS3sz9Xh04whO/hzK2plt2Zkyrp4JuA= github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.19 h1:AWeJMk33GTBf6J20XJe6qZoRSJo0WfUhsMdUKhoODXE= github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.19/go.mod h1:+GWrYoaAsV7/4pNHpwh1kiNLXkKaSoppxQq9lbH8Ejw= github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.22 h1:dY4kWZiSaXIzxnKlj17nHnBcXXBfac6UlsAx2qL6XrU= github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.22/go.mod h1:KIpEUx0JuRZLO7U6cbV204cWAEco2iC3l061IxlwLtI= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.23 h1:bpd8vxhlQi2r1hiueOw02f/duEPTMK59Q4QMAoTTtTo= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.23/go.mod h1:15DfR2nw+CRHIk0tqNyifu3G1YdAOy68RftkhMDDwYk= github.com/aws/aws-sdk-go-v2/internal/ini v1.8.5 h1:clHU5fm//kWS1C2HgtgWxfQbFbx4b6rx+5jzhgX9HrI= github.com/aws/aws-sdk-go-v2/internal/ini v1.8.5/go.mod h1:O3h0IK87yXci+kg6flUKzJnWeziQUKciKrLjcatSNcY= github.com/aws/aws-sdk-go-v2/internal/ini v1.8.6 h1:qYQ4pzQ2Oz6WpQ8T3HvGHnZydA72MnLuFK9tJwmrbHw= @@ -83,46 +103,68 @@ github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.20 h1:qi3e/dmpdONhj1RyIZdi6DKKpDX github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.20/go.mod h1:V1K+TeJVD5JOk3D9e5tsX2KUdL7BlB+FV6cBhdobN8c= github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.23 h1:FPXsW9+gMuIeKmz7j6ENWcWtBGTe1kH8r9thNt5Uxx4= github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.23/go.mod h1:7J8iGMdRKk6lw2C+cMIphgAnT8uTwBwNOsGkyOCm80U= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.24 h1:OQqn11BtaYv1WLUowvcA30MpzIu8Ti4pcLPIIyoKZrA= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.24/go.mod h1:X5ZJyfwVrWA96GzPmUCWFQaEARPR7gCrpq2E92PJwAE= github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.6 h1:XAq62tBTJP/85lFD5oqOOe7YYgWxY9LvWq8plyDvDVg= github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.6/go.mod h1:x0nZssQ3qZSnIcePWLvcoFisRXJzcTVvYpAAdYX8+GI= github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.8 h1:HtOTYcbVcGABLOVuPYaIihj6IlkqubBwFj10K5fxRek= github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.8/go.mod h1:VsK9abqQeGlzPgUr+isNWzPlK2vKe9INMLWnY65f5Xs= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.9 h1:FLudkZLt5ci0ozzgkVo8BJGwvqNaZbTWb3UcucAateA= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.9/go.mod h1:w7wZ/s9qK7c8g4al+UyoF1Sp/Z45UwMGcqIzLWVQHWk= github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.11 h1:BYf7XNsJMzl4mObARUBUib+j2tf0U//JAAtTnYqvqCw= github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.11/go.mod h1:aEUS4WrNk/+FxkBZZa7tVgp4pGH+kFGW40Y8rCPqt5g= github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.14 h1:xnvDEnw+pnj5mctWiYuFbigrEzSm35x7k4KS/ZkCANg= github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.14/go.mod h1:yS5rNogD8e0Wu9+l3MUwr6eENBzEeGejvINpN5PAYfY= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.16 h1:tX68nPDCoX0s2ksM7CipWP0QFw2hGDWwUdxI6+eT9ZU= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.16/go.mod h1:e3IzZvQ3kAWNykvE0Tr0RDZCMFInMvhku3qNpcIQXhM= github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.19 h1:X1Tow7suZk9UCJHE1Iw9GMZJJl0dAnKXXP1NaSDHwmw= github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.19/go.mod h1:/rARO8psX+4sfjUQXp5LLifjUt8DuATZ31WptNJTyQA= github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.22 h1:PUmZeJU6Y1Lbvt9WFuJ0ugUK2xn6hIWUBBbKuOWF30s= github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.22/go.mod h1:nO6egFBoAaoXze24a2C0NjQCvdpk8OueRoYimvEB9jo= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.23 h1:pbrxO/kuIwgEsOPLkaHu0O+m4fNgLU8B3vxQ+72jTPw= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.23/go.mod h1:/CMNUqoj46HpS3MNRDEDIwcgEnrtZlKRaHNaHxIFpNA= github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.19 h1:JnQeStZvPHFHeyky/7LbMlyQjUa+jIBj36OlWm0pzIk= github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.19/go.mod h1:HGyasyHvYdFQeJhvDHfH7HXkHh57htcJGKDZ+7z+I24= github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.22 h1:SE+aQ4DEqG53RRCAIHlCf//B2ycxGH7jFkpnAh/kKPM= github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.22/go.mod h1:ES3ynECd7fYeJIL6+oax+uIEljmfps0S70BaQzbMd/o= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.23 h1:03xatSQO4+AM1lTAbnRg5OK528EUg744nW7F73U8DKw= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.23/go.mod h1:M8l3mwgx5ToK7wot2sBBce/ojzgnPzZXUV445gTSyE8= github.com/aws/aws-sdk-go-v2/service/s3 v1.97.0 h1:zyKY4OxzUImu+DigelJI9o49QQv8CjREs5E1CywjtIA= github.com/aws/aws-sdk-go-v2/service/s3 v1.97.0/go.mod h1:NF3JcMGOiARAss1ld3WGORCw71+4ExDD2cbbdKS5PpA= github.com/aws/aws-sdk-go-v2/service/s3 v1.100.0 h1:7G26Sae6PMKn4kMcU5JzNfrm1YrKwyOhowXPYR2WiWY= github.com/aws/aws-sdk-go-v2/service/s3 v1.100.0/go.mod h1:Fw9aqhJicIVee1VytBBjH+l+5ov6/PhbtIK/u3rt/ls= +github.com/aws/aws-sdk-go-v2/service/s3 v1.102.0 h1:gfPQ6do5PZTCc5n/vZUHz/G8McrNrfERGSO+iHvVbCA= +github.com/aws/aws-sdk-go-v2/service/s3 v1.102.0/go.mod h1:wO6U9egJtCtsZEHG2AAcFf1kUWDRrH0Iif6K3bVmmdE= github.com/aws/aws-sdk-go-v2/service/signin v1.0.7 h1:Y2cAXlClHsXkkOvWZFXATr34b0hxxloeQu/pAZz2row= github.com/aws/aws-sdk-go-v2/service/signin v1.0.7/go.mod h1:idzZ7gmDeqeNrSPkdbtMp9qWMgcBwykA7P7Rzh5DXVU= github.com/aws/aws-sdk-go-v2/service/signin v1.0.10 h1:a1Fq/KXn75wSzoJaPQTgZO0wHGqE9mjFnylnqEPTchA= github.com/aws/aws-sdk-go-v2/service/signin v1.0.10/go.mod h1:p6+MXNxW7IA6dMgHfTAzljuwSKD0NCm/4lbS4t6+7vI= +github.com/aws/aws-sdk-go-v2/service/signin v1.0.11 h1:TdJ+HdzOBhU8+iVAOGUTU63VXopcumCOF1paFulHWZc= +github.com/aws/aws-sdk-go-v2/service/signin v1.0.11/go.mod h1:R82ZRExE/nheo0N+T8zHPcLRTcH8MGsnR3BiVGX0TwI= github.com/aws/aws-sdk-go-v2/service/sso v1.30.12 h1:iSsvB9EtQ09YrsmIc44Heqlx5ByGErqhPK1ZQLppias= github.com/aws/aws-sdk-go-v2/service/sso v1.30.12/go.mod h1:fEWYKTRGoZNl8tZ77i61/ccwOMJdGxwOhWCkp6TXAr0= github.com/aws/aws-sdk-go-v2/service/sso v1.30.16 h1:x6bKbmDhsgSZwv6q19wY/u3rLk/3FGjJWyqKcIRufpE= github.com/aws/aws-sdk-go-v2/service/sso v1.30.16/go.mod h1:CudnEVKRtLn0+3uMV0yEXZ+YZOKnAtUJ5DmDhilVnIw= +github.com/aws/aws-sdk-go-v2/service/sso v1.30.17 h1:7byT8HUWrgoRp6sXjxtZwgOKfhss5fW6SkLBtqzgRoE= +github.com/aws/aws-sdk-go-v2/service/sso v1.30.17/go.mod h1:xNWknVi4Ezm1vg1QsB/5EWpAJURq22uqd38U8qKvOJc= github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.16 h1:EnUdUqRP1CNzt2DkV67tJx6XDN4xlfBFm+bzeNOQVb0= github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.16/go.mod h1:Jic/xv0Rq/pFNCh3WwpH4BEqdbSAl+IyHro8LbibHD8= github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.20 h1:oK/njaL8GtyEihkWMD4k3VgHCT64RQKkZwh0DG5j8ak= github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.20/go.mod h1:JHs8/y1f3zY7U5WcuzoJ/yAYGYtNIVPKLIbp61euvmg= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.36.0 h1:nDARhv/oF55bcxF7rCI/4PDxOKnVXVWwDuDwCs2I2SQ= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.36.0/go.mod h1:4vIRDq+CJB2xFAXZ+YgGUTiEft7oAQlhIs71xcSeuVg= github.com/aws/aws-sdk-go-v2/service/sts v1.41.8 h1:XQTQTF75vnug2TXS8m7CVJfC2nniYPZnO1D4Np761Oo= github.com/aws/aws-sdk-go-v2/service/sts v1.41.8/go.mod h1:Xgx+PR1NUOjNmQY+tRMnouRp83JRM8pRMw/vCaVhPkI= github.com/aws/aws-sdk-go-v2/service/sts v1.42.0 h1:ks8KBcZPh3PYISr5dAiXCM5/Thcuxk8l+PG4+A0exds= github.com/aws/aws-sdk-go-v2/service/sts v1.42.0/go.mod h1:pFw33T0WLvXU3rw1WBkpMlkgIn54eCB5FYLhjDc9Foo= +github.com/aws/aws-sdk-go-v2/service/sts v1.42.1 h1:F/M5Y9I3nwr2IEpshZgh1GeHpOItExNM9L1euNuh/fk= +github.com/aws/aws-sdk-go-v2/service/sts v1.42.1/go.mod h1:mTNxImtovCOEEuD65mKW7DCsL+2gjEH+RPEAexAzAio= github.com/aws/smithy-go v1.24.2 h1:FzA3bu/nt/vDvmnkg+R8Xl46gmzEDam6mZ1hzmwXFng= github.com/aws/smithy-go v1.24.2/go.mod h1:YE2RhdIuDbA5E5bTdciG9KrW3+TiEONeUWCqxX9i1Fc= github.com/aws/smithy-go v1.25.1 h1:J8ERsGSU7d+aCmdQur5Txg6bVoYelvQJgtZehD12GkI= github.com/aws/smithy-go v1.25.1/go.mod h1:YE2RhdIuDbA5E5bTdciG9KrW3+TiEONeUWCqxX9i1Fc= +github.com/aws/smithy-go v1.26.0 h1:9ouqbi+NyKP7fV3Te7UElCwdAb6Y8uk7LGwPE5tVe/s= +github.com/aws/smithy-go v1.26.0/go.mod h1:YE2RhdIuDbA5E5bTdciG9KrW3+TiEONeUWCqxX9i1Fc= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/bmatcuk/doublestar v1.1.1/go.mod h1:UD6OnuiIn0yFxxA2le/rnRU1G4RaI4UvFv1sNto9p6w= @@ -147,16 +189,22 @@ github.com/frankban/quicktest v1.13.0 h1:yNZif1OkDfNoDfb9zZa9aXIpejNR4F23Wely0c+ github.com/frankban/quicktest v1.13.0/go.mod h1:qLE0fzW0VuyUAJgPU19zByoIr0HtCHN/r/VLSOOIySU= github.com/fsnotify/fsnotify v1.9.0 h1:2Ml+OJNzbYCTzsxtv8vKSFD9PbJjmhYF14k/jKC7S9k= github.com/fsnotify/fsnotify v1.9.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= +github.com/fsnotify/fsnotify v1.10.1 h1:b0/UzAf9yR5rhf3RPm9gf3ehBPpf0oZKIjtpKrx59Ho= +github.com/fsnotify/fsnotify v1.10.1/go.mod h1:TLheqan6HD6GBK6PrDWyDPBaEV8LspOxvPSjC+bVfgo= github.com/go-asn1-ber/asn1-ber v1.5.8-0.20250403174932-29230038a667 h1:BP4M0CvQ4S3TGls2FvczZtj5Re/2ZzkV9VwqPHH/3Bo= github.com/go-asn1-ber/asn1-ber v1.5.8-0.20250403174932-29230038a667/go.mod h1:hEBeB/ic+5LoWskz+yKT7vGhhPYkProFKoKdwZRWMe0= github.com/go-chi/chi/v5 v5.2.5 h1:Eg4myHZBjyvJmAFjFvWgrqDTXFyOzjj7YIm3L3mu6Ug= github.com/go-chi/chi/v5 v5.2.5/go.mod h1:X7Gx4mteadT3eDOMTsXzmI4/rwUpOwBHLpAfupzFJP0= +github.com/go-chi/chi/v5 v5.3.0 h1:halUjDxhshgXHMrao5bB8eNBXo/rnzwr8m5m36glehM= +github.com/go-chi/chi/v5 v5.3.0/go.mod h1:R+tYY2hNuVUUjxoPtqUdgBqevM9s9njzkTLutVsOCto= github.com/go-chi/cors v1.2.2 h1:Jmey33TE+b+rB7fT8MUy1u0I4L+NARQlK6LhzKPSyQE= github.com/go-chi/cors v1.2.2/go.mod h1:sSbTewc+6wYHBBCW7ytsFSn836hqM7JxpglAy2Vzc58= github.com/go-co-op/gocron/v2 v2.19.1 h1:B4iLeA0NB/2iO3EKQ7NfKn5KsQgZfjb2fkvoZJU3yBI= github.com/go-co-op/gocron/v2 v2.19.1/go.mod h1:5lEiCKk1oVJV39Zg7/YG10OnaVrDAV5GGR6O0663k6U= github.com/go-co-op/gocron/v2 v2.21.1 h1:QYOK6iOQVCut+jDcs4zRdWRTBHRxRCEeeFi1TnAmgbU= github.com/go-co-op/gocron/v2 v2.21.1/go.mod h1:5lEiCKk1oVJV39Zg7/YG10OnaVrDAV5GGR6O0663k6U= +github.com/go-co-op/gocron/v2 v2.21.2 h1:bD8/YwkojYHgXFr3iEulL148KBdTbKVxUZzFKpXcdbY= +github.com/go-co-op/gocron/v2 v2.21.2/go.mod h1:5lEiCKk1oVJV39Zg7/YG10OnaVrDAV5GGR6O0663k6U= github.com/go-jose/go-jose/v4 v4.1.3 h1:CVLmWDhDVRa6Mi/IgCgaopNosCaHz7zrMeF9MlZRkrs= github.com/go-jose/go-jose/v4 v4.1.3/go.mod h1:x4oUasVrzR7071A4TnHLGSPpNOm2a21K9Kf04k1rs08= github.com/go-jose/go-jose/v4 v4.1.4 h1:moDMcTHmvE6Groj34emNPLs/qtYXRVcd6S7NHbHz3kA= @@ -226,6 +274,7 @@ github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= github.com/google/go-tpm v0.9.7 h1:u89J4tUUeDTlH8xxC3CTW7OHZjbjKoHdQ9W7gCUhtxA= github.com/google/go-tpm v0.9.7/go.mod h1:h9jEsEECg7gtLis0upRBQU+GhYVH6jMjrFxI8u6bVUY= +github.com/google/go-tpm v0.9.8 h1:slArAR9Ft+1ybZu0lBwpSmpwhRXaa85hWtMinMyRAWo= github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/gops v0.3.29 h1:n98J2qSOK1NJvRjdLDcjgDryjpIBGhbaqph1mXKL0rY= @@ -275,6 +324,8 @@ github.com/klauspost/compress v1.18.4 h1:RPhnKRAQ4Fh8zU2FY/6ZFDwTVTxgJ/EMydqSTzE github.com/klauspost/compress v1.18.4/go.mod h1:R0h/fSBs8DE4ENlcrlib3PsXS61voFxhIs2DeRhCvJ4= github.com/klauspost/compress v1.18.5 h1:/h1gH5Ce+VWNLSWqPzOVn6XBO+vJbCNGvjoaGBFW2IE= github.com/klauspost/compress v1.18.5/go.mod h1:cwPg85FWrGar70rWktvGQj8/hthj3wpl0PGDogxkrSQ= +github.com/klauspost/compress v1.18.6 h1:2jupLlAwFm95+YDR+NwD2MEfFO9d4z4Prjl1XXDjuao= +github.com/klauspost/compress v1.18.6/go.mod h1:cwPg85FWrGar70rWktvGQj8/hthj3wpl0PGDogxkrSQ= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= @@ -292,18 +343,24 @@ github.com/mattn/go-sqlite3 v1.14.34 h1:3NtcvcUnFBPsuRcno8pUtupspG/GM+9nZ88zgJcp github.com/mattn/go-sqlite3 v1.14.34/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y= github.com/mattn/go-sqlite3 v1.14.42 h1:MigqEP4ZmHw3aIdIT7T+9TLa90Z6smwcthx+Azv4Cgo= github.com/mattn/go-sqlite3 v1.14.42/go.mod h1:pjEuOr8IwzLJP2MfGeTb0A35jauH+C2kbHKBr7yXKVQ= +github.com/mattn/go-sqlite3 v1.14.44 h1:3VSe+xafpbzsLbdr2AWlAZk9yRHiBhTBakioXaCKTF8= +github.com/mattn/go-sqlite3 v1.14.44/go.mod h1:pjEuOr8IwzLJP2MfGeTb0A35jauH+C2kbHKBr7yXKVQ= github.com/minio/highwayhash v1.0.4-0.20251030100505-070ab1a87a76 h1:KGuD/pM2JpL9FAYvBrnBBeENKZNh6eNtjqytV6TYjnk= github.com/minio/highwayhash v1.0.4-0.20251030100505-070ab1a87a76/go.mod h1:GGYsuwP/fPD6Y9hMiXuapVvlIUEhFhMTh0rxU3ik1LQ= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/nats-io/jwt/v2 v2.8.0 h1:K7uzyz50+yGZDO5o772eRE7atlcSEENpL7P+b74JV1g= github.com/nats-io/jwt/v2 v2.8.0/go.mod h1:me11pOkwObtcBNR8AiMrUbtVOUGkqYjMQZ6jnSdVUIA= +github.com/nats-io/jwt/v2 v2.8.1 h1:V0xpGuD/N8Mi+fQNDynXohVvp7ZztevW5io8CUWlPmU= github.com/nats-io/nats-server/v2 v2.12.3 h1:KRv+1n7lddMVgkJPQer+pt36TcO0ENxjilBmeWdjcHs= github.com/nats-io/nats-server/v2 v2.12.3/go.mod h1:MQXjG9WjyXKz9koWzUc3jYUMKD8x3CLmTNy91IQQz3Y= +github.com/nats-io/nats-server/v2 v2.12.7 h1:prQ9cPiWHcnwfT81Wi5lU9LL8TLY+7pxDru6fQYLCQQ= github.com/nats-io/nats.go v1.49.0 h1:yh/WvY59gXqYpgl33ZI+XoVPKyut/IcEaqtsiuTJpoE= github.com/nats-io/nats.go v1.49.0/go.mod h1:fDCn3mN5cY8HooHwE2ukiLb4p4G4ImmzvXyJt+tGwdw= github.com/nats-io/nats.go v1.51.0 h1:ByW84XTz6W03GSSsygsZcA+xgKK8vPGaa/FCAAEHnAI= github.com/nats-io/nats.go v1.51.0/go.mod h1:26HypzazeOkyO3/mqd1zZd53STJN0EjCYF9Uy2ZOBno= +github.com/nats-io/nats.go v1.52.0 h1:n3avV4VBsCgsdwh71TppsTwtv+QdPs7ntSKM8qJLGsc= +github.com/nats-io/nats.go v1.52.0/go.mod h1:26HypzazeOkyO3/mqd1zZd53STJN0EjCYF9Uy2ZOBno= github.com/nats-io/nkeys v0.4.15 h1:JACV5jRVO9V856KOapQ7x+EY8Jo3qw1vJt/9Jpwzkk4= github.com/nats-io/nkeys v0.4.15/go.mod h1:CpMchTXC9fxA5zrMo4KpySxNjiDVvr8ANOSZdiNfUrs= github.com/nats-io/nuid v1.0.1 h1:5iA8DT8V7q8WK2EScv2padNa/rTESc1KdnPw4TC2paw= @@ -312,6 +369,8 @@ github.com/oapi-codegen/runtime v1.2.0 h1:RvKc1CVS1QeKSNzO97FBQbSMZyQ8s6rZd+Lpmz github.com/oapi-codegen/runtime v1.2.0/go.mod h1:Y7ZhmmlE8ikZOmuHRRndiIm7nf3xcVv+YMweKgG1DT0= github.com/oapi-codegen/runtime v1.4.0 h1:KLOSFOp7UzkbS7Cs1ms6NBEKYr0WmH2wZG0KKbd2er4= github.com/oapi-codegen/runtime v1.4.0/go.mod h1:5sw5fxCDmnOzKNYmkVNF8d34kyUeejJEY8HNT2WaPec= +github.com/oapi-codegen/runtime v1.4.1 h1:9nwLoI+KrWxzbBcp0jO/R8uXqbik/HUyCvPeU68Y/qo= +github.com/oapi-codegen/runtime v1.4.1/go.mod h1:GwV7hC2hviaMzj+ITfHVRESK5J2W/GefVwIND/bMGvU= github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= github.com/parquet-go/bitpack v1.0.0 h1:AUqzlKzPPXf2bCdjfj4sTeacrUwsT7NlcYDMUQxPcQA= github.com/parquet-go/bitpack v1.0.0/go.mod h1:XnVk9TH+O40eOOmvpAVZ7K2ocQFrQwysLMnc6M/8lgs= @@ -321,6 +380,8 @@ github.com/parquet-go/jsonlite v1.5.2 h1:8TZzYknFOHUpgjTLf80qbzc+8GdeT/3a3fdXSzh github.com/parquet-go/jsonlite v1.5.2/go.mod h1:nDjpkpL4EOtqs6NQugUsi0Rleq9sW/OtC1NnZEnxzF0= github.com/parquet-go/parquet-go v0.29.0 h1:xXlPtFVR51jpSVzf+cgHnNIcb7Xet+iuvkbe0HIm90Y= github.com/parquet-go/parquet-go v0.29.0/go.mod h1:navtkAYr2LGoJVp141oXPlO/sxLvaOe3la2JEoD8+rg= +github.com/parquet-go/parquet-go v0.30.1 h1:Oy6ganNrAdFiVwy7wNmWagfPTWA2X9Z3tVHBc7JtuX8= +github.com/parquet-go/parquet-go v0.30.1/go.mod h1:navtkAYr2LGoJVp141oXPlO/sxLvaOe3la2JEoD8+rg= github.com/pierrec/lz4/v4 v4.1.26 h1:GrpZw1gZttORinvzBdXPUXATeqlJjqUG/D87TKMnhjY= github.com/pierrec/lz4/v4 v4.1.26/go.mod h1:EoQMVJgeeEOMsCqCzqFm2O0cJvljX2nGZjcRIPL34O4= github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= @@ -356,6 +417,8 @@ github.com/stmcginnis/gofish v0.21.4 h1:daexK8sh31CgeSMkPUNs21HWHHA9ecCPJPyLCTxu github.com/stmcginnis/gofish v0.21.4/go.mod h1:PzF5i8ecRG9A2ol8XT64npKUunyraJ+7t0kYMpQAtqU= github.com/stmcginnis/gofish v0.21.6 h1:jK3TGD6VANaAHKHypVNfD6io2nPrU+6eF8X4qARsTlY= github.com/stmcginnis/gofish v0.21.6/go.mod h1:PzF5i8ecRG9A2ol8XT64npKUunyraJ+7t0kYMpQAtqU= +github.com/stmcginnis/gofish v0.22.0 h1:OahXohfrIzAXOsWuKDQ7lm/QvdZBg1P2OzFYmbKAd/0= +github.com/stmcginnis/gofish v0.22.0/go.mod h1:PzF5i8ecRG9A2ol8XT64npKUunyraJ+7t0kYMpQAtqU= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY= github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= @@ -376,8 +439,12 @@ 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/urfave/cli/v3 v3.7.0 h1:AGSnbUyjtLiM+WJUb4dzXKldl/gL+F8OwmRDtVr6g2U= github.com/urfave/cli/v3 v3.7.0/go.mod h1:ysVLtOEmg2tOy6PknnYVhDoouyC/6N42TMeoMzskhso= +github.com/urfave/cli/v3 v3.8.0 h1:XqKPrm0q4P0q5JpoclYoCAv0/MIvH/jZ2umzuf8pNTI= +github.com/urfave/cli/v3 v3.8.0/go.mod h1:ysVLtOEmg2tOy6PknnYVhDoouyC/6N42TMeoMzskhso= github.com/vektah/gqlparser/v2 v2.5.32 h1:k9QPJd4sEDTL+qB4ncPLflqTJ3MmjB9SrVzJrawpFSc= github.com/vektah/gqlparser/v2 v2.5.32/go.mod h1:c1I28gSOVNzlfc4WuDlqU7voQnsqI6OG2amkBAFmgts= +github.com/vektah/gqlparser/v2 v2.5.33 h1:lRp8aIeNUNbimf/axZd7ETg24q06hBtPaas+TcvI/7E= +github.com/vektah/gqlparser/v2 v2.5.33/go.mod h1:c1I28gSOVNzlfc4WuDlqU7voQnsqI6OG2amkBAFmgts= github.com/xrash/smetrics v0.0.0-20250705151800-55b8f293f342 h1:FnBeRrxr7OU4VvAzt5X7s6266i6cSVkkFPS0TuXWbIg= github.com/xrash/smetrics v0.0.0-20250705151800-55b8f293f342/go.mod h1:Ohn+xnUBiLI6FVj/9LpzZWtj1/D6lUovWYBkxHVV3aM= github.com/xyproto/randomstring v1.0.5 h1:YtlWPoRdgMu3NZtP45drfy1GKoojuR7hmRcnhZqKjWU= @@ -397,11 +464,15 @@ golang.org/x/crypto v0.49.0 h1:+Ng2ULVvLHnJ/ZFEq4KdcDd/cfjrrjjNSXNzxg0Y4U4= golang.org/x/crypto v0.49.0/go.mod h1:ErX4dUh2UM+CFYiXZRTcMpEcN8b/1gxEuv3nODoYtCA= golang.org/x/crypto v0.50.0 h1:zO47/JPrL6vsNkINmLoo/PH1gcxpls50DNogFvB5ZGI= golang.org/x/crypto v0.50.0/go.mod h1:3muZ7vA7PBCE6xgPX7nkzzjiUq87kRItoJQM1Yo8S+Q= +golang.org/x/crypto v0.52.0 h1:RMs7fP2rXdep0CftQlK8Uf+kibLm7qkCcradZWYz988= +golang.org/x/crypto v0.52.0/go.mod h1:1QgfPxDqh0T2M/elOJtp9RvuR95kVjir0e6/BvEmGbc= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.34.0 h1:xIHgNUUnW6sYkcM5Jleh05DvLOtwc6RitGHbDk4akRI= golang.org/x/mod v0.34.0/go.mod h1:ykgH52iCZe79kzLLMhyCUzhMci+nQj+0XkbXpNYtVjY= golang.org/x/mod v0.35.0 h1:Ww1D637e6Pg+Zb2KrWfHQUnH2dQRLBQyAtpr/haaJeM= golang.org/x/mod v0.35.0/go.mod h1:+GwiRhIInF8wPm+4AoT6L0FA1QWAad3OMdTRx4tFYlU= +golang.org/x/mod v0.36.0 h1:JJjpVx6myfUsUdAzZuOSTTmRE0PfZeNWzzvKrP7amb4= +golang.org/x/mod v0.36.0/go.mod h1:moc6ELqsWcOw5Ef3xVprK5ul/MvtVvkIXLziUOICjUQ= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= @@ -410,6 +481,8 @@ golang.org/x/net v0.52.0 h1:He/TN1l0e4mmR3QqHMT2Xab3Aj3L9qjbhRm78/6jrW0= golang.org/x/net v0.52.0/go.mod h1:R1MAz7uMZxVMualyPXb+VaqGSa3LIaUqk0eEt3w36Sw= golang.org/x/net v0.53.0 h1:d+qAbo5L0orcWAr0a9JweQpjXF19LMXJE8Ey7hwOdUA= golang.org/x/net v0.53.0/go.mod h1:JvMuJH7rrdiCfbeHoo3fCQU24Lf5JJwT9W3sJFulfgs= +golang.org/x/net v0.55.0 h1:bcvxaJn3e1U6InsFWt1JUq1aSjnRxLzT2rtD2KfkDF8= +golang.org/x/net v0.55.0/go.mod h1:L5U2KuzuOe1lY7Z+aWVIKK6qEeJXnXV9yzGA+WCHJww= golang.org/x/oauth2 v0.36.0 h1:peZ/1z27fi9hUOFCAZaHyrpWG5lwe0RJEEEeH0ThlIs= golang.org/x/oauth2 v0.36.0/go.mod h1:YDBUJMTkDnJS+A4BP4eZBjCqtokkg1hODuPjwiGPO7Q= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -426,6 +499,8 @@ golang.org/x/sys v0.42.0 h1:omrd2nAlyT5ESRdCLYdm3+fMfNFE/+Rf4bDIQImRJeo= golang.org/x/sys v0.42.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= golang.org/x/sys v0.43.0 h1:Rlag2XtaFTxp19wS8MXlJwTvoh8ArU6ezoyFsMyCTNI= golang.org/x/sys v0.43.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= +golang.org/x/sys v0.45.0 h1:dO4czNzziLiiXplLQgBCEpCvXQ3dnkn0SdaZSYdQ+FY= +golang.org/x/sys v0.45.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= @@ -437,6 +512,8 @@ golang.org/x/text v0.35.0 h1:JOVx6vVDFokkpaq1AEptVzLTpDe9KGpj5tR4/X+ybL8= golang.org/x/text v0.35.0/go.mod h1:khi/HExzZJ2pGnjenulevKNX1W67CUy0AsXcNubPGCA= golang.org/x/text v0.36.0 h1:JfKh3XmcRPqZPKevfXVpI1wXPTqbkE5f7JA92a55Yxg= golang.org/x/text v0.36.0/go.mod h1:NIdBknypM8iqVmPiuco0Dh6P5Jcdk8lJL0CUebqK164= +golang.org/x/text v0.37.0 h1:Cqjiwd9eSg8e0QAkyCaQTNHFIIzWtidPahFWR83rTrc= +golang.org/x/text v0.37.0/go.mod h1:a5sjxXGs9hsn/AJVwuElvCAo9v8QYLzvavO5z2PiM38= golang.org/x/time v0.15.0 h1:bbrp8t3bGUeFOx08pvsMYRTCVSMk89u4tKbNOZbp88U= golang.org/x/time v0.15.0/go.mod h1:Y4YMaQmXwGQZoFaVFk4YpCt4FLQMYKZe9oeV/f4MSno= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= @@ -446,6 +523,8 @@ golang.org/x/tools v0.43.0 h1:12BdW9CeB3Z+J/I/wj34VMl8X+fEXBxVR90JeMX5E7s= golang.org/x/tools v0.43.0/go.mod h1:uHkMso649BX2cZK6+RpuIPXS3ho2hZo4FVwfoy1vIk0= golang.org/x/tools v0.44.0 h1:UP4ajHPIcuMjT1GqzDWRlalUEoY+uzoZKnhOjbIPD2c= golang.org/x/tools v0.44.0/go.mod h1:KA0AfVErSdxRZIsOVipbv3rQhVXTnlU6UhKxHd1seDI= +golang.org/x/tools v0.45.0 h1:18qN3FAooORvApf5XjCXgsuayZOEtXf6JK18I3+ONa8= +golang.org/x/tools v0.45.0/go.mod h1:LuUGqqaXcXMEFEruIVJVm5mgDD8vww/z/SR1gQ4uE/0= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/protobuf v1.36.11 h1:fV6ZwhNocDyBLK0dj+fg8ektcVegBBuEolpbTQyBNVE= google.golang.org/protobuf v1.36.11/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco= diff --git a/web/frontend/package-lock.json b/web/frontend/package-lock.json index 78a8212e..66589c1c 100644 --- a/web/frontend/package-lock.json +++ b/web/frontend/package-lock.json @@ -608,9 +608,9 @@ ] }, "node_modules/@sveltejs/acorn-typescript": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@sveltejs/acorn-typescript/-/acorn-typescript-1.0.9.tgz", - "integrity": "sha512-lVJX6qEgs/4DOcRTpo56tmKzVPtoWAaVbL4hfO7t7NVwl9AAXzQR6cihesW1BmNMPl+bK6dreu2sOKBP2Q9CIA==", + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/@sveltejs/acorn-typescript/-/acorn-typescript-1.0.10.tgz", + "integrity": "sha512-4WfKk68eTih+MiJD4fSbxN7E8kVBmTMPWHUPYjvl2N0rMs53YLTT8/YjKU5Dtnz5LqDjl7LEw4U7lXR2W3J5WA==", "license": "MIT", "peerDependencies": { "acorn": "^8.9.0" @@ -654,19 +654,6 @@ "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==", "license": "MIT" }, - "node_modules/@typescript-eslint/types": { - "version": "8.57.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.57.1.tgz", - "integrity": "sha512-S29BOBPJSFUiblEl6RzPPjJt6w25A6XsBqRVDt53tA/tlL8q7ceQNZHTjPeONt/3S7KRI4quk+yP9jK2WjBiPQ==", - "license": "MIT", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, "node_modules/@urql/core": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/@urql/core/-/core-5.2.0.tgz", @@ -803,9 +790,9 @@ } }, "node_modules/devalue": { - "version": "5.6.4", - "resolved": "https://registry.npmjs.org/devalue/-/devalue-5.6.4.tgz", - "integrity": "sha512-Gp6rDldRsFh/7XuouDbxMH3Mx8GMCcgzIb1pDTvNyn8pZGQ22u+Wa+lGV9dQCltFQ7uVw0MhRyb8XDskNFOReA==", + "version": "5.8.1", + "resolved": "https://registry.npmjs.org/devalue/-/devalue-5.8.1.tgz", + "integrity": "sha512-4CXDYRBGqN+57wVJkuXBYmpAVUSg3L6JAQa/DFqm238G73E1wuyc/JhGQJzN7vUf/CMphYau2zXbfWzDR5aTEw==", "license": "MIT" }, "node_modules/escape-latex": { @@ -821,13 +808,20 @@ "license": "MIT" }, "node_modules/esrap": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/esrap/-/esrap-2.2.4.tgz", - "integrity": "sha512-suICpxAmZ9A8bzJjEl/+rLJiDKC0X4gYWUxT6URAWBLvlXmtbZd5ySMu/N2ZGEtMCAmflUDPSehrP9BQcsGcSg==", + "version": "2.2.9", + "resolved": "https://registry.npmjs.org/esrap/-/esrap-2.2.9.tgz", + "integrity": "sha512-4KijP+NxCWthMCUC3qHbE6n4vCjqgJS1uAYKhuT/GWfFTf1Qyive2TgOjep+gzbSzRfnNyaN/UU9YmdOt8Eg0A==", "license": "MIT", "dependencies": { - "@jridgewell/sourcemap-codec": "^1.4.15", + "@jridgewell/sourcemap-codec": "^1.4.15" + }, + "peerDependencies": { "@typescript-eslint/types": "^8.2.0" + }, + "peerDependenciesMeta": { + "@typescript-eslint/types": { + "optional": true + } } }, "node_modules/estree-walker": { @@ -968,9 +962,9 @@ } }, "node_modules/mathjs": { - "version": "15.1.1", - "resolved": "https://registry.npmjs.org/mathjs/-/mathjs-15.1.1.tgz", - "integrity": "sha512-rM668DTtpSzMVoh/cKAllyQVEbBApM5g//IMGD8vD7YlrIz9ITRr3SrdhjaDxcBNTdyETWwPebj2unZyHD7ZdA==", + "version": "15.2.0", + "resolved": "https://registry.npmjs.org/mathjs/-/mathjs-15.2.0.tgz", + "integrity": "sha512-UAQzSVob9rNLdGpqcFMYmSu9dkuLYy7Lr2hBEQS5SHQdknA9VppJz3cy2KkpMzTODunad6V6cNv+5kOLsePLow==", "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.26.10", @@ -998,9 +992,9 @@ "license": "MIT" }, "node_modules/picomatch": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", - "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", "license": "MIT", "engines": { "node": ">=12" @@ -1134,9 +1128,9 @@ } }, "node_modules/rollup-plugin-svelte/node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", + "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", "dev": true, "license": "MIT", "engines": { @@ -1153,9 +1147,9 @@ "license": "MIT" }, "node_modules/serialize-javascript": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-7.0.4.tgz", - "integrity": "sha512-DuGdB+Po43Q5Jxwpzt1lhyFSYKryqoNjQSA9M92tyw0lyHIOur+XCalOUe0KTJpyqzT8+fQ5A0Jf7vCx/NKmIg==", + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-7.0.5.tgz", + "integrity": "sha512-F4LcB0UqUl1zErq+1nYEEzSHJnIwb3AF2XWB94b+afhrekOUijwooAYqFyRbjYkm2PAKBabx6oYv/xDxNi8IBw==", "dev": true, "license": "BSD-3-Clause", "engines": { @@ -1207,23 +1201,23 @@ } }, "node_modules/svelte": { - "version": "5.54.0", - "resolved": "https://registry.npmjs.org/svelte/-/svelte-5.54.0.tgz", - "integrity": "sha512-TTDxwYnHkova6Wsyj1PGt9TByuWqvMoeY1bQiuAf2DM/JeDSMw7FjRKzk8K/5mJ99vGOKhbCqTDpyAKwjp4igg==", + "version": "5.55.10", + "resolved": "https://registry.npmjs.org/svelte/-/svelte-5.55.10.tgz", + "integrity": "sha512-v9mFVBY1USosyIWdXE7Cg4AN0ywyKCMcAhONvli8doMowEhFhMdNLKD1j7O/UnsrdVTHaUOk/jv8hD/HClVy+g==", "license": "MIT", "dependencies": { "@jridgewell/remapping": "^2.3.4", "@jridgewell/sourcemap-codec": "^1.5.0", - "@sveltejs/acorn-typescript": "^1.0.5", + "@sveltejs/acorn-typescript": "^1.0.10", "@types/estree": "^1.0.5", "@types/trusted-types": "^2.0.7", "acorn": "^8.12.1", "aria-query": "5.3.1", "axobject-query": "^4.1.0", "clsx": "^2.1.1", - "devalue": "^5.6.4", + "devalue": "^5.8.1", "esm-env": "^1.2.1", - "esrap": "^2.2.2", + "esrap": "^2.2.9", "is-reference": "^3.0.3", "locate-character": "^3.0.0", "magic-string": "^0.30.11", From e06982db00d0375dbc0087f44d9eb645675c6653 Mon Sep 17 00:00:00 2001 From: Christoph Kluge Date: Tue, 2 Jun 2026 16:34:46 +0200 Subject: [PATCH 48/63] reintroduce user update api path --- internal/api/rest.go | 4 ++- internal/api/user.go | 76 ++++++++++++++++++++++++++++++++++++++----- internal/auth/auth.go | 2 +- 3 files changed, 72 insertions(+), 10 deletions(-) diff --git a/internal/api/rest.go b/internal/api/rest.go index cb041012..93a7ab52 100644 --- a/internal/api/rest.go +++ b/internal/api/rest.go @@ -79,6 +79,8 @@ func (api *RestAPI) MountAPIRoutes(r chi.Router) { // REST API Uses TokenAuth // User List r.Get("/users/", api.getUsers) + // User Edit + r.Post("/user/{id}", api.updateUserByRequest) // Cluster List r.Get("/clusters/", api.getClusters) // Slurm node state @@ -152,7 +154,7 @@ func (api *RestAPI) MountConfigAPIRoutes(r chi.Router) { r.Put("/config/users/", api.createUser) r.Get("/config/users/", api.getUsers) r.Delete("/config/users/", api.deleteUser) - r.Post("/config/user/{id}", api.updateUser) + r.Post("/config/user/{id}", api.updateUserByForm) r.Post("/config/notice/", api.editNotice) r.Get("/config/taggers/", api.getTaggers) r.Post("/config/taggers/run/", api.runTagger) diff --git a/internal/api/user.go b/internal/api/user.go index e2f78165..ea03f1c5 100644 --- a/internal/api/user.go +++ b/internal/api/user.go @@ -24,6 +24,14 @@ type APIReturnedUser struct { Projects []string `json:"projects"` } +// JobMetaRequest model +type UpdateUserAPIRequest struct { + NewRole string `json:"add-role" example:"user"` // Role to add to user $ID + DelRole string `json:"remove-role" example:"user"` // Role to remove from user $ID + NewProj string `json:"add-project" example:"abcd100"` // Project to add to user $ID managed array + DelProj string `json:"remove-project" example:"abcd100"` // Project to remove from user $ID managed array +} + // getUsers godoc // @summary Returns a list of users // @tags User @@ -58,22 +66,74 @@ func (api *RestAPI) getUsers(rw http.ResponseWriter, r *http.Request) { } } -// updateUser godoc +// updateUserByJson godoc // @summary Update user roles and projects // @tags User // @description Allows admins to add/remove roles and projects for a user -// @produce plain -// @param id path string true "Username" -// @param add-role formData string false "Role to add" -// @param remove-role formData string false "Role to remove" -// @param add-project formData string false "Project to add" -// @param remove-project formData string false "Project to remove" +// @accept json +// @produce json +// @param id path string true "Username" +// @param request body api.UpdateUserAPIRequest true "Single Field Changes" // @success 200 {string} string "Success message" // @failure 403 {object} api.ErrorResponse "Forbidden" // @failure 422 {object} api.ErrorResponse "Unprocessable Entity" // @security ApiKeyAuth // @router /api/user/{id} [post] -func (api *RestAPI) updateUser(rw http.ResponseWriter, r *http.Request) { +func (api *RestAPI) updateUserByRequest(rw http.ResponseWriter, r *http.Request) { + + if user := repository.GetUserFromContext(r.Context()); !user.HasRole(schema.RoleAdmin) { + handleError(fmt.Errorf("only admins are allowed to update a user"), http.StatusForbidden, rw) + return + } + + // Get Values + var req UpdateUserAPIRequest + if err := decode(r.Body, &req); err != nil { + handleError(fmt.Errorf("decoding request failed: %w", err), http.StatusBadRequest, rw) + return + } + + rw.Header().Set("Content-Type", "application/json") + + // Handle role updates + if req.NewRole != "" { + if err := repository.GetUserRepository().AddRole(r.Context(), chi.URLParam(r, "id"), req.NewRole); err != nil { + handleError(fmt.Errorf("adding role failed: %w", err), http.StatusUnprocessableEntity, rw) + return + } + if err := json.NewEncoder(rw).Encode(DefaultAPIResponse{Message: fmt.Sprintf("Add Role Success for user %s", chi.URLParam(r, "id"))}); err != nil { + cclog.Errorf("Failed to encode response: %v", err) + } + } else if req.DelRole != "" { + if err := repository.GetUserRepository().RemoveRole(r.Context(), chi.URLParam(r, "id"), req.DelRole); err != nil { + handleError(fmt.Errorf("removing role failed: %w", err), http.StatusUnprocessableEntity, rw) + return + } + if err := json.NewEncoder(rw).Encode(DefaultAPIResponse{Message: fmt.Sprintf("Remove Role Success for user %s", chi.URLParam(r, "id"))}); err != nil { + cclog.Errorf("Failed to encode response: %v", err) + } + } else if req.NewProj != "" { + if err := repository.GetUserRepository().AddProject(r.Context(), chi.URLParam(r, "id"), req.NewProj); err != nil { + handleError(fmt.Errorf("adding project failed: %w", err), http.StatusUnprocessableEntity, rw) + return + } + if err := json.NewEncoder(rw).Encode(DefaultAPIResponse{Message: fmt.Sprintf("Add Project Success for user %s", chi.URLParam(r, "id"))}); err != nil { + cclog.Errorf("Failed to encode response: %v", err) + } + } else if req.DelProj != "" { + if err := repository.GetUserRepository().RemoveProject(r.Context(), chi.URLParam(r, "id"), req.DelProj); err != nil { + handleError(fmt.Errorf("removing project failed: %w", err), http.StatusUnprocessableEntity, rw) + return + } + if err := json.NewEncoder(rw).Encode(DefaultAPIResponse{Message: fmt.Sprintf("Remove Project Success for user %s", chi.URLParam(r, "id"))}); err != nil { + cclog.Errorf("Failed to encode response: %v", err) + } + } else { + handleError(fmt.Errorf("no operation specified: must provide add-role, remove-role, add-project, or remove-project"), http.StatusBadRequest, rw) + } +} + +func (api *RestAPI) updateUserByForm(rw http.ResponseWriter, r *http.Request) { // SecuredCheck() only worked with TokenAuth: Removed if user := repository.GetUserFromContext(r.Context()); !user.HasRole(schema.RoleAdmin) { diff --git a/internal/auth/auth.go b/internal/auth/auth.go index d1c004bd..04d9e47a 100644 --- a/internal/auth/auth.go +++ b/internal/auth/auth.go @@ -632,7 +632,7 @@ func securedCheck(user *schema.User, r *http.Request) error { } // If SplitHostPort fails, IPAddress is already just a host (no port) - // If nothing declared in config: Continue + // If nothing declared in config: Continue // FIXME: Allow All If Not Declared? if len(config.Keys.APIAllowedIPs) == 0 { return nil } From f4384668e5b9e8e06fb89cd5ddb2820e340be12a Mon Sep 17 00:00:00 2001 From: Christoph Kluge Date: Tue, 2 Jun 2026 16:47:29 +0200 Subject: [PATCH 49/63] fix name comment --- internal/api/user.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/api/user.go b/internal/api/user.go index ea03f1c5..23497335 100644 --- a/internal/api/user.go +++ b/internal/api/user.go @@ -24,7 +24,7 @@ type APIReturnedUser struct { Projects []string `json:"projects"` } -// JobMetaRequest model +// UpdateUserAPIRequest model type UpdateUserAPIRequest struct { NewRole string `json:"add-role" example:"user"` // Role to add to user $ID DelRole string `json:"remove-role" example:"user"` // Role to remove from user $ID From 40722d72f588bd803ca392796770d517a1960f87 Mon Sep 17 00:00:00 2001 From: Christoph Kluge Date: Tue, 2 Jun 2026 16:48:23 +0200 Subject: [PATCH 50/63] fix name in doc comment --- internal/api/user.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/api/user.go b/internal/api/user.go index 23497335..a81eb029 100644 --- a/internal/api/user.go +++ b/internal/api/user.go @@ -66,7 +66,7 @@ func (api *RestAPI) getUsers(rw http.ResponseWriter, r *http.Request) { } } -// updateUserByJson godoc +// updateUserByRequest godoc // @summary Update user roles and projects // @tags User // @description Allows admins to add/remove roles and projects for a user From 1ebde74774b9a755230cc92d786201b07531b172 Mon Sep 17 00:00:00 2001 From: Christoph Kluge Date: Tue, 2 Jun 2026 17:58:15 +0200 Subject: [PATCH 51/63] Adapt swagger definitions of user update endpoint --- api/swagger.json | 69 ++++++++++++++++++++++++++++---------------- api/swagger.yaml | 53 ++++++++++++++++++++++------------ internal/api/docs.go | 69 ++++++++++++++++++++++++++++---------------- 3 files changed, 122 insertions(+), 69 deletions(-) diff --git a/api/swagger.json b/api/swagger.json index c9c36de1..cbad2856 100644 --- a/api/swagger.json +++ b/api/swagger.json @@ -958,8 +958,11 @@ "/api/user/{id}": { "post": { "description": "Allows admins to add/remove roles and projects for a user", + "consumes": [ + "application/json" + ], "produces": [ - "text/plain" + "application/json" ], "tags": [ "User" @@ -974,35 +977,26 @@ "required": true }, { - "type": "string", - "description": "Role to add", - "name": "add-role", - "in": "formData" - }, - { - "type": "string", - "description": "Role to remove", - "name": "remove-role", - "in": "formData" - }, - { - "type": "string", - "description": "Project to add", - "name": "add-project", - "in": "formData" - }, - { - "type": "string", - "description": "Project to remove", - "name": "remove-project", - "in": "formData" + "description": "Single Field Changes", + "name": "request", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/api.UpdateUserAPIRequest" + } } ], "responses": { "200": { - "description": "Success message", + "description": "OK", "schema": { - "type": "string" + "$ref": "#/definitions/api.DefaultAPIResponse" + } + }, + "400": { + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/api.ErrorResponse" } }, "403": { @@ -1933,6 +1927,31 @@ } } }, + "api.UpdateUserAPIRequest": { + "type": "object", + "properties": { + "add-role": { + "description": "Role to add to user $ID", + "type": "string", + "example": "user" + }, + "remove-role": { + "description": "Role to remove from user $ID", + "type": "string", + "example": "user" + }, + "add-project": { + "description": "Project to add to user $ID managed array", + "type": "string", + "example": "abcd100" + }, + "remove-project": { + "description": "Project to remove from user $ID managed array", + "type": "string", + "example": "abcd100" + } + } + }, "api.DefaultAPIResponse": { "type": "object", "properties": { diff --git a/api/swagger.yaml b/api/swagger.yaml index def939dd..7aa215eb 100644 --- a/api/swagger.yaml +++ b/api/swagger.yaml @@ -31,6 +31,25 @@ definitions: example: Debug type: string type: object + api.UpdateUserAPIRequest: + properties: + add-project: + description: Project to add to user $ID managed array + example: abcd100 + type: string + add-role: + description: Role to add to user $ID + example: user + type: string + remove-project: + description: Project to remove from user $ID managed array + example: abcd100 + type: string + remove-role: + description: Role to remove from user $ID + example: user + type: string + type: object api.DefaultAPIResponse: properties: msg: @@ -1388,6 +1407,8 @@ paths: - Nodestates /api/user/{id}: post: + consumes: + - application/json description: Allows admins to add/remove roles and projects for a user parameters: - description: Username @@ -1395,29 +1416,23 @@ paths: name: id required: true type: string - - description: Role to add - in: formData - name: add-role - type: string - - description: Role to remove - in: formData - name: remove-role - type: string - - description: Project to add - in: formData - name: add-project - type: string - - description: Project to remove - in: formData - name: remove-project - type: string + - description: Single Field Changes + in: body + name: request + required: true + schema: + $ref: '#/definitions/api.UpdateUserAPIRequest' produces: - - text/plain + - application/json responses: "200": - description: Success message + description: OK schema: - type: string + $ref: '#/definitions/api.DefaultAPIResponse' + "400": + description: Bad Request + schema: + $ref: '#/definitions/api.ErrorResponse' "403": description: Forbidden schema: diff --git a/internal/api/docs.go b/internal/api/docs.go index de3cf506..2c3b0540 100644 --- a/internal/api/docs.go +++ b/internal/api/docs.go @@ -965,8 +965,11 @@ const docTemplate = `{ "/api/user/{id}": { "post": { "description": "Allows admins to add/remove roles and projects for a user", + "consumes": [ + "application/json" + ], "produces": [ - "text/plain" + "application/json" ], "tags": [ "User" @@ -981,35 +984,26 @@ const docTemplate = `{ "required": true }, { - "type": "string", - "description": "Role to add", - "name": "add-role", - "in": "formData" - }, - { - "type": "string", - "description": "Role to remove", - "name": "remove-role", - "in": "formData" - }, - { - "type": "string", - "description": "Project to add", - "name": "add-project", - "in": "formData" - }, - { - "type": "string", - "description": "Project to remove", - "name": "remove-project", - "in": "formData" + "description": "Single Field Changes", + "name": "request", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/api.UpdateUserAPIRequest" + } } ], "responses": { "200": { - "description": "Success message", + "description": "OK", "schema": { - "type": "string" + "$ref": "#/definitions/api.DefaultAPIResponse" + } + }, + "400": { + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/api.ErrorResponse" } }, "403": { @@ -1940,6 +1934,31 @@ const docTemplate = `{ } } }, + "api.UpdateUserAPIRequest": { + "type": "object", + "properties": { + "add-role": { + "description": "Role to add to user $ID", + "type": "string", + "example": "user" + }, + "remove-role": { + "description": "Role to remove from user $ID", + "type": "string", + "example": "user" + }, + "add-project": { + "description": "Project to add to user $ID managed array", + "type": "string", + "example": "abcd100" + }, + "remove-project": { + "description": "Project to remove from user $ID managed array", + "type": "string", + "example": "abcd100" + } + } + }, "api.DefaultAPIResponse": { "type": "object", "properties": { From 0020f63582c9da8889293329447ab52aaed07afa Mon Sep 17 00:00:00 2001 From: Jan Eitzinger Date: Thu, 4 Jun 2026 17:56:32 +0200 Subject: [PATCH 52/63] Rebuild Swagger --- api/swagger.json | 188 ++++++++++++++++++++++++++----------------- api/swagger.yaml | 98 +++++++++++----------- internal/api/docs.go | 188 ++++++++++++++++++++++++++----------------- 3 files changed, 280 insertions(+), 194 deletions(-) diff --git a/api/swagger.json b/api/swagger.json index c9c36de1..3fa3f8c5 100644 --- a/api/swagger.json +++ b/api/swagger.json @@ -391,11 +391,6 @@ }, "/api/jobs/edit_meta/": { "patch": { - "security": [ - { - "ApiKeyAuth": [] - } - ], "description": "Edit key value pairs in metadata json of job specified by jobID, StartTime and Cluster\nIf a key already exists its content will be overwritten", "consumes": [ "application/json" @@ -406,7 +401,7 @@ "tags": [ "Job add and modify" ], - "summary": "Edit meta-data json by request", + "summary": "Edit meta-data json of job identified by request", "parameters": [ { "description": "Specifies job and payload to add or update", @@ -449,12 +444,17 @@ "$ref": "#/definitions/api.ErrorResponse" } } - } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ] } }, "/api/jobs/edit_meta/{id}": { "patch": { - "description": "Edit key value pairs in job metadata json\nIf a key already exists its content will be overwritten", + "description": "Edit key value pairs in job metadata json of job specified by database id\nIf a key already exists its content will be overwritten", "consumes": [ "application/json" ], @@ -464,7 +464,7 @@ "tags": [ "Job add and modify" ], - "summary": "Edit meta-data json", + "summary": "Edit meta-data json of job identified by database id", "parameters": [ { "type": "integer", @@ -474,7 +474,7 @@ "required": true }, { - "description": "Kay value pair to add", + "description": "Metadata Key value pair to add or update", "name": "request", "in": "body", "required": true, @@ -736,6 +736,64 @@ ] } }, + "/api/jobs/used_nodes": { + "get": { + "description": "Get a map of cluster names to lists of unique hostnames that are currently in use by running jobs that started before the specified timestamp.", + "produces": [ + "application/json" + ], + "tags": [ + "Job query" + ], + "summary": "Lists used nodes by cluster", + "parameters": [ + { + "type": "integer", + "description": "Unix timestamp to filter jobs (jobs with start_time \u003c ts)", + "name": "ts", + "in": "query", + "required": true + } + ], + "responses": { + "200": { + "description": "Map of cluster names to hostname lists", + "schema": { + "$ref": "#/definitions/api.GetUsedNodesAPIResponse" + } + }, + "400": { + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/api.ErrorResponse" + } + }, + "401": { + "description": "Unauthorized", + "schema": { + "$ref": "#/definitions/api.ErrorResponse" + } + }, + "403": { + "description": "Forbidden", + "schema": { + "$ref": "#/definitions/api.ErrorResponse" + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/api.ErrorResponse" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ] + } + }, "/api/jobs/{id}": { "get": { "description": "Job to get is specified by database ID\nReturns full job resource information according to 'Job' scheme and all metrics according to 'JobData'.", @@ -1374,63 +1432,6 @@ ] } }, - "/healthcheck/": { - "get": { - "description": "This endpoint allows the users to check if a node is healthy", - "produces": [ - "application/json" - ], - "tags": [ - "healthcheck" - ], - "summary": "HealthCheck endpoint", - "parameters": [ - { - "type": "string", - "description": "Selector", - "name": "selector", - "in": "query" - } - ], - "responses": { - "200": { - "description": "Debug dump", - "schema": { - "type": "string" - } - }, - "400": { - "description": "Bad Request", - "schema": { - "$ref": "#/definitions/api.ErrorResponse" - } - }, - "401": { - "description": "Unauthorized", - "schema": { - "$ref": "#/definitions/api.ErrorResponse" - } - }, - "403": { - "description": "Forbidden", - "schema": { - "$ref": "#/definitions/api.ErrorResponse" - } - }, - "500": { - "description": "Internal Server Error", - "schema": { - "$ref": "#/definitions/api.ErrorResponse" - } - } - }, - "security": [ - { - "ApiKeyAuth": [] - } - ] - } - }, "/jobs/tag_job/{id}": { "delete": { "description": "Removes tag(s) from a job specified by DB ID. Name and Type of Tag(s) must match.\nTag Scope is required for matching, options: \"global\", \"admin\". Private tags can not be deleted via API.\nIf tagged job is already finished: Tag will be removed from respective archive files.", @@ -2036,6 +2037,52 @@ } } }, + "api.GetUsedNodesAPIResponse": { + "type": "object", + "properties": { + "usedNodes": { + "description": "Map of cluster names to lists of used node hostnames", + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "api.JobMetaRequest": { + "type": "object", + "required": [ + "jobId" + ], + "properties": { + "cluster": { + "description": "Cluster of job", + "type": "string", + "example": "fritz" + }, + "jobId": { + "description": "Cluster Job ID of job", + "type": "integer", + "example": 123000 + }, + "payload": { + "description": "Content to Add to Job Meta_Data", + "allOf": [ + { + "$ref": "#/definitions/api.EditMetaRequest" + } + ] + }, + "startTime": { + "description": "Start Time of job as epoch", + "type": "integer", + "example": 1649723812 + } + } + }, "api.JobMetricWithName": { "type": "object", "properties": { @@ -2168,13 +2215,6 @@ "format": "float64" } }, - "exclusive": { - "description": "for backwards compatibility", - "type": "integer", - "maximum": 2, - "minimum": 0, - "example": 1 - }, "footprint": { "type": "object", "additionalProperties": { diff --git a/api/swagger.yaml b/api/swagger.yaml index def939dd..e397f672 100644 --- a/api/swagger.yaml +++ b/api/swagger.yaml @@ -102,6 +102,16 @@ definitions: description: Page id returned type: integer type: object + api.GetUsedNodesAPIResponse: + properties: + usedNodes: + additionalProperties: + items: + type: string + type: array + description: Map of cluster names to lists of used node hostnames + type: object + type: object api.JobMetaRequest: properties: cluster: @@ -214,12 +224,6 @@ definitions: format: float64 type: number type: object - exclusive: - description: for backwards compatibility - example: 1 - maximum: 2 - minimum: 0 - type: integer footprint: additionalProperties: format: float64 @@ -1151,7 +1155,7 @@ paths: $ref: '#/definitions/api.ErrorResponse' security: - ApiKeyAuth: [] - summary: Edit meta-data json by request + summary: Edit meta-data json of job identified by request tags: - Job add and modify /api/jobs/edit_meta/{id}: @@ -1159,7 +1163,7 @@ paths: consumes: - application/json description: |- - Edit key value pairs in job metadata json + Edit key value pairs in job metadata json of job specified by database id If a key already exists its content will be overwritten parameters: - description: Job Database ID @@ -1167,7 +1171,7 @@ paths: name: id required: true type: integer - - description: Kay value pair to add + - description: Metadata Key value pair to add or update in: body name: request required: true @@ -1198,7 +1202,7 @@ paths: $ref: '#/definitions/api.ErrorResponse' security: - ApiKeyAuth: [] - summary: Edit meta-data json + summary: Edit meta-data json of job identified by database id tags: - Job add and modify /api/jobs/start_job/: @@ -1346,6 +1350,44 @@ paths: summary: Adds one or more tags to a job tags: - Job add and modify + /api/jobs/used_nodes: + get: + description: Get a map of cluster names to lists of unique hostnames that are + currently in use by running jobs that started before the specified timestamp. + parameters: + - description: Unix timestamp to filter jobs (jobs with start_time < ts) + in: query + name: ts + required: true + type: integer + produces: + - application/json + responses: + "200": + description: Map of cluster names to hostname lists + schema: + $ref: '#/definitions/api.GetUsedNodesAPIResponse' + "400": + description: Bad Request + schema: + $ref: '#/definitions/api.ErrorResponse' + "401": + description: Unauthorized + schema: + $ref: '#/definitions/api.ErrorResponse' + "403": + description: Forbidden + schema: + $ref: '#/definitions/api.ErrorResponse' + "500": + description: Internal Server Error + schema: + $ref: '#/definitions/api.ErrorResponse' + security: + - ApiKeyAuth: [] + summary: Lists used nodes by cluster + tags: + - Job query /api/nodestats/: post: description: |- @@ -1657,42 +1699,6 @@ paths: - ApiKeyAuth: [] tags: - free - /healthcheck/: - get: - description: This endpoint allows the users to check if a node is healthy - parameters: - - description: Selector - in: query - name: selector - type: string - produces: - - application/json - responses: - "200": - description: Debug dump - schema: - type: string - "400": - description: Bad Request - schema: - $ref: '#/definitions/api.ErrorResponse' - "401": - description: Unauthorized - schema: - $ref: '#/definitions/api.ErrorResponse' - "403": - description: Forbidden - schema: - $ref: '#/definitions/api.ErrorResponse' - "500": - description: Internal Server Error - schema: - $ref: '#/definitions/api.ErrorResponse' - security: - - ApiKeyAuth: [] - summary: HealthCheck endpoint - tags: - - healthcheck /jobs/tag_job/{id}: delete: consumes: diff --git a/internal/api/docs.go b/internal/api/docs.go index de3cf506..85e28bd1 100644 --- a/internal/api/docs.go +++ b/internal/api/docs.go @@ -398,11 +398,6 @@ const docTemplate = `{ }, "/api/jobs/edit_meta/": { "patch": { - "security": [ - { - "ApiKeyAuth": [] - } - ], "description": "Edit key value pairs in metadata json of job specified by jobID, StartTime and Cluster\nIf a key already exists its content will be overwritten", "consumes": [ "application/json" @@ -413,7 +408,7 @@ const docTemplate = `{ "tags": [ "Job add and modify" ], - "summary": "Edit meta-data json by request", + "summary": "Edit meta-data json of job identified by request", "parameters": [ { "description": "Specifies job and payload to add or update", @@ -456,12 +451,17 @@ const docTemplate = `{ "$ref": "#/definitions/api.ErrorResponse" } } - } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ] } }, "/api/jobs/edit_meta/{id}": { "patch": { - "description": "Edit key value pairs in job metadata json\nIf a key already exists its content will be overwritten", + "description": "Edit key value pairs in job metadata json of job specified by database id\nIf a key already exists its content will be overwritten", "consumes": [ "application/json" ], @@ -471,7 +471,7 @@ const docTemplate = `{ "tags": [ "Job add and modify" ], - "summary": "Edit meta-data json", + "summary": "Edit meta-data json of job identified by database id", "parameters": [ { "type": "integer", @@ -481,7 +481,7 @@ const docTemplate = `{ "required": true }, { - "description": "Kay value pair to add", + "description": "Metadata Key value pair to add or update", "name": "request", "in": "body", "required": true, @@ -743,6 +743,64 @@ const docTemplate = `{ ] } }, + "/api/jobs/used_nodes": { + "get": { + "description": "Get a map of cluster names to lists of unique hostnames that are currently in use by running jobs that started before the specified timestamp.", + "produces": [ + "application/json" + ], + "tags": [ + "Job query" + ], + "summary": "Lists used nodes by cluster", + "parameters": [ + { + "type": "integer", + "description": "Unix timestamp to filter jobs (jobs with start_time \u003c ts)", + "name": "ts", + "in": "query", + "required": true + } + ], + "responses": { + "200": { + "description": "Map of cluster names to hostname lists", + "schema": { + "$ref": "#/definitions/api.GetUsedNodesAPIResponse" + } + }, + "400": { + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/api.ErrorResponse" + } + }, + "401": { + "description": "Unauthorized", + "schema": { + "$ref": "#/definitions/api.ErrorResponse" + } + }, + "403": { + "description": "Forbidden", + "schema": { + "$ref": "#/definitions/api.ErrorResponse" + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/api.ErrorResponse" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ] + } + }, "/api/jobs/{id}": { "get": { "description": "Job to get is specified by database ID\nReturns full job resource information according to 'Job' scheme and all metrics according to 'JobData'.", @@ -1381,63 +1439,6 @@ const docTemplate = `{ ] } }, - "/healthcheck/": { - "get": { - "description": "This endpoint allows the users to check if a node is healthy", - "produces": [ - "application/json" - ], - "tags": [ - "healthcheck" - ], - "summary": "HealthCheck endpoint", - "parameters": [ - { - "type": "string", - "description": "Selector", - "name": "selector", - "in": "query" - } - ], - "responses": { - "200": { - "description": "Debug dump", - "schema": { - "type": "string" - } - }, - "400": { - "description": "Bad Request", - "schema": { - "$ref": "#/definitions/api.ErrorResponse" - } - }, - "401": { - "description": "Unauthorized", - "schema": { - "$ref": "#/definitions/api.ErrorResponse" - } - }, - "403": { - "description": "Forbidden", - "schema": { - "$ref": "#/definitions/api.ErrorResponse" - } - }, - "500": { - "description": "Internal Server Error", - "schema": { - "$ref": "#/definitions/api.ErrorResponse" - } - } - }, - "security": [ - { - "ApiKeyAuth": [] - } - ] - } - }, "/jobs/tag_job/{id}": { "delete": { "description": "Removes tag(s) from a job specified by DB ID. Name and Type of Tag(s) must match.\nTag Scope is required for matching, options: \"global\", \"admin\". Private tags can not be deleted via API.\nIf tagged job is already finished: Tag will be removed from respective archive files.", @@ -2043,6 +2044,52 @@ const docTemplate = `{ } } }, + "api.GetUsedNodesAPIResponse": { + "type": "object", + "properties": { + "usedNodes": { + "description": "Map of cluster names to lists of used node hostnames", + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "api.JobMetaRequest": { + "type": "object", + "required": [ + "jobId" + ], + "properties": { + "cluster": { + "description": "Cluster of job", + "type": "string", + "example": "fritz" + }, + "jobId": { + "description": "Cluster Job ID of job", + "type": "integer", + "example": 123000 + }, + "payload": { + "description": "Content to Add to Job Meta_Data", + "allOf": [ + { + "$ref": "#/definitions/api.EditMetaRequest" + } + ] + }, + "startTime": { + "description": "Start Time of job as epoch", + "type": "integer", + "example": 1649723812 + } + } + }, "api.JobMetricWithName": { "type": "object", "properties": { @@ -2175,13 +2222,6 @@ const docTemplate = `{ "format": "float64" } }, - "exclusive": { - "description": "for backwards compatibility", - "type": "integer", - "maximum": 2, - "minimum": 0, - "example": 1 - }, "footprint": { "type": "object", "additionalProperties": { From 6f7e262f3f665ab5b007805a2e707adf8d7b4cd9 Mon Sep 17 00:00:00 2001 From: Jan Eitzinger Date: Thu, 4 Jun 2026 18:33:30 +0200 Subject: [PATCH 53/63] Fix issues after security audit Entire-Checkpoint: bc18358a9343 --- CLAUDE.md | 18 +++++++++++++++++ cmd/cc-backend/server.go | 10 +++++++++- internal/api/api_test.go | 1 + internal/api/nats.go | 5 ++++- internal/api/nats_test.go | 1 + internal/auth/auth.go | 32 +++++++++++++++--------------- internal/auth/jwtCookieSession.go | 33 ++++++++++++++++++------------- 7 files changed, 68 insertions(+), 32 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index 061d056b..fe6a7aab 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -314,6 +314,24 @@ job,function=stop_job event="{\"jobId\":123,\"cluster\":\"test\",\"startTime\":1 - Messages are logged; no responses are sent back to publishers - If NATS client is unavailable, API subscriptions are skipped (logged as warning) +### Security Considerations + +**The NATS API has no application-layer authentication or authorization.** Unlike +the REST endpoints (which require a JWT with `RoleAPI`), the subscribers process +any message delivered on the configured subjects. Anyone with publish rights to +those subjects on the broker can: + +- Insert arbitrary jobs (potentially attributed to other users) +- Mark running jobs as stopped, triggering archive/finalization +- Overwrite node state and health metadata for any cluster + +Operators MUST restrict publish ACLs at the NATS broker (per-account or +per-subject permissions) so that only trusted producers — e.g. the scheduler +integration on a known host or service account — can publish to the configured +`subject-job-event` and `subject-node-state` subjects. A shared, unrestricted +NATS broker is not a safe deployment topology for this API. A startup warning +is logged when these subscriptions are enabled. + ## Development Guidelines ### Performance diff --git a/cmd/cc-backend/server.go b/cmd/cc-backend/server.go index 85503535..33504988 100644 --- a/cmd/cc-backend/server.go +++ b/cmd/cc-backend/server.go @@ -129,11 +129,19 @@ func (s *Server) init() error { s.router.Use(middleware.Compress(5)) s.router.Use(middleware.Recoverer) s.router.Use(cors.Handler(cors.Options{ - AllowCredentials: true, + AllowCredentials: false, AllowedHeaders: []string{"X-Requested-With", "Content-Type", "Authorization", "Origin"}, AllowedMethods: []string{"GET", "POST", "HEAD", "OPTIONS"}, AllowedOrigins: []string{"*"}, })) + s.router.Use(func(next http.Handler) http.Handler { + return http.HandlerFunc(func(rw http.ResponseWriter, r *http.Request) { + if r.TLS != nil || r.Header.Get("X-Forwarded-Proto") == "https" { + rw.Header().Set("Strict-Transport-Security", "max-age=31536000; includeSubDomains") + } + next.ServeHTTP(rw, r) + }) + }) s.restAPIHandle = api.New() diff --git a/internal/api/api_test.go b/internal/api/api_test.go index a8aef889..26ee456a 100644 --- a/internal/api/api_test.go +++ b/internal/api/api_test.go @@ -170,6 +170,7 @@ func setup(t *testing.T) *api.RestAPI { archiver.Start(repository.GetJobRepository(), context.Background()) + t.Setenv("SESSION_KEY", "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=") if cfg := ccconf.GetPackageConfig("auth"); cfg != nil { auth.Init(&cfg) } else { diff --git a/internal/api/nats.go b/internal/api/nats.go index db33c0e2..0c967b83 100644 --- a/internal/api/nats.go +++ b/internal/api/nats.go @@ -151,7 +151,10 @@ func (api *NatsAPI) StartSubscriptions() error { return err } - cclog.Info("NATS API subscriptions started") + cclog.Warnf("NATS API subscriptions started on subjects %q and %q — these are UNAUTHENTICATED: "+ + "anyone with publish rights on the broker can start/stop jobs and update node state. "+ + "Restrict publish ACLs on the NATS broker to trusted producers only.", + s.SubjectJobEvent, s.SubjectNodeState) } return nil } diff --git a/internal/api/nats_test.go b/internal/api/nats_test.go index b1d2a624..cc0bdf90 100644 --- a/internal/api/nats_test.go +++ b/internal/api/nats_test.go @@ -156,6 +156,7 @@ func setupNatsTest(t *testing.T) *NatsAPI { archiver.Start(repository.GetJobRepository(), context.Background()) + t.Setenv("SESSION_KEY", "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=") if cfg := ccconf.GetPackageConfig("auth"); cfg != nil { auth.Init(&cfg) } else { diff --git a/internal/auth/auth.go b/internal/auth/auth.go index d1c004bd..8d8bc222 100644 --- a/internal/auth/auth.go +++ b/internal/auth/auth.go @@ -9,7 +9,6 @@ package auth import ( "bytes" "context" - "crypto/rand" "database/sql" "encoding/base64" "encoding/json" @@ -17,6 +16,7 @@ import ( "fmt" "net" "net/http" + "net/url" "os" "sync" "time" @@ -187,19 +187,15 @@ func Init(authCfg *json.RawMessage) { sessKey := os.Getenv("SESSION_KEY") if sessKey == "" { - cclog.Warn("environment variable 'SESSION_KEY' not set (will use non-persistent random key)") - bytes := make([]byte, 32) - if _, err := rand.Read(bytes); err != nil { - cclog.Fatal("Error while initializing authentication -> failed to generate random bytes for session key") - } - authInstance.sessionStore = sessions.NewCookieStore(bytes) - } else { - bytes, err := base64.StdEncoding.DecodeString(sessKey) - if err != nil { - cclog.Fatal("Error while initializing authentication -> decoding session key failed") - } - authInstance.sessionStore = sessions.NewCookieStore(bytes) + cclog.Fatal("environment variable 'SESSION_KEY' not set: refusing to start with an ephemeral session key. " + + "Set SESSION_KEY in .env (base64-encoded 32 random bytes); a random key would invalidate all sessions on every restart " + + "and prevent sessions from validating across replicas.") } + keyBytes, err := base64.StdEncoding.DecodeString(sessKey) + if err != nil { + cclog.Fatal("Error while initializing authentication -> decoding session key failed") + } + authInstance.sessionStore = sessions.NewCookieStore(keyBytes) if d, err := time.ParseDuration(config.Keys.SessionMaxAge); err == nil { authInstance.SessionMaxAge = d @@ -325,6 +321,7 @@ func (auth *Authentication) SaveSession(rw http.ResponseWriter, r *http.Request, session.Options.Secure = false } session.Options.SameSite = http.SameSiteLaxMode + session.Options.HttpOnly = true session.Values["username"] = user.Username session.Values["projects"] = user.Projects session.Values["roles"] = user.Roles @@ -388,9 +385,12 @@ func (auth *Authentication) Login( cclog.Infof("login successfull: user: %#v (roles: %v, projects: %v)", user.Username, user.Roles, user.Projects) ctx := context.WithValue(r.Context(), repository.ContextUserKey, user) - if r.FormValue("redirect") != "" { - http.RedirectHandler(r.FormValue("redirect"), http.StatusFound).ServeHTTP(rw, r.WithContext(ctx)) - return + if redirect := r.FormValue("redirect"); redirect != "" { + if u, perr := url.Parse(redirect); perr == nil && u.Scheme == "" && u.Host == "" { + http.RedirectHandler(redirect, http.StatusFound).ServeHTTP(rw, r.WithContext(ctx)) + return + } + cclog.Warnf("login redirect rejected (not a relative path): %q", redirect) } http.RedirectHandler("/", http.StatusFound).ServeHTTP(rw, r.WithContext(ctx)) diff --git a/internal/auth/jwtCookieSession.go b/internal/auth/jwtCookieSession.go index 4c4bbeb6..f16dbe5e 100644 --- a/internal/auth/jwtCookieSession.go +++ b/internal/auth/jwtCookieSession.go @@ -9,6 +9,7 @@ import ( "crypto/ed25519" "encoding/base64" "errors" + "fmt" "net/http" "os" @@ -119,22 +120,26 @@ func (ja *JWTCookieSessionAuthenticator) Login( rawtoken = jwtCookie.Value } - token, err := jwt.Parse(rawtoken, func(t *jwt.Token) (any, error) { - if t.Method != jwt.SigningMethodEdDSA { - return nil, errors.New("only Ed25519/EdDSA supported") - } + parser := jwt.NewParser(jwt.WithValidMethods([]string{jwt.SigningMethodEdDSA.Alg()})) - unvalidatedIssuer, success := t.Claims.(jwt.MapClaims)["iss"].(string) - if success && unvalidatedIssuer == jc.TrustedIssuer { - // The (unvalidated) issuer seems to be the expected one, - // use public cross login key from config - return ja.publicKeyCrossLogin, nil - } + unverified, _, perr := parser.ParseUnverified(rawtoken, jwt.MapClaims{}) + if perr != nil { + cclog.Warn("JWT cookie session: error while parsing token") + return nil, perr + } + issuer, _ := unverified.Claims.(jwt.MapClaims)["iss"].(string) - // No cross login key configured or issuer not expected - // Try own key - return ja.publicKey, nil - }) + var key any + switch issuer { + case jc.TrustedIssuer: + key = ja.publicKeyCrossLogin + case "": + key = ja.publicKey + default: + return nil, fmt.Errorf("untrusted JWT issuer: %q", issuer) + } + + token, err := parser.Parse(rawtoken, func(*jwt.Token) (any, error) { return key, nil }) if err != nil { cclog.Warn("JWT cookie session: error while parsing token") return nil, err From 6d86690c764e40d3c1f28a4dc9707f54726a7dbf Mon Sep 17 00:00:00 2001 From: Jan Eitzinger Date: Thu, 4 Jun 2026 19:07:20 +0200 Subject: [PATCH 54/63] Fix critical issues from follow-up security audit A second-pass audit surfaced three severe issues missed by the previous review, each a sibling code path of a bug class that was only partially fixed before: - auth: JWT session login (jwtSession.go) registered its authenticator even when CROSS_LOGIN_JWT_HS512_KEY was unset, leaving an empty HMAC key. golang-jwt verifies any HS256/HS512 signature against an empty key, allowing unauthenticated admin token forgery. Init() now refuses to register without a key, with a defense-in-depth empty-key guard in the keyfunc. - repository: metric names from GraphQL ([String!]) were interpolated raw into json_extract(footprint, "$.") SQL. SQLite parses double-quoted strings as literals, enabling SQL injection by any authenticated user. Validate metric names against ^[a-zA-Z0-9_]+$ in jobsMetricStatisticsHistogram and buildFloatJSONCondition. - metricstore: cluster/host line-protocol tags flowed unvalidated into path.Join(RootDir, cluster, host) for checkpoint/WAL files, allowing arbitrary file write outside the checkpoint root via NATS (unauthenticated) or POST /api/write. Reject path-traversal sequences in DecodeLine before the tags become path components. Co-Authored-By: Claude Opus 4.8 (1M context) Entire-Checkpoint: b57246993ec1 --- internal/auth/jwtSession.go | 26 +++++++++++++++++++------- internal/repository/jobQuery.go | 10 ++++++++++ internal/repository/stats.go | 7 +++++++ pkg/metricstore/lineprotocol.go | 22 ++++++++++++++++++++++ 4 files changed, 58 insertions(+), 7 deletions(-) diff --git a/internal/auth/jwtSession.go b/internal/auth/jwtSession.go index de7e985b..8fae61e1 100644 --- a/internal/auth/jwtSession.go +++ b/internal/auth/jwtSession.go @@ -25,15 +25,21 @@ type JWTSessionAuthenticator struct { var _ Authenticator = (*JWTSessionAuthenticator)(nil) func (ja *JWTSessionAuthenticator) Init() error { - if pubKey := os.Getenv("CROSS_LOGIN_JWT_HS512_KEY"); pubKey != "" { - bytes, err := base64.StdEncoding.DecodeString(pubKey) - if err != nil { - cclog.Warn("Could not decode cross login JWT HS512 key") - return err - } - ja.loginTokenKey = bytes + pubKey := os.Getenv("CROSS_LOGIN_JWT_HS512_KEY") + if pubKey == "" { + // Without a configured key the HMAC verification below would run against + // an empty key, which lets anyone forge a valid token. Refuse to register + // the authenticator in that case so JWT session login is simply disabled. + return errors.New("CROSS_LOGIN_JWT_HS512_KEY not set: JWT session login disabled") } + bytes, err := base64.StdEncoding.DecodeString(pubKey) + if err != nil { + cclog.Warn("Could not decode cross login JWT HS512 key") + return err + } + ja.loginTokenKey = bytes + cclog.Info("JWT Session authenticator successfully registered") return nil } @@ -60,6 +66,12 @@ func (ja *JWTSessionAuthenticator) Login( token, err := jwt.Parse(rawtoken, func(t *jwt.Token) (any, error) { if t.Method == jwt.SigningMethodHS256 || t.Method == jwt.SigningMethodHS512 { + // Defense in depth: an empty key would verify any HMAC signature. + // Init() already refuses to register without a key, so this should + // never trigger, but guard explicitly rather than trust the chain. + if len(ja.loginTokenKey) == 0 { + return nil, errors.New("HS login key not configured") + } return ja.loginTokenKey, nil } return nil, fmt.Errorf("unkown signing method for login token: %s (known: HS256, HS512, EdDSA)", t.Method.Alg()) diff --git a/internal/repository/jobQuery.go b/internal/repository/jobQuery.go index 5256bacb..0b162179 100644 --- a/internal/repository/jobQuery.go +++ b/internal/repository/jobQuery.go @@ -336,8 +336,18 @@ func buildTimeCondition(field string, cond *config.TimeRange, query sq.SelectBui } } +// validMetricName guards metric/footprint names that are interpolated into the +// json_extract() path of footprint queries. SQLite treats double-quoted strings +// as string literals, so an unescaped name (e.g. containing a `"`) would allow +// SQL injection. Legitimate metric names only use these characters. +var validMetricName = regexp.MustCompile(`^[a-zA-Z0-9_]+$`) + // buildFloatJSONCondition creates a filter on a numeric field within the footprint JSON column, using BETWEEN only if required. func buildFloatJSONCondition(jsonField string, cond *model.FloatRange, query sq.SelectBuilder) sq.SelectBuilder { + if !validMetricName.MatchString(jsonField) { + cclog.Warnf("buildFloatJSONCondition: rejecting invalid metric name %q", jsonField) + return query.Where("0 = 1") + } query = query.Where("JSON_VALID(footprint)") if cond.From > 0.0 && cond.To > 0.0 { return query.Where("JSON_EXTRACT(footprint, \"$."+jsonField+"\") BETWEEN ? AND ?", cond.From, cond.To) diff --git a/internal/repository/stats.go b/internal/repository/stats.go index 0bc85109..fb0bc075 100644 --- a/internal/repository/stats.go +++ b/internal/repository/stats.go @@ -909,6 +909,13 @@ func (r *JobRepository) jobsMetricStatisticsHistogram( filters []*model.JobFilter, bins *int, ) (*model.MetricHistoPoints, error) { + // The metric name is interpolated into the json_extract() path of the SQL + // below. SQLite parses double-quoted strings as literals, so reject anything + // that is not a plain metric identifier to prevent SQL injection. + if !validMetricName.MatchString(metric) { + return nil, fmt.Errorf("invalid metric name: %q", metric) + } + // Peak value defines the upper bound for binning: values are distributed across // bins from 0 to peak. First try to get peak from filtered cluster, otherwise // scan all clusters to find the maximum peak value. diff --git a/pkg/metricstore/lineprotocol.go b/pkg/metricstore/lineprotocol.go index ed42eead..c8b27126 100644 --- a/pkg/metricstore/lineprotocol.go +++ b/pkg/metricstore/lineprotocol.go @@ -22,6 +22,7 @@ import ( "bytes" "context" "fmt" + "strings" "sync" "sync/atomic" "time" @@ -196,6 +197,16 @@ var decodeStatePool = sync.Pool{ // When the checkpoint format is "wal" each successfully decoded sample is also // sent to WALMessages so the WAL staging goroutine can persist it durably // before the next binary snapshot. +// isValidPathComponent reports whether s is safe to use as a single filesystem +// path component (cluster or host name) when building checkpoint/WAL paths. It +// rejects path-traversal sequences and embedded separators. An empty string is +// allowed because a missing host tag is legitimate and does not escape the root. +func isValidPathComponent(s string) bool { + return !strings.Contains(s, "..") && + !strings.Contains(s, "/") && + !strings.Contains(s, "\\") +} + func DecodeLine(dec *lineprotocol.Decoder, ms *MemoryStore, clusterDefault string, @@ -282,6 +293,17 @@ func DecodeLine(dec *lineprotocol.Decoder, } } + // cluster and host are taken verbatim from attacker-controllable line + // protocol tags and are later used as filesystem path components for the + // checkpoint/WAL files (path.Join(RootDir, cluster, host)). Reject + // path-traversal sequences so a malicious tag cannot escape the + // checkpoint root. Skip the offending sample; the rest of the batch is + // still processed. + if !isValidPathComponent(cluster) || !isValidPathComponent(host) { + cclog.Warnf("[METRICSTORE]> rejecting metric with invalid cluster/host tag (cluster=%q host=%q)", cluster, host) + continue + } + // If the cluster or host changed, the lvl was set to nil if lvl == nil { st.selector = st.selector[:2] From 16942f55a02ac3cafd3e1ab99edaa7396dc80233 Mon Sep 17 00:00:00 2001 From: Jan Eitzinger Date: Thu, 4 Jun 2026 20:08:41 +0200 Subject: [PATCH 55/63] Fix medium-severity issues from follow-up security audit Addresses the remaining medium findings from the second-pass audit: - DoS hardening: bound GraphQL query cost with FixedComplexityLimit, and reject non-positive items-per-page / page values so uint64 conversion cannot underflow into an unbounded LIMIT/OFFSET. The -1 "load all" sentinel stays valid for dashboards; REST now returns 400 for bad input. - Security headers: add X-Content-Type-Options, X-Frame-Options, Referrer-Policy and a conservative CSP (frame-ancestors/object-src/ base-uri) that hardens against clickjacking and base-tag injection without restricting the self-hosted SPA's inline scripts. - Stored XSS: render job.metaData.message as escaped text instead of {@html ...} in Job.root and JobFootprint, preserving line breaks via white-space: pre-wrap. - SQL injection hardening: parameterize the tag-scope IN list and the manager project subquery in CountTags instead of interpolating user.Username / user.Projects (externally sourced via OIDC/LDAP). - CSRF defense-in-depth: reject cross-site state-changing requests via Sec-Fetch-Site, failing open for non-browser clients, on top of the existing SameSite=Lax session cookie. Co-Authored-By: Claude Opus 4.8 (1M context) Entire-Checkpoint: de7d47a85c7c --- cmd/cc-backend/server.go | 40 ++++++++++++++++++- internal/api/job.go | 8 ++++ internal/repository/jobQuery.go | 9 ++++- internal/repository/tags.go | 29 +++++++++----- web/frontend/src/Job.root.svelte | 2 +- .../src/generic/helper/JobFootprint.svelte | 2 +- 6 files changed, 75 insertions(+), 15 deletions(-) diff --git a/cmd/cc-backend/server.go b/cmd/cc-backend/server.go index 33504988..f39cd45d 100644 --- a/cmd/cc-backend/server.go +++ b/cmd/cc-backend/server.go @@ -23,6 +23,7 @@ import ( "github.com/99designs/gqlgen/graphql" "github.com/99designs/gqlgen/graphql/handler" + "github.com/99designs/gqlgen/graphql/handler/extension" "github.com/99designs/gqlgen/graphql/handler/transport" "github.com/99designs/gqlgen/graphql/playground" "github.com/ClusterCockpit/cc-backend/internal/api" @@ -50,6 +51,12 @@ const ( envDebug = "DEBUG" ) +// maxQueryComplexity bounds the cost of a single GraphQL query to mitigate +// denial-of-service via deeply nested or heavily aliased queries. The default +// per-field cost is 1, so this leaves ample headroom for legitimate dashboard +// queries while rejecting pathological ones. +const maxQueryComplexity = 5000 + // Server encapsulates the HTTP server state and dependencies type Server struct { router chi.Router @@ -90,6 +97,7 @@ func (s *Server) init() error { generated.NewExecutableSchema(generated.Config{Resolvers: resolver})) graphQLServer.AddTransport(transport.POST{}) + graphQLServer.Use(extension.FixedComplexityLimit(maxQueryComplexity)) // Inject a per-request stats cache so that grouped statistics queries // sharing the same (filter, groupBy) pair are executed only once. @@ -136,8 +144,38 @@ func (s *Server) init() error { })) s.router.Use(func(next http.Handler) http.Handler { return http.HandlerFunc(func(rw http.ResponseWriter, r *http.Request) { + h := rw.Header() + h.Set("X-Content-Type-Options", "nosniff") + h.Set("X-Frame-Options", "DENY") + h.Set("Referrer-Policy", "same-origin") + // Conservative CSP: blocks clickjacking (frame-ancestors), plugin + // content (object-src) and injection (base-uri) without + // restricting scripts/styles, so it cannot break the self-hosted + // SPA which relies on inline scripts. A full script-src policy needs + // per-template nonces and should be added separately. + h.Set("Content-Security-Policy", "frame-ancestors 'none'; object-src 'none'; base-uri 'self'") if r.TLS != nil || r.Header.Get("X-Forwarded-Proto") == "https" { - rw.Header().Set("Strict-Transport-Security", "max-age=31536000; includeSubDomains") + h.Set("Strict-Transport-Security", "max-age=31536000; includeSubDomains") + } + next.ServeHTTP(rw, r) + }) + }) + + // CSRF defense-in-depth on top of the SameSite=Lax session cookie: reject + // cross-site state-changing requests. Modern browsers set Sec-Fetch-Site on + // every request, so this stops a malicious site from driving cookie- + // authenticated POST/PUT/DELETE/PATCH calls. It fails open when the header is + // absent or not "cross-site", so non-browser API clients and the same-origin + // SPA are unaffected. + s.router.Use(func(next http.Handler) http.Handler { + return http.HandlerFunc(func(rw http.ResponseWriter, r *http.Request) { + switch r.Method { + case http.MethodGet, http.MethodHead, http.MethodOptions, http.MethodTrace: + default: + if r.Header.Get("Sec-Fetch-Site") == "cross-site" { + http.Error(rw, "cross-site request blocked", http.StatusForbidden) + return + } } next.ServeHTTP(rw, r) }) diff --git a/internal/api/job.go b/internal/api/job.go index 76ec3e2a..37c0e454 100644 --- a/internal/api/job.go +++ b/internal/api/job.go @@ -166,6 +166,10 @@ func (api *RestAPI) getJobs(rw http.ResponseWriter, r *http.Request) { handleError(err, http.StatusBadRequest, rw) return } + if x < 1 { + handleError(fmt.Errorf("page must be >= 1"), http.StatusBadRequest, rw) + return + } page.Page = x case "items-per-page": x, err := strconv.Atoi(vals[0]) @@ -173,6 +177,10 @@ func (api *RestAPI) getJobs(rw http.ResponseWriter, r *http.Request) { handleError(err, http.StatusBadRequest, rw) return } + if x < 1 { + handleError(fmt.Errorf("items-per-page must be >= 1"), http.StatusBadRequest, rw) + return + } page.ItemsPerPage = x case "with-metadata": withMetadata = true diff --git a/internal/repository/jobQuery.go b/internal/repository/jobQuery.go index 0b162179..49ab1fbe 100644 --- a/internal/repository/jobQuery.go +++ b/internal/repository/jobQuery.go @@ -76,8 +76,15 @@ func (r *JobRepository) QueryJobs( } if page != nil && page.ItemsPerPage != -1 { + // -1 is the only valid non-positive value ("load all"); reject other + // non-positive values so that uint64(page.ItemsPerPage) cannot underflow + // into a huge limit. Clamp Page to >= 1 to avoid the same on the offset. + if page.ItemsPerPage < 1 { + return nil, fmt.Errorf("invalid items-per-page value: %d", page.ItemsPerPage) + } + p := max(page.Page, 1) limit := uint64(page.ItemsPerPage) - query = query.Offset((uint64(page.Page) - 1) * limit).Limit(limit) + query = query.Offset((uint64(p) - 1) * limit).Limit(limit) } for _, f := range filters { diff --git a/internal/repository/tags.go b/internal/repository/tags.go index 39ccd90d..dca8574d 100644 --- a/internal/repository/tags.go +++ b/internal/repository/tags.go @@ -311,26 +311,33 @@ func (r *JobRepository) CountTags(user *schema.User) (tags []schema.Tag, counts LeftJoin("jobtag jt ON t.id = jt.tag_id"). GroupBy("t.tag_type, t.tag_name") - // Build scope list for filtering - var scopeBuilder strings.Builder - scopeBuilder.WriteString(`"global"`) + // Build scope list for filtering. Values are parameterized rather than + // interpolated because user.Username originates from external identity + // providers (OIDC/LDAP) and must not be trusted as SQL. + scopes := []string{"global"} if user != nil { - scopeBuilder.WriteString(`,"`) - scopeBuilder.WriteString(user.Username) - scopeBuilder.WriteString(`"`) + scopes = append(scopes, user.Username) if user.HasAnyRole([]schema.Role{schema.RoleAdmin, schema.RoleSupport}) { - scopeBuilder.WriteString(`,"admin"`) + scopes = append(scopes, "admin") } } - q = q.Where("t.tag_scope IN (" + scopeBuilder.String() + ")") + q = q.Where(sq.Eq{"t.tag_scope": scopes}) // Handle Job Ownership if user != nil && user.HasAnyRole([]schema.Role{schema.RoleAdmin, schema.RoleSupport}) { // ADMIN || SUPPORT: Count all jobs // cclog.Debug("CountTags: User Admin or Support -> Count all Jobs for Tags") // Unchanged: Needs to be own case still, due to UserRole/NoRole compatibility handling in else case - } else if user != nil && user.HasRole(schema.RoleManager) { // MANAGER: Count own jobs plus project's jobs - // Build ("project1", "project2", ...) list of variable length directly in SQL string - q = q.Where("jt.job_id IN (SELECT id FROM job WHERE job.hpc_user = ? OR job.project IN (\""+strings.Join(user.Projects, "\",\"")+"\"))", user.Username) + } else if user != nil && user.HasRole(schema.RoleManager) && len(user.Projects) > 0 { // MANAGER: Count own jobs plus project's jobs + // Build a parameterized ("?", "?", ...) placeholder list for the + // variable-length project set instead of interpolating values into SQL. + args := make([]any, 0, len(user.Projects)+1) + args = append(args, user.Username) + placeholders := make([]string, len(user.Projects)) + for i, p := range user.Projects { + placeholders[i] = "?" + args = append(args, p) + } + q = q.Where("jt.job_id IN (SELECT id FROM job WHERE job.hpc_user = ? OR job.project IN ("+strings.Join(placeholders, ",")+"))", args...) } else if user != nil { // USER OR NO ROLE (Compatibility): Only count own jobs q = q.Where("jt.job_id IN (SELECT id FROM job WHERE job.hpc_user = ?)", user.Username) } diff --git a/web/frontend/src/Job.root.svelte b/web/frontend/src/Job.root.svelte index 8e55a15a..2c6fbd42 100644 --- a/web/frontend/src/Job.root.svelte +++ b/web/frontend/src/Job.root.svelte @@ -237,7 +237,7 @@ The following note was added by administrators: - {@html thisJob.metaData.message} + {thisJob.metaData.message} diff --git a/web/frontend/src/generic/helper/JobFootprint.svelte b/web/frontend/src/generic/helper/JobFootprint.svelte index 9eaf3ff9..8df3e3ae 100644 --- a/web/frontend/src/generic/helper/JobFootprint.svelte +++ b/web/frontend/src/generic/helper/JobFootprint.svelte @@ -228,7 +228,7 @@ {/each} {#if job?.metaData?.message}
- {@html job.metaData.message} + {job.metaData.message} {/if} From 3bef199cbee1d581c7b8467e64ea090159d05c42 Mon Sep 17 00:00:00 2001 From: Jan Eitzinger Date: Thu, 4 Jun 2026 20:12:27 +0200 Subject: [PATCH 56/63] Regenerate GraphQL --- go.mod | 1 - go.sum | 205 +- internal/graph/generated/generated.go | 7385 +++++++++++-------------- internal/graph/schema.resolvers.go | 18 +- 4 files changed, 3219 insertions(+), 4390 deletions(-) diff --git a/go.mod b/go.mod index d90daa32..54aec9c4 100644 --- a/go.mod +++ b/go.mod @@ -52,7 +52,6 @@ require ( github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.23 // indirect github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.23 // indirect github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.23 // indirect - github.com/aws/aws-sdk-go-v2/internal/ini v1.8.6 // indirect github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.24 // indirect github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.9 // indirect github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.16 // indirect diff --git a/go.sum b/go.sum index ef0295e4..2d0719f8 100644 --- a/go.sum +++ b/go.sum @@ -1,19 +1,9 @@ filippo.io/edwards25519 v1.1.0 h1:FNf4tywRC1HmFuKW5xopWpigGjJKiJSV0Cqo0cJWDaA= filippo.io/edwards25519 v1.1.0/go.mod h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4VDT4= -github.com/99designs/gqlgen v0.17.88 h1:neMQDgehMwT1vYIOx/w5ZYPUU/iMNAJzRO44I5Intoc= -github.com/99designs/gqlgen v0.17.88/go.mod h1:qeqYFEgOeSKqWedOjogPizimp2iu4E23bdPvl4jTYic= -github.com/99designs/gqlgen v0.17.89 h1:KzEcxPiMgQoMw3m/E85atUEHyZyt0PbAflMia5Kw8z8= -github.com/99designs/gqlgen v0.17.89/go.mod h1:GFqruTVGB7ZTdrf1uzOagpXbY7DrEt1pIxnTdhIbWvQ= github.com/99designs/gqlgen v0.17.90 h1:wSv6blm/PoplU6QoNw83EcQpNtC0HX3/+44vITJOzpk= github.com/99designs/gqlgen v0.17.90/go.mod h1:GqYrEwYsqCG8VaOsq2kJUCUKwAE1T+u2i+Nj7NtXiVI= -github.com/Azure/go-ntlmssp v0.1.0 h1:DjFo6YtWzNqNvQdrwEyr/e4nhU3vRiwenz5QX7sFz+A= -github.com/Azure/go-ntlmssp v0.1.0/go.mod h1:NYqdhxd/8aAct/s4qSYZEerdPuH1liG2/X9DiVTbhpk= github.com/Azure/go-ntlmssp v0.1.1 h1:l+FM/EEMb0U9QZE7mKNEDw5Mu3mFiaa2GKOoTSsNDPw= github.com/Azure/go-ntlmssp v0.1.1/go.mod h1:NYqdhxd/8aAct/s4qSYZEerdPuH1liG2/X9DiVTbhpk= -github.com/ClusterCockpit/cc-lib/v2 v2.9.1 h1:eplKhXQyGAElBGCEGdmxwj7fLv26Op16uK0KxUePDak= -github.com/ClusterCockpit/cc-lib/v2 v2.9.1/go.mod h1:FwD8vnTIbBM3ngeLNKmCvp9FoSjQZm7xnuaVxEKR23o= -github.com/ClusterCockpit/cc-lib/v2 v2.11.0 h1:LaLs4J0b7FArIXT8byMUcIcUr55R5obATjVi7qI02r4= -github.com/ClusterCockpit/cc-lib/v2 v2.11.0/go.mod h1:Oj+N2lpFqiBOBzjfrLIGJ2YSWT400TX4M0ii4lNl81A= github.com/ClusterCockpit/cc-lib/v2 v2.12.0 h1:ZbGD68nDniuvzFjJCdyYawpCBrabdSyWOg5FFSyFbjQ= github.com/ClusterCockpit/cc-lib/v2 v2.12.0/go.mod h1:ml8xtcYa5WhPM7JDQ+M9/R9ZBxITCR/5xqGJ//GxXJI= github.com/ClusterCockpit/cc-line-protocol/v2 v2.4.0 h1:hIzxgTBWcmCIHtoDKDkSCsKCOCOwUC34sFsbD2wcW0Q= @@ -26,9 +16,8 @@ github.com/Masterminds/squirrel v1.5.4 h1:uUcX/aBc8O7Fg9kaISIUsHXdKuqehiXAMQTYX8 github.com/Masterminds/squirrel v1.5.4/go.mod h1:NNaOrjSoIDfDA40n7sr2tPNZRfjzjA400rg+riTZj10= github.com/NVIDIA/go-nvml v0.13.0-1 h1:OLX8Jq3dONuPOQPC7rndB6+iDmDakw0XTYgzMxObkEw= github.com/NVIDIA/go-nvml v0.13.0-1/go.mod h1:+KNA7c7gIBH7SKSJ1ntlwkfN80zdx8ovl4hrK3LmPt4= -github.com/PuerkitoBio/goquery v1.11.0 h1:jZ7pwMQXIITcUXNH83LLk+txlaEy6NVOfTuP43xxfqw= -github.com/PuerkitoBio/goquery v1.11.0/go.mod h1:wQHgxUOU3JGuj3oD/QFfxUdlzW6xPHfqyHre6VMY4DQ= github.com/PuerkitoBio/goquery v1.12.0 h1:pAcL4g3WRXekcB9AU/y1mbKez2dbY2AajVhtkO8RIBo= +github.com/PuerkitoBio/goquery v1.12.0/go.mod h1:802ej+gV2y7bbIhOIoPY5sT183ZW0YFofScC4q/hIpQ= github.com/RaveNoX/go-jsoncommentstrip v1.0.0/go.mod h1:78ihd09MekBnJnxpICcwzCMzGrKSKYe4AqU6PDYYpjk= github.com/agnivade/levenshtein v1.2.1 h1:EHBY3UOn1gwdy/VbFwgo4cxecRznFk7fKWN1KOX7eoM= github.com/agnivade/levenshtein v1.2.1/go.mod h1:QVVI16kDrtSuwcpd0p1+xMC6Z/VfhtCyDIjcwga4/DU= @@ -40,129 +29,50 @@ github.com/alexbrainman/sspi v0.0.0-20250919150558-7d374ff0d59e h1:4dAU9FXIyQktp github.com/alexbrainman/sspi v0.0.0-20250919150558-7d374ff0d59e/go.mod h1:cEWa1LVoE5KvSD9ONXsZrj0z6KqySlCCNKHlLzbqAt4= github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883 h1:bvNMNQO63//z+xNgfBlViaCIJKLlCJ6/fmUseuG0wVQ= github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8= -github.com/andybalholm/brotli v1.2.0 h1:ukwgCxwYrmACq68yiUqwIWnGY0cTPox/M94sVwToPjQ= -github.com/andybalholm/brotli v1.2.0/go.mod h1:rzTDkvFWvIrjDXZHkuS16NPggd91W3kUSvPlQ1pLaKY= github.com/andybalholm/brotli v1.2.1 h1:R+f5xP285VArJDRgowrfb9DqL18yVK0gKAW/F+eTWro= github.com/andybalholm/brotli v1.2.1/go.mod h1:rzTDkvFWvIrjDXZHkuS16NPggd91W3kUSvPlQ1pLaKY= github.com/andybalholm/cascadia v1.3.3 h1:AG2YHrzJIm4BZ19iwJ/DAua6Btl3IwJX+VI4kktS1LM= github.com/andybalholm/cascadia v1.3.3/go.mod h1:xNd9bqTn98Ln4DwST8/nG+H0yuB8Hmgu1YHNnWw0GeA= -github.com/antithesishq/antithesis-sdk-go v0.5.0-default-no-op h1:Ucf+QxEKMbPogRO5guBNe5cgd9uZgfoJLOYs8WWhtjM= -github.com/antithesishq/antithesis-sdk-go v0.5.0-default-no-op/go.mod h1:IUpT2DPAKh6i/YhSbt6Gl3v2yvUZjmKncl7U91fup7E= github.com/antithesishq/antithesis-sdk-go v0.6.0-default-no-op h1:kpBdlEPbRvff0mDD1gk7o9BhI16b9p5yYAXRlidpqJE= +github.com/antithesishq/antithesis-sdk-go v0.6.0-default-no-op/go.mod h1:IUpT2DPAKh6i/YhSbt6Gl3v2yvUZjmKncl7U91fup7E= github.com/apapsch/go-jsonmerge/v2 v2.0.0 h1:axGnT1gRIfimI7gJifB699GoE/oq+F2MU7Dml6nw9rQ= github.com/apapsch/go-jsonmerge/v2 v2.0.0/go.mod h1:lvDnEdqiQrp0O42VQGgmlKpxL1AP2+08jFMw88y4klk= github.com/arbovm/levenshtein v0.0.0-20160628152529-48b4e1c0c4d0 h1:jfIu9sQUG6Ig+0+Ap1h4unLjW6YQJpKZVmUzxsD4E/Q= github.com/arbovm/levenshtein v0.0.0-20160628152529-48b4e1c0c4d0/go.mod h1:t2tdKJDJF9BV14lnkjHmOQgcvEKgtqs5a1N3LNdJhGE= -github.com/aws/aws-sdk-go-v2 v1.41.3 h1:4kQ/fa22KjDt13QCy1+bYADvdgcxpfH18f0zP542kZA= -github.com/aws/aws-sdk-go-v2 v1.41.3/go.mod h1:mwsPRE8ceUUpiTgF7QmQIJ7lgsKUPQOUl3o72QBrE1o= -github.com/aws/aws-sdk-go-v2 v1.41.6 h1:1AX0AthnBQzMx1vbmir3Y4WsnJgiydmnJjiLu+LvXOg= -github.com/aws/aws-sdk-go-v2 v1.41.6/go.mod h1:dy0UzBIfwSeot4grGvY1AqFWN5zgziMmWGzysDnHFcQ= github.com/aws/aws-sdk-go-v2 v1.41.7 h1:DWpAJt66FmnnaRIOT/8ASTucrvuDPZASqhhLey6tLY8= github.com/aws/aws-sdk-go-v2 v1.41.7/go.mod h1:4LAfZOPHNVNQEckOACQx60Y8pSRjIkNZQz1w92xpMJc= -github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.6 h1:N4lRUXZpZ1KVEUn6hxtco/1d2lgYhNn1fHkkl8WhlyQ= -github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.6/go.mod h1:lyw7GFp3qENLh7kwzf7iMzAxDn+NzjXEAGjKS2UOKqI= -github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.9 h1:adBsCIIpLbLmYnkQU+nAChU5yhVTvu5PerROm+/Kq2A= -github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.9/go.mod h1:uOYhgfgThm/ZyAuJGNQ5YgNyOlYfqnGpTHXvk3cpykg= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.10 h1:gx1AwW1Iyk9Z9dD9F4akX5gnN3QZwUB20GGKH/I+Rho= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.10/go.mod h1:qqY157uZoqm5OXq/amuaBJyC9hgBCBQnsaWnPe905GY= -github.com/aws/aws-sdk-go-v2/config v1.32.11 h1:ftxI5sgz8jZkckuUHXfC/wMUc8u3fG1vQS0plr2F2Zs= -github.com/aws/aws-sdk-go-v2/config v1.32.11/go.mod h1:twF11+6ps9aNRKEDimksp923o44w/Thk9+8YIlzWMmo= -github.com/aws/aws-sdk-go-v2/config v1.32.16 h1:Q0iQ7quUgJP0F/SCRTieScnaMdXr9h/2+wze1u3cNeM= -github.com/aws/aws-sdk-go-v2/config v1.32.16/go.mod h1:duCCnJEFqpt2RC6no1iK6q+8HpwOAkiUua0pY507dQc= github.com/aws/aws-sdk-go-v2/config v1.32.18 h1:Hcia46bxhGgF3BaSnG8nSNCWmqTK6bj9xN9/FJ3WK6Q= github.com/aws/aws-sdk-go-v2/config v1.32.18/go.mod h1:zEjCAYmxqDadH1WX8CdBvmLKhUEUVFgKRQG38zjDmrY= -github.com/aws/aws-sdk-go-v2/credentials v1.19.11 h1:NdV8cwCcAXrCWyxArt58BrvZJ9pZ9Fhf9w6Uh5W3Uyc= -github.com/aws/aws-sdk-go-v2/credentials v1.19.11/go.mod h1:30yY2zqkMPdrvxBqzI9xQCM+WrlrZKSOpSJEsylVU+8= -github.com/aws/aws-sdk-go-v2/credentials v1.19.15 h1:fyvgWTszojq8hEnMi8PPBTvZdTtEVmAVyo+NFLHBhH4= -github.com/aws/aws-sdk-go-v2/credentials v1.19.15/go.mod h1:gJiYyMOjNg8OEdRWOf3CrFQxM2a98qmrtjx1zuiQfB8= github.com/aws/aws-sdk-go-v2/credentials v1.19.17 h1:gP2nkGsS+KMvF/jfFz2Vv2qiiOqWKyPACSzPsqHgoW8= github.com/aws/aws-sdk-go-v2/credentials v1.19.17/go.mod h1:Bsew3S/moG5iT77giPj1q8wb/s0RE5/QfH+ASjYtuQc= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.19 h1:INUvJxmhdEbVulJYHI061k4TVuS3jzzthNvjqvVvTKM= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.19/go.mod h1:FpZN2QISLdEBWkayloda+sZjVJL+e9Gl0k1SyTgcswU= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.22 h1:IOGsJ1xVWhsi+ZO7/NW8OuZZBtMJLZbk4P5HDjJO0jQ= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.22/go.mod h1:b+hYdbU+jGKfXE8kKM6g1+h+L/Go3vMvzlxBsiuGsxg= github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.23 h1:UuSfcORqNSz/ey3VPRS8TcVH2Ikf0/sC+Hdj400QI6U= github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.23/go.mod h1:+G/OSGiOFnSOkYloKj/9M35s74LgVAdJBSD5lsFfqKg= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.19 h1:/sECfyq2JTifMI2JPyZ4bdRN77zJmr6SrS1eL3augIA= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.19/go.mod h1:dMf8A5oAqr9/oxOfLkC/c2LU/uMcALP0Rgn2BD5LWn0= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.22 h1:GmLa5Kw1ESqtFpXsx5MmC84QWa/ZrLZvlJGa2y+4kcQ= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.22/go.mod h1:6sW9iWm9DK9YRpRGga/qzrzNLgKpT2cIxb7Vo2eNOp0= github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.23 h1:GpT/TrnBYuE5gan2cZbTtvP+JlHsutdmlV2YfEyNde0= github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.23/go.mod h1:xYWD6BS9ywC5bS3sz9Xh04whO/hzK2plt2Zkyrp4JuA= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.19 h1:AWeJMk33GTBf6J20XJe6qZoRSJo0WfUhsMdUKhoODXE= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.19/go.mod h1:+GWrYoaAsV7/4pNHpwh1kiNLXkKaSoppxQq9lbH8Ejw= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.22 h1:dY4kWZiSaXIzxnKlj17nHnBcXXBfac6UlsAx2qL6XrU= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.22/go.mod h1:KIpEUx0JuRZLO7U6cbV204cWAEco2iC3l061IxlwLtI= github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.23 h1:bpd8vxhlQi2r1hiueOw02f/duEPTMK59Q4QMAoTTtTo= github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.23/go.mod h1:15DfR2nw+CRHIk0tqNyifu3G1YdAOy68RftkhMDDwYk= -github.com/aws/aws-sdk-go-v2/internal/ini v1.8.5 h1:clHU5fm//kWS1C2HgtgWxfQbFbx4b6rx+5jzhgX9HrI= -github.com/aws/aws-sdk-go-v2/internal/ini v1.8.5/go.mod h1:O3h0IK87yXci+kg6flUKzJnWeziQUKciKrLjcatSNcY= -github.com/aws/aws-sdk-go-v2/internal/ini v1.8.6 h1:qYQ4pzQ2Oz6WpQ8T3HvGHnZydA72MnLuFK9tJwmrbHw= -github.com/aws/aws-sdk-go-v2/internal/ini v1.8.6/go.mod h1:O3h0IK87yXci+kg6flUKzJnWeziQUKciKrLjcatSNcY= -github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.20 h1:qi3e/dmpdONhj1RyIZdi6DKKpDXS5Lb8ftr3p7cyHJc= -github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.20/go.mod h1:V1K+TeJVD5JOk3D9e5tsX2KUdL7BlB+FV6cBhdobN8c= -github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.23 h1:FPXsW9+gMuIeKmz7j6ENWcWtBGTe1kH8r9thNt5Uxx4= -github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.23/go.mod h1:7J8iGMdRKk6lw2C+cMIphgAnT8uTwBwNOsGkyOCm80U= github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.24 h1:OQqn11BtaYv1WLUowvcA30MpzIu8Ti4pcLPIIyoKZrA= github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.24/go.mod h1:X5ZJyfwVrWA96GzPmUCWFQaEARPR7gCrpq2E92PJwAE= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.6 h1:XAq62tBTJP/85lFD5oqOOe7YYgWxY9LvWq8plyDvDVg= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.6/go.mod h1:x0nZssQ3qZSnIcePWLvcoFisRXJzcTVvYpAAdYX8+GI= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.8 h1:HtOTYcbVcGABLOVuPYaIihj6IlkqubBwFj10K5fxRek= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.8/go.mod h1:VsK9abqQeGlzPgUr+isNWzPlK2vKe9INMLWnY65f5Xs= github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.9 h1:FLudkZLt5ci0ozzgkVo8BJGwvqNaZbTWb3UcucAateA= github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.9/go.mod h1:w7wZ/s9qK7c8g4al+UyoF1Sp/Z45UwMGcqIzLWVQHWk= -github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.11 h1:BYf7XNsJMzl4mObARUBUib+j2tf0U//JAAtTnYqvqCw= -github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.11/go.mod h1:aEUS4WrNk/+FxkBZZa7tVgp4pGH+kFGW40Y8rCPqt5g= -github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.14 h1:xnvDEnw+pnj5mctWiYuFbigrEzSm35x7k4KS/ZkCANg= -github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.14/go.mod h1:yS5rNogD8e0Wu9+l3MUwr6eENBzEeGejvINpN5PAYfY= github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.16 h1:tX68nPDCoX0s2ksM7CipWP0QFw2hGDWwUdxI6+eT9ZU= github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.16/go.mod h1:e3IzZvQ3kAWNykvE0Tr0RDZCMFInMvhku3qNpcIQXhM= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.19 h1:X1Tow7suZk9UCJHE1Iw9GMZJJl0dAnKXXP1NaSDHwmw= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.19/go.mod h1:/rARO8psX+4sfjUQXp5LLifjUt8DuATZ31WptNJTyQA= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.22 h1:PUmZeJU6Y1Lbvt9WFuJ0ugUK2xn6hIWUBBbKuOWF30s= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.22/go.mod h1:nO6egFBoAaoXze24a2C0NjQCvdpk8OueRoYimvEB9jo= github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.23 h1:pbrxO/kuIwgEsOPLkaHu0O+m4fNgLU8B3vxQ+72jTPw= github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.23/go.mod h1:/CMNUqoj46HpS3MNRDEDIwcgEnrtZlKRaHNaHxIFpNA= -github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.19 h1:JnQeStZvPHFHeyky/7LbMlyQjUa+jIBj36OlWm0pzIk= -github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.19/go.mod h1:HGyasyHvYdFQeJhvDHfH7HXkHh57htcJGKDZ+7z+I24= -github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.22 h1:SE+aQ4DEqG53RRCAIHlCf//B2ycxGH7jFkpnAh/kKPM= -github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.22/go.mod h1:ES3ynECd7fYeJIL6+oax+uIEljmfps0S70BaQzbMd/o= github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.23 h1:03xatSQO4+AM1lTAbnRg5OK528EUg744nW7F73U8DKw= github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.23/go.mod h1:M8l3mwgx5ToK7wot2sBBce/ojzgnPzZXUV445gTSyE8= -github.com/aws/aws-sdk-go-v2/service/s3 v1.97.0 h1:zyKY4OxzUImu+DigelJI9o49QQv8CjREs5E1CywjtIA= -github.com/aws/aws-sdk-go-v2/service/s3 v1.97.0/go.mod h1:NF3JcMGOiARAss1ld3WGORCw71+4ExDD2cbbdKS5PpA= -github.com/aws/aws-sdk-go-v2/service/s3 v1.100.0 h1:7G26Sae6PMKn4kMcU5JzNfrm1YrKwyOhowXPYR2WiWY= -github.com/aws/aws-sdk-go-v2/service/s3 v1.100.0/go.mod h1:Fw9aqhJicIVee1VytBBjH+l+5ov6/PhbtIK/u3rt/ls= github.com/aws/aws-sdk-go-v2/service/s3 v1.102.0 h1:gfPQ6do5PZTCc5n/vZUHz/G8McrNrfERGSO+iHvVbCA= github.com/aws/aws-sdk-go-v2/service/s3 v1.102.0/go.mod h1:wO6U9egJtCtsZEHG2AAcFf1kUWDRrH0Iif6K3bVmmdE= -github.com/aws/aws-sdk-go-v2/service/signin v1.0.7 h1:Y2cAXlClHsXkkOvWZFXATr34b0hxxloeQu/pAZz2row= -github.com/aws/aws-sdk-go-v2/service/signin v1.0.7/go.mod h1:idzZ7gmDeqeNrSPkdbtMp9qWMgcBwykA7P7Rzh5DXVU= -github.com/aws/aws-sdk-go-v2/service/signin v1.0.10 h1:a1Fq/KXn75wSzoJaPQTgZO0wHGqE9mjFnylnqEPTchA= -github.com/aws/aws-sdk-go-v2/service/signin v1.0.10/go.mod h1:p6+MXNxW7IA6dMgHfTAzljuwSKD0NCm/4lbS4t6+7vI= github.com/aws/aws-sdk-go-v2/service/signin v1.0.11 h1:TdJ+HdzOBhU8+iVAOGUTU63VXopcumCOF1paFulHWZc= github.com/aws/aws-sdk-go-v2/service/signin v1.0.11/go.mod h1:R82ZRExE/nheo0N+T8zHPcLRTcH8MGsnR3BiVGX0TwI= -github.com/aws/aws-sdk-go-v2/service/sso v1.30.12 h1:iSsvB9EtQ09YrsmIc44Heqlx5ByGErqhPK1ZQLppias= -github.com/aws/aws-sdk-go-v2/service/sso v1.30.12/go.mod h1:fEWYKTRGoZNl8tZ77i61/ccwOMJdGxwOhWCkp6TXAr0= -github.com/aws/aws-sdk-go-v2/service/sso v1.30.16 h1:x6bKbmDhsgSZwv6q19wY/u3rLk/3FGjJWyqKcIRufpE= -github.com/aws/aws-sdk-go-v2/service/sso v1.30.16/go.mod h1:CudnEVKRtLn0+3uMV0yEXZ+YZOKnAtUJ5DmDhilVnIw= github.com/aws/aws-sdk-go-v2/service/sso v1.30.17 h1:7byT8HUWrgoRp6sXjxtZwgOKfhss5fW6SkLBtqzgRoE= github.com/aws/aws-sdk-go-v2/service/sso v1.30.17/go.mod h1:xNWknVi4Ezm1vg1QsB/5EWpAJURq22uqd38U8qKvOJc= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.16 h1:EnUdUqRP1CNzt2DkV67tJx6XDN4xlfBFm+bzeNOQVb0= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.16/go.mod h1:Jic/xv0Rq/pFNCh3WwpH4BEqdbSAl+IyHro8LbibHD8= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.20 h1:oK/njaL8GtyEihkWMD4k3VgHCT64RQKkZwh0DG5j8ak= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.20/go.mod h1:JHs8/y1f3zY7U5WcuzoJ/yAYGYtNIVPKLIbp61euvmg= github.com/aws/aws-sdk-go-v2/service/ssooidc v1.36.0 h1:nDARhv/oF55bcxF7rCI/4PDxOKnVXVWwDuDwCs2I2SQ= github.com/aws/aws-sdk-go-v2/service/ssooidc v1.36.0/go.mod h1:4vIRDq+CJB2xFAXZ+YgGUTiEft7oAQlhIs71xcSeuVg= -github.com/aws/aws-sdk-go-v2/service/sts v1.41.8 h1:XQTQTF75vnug2TXS8m7CVJfC2nniYPZnO1D4Np761Oo= -github.com/aws/aws-sdk-go-v2/service/sts v1.41.8/go.mod h1:Xgx+PR1NUOjNmQY+tRMnouRp83JRM8pRMw/vCaVhPkI= -github.com/aws/aws-sdk-go-v2/service/sts v1.42.0 h1:ks8KBcZPh3PYISr5dAiXCM5/Thcuxk8l+PG4+A0exds= -github.com/aws/aws-sdk-go-v2/service/sts v1.42.0/go.mod h1:pFw33T0WLvXU3rw1WBkpMlkgIn54eCB5FYLhjDc9Foo= github.com/aws/aws-sdk-go-v2/service/sts v1.42.1 h1:F/M5Y9I3nwr2IEpshZgh1GeHpOItExNM9L1euNuh/fk= github.com/aws/aws-sdk-go-v2/service/sts v1.42.1/go.mod h1:mTNxImtovCOEEuD65mKW7DCsL+2gjEH+RPEAexAzAio= -github.com/aws/smithy-go v1.24.2 h1:FzA3bu/nt/vDvmnkg+R8Xl46gmzEDam6mZ1hzmwXFng= -github.com/aws/smithy-go v1.24.2/go.mod h1:YE2RhdIuDbA5E5bTdciG9KrW3+TiEONeUWCqxX9i1Fc= -github.com/aws/smithy-go v1.25.1 h1:J8ERsGSU7d+aCmdQur5Txg6bVoYelvQJgtZehD12GkI= -github.com/aws/smithy-go v1.25.1/go.mod h1:YE2RhdIuDbA5E5bTdciG9KrW3+TiEONeUWCqxX9i1Fc= github.com/aws/smithy-go v1.26.0 h1:9ouqbi+NyKP7fV3Te7UElCwdAb6Y8uk7LGwPE5tVe/s= github.com/aws/smithy-go v1.26.0/go.mod h1:YE2RhdIuDbA5E5bTdciG9KrW3+TiEONeUWCqxX9i1Fc= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= @@ -170,8 +80,8 @@ github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6r github.com/bmatcuk/doublestar v1.1.1/go.mod h1:UD6OnuiIn0yFxxA2le/rnRU1G4RaI4UvFv1sNto9p6w= github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/coreos/go-oidc/v3 v3.17.0 h1:hWBGaQfbi0iVviX4ibC7bk8OKT5qNr4klBaCHVNvehc= -github.com/coreos/go-oidc/v3 v3.17.0/go.mod h1:wqPbKFrVnE90vty060SB40FCJ8fTHTxSwyXJqZH+sI8= +github.com/coder/websocket v1.8.14 h1:9L0p0iKiNOibykf283eHkKUHHrpG7f65OE3BhhO7v9g= +github.com/coder/websocket v1.8.14/go.mod h1:NX3SzP+inril6yawo5CQXx8+fk145lPDC6pumgx0mVg= github.com/coreos/go-oidc/v3 v3.18.0 h1:V9orjXynvu5wiC9SemFTWnG4F45v403aIcjWo0d41+A= github.com/coreos/go-oidc/v3 v3.18.0/go.mod h1:DYCf24+ncYi+XkIH97GY1+dqoRlbaSI26KVTCI9SrY4= github.com/cpuguy83/go-md2man/v2 v2.0.7 h1:zbFlGlXEAKlwXpmvle3d8Oe3YnkKIK4xSRTd3sHPnBo= @@ -187,34 +97,20 @@ github.com/expr-lang/expr v1.17.8 h1:W1loDTT+0PQf5YteHSTpju2qfUfNoBt4yw9+wOEU9VM github.com/expr-lang/expr v1.17.8/go.mod h1:8/vRC7+7HBzESEqt5kKpYXxrxkr31SaO8r40VO/1IT4= github.com/frankban/quicktest v1.13.0 h1:yNZif1OkDfNoDfb9zZa9aXIpejNR4F23Wely0c+Qdqk= github.com/frankban/quicktest v1.13.0/go.mod h1:qLE0fzW0VuyUAJgPU19zByoIr0HtCHN/r/VLSOOIySU= -github.com/fsnotify/fsnotify v1.9.0 h1:2Ml+OJNzbYCTzsxtv8vKSFD9PbJjmhYF14k/jKC7S9k= -github.com/fsnotify/fsnotify v1.9.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= github.com/fsnotify/fsnotify v1.10.1 h1:b0/UzAf9yR5rhf3RPm9gf3ehBPpf0oZKIjtpKrx59Ho= github.com/fsnotify/fsnotify v1.10.1/go.mod h1:TLheqan6HD6GBK6PrDWyDPBaEV8LspOxvPSjC+bVfgo= github.com/go-asn1-ber/asn1-ber v1.5.8-0.20250403174932-29230038a667 h1:BP4M0CvQ4S3TGls2FvczZtj5Re/2ZzkV9VwqPHH/3Bo= github.com/go-asn1-ber/asn1-ber v1.5.8-0.20250403174932-29230038a667/go.mod h1:hEBeB/ic+5LoWskz+yKT7vGhhPYkProFKoKdwZRWMe0= -github.com/go-chi/chi/v5 v5.2.5 h1:Eg4myHZBjyvJmAFjFvWgrqDTXFyOzjj7YIm3L3mu6Ug= -github.com/go-chi/chi/v5 v5.2.5/go.mod h1:X7Gx4mteadT3eDOMTsXzmI4/rwUpOwBHLpAfupzFJP0= github.com/go-chi/chi/v5 v5.3.0 h1:halUjDxhshgXHMrao5bB8eNBXo/rnzwr8m5m36glehM= github.com/go-chi/chi/v5 v5.3.0/go.mod h1:R+tYY2hNuVUUjxoPtqUdgBqevM9s9njzkTLutVsOCto= github.com/go-chi/cors v1.2.2 h1:Jmey33TE+b+rB7fT8MUy1u0I4L+NARQlK6LhzKPSyQE= github.com/go-chi/cors v1.2.2/go.mod h1:sSbTewc+6wYHBBCW7ytsFSn836hqM7JxpglAy2Vzc58= -github.com/go-co-op/gocron/v2 v2.19.1 h1:B4iLeA0NB/2iO3EKQ7NfKn5KsQgZfjb2fkvoZJU3yBI= -github.com/go-co-op/gocron/v2 v2.19.1/go.mod h1:5lEiCKk1oVJV39Zg7/YG10OnaVrDAV5GGR6O0663k6U= -github.com/go-co-op/gocron/v2 v2.21.1 h1:QYOK6iOQVCut+jDcs4zRdWRTBHRxRCEeeFi1TnAmgbU= -github.com/go-co-op/gocron/v2 v2.21.1/go.mod h1:5lEiCKk1oVJV39Zg7/YG10OnaVrDAV5GGR6O0663k6U= github.com/go-co-op/gocron/v2 v2.21.2 h1:bD8/YwkojYHgXFr3iEulL148KBdTbKVxUZzFKpXcdbY= github.com/go-co-op/gocron/v2 v2.21.2/go.mod h1:5lEiCKk1oVJV39Zg7/YG10OnaVrDAV5GGR6O0663k6U= -github.com/go-jose/go-jose/v4 v4.1.3 h1:CVLmWDhDVRa6Mi/IgCgaopNosCaHz7zrMeF9MlZRkrs= -github.com/go-jose/go-jose/v4 v4.1.3/go.mod h1:x4oUasVrzR7071A4TnHLGSPpNOm2a21K9Kf04k1rs08= github.com/go-jose/go-jose/v4 v4.1.4 h1:moDMcTHmvE6Groj34emNPLs/qtYXRVcd6S7NHbHz3kA= github.com/go-jose/go-jose/v4 v4.1.4/go.mod h1:x4oUasVrzR7071A4TnHLGSPpNOm2a21K9Kf04k1rs08= -github.com/go-ldap/ldap/v3 v3.4.12 h1:1b81mv7MagXZ7+1r7cLTWmyuTqVqdwbtJSjC0DAp9s4= -github.com/go-ldap/ldap/v3 v3.4.12/go.mod h1:+SPAGcTtOfmGsCb3h1RFiq4xpp4N636G75OEace8lNo= github.com/go-ldap/ldap/v3 v3.4.13 h1:+x1nG9h+MZN7h/lUi5Q3UZ0fJ1GyDQYbPvbuH38baDQ= github.com/go-ldap/ldap/v3 v3.4.13/go.mod h1:LxsGZV6vbaK0sIvYfsv47rfh4ca0JXokCoKjZxsszv0= -github.com/go-openapi/jsonpointer v0.22.5 h1:8on/0Yp4uTb9f4XvTrM2+1CPrV05QPZXu+rvu2o9jcA= -github.com/go-openapi/jsonpointer v0.22.5/go.mod h1:gyUR3sCvGSWchA2sUBJGluYMbe1zazrYWIkWPjjMUY0= github.com/go-openapi/jsonpointer v0.23.1 h1:1HBACs7XIwR2RcmItfdSFlALhGbe6S92p0ry4d1GWg4= github.com/go-openapi/jsonpointer v0.23.1/go.mod h1:iWRmZTrGn7XwYhtPt/fvdSFj1OfNBngqRT2UG3BxSqY= github.com/go-openapi/jsonreference v0.21.5 h1:6uCGVXU/aNF13AQNggxfysJ+5ZcU4nEAe+pJyVWRdiE= @@ -222,43 +118,26 @@ github.com/go-openapi/jsonreference v0.21.5/go.mod h1:u25Bw85sX4E2jzFodh1FOKMTZL github.com/go-openapi/spec v0.22.4 h1:4pxGjipMKu0FzFiu/DPwN3CTBRlVM2yLf/YTWorYfDQ= github.com/go-openapi/spec v0.22.4/go.mod h1:WQ6Ai0VPWMZgMT4XySjlRIE6GP1bGQOtEThn3gcWLtQ= github.com/go-openapi/swag v0.19.15 h1:D2NRCBzS9/pEY3gP9Nl8aDqGUcPFrwG2p+CNFrLyrCM= -github.com/go-openapi/swag/conv v0.25.5 h1:wAXBYEXJjoKwE5+vc9YHhpQOFj2JYBMF2DUi+tGu97g= -github.com/go-openapi/swag/conv v0.25.5/go.mod h1:CuJ1eWvh1c4ORKx7unQnFGyvBbNlRKbnRyAvDvzWA4k= github.com/go-openapi/swag/conv v0.26.0 h1:5yGGsPYI1ZCva93U0AoKi/iZrNhaJEjr324YVsiD89I= github.com/go-openapi/swag/conv v0.26.0/go.mod h1:tpAmIL7X58VPnHHiSO4uE3jBeRamGsFsfdDeDtb5ECE= -github.com/go-openapi/swag/jsonname v0.25.5 h1:8p150i44rv/Drip4vWI3kGi9+4W9TdI3US3uUYSFhSo= -github.com/go-openapi/swag/jsonname v0.25.5/go.mod h1:jNqqikyiAK56uS7n8sLkdaNY/uq6+D2m2LANat09pKU= github.com/go-openapi/swag/jsonname v0.26.0 h1:gV1NFX9M8avo0YSpmWogqfQISigCmpaiNci8cGECU5w= github.com/go-openapi/swag/jsonname v0.26.0/go.mod h1:urBBR8bZNoDYGr653ynhIx+gTeIz0ARZxHkAPktJK2M= -github.com/go-openapi/swag/jsonutils v0.25.5 h1:XUZF8awQr75MXeC+/iaw5usY/iM7nXPDwdG3Jbl9vYo= -github.com/go-openapi/swag/jsonutils v0.25.5/go.mod h1:48FXUaz8YsDAA9s5AnaUvAmry1UcLcNVWUjY42XkrN4= github.com/go-openapi/swag/jsonutils v0.26.0 h1:FawFML2iAXsPqmERscuMPIHmFsoP1tOqWkxBaKNMsnA= github.com/go-openapi/swag/jsonutils v0.26.0/go.mod h1:2VmA0CJlyFqgawOaPI9psnjFDqzyivIqLYN34t9p91E= -github.com/go-openapi/swag/jsonutils/fixtures_test v0.25.5 h1:SX6sE4FrGb4sEnnxbFL/25yZBb5Hcg1inLeErd86Y1U= -github.com/go-openapi/swag/jsonutils/fixtures_test v0.25.5/go.mod h1:/2KvOTrKWjVA5Xli3DZWdMCZDzz3uV/T7bXwrKWPquo= github.com/go-openapi/swag/jsonutils/fixtures_test v0.26.0 h1:apqeINu/ICHouqiRZbyFvuDge5jCmmLTqGQ9V95EaOM= -github.com/go-openapi/swag/loading v0.25.5 h1:odQ/umlIZ1ZVRteI6ckSrvP6e2w9UTF5qgNdemJHjuU= -github.com/go-openapi/swag/loading v0.25.5/go.mod h1:I8A8RaaQ4DApxhPSWLNYWh9NvmX2YKMoB9nwvv6oW6g= +github.com/go-openapi/swag/jsonutils/fixtures_test v0.26.0/go.mod h1:AyM6QT8uz5IdKxk5akv0y6u4QvcL9GWERt0Jx/F/R8Y= github.com/go-openapi/swag/loading v0.26.0 h1:Apg6zaKhCJurpJer0DCxq99qwmhFddBhaMX7kilDcko= github.com/go-openapi/swag/loading v0.26.0/go.mod h1:dBxQ/6V2uBaAQdevN18VELE6xSpJWZxLX4txe12JwDg= -github.com/go-openapi/swag/stringutils v0.25.5 h1:NVkoDOA8YBgtAR/zvCx5rhJKtZF3IzXcDdwOsYzrB6M= -github.com/go-openapi/swag/stringutils v0.25.5/go.mod h1:PKK8EZdu4QJq8iezt17HM8RXnLAzY7gW0O1KKarrZII= github.com/go-openapi/swag/stringutils v0.26.0 h1:qZQngLxs5s7SLijc3N2ZO+fUq2o8LjuWAASSrJuh+xg= github.com/go-openapi/swag/stringutils v0.26.0/go.mod h1:sWn5uY+QIIspwPhvgnqJsH8xqFT2ZbYcvbcFanRyhFE= -github.com/go-openapi/swag/typeutils v0.25.5 h1:EFJ+PCga2HfHGdo8s8VJXEVbeXRCYwzzr9u4rJk7L7E= -github.com/go-openapi/swag/typeutils v0.25.5/go.mod h1:itmFmScAYE1bSD8C4rS0W+0InZUBrB2xSPbWt6DLGuc= github.com/go-openapi/swag/typeutils v0.26.0 h1:2kdEwdiNWy+JJdOvu5MA2IIg2SylWAFuuyQIKYybfq4= github.com/go-openapi/swag/typeutils v0.26.0/go.mod h1:oovDuIUvTrEHVMqWilQzKzV4YlSKgyZmFh7AlfABNVE= -github.com/go-openapi/swag/yamlutils v0.25.5 h1:kASCIS+oIeoc55j28T4o8KwlV2S4ZLPT6G0iq2SSbVQ= -github.com/go-openapi/swag/yamlutils v0.25.5/go.mod h1:Gek1/SjjfbYvM+Iq4QGwa/2lEXde9n2j4a3wI3pNuOQ= github.com/go-openapi/swag/yamlutils v0.26.0 h1:H7O8l/8NJJQ/oiReEN+oMpnGMyt8G0hl460nRZxhLMQ= github.com/go-openapi/swag/yamlutils v0.26.0/go.mod h1:1evKEGAtP37Pkwcc7EWMF0hedX0/x3Rkvei2wtG/TbU= -github.com/go-openapi/testify/enable/yaml/v2 v2.4.0 h1:7SgOMTvJkM8yWrQlU8Jm18VeDPuAvB/xWrdxFJkoFag= -github.com/go-openapi/testify/enable/yaml/v2 v2.4.0/go.mod h1:14iV8jyyQlinc9StD7w1xVPW3CO3q1Gj04Jy//Kw4VM= github.com/go-openapi/testify/enable/yaml/v2 v2.4.2 h1:5zRca5jw7lzVREKCZVNBpysDNBjj74rBh0N2BGQbSR0= -github.com/go-openapi/testify/v2 v2.4.0 h1:8nsPrHVCWkQ4p8h1EsRVymA2XABB4OT40gcvAu+voFM= -github.com/go-openapi/testify/v2 v2.4.0/go.mod h1:HCPmvFFnheKK2BuwSA0TbbdxJ3I16pjwMkYkP4Ywn54= +github.com/go-openapi/testify/enable/yaml/v2 v2.4.2/go.mod h1:XVevPw5hUXuV+5AkI1u1PeAm27EQVrhXTTCPAF85LmE= github.com/go-openapi/testify/v2 v2.4.2 h1:tiByHpvE9uHrrKjOszax7ZvKB7QOgizBWGBLuq0ePx4= +github.com/go-openapi/testify/v2 v2.4.2/go.mod h1:SgsVHtfooshd0tublTtJ50FPKhujf47YRqauXXOUxfw= github.com/go-sql-driver/mysql v1.4.1/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= github.com/go-sql-driver/mysql v1.8.1 h1:LedoTUt/eveggdHS9qUFC1EFSa8bU2+1pZjSRpvNJ1Y= github.com/go-sql-driver/mysql v1.8.1/go.mod h1:wEBSXgmK//2ZFJyE+qWnIsVGmvmEKlqwuVSjsCm7DZg= @@ -272,9 +151,8 @@ github.com/golang-migrate/migrate/v4 v4.19.1 h1:OCyb44lFuQfYXYLx1SCxPZQGU7mcaZ7g github.com/golang-migrate/migrate/v4 v4.19.1/go.mod h1:CTcgfjxhaUtsLipnLoQRWCrjYXycRz/g5+RWDuYgPrE= github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= -github.com/google/go-tpm v0.9.7 h1:u89J4tUUeDTlH8xxC3CTW7OHZjbjKoHdQ9W7gCUhtxA= -github.com/google/go-tpm v0.9.7/go.mod h1:h9jEsEECg7gtLis0upRBQU+GhYVH6jMjrFxI8u6bVUY= github.com/google/go-tpm v0.9.8 h1:slArAR9Ft+1ybZu0lBwpSmpwhRXaa85hWtMinMyRAWo= +github.com/google/go-tpm v0.9.8/go.mod h1:h9jEsEECg7gtLis0upRBQU+GhYVH6jMjrFxI8u6bVUY= github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/gops v0.3.29 h1:n98J2qSOK1NJvRjdLDcjgDryjpIBGhbaqph1mXKL0rY= @@ -320,10 +198,6 @@ github.com/joho/godotenv v1.5.1/go.mod h1:f4LDr5Voq0i2e/R5DDNOoa2zzDfwtkZa6DnEwA github.com/jonboulle/clockwork v0.5.0 h1:Hyh9A8u51kptdkR+cqRpT1EebBwTn1oK9YfGYbdFz6I= github.com/jonboulle/clockwork v0.5.0/go.mod h1:3mZlmanh0g2NDKO5TWZVJAfofYk64M7XN3SzBPjZF60= github.com/juju/gnuflag v0.0.0-20171113085948-2ce1bb71843d/go.mod h1:2PavIy+JPciBPrBUjwbNvtwB6RQlve+hkpll6QSNmOE= -github.com/klauspost/compress v1.18.4 h1:RPhnKRAQ4Fh8zU2FY/6ZFDwTVTxgJ/EMydqSTzE9a2c= -github.com/klauspost/compress v1.18.4/go.mod h1:R0h/fSBs8DE4ENlcrlib3PsXS61voFxhIs2DeRhCvJ4= -github.com/klauspost/compress v1.18.5 h1:/h1gH5Ce+VWNLSWqPzOVn6XBO+vJbCNGvjoaGBFW2IE= -github.com/klauspost/compress v1.18.5/go.mod h1:cwPg85FWrGar70rWktvGQj8/hthj3wpl0PGDogxkrSQ= github.com/klauspost/compress v1.18.6 h1:2jupLlAwFm95+YDR+NwD2MEfFO9d4z4Prjl1XXDjuao= github.com/klauspost/compress v1.18.6/go.mod h1:cwPg85FWrGar70rWktvGQj8/hthj3wpl0PGDogxkrSQ= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= @@ -339,47 +213,31 @@ github.com/lib/pq v1.10.9 h1:YXG7RB+JIjhP29X+OtkiDnYaXQwpS4JEWq7dtCCRUEw= github.com/lib/pq v1.10.9/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= github.com/mattn/go-sqlite3 v1.10.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= github.com/mattn/go-sqlite3 v1.14.22/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y= -github.com/mattn/go-sqlite3 v1.14.34 h1:3NtcvcUnFBPsuRcno8pUtupspG/GM+9nZ88zgJcp6Zk= -github.com/mattn/go-sqlite3 v1.14.34/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y= -github.com/mattn/go-sqlite3 v1.14.42 h1:MigqEP4ZmHw3aIdIT7T+9TLa90Z6smwcthx+Azv4Cgo= -github.com/mattn/go-sqlite3 v1.14.42/go.mod h1:pjEuOr8IwzLJP2MfGeTb0A35jauH+C2kbHKBr7yXKVQ= github.com/mattn/go-sqlite3 v1.14.44 h1:3VSe+xafpbzsLbdr2AWlAZk9yRHiBhTBakioXaCKTF8= github.com/mattn/go-sqlite3 v1.14.44/go.mod h1:pjEuOr8IwzLJP2MfGeTb0A35jauH+C2kbHKBr7yXKVQ= github.com/minio/highwayhash v1.0.4-0.20251030100505-070ab1a87a76 h1:KGuD/pM2JpL9FAYvBrnBBeENKZNh6eNtjqytV6TYjnk= github.com/minio/highwayhash v1.0.4-0.20251030100505-070ab1a87a76/go.mod h1:GGYsuwP/fPD6Y9hMiXuapVvlIUEhFhMTh0rxU3ik1LQ= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= -github.com/nats-io/jwt/v2 v2.8.0 h1:K7uzyz50+yGZDO5o772eRE7atlcSEENpL7P+b74JV1g= -github.com/nats-io/jwt/v2 v2.8.0/go.mod h1:me11pOkwObtcBNR8AiMrUbtVOUGkqYjMQZ6jnSdVUIA= github.com/nats-io/jwt/v2 v2.8.1 h1:V0xpGuD/N8Mi+fQNDynXohVvp7ZztevW5io8CUWlPmU= -github.com/nats-io/nats-server/v2 v2.12.3 h1:KRv+1n7lddMVgkJPQer+pt36TcO0ENxjilBmeWdjcHs= -github.com/nats-io/nats-server/v2 v2.12.3/go.mod h1:MQXjG9WjyXKz9koWzUc3jYUMKD8x3CLmTNy91IQQz3Y= +github.com/nats-io/jwt/v2 v2.8.1/go.mod h1:nWnOEEiVMiKHQpnAy4eXlizVEtSfzacZ1Q43LIRavZg= github.com/nats-io/nats-server/v2 v2.12.7 h1:prQ9cPiWHcnwfT81Wi5lU9LL8TLY+7pxDru6fQYLCQQ= -github.com/nats-io/nats.go v1.49.0 h1:yh/WvY59gXqYpgl33ZI+XoVPKyut/IcEaqtsiuTJpoE= -github.com/nats-io/nats.go v1.49.0/go.mod h1:fDCn3mN5cY8HooHwE2ukiLb4p4G4ImmzvXyJt+tGwdw= -github.com/nats-io/nats.go v1.51.0 h1:ByW84XTz6W03GSSsygsZcA+xgKK8vPGaa/FCAAEHnAI= -github.com/nats-io/nats.go v1.51.0/go.mod h1:26HypzazeOkyO3/mqd1zZd53STJN0EjCYF9Uy2ZOBno= +github.com/nats-io/nats-server/v2 v2.12.7/go.mod h1:dOnmkprKMluTmTF7/QHZioxlau3sKHUM/LBPy9AiBPw= github.com/nats-io/nats.go v1.52.0 h1:n3avV4VBsCgsdwh71TppsTwtv+QdPs7ntSKM8qJLGsc= github.com/nats-io/nats.go v1.52.0/go.mod h1:26HypzazeOkyO3/mqd1zZd53STJN0EjCYF9Uy2ZOBno= github.com/nats-io/nkeys v0.4.15 h1:JACV5jRVO9V856KOapQ7x+EY8Jo3qw1vJt/9Jpwzkk4= github.com/nats-io/nkeys v0.4.15/go.mod h1:CpMchTXC9fxA5zrMo4KpySxNjiDVvr8ANOSZdiNfUrs= github.com/nats-io/nuid v1.0.1 h1:5iA8DT8V7q8WK2EScv2padNa/rTESc1KdnPw4TC2paw= github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c= -github.com/oapi-codegen/runtime v1.2.0 h1:RvKc1CVS1QeKSNzO97FBQbSMZyQ8s6rZd+LpmzwHMP4= -github.com/oapi-codegen/runtime v1.2.0/go.mod h1:Y7ZhmmlE8ikZOmuHRRndiIm7nf3xcVv+YMweKgG1DT0= -github.com/oapi-codegen/runtime v1.4.0 h1:KLOSFOp7UzkbS7Cs1ms6NBEKYr0WmH2wZG0KKbd2er4= -github.com/oapi-codegen/runtime v1.4.0/go.mod h1:5sw5fxCDmnOzKNYmkVNF8d34kyUeejJEY8HNT2WaPec= +github.com/oapi-codegen/nullable v1.1.0 h1:eAh8JVc5430VtYVnq00Hrbpag9PFRGWLjxR1/3KntMs= +github.com/oapi-codegen/nullable v1.1.0/go.mod h1:KUZ3vUzkmEKY90ksAmit2+5juDIhIZhfDl+0PwOQlFY= github.com/oapi-codegen/runtime v1.4.1 h1:9nwLoI+KrWxzbBcp0jO/R8uXqbik/HUyCvPeU68Y/qo= github.com/oapi-codegen/runtime v1.4.1/go.mod h1:GwV7hC2hviaMzj+ITfHVRESK5J2W/GefVwIND/bMGvU= github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= github.com/parquet-go/bitpack v1.0.0 h1:AUqzlKzPPXf2bCdjfj4sTeacrUwsT7NlcYDMUQxPcQA= github.com/parquet-go/bitpack v1.0.0/go.mod h1:XnVk9TH+O40eOOmvpAVZ7K2ocQFrQwysLMnc6M/8lgs= -github.com/parquet-go/jsonlite v1.4.0 h1:RTG7prqfO0HD5egejU8MUDBN8oToMj55cgSV1I0zNW4= -github.com/parquet-go/jsonlite v1.4.0/go.mod h1:nDjpkpL4EOtqs6NQugUsi0Rleq9sW/OtC1NnZEnxzF0= github.com/parquet-go/jsonlite v1.5.2 h1:8TZzYknFOHUpgjTLf80qbzc+8GdeT/3a3fdXSzhMylE= github.com/parquet-go/jsonlite v1.5.2/go.mod h1:nDjpkpL4EOtqs6NQugUsi0Rleq9sW/OtC1NnZEnxzF0= -github.com/parquet-go/parquet-go v0.29.0 h1:xXlPtFVR51jpSVzf+cgHnNIcb7Xet+iuvkbe0HIm90Y= -github.com/parquet-go/parquet-go v0.29.0/go.mod h1:navtkAYr2LGoJVp141oXPlO/sxLvaOe3la2JEoD8+rg= github.com/parquet-go/parquet-go v0.30.1 h1:Oy6ganNrAdFiVwy7wNmWagfPTWA2X9Z3tVHBc7JtuX8= github.com/parquet-go/parquet-go v0.30.1/go.mod h1:navtkAYr2LGoJVp141oXPlO/sxLvaOe3la2JEoD8+rg= github.com/pierrec/lz4/v4 v4.1.26 h1:GrpZw1gZttORinvzBdXPUXATeqlJjqUG/D87TKMnhjY= @@ -394,9 +252,10 @@ github.com/prometheus/client_model v0.6.2 h1:oBsgwpGs7iVziMvrGhE53c/GrLUsZdHnqNw github.com/prometheus/client_model v0.6.2/go.mod h1:y3m2F6Gdpfy6Ut/GBsUqTWZqCUvMVzSfMLjcu6wAwpE= github.com/prometheus/common v0.67.5 h1:pIgK94WWlQt1WLwAC5j2ynLaBRDiinoAb86HZHTUGI4= github.com/prometheus/common v0.67.5/go.mod h1:SjE/0MzDEEAyrdr5Gqc6G+sXI67maCxzaT3A2+HqjUw= -github.com/prometheus/procfs v0.20.0 h1:AA7aCvjxwAquZAlonN7888f2u4IN8WVeFgBi4k82M4Q= -github.com/prometheus/procfs v0.20.0/go.mod h1:o9EMBZGRyvDrSPH1RqdxhojkuXstoe4UlK79eF5TGGo= github.com/prometheus/procfs v0.20.1 h1:XwbrGOIplXW/AU3YhIhLODXMJYyC1isLFfYCsTEycfc= +github.com/prometheus/procfs v0.20.1/go.mod h1:o9EMBZGRyvDrSPH1RqdxhojkuXstoe4UlK79eF5TGGo= +github.com/questdb/go-questdb-client/v4 v4.2.0 h1:+d0HJwCjUWMj7zmY6qmhoqTJzTyoYKl+LSTYGN0T8T8= +github.com/questdb/go-questdb-client/v4 v4.2.0/go.mod h1:/2x93LK1wjM4JX/b5c6q7Yqk22htjWY1lE6p1X8iLbE= github.com/qustavo/sqlhooks/v2 v2.1.0 h1:54yBemHnGHp/7xgT+pxwmIlMSDNYKx5JW5dfRAiCZi0= github.com/qustavo/sqlhooks/v2 v2.1.0/go.mod h1:aMREyKo7fOKTwiLuWPsaHRXEmtqG4yREztO0idF83AU= github.com/robfig/cron/v3 v3.0.1 h1:WdRxkvbJztn8LMz/QEvLN5sBU+xKpSqwwUO1Pjr4qDs= @@ -413,10 +272,6 @@ github.com/sergi/go-diff v1.3.1/go.mod h1:aMJSSKb2lpPvRNec0+w3fl7LP9IOFzdc9Pa4NF github.com/sosodev/duration v1.4.0 h1:35ed0KiVFriGHHzZZJaZLgmTEEICIyt8Sx0RQfj9IjE= github.com/sosodev/duration v1.4.0/go.mod h1:RQIBBX0+fMLc/D9+Jb/fwvVmo0eZvDDEERAikUR6SDg= github.com/spkg/bom v0.0.0-20160624110644-59b7046e48ad/go.mod h1:qLr4V1qq6nMqFKkMo8ZTx3f+BZEkzsRUY10Xsm2mwU0= -github.com/stmcginnis/gofish v0.21.4 h1:daexK8sh31CgeSMkPUNs21HWHHA9ecCPJPyLCTxukCg= -github.com/stmcginnis/gofish v0.21.4/go.mod h1:PzF5i8ecRG9A2ol8XT64npKUunyraJ+7t0kYMpQAtqU= -github.com/stmcginnis/gofish v0.21.6 h1:jK3TGD6VANaAHKHypVNfD6io2nPrU+6eF8X4qARsTlY= -github.com/stmcginnis/gofish v0.21.6/go.mod h1:PzF5i8ecRG9A2ol8XT64npKUunyraJ+7t0kYMpQAtqU= github.com/stmcginnis/gofish v0.22.0 h1:OahXohfrIzAXOsWuKDQ7lm/QvdZBg1P2OzFYmbKAd/0= github.com/stmcginnis/gofish v0.22.0/go.mod h1:PzF5i8ecRG9A2ol8XT64npKUunyraJ+7t0kYMpQAtqU= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= @@ -437,12 +292,8 @@ github.com/twpayne/go-geom v1.6.1 h1:iLE+Opv0Ihm/ABIcvQFGIiFBXd76oBIar9drAwHFhR4 github.com/twpayne/go-geom v1.6.1/go.mod h1:Kr+Nly6BswFsKM5sd31YaoWS5PeDDH2NftJTK7Gd028= 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/urfave/cli/v3 v3.7.0 h1:AGSnbUyjtLiM+WJUb4dzXKldl/gL+F8OwmRDtVr6g2U= -github.com/urfave/cli/v3 v3.7.0/go.mod h1:ysVLtOEmg2tOy6PknnYVhDoouyC/6N42TMeoMzskhso= github.com/urfave/cli/v3 v3.8.0 h1:XqKPrm0q4P0q5JpoclYoCAv0/MIvH/jZ2umzuf8pNTI= github.com/urfave/cli/v3 v3.8.0/go.mod h1:ysVLtOEmg2tOy6PknnYVhDoouyC/6N42TMeoMzskhso= -github.com/vektah/gqlparser/v2 v2.5.32 h1:k9QPJd4sEDTL+qB4ncPLflqTJ3MmjB9SrVzJrawpFSc= -github.com/vektah/gqlparser/v2 v2.5.32/go.mod h1:c1I28gSOVNzlfc4WuDlqU7voQnsqI6OG2amkBAFmgts= github.com/vektah/gqlparser/v2 v2.5.33 h1:lRp8aIeNUNbimf/axZd7ETg24q06hBtPaas+TcvI/7E= github.com/vektah/gqlparser/v2 v2.5.33/go.mod h1:c1I28gSOVNzlfc4WuDlqU7voQnsqI6OG2amkBAFmgts= github.com/xrash/smetrics v0.0.0-20250705151800-55b8f293f342 h1:FnBeRrxr7OU4VvAzt5X7s6266i6cSVkkFPS0TuXWbIg= @@ -452,35 +303,21 @@ github.com/xyproto/randomstring v1.0.5/go.mod h1:rgmS5DeNXLivK7YprL0pY+lTuhNQW3i github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= -go.yaml.in/yaml/v2 v2.4.3 h1:6gvOSjQoTB3vt1l+CU+tSyi/HOjfOjRLJ4YwYZGwRO0= -go.yaml.in/yaml/v2 v2.4.3/go.mod h1:zSxWcmIDjOzPXpjlTTbAsKokqkDNAVtZO0WOMiT90s8= go.yaml.in/yaml/v2 v2.4.4 h1:tuyd0P+2Ont/d6e2rl3be67goVK4R6deVxCUX5vyPaQ= go.yaml.in/yaml/v2 v2.4.4/go.mod h1:gMZqIpDtDqOfM0uNfy0SkpRhvUryYH0Z6wdMYcacYXQ= go.yaml.in/yaml/v3 v3.0.4 h1:tfq32ie2Jv2UxXFdLJdh3jXuOzWiL1fo0bu/FbuKpbc= go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.49.0 h1:+Ng2ULVvLHnJ/ZFEq4KdcDd/cfjrrjjNSXNzxg0Y4U4= -golang.org/x/crypto v0.49.0/go.mod h1:ErX4dUh2UM+CFYiXZRTcMpEcN8b/1gxEuv3nODoYtCA= -golang.org/x/crypto v0.50.0 h1:zO47/JPrL6vsNkINmLoo/PH1gcxpls50DNogFvB5ZGI= -golang.org/x/crypto v0.50.0/go.mod h1:3muZ7vA7PBCE6xgPX7nkzzjiUq87kRItoJQM1Yo8S+Q= golang.org/x/crypto v0.52.0 h1:RMs7fP2rXdep0CftQlK8Uf+kibLm7qkCcradZWYz988= golang.org/x/crypto v0.52.0/go.mod h1:1QgfPxDqh0T2M/elOJtp9RvuR95kVjir0e6/BvEmGbc= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= -golang.org/x/mod v0.34.0 h1:xIHgNUUnW6sYkcM5Jleh05DvLOtwc6RitGHbDk4akRI= -golang.org/x/mod v0.34.0/go.mod h1:ykgH52iCZe79kzLLMhyCUzhMci+nQj+0XkbXpNYtVjY= -golang.org/x/mod v0.35.0 h1:Ww1D637e6Pg+Zb2KrWfHQUnH2dQRLBQyAtpr/haaJeM= -golang.org/x/mod v0.35.0/go.mod h1:+GwiRhIInF8wPm+4AoT6L0FA1QWAad3OMdTRx4tFYlU= golang.org/x/mod v0.36.0 h1:JJjpVx6myfUsUdAzZuOSTTmRE0PfZeNWzzvKrP7amb4= golang.org/x/mod v0.36.0/go.mod h1:moc6ELqsWcOw5Ef3xVprK5ul/MvtVvkIXLziUOICjUQ= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= -golang.org/x/net v0.52.0 h1:He/TN1l0e4mmR3QqHMT2Xab3Aj3L9qjbhRm78/6jrW0= -golang.org/x/net v0.52.0/go.mod h1:R1MAz7uMZxVMualyPXb+VaqGSa3LIaUqk0eEt3w36Sw= -golang.org/x/net v0.53.0 h1:d+qAbo5L0orcWAr0a9JweQpjXF19LMXJE8Ey7hwOdUA= -golang.org/x/net v0.53.0/go.mod h1:JvMuJH7rrdiCfbeHoo3fCQU24Lf5JJwT9W3sJFulfgs= golang.org/x/net v0.55.0 h1:bcvxaJn3e1U6InsFWt1JUq1aSjnRxLzT2rtD2KfkDF8= golang.org/x/net v0.55.0/go.mod h1:L5U2KuzuOe1lY7Z+aWVIKK6qEeJXnXV9yzGA+WCHJww= golang.org/x/oauth2 v0.36.0 h1:peZ/1z27fi9hUOFCAZaHyrpWG5lwe0RJEEEeH0ThlIs= @@ -495,10 +332,6 @@ golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.42.0 h1:omrd2nAlyT5ESRdCLYdm3+fMfNFE/+Rf4bDIQImRJeo= -golang.org/x/sys v0.42.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= -golang.org/x/sys v0.43.0 h1:Rlag2XtaFTxp19wS8MXlJwTvoh8ArU6ezoyFsMyCTNI= -golang.org/x/sys v0.43.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= golang.org/x/sys v0.45.0 h1:dO4czNzziLiiXplLQgBCEpCvXQ3dnkn0SdaZSYdQ+FY= golang.org/x/sys v0.45.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= @@ -508,10 +341,6 @@ golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.35.0 h1:JOVx6vVDFokkpaq1AEptVzLTpDe9KGpj5tR4/X+ybL8= -golang.org/x/text v0.35.0/go.mod h1:khi/HExzZJ2pGnjenulevKNX1W67CUy0AsXcNubPGCA= -golang.org/x/text v0.36.0 h1:JfKh3XmcRPqZPKevfXVpI1wXPTqbkE5f7JA92a55Yxg= -golang.org/x/text v0.36.0/go.mod h1:NIdBknypM8iqVmPiuco0Dh6P5Jcdk8lJL0CUebqK164= golang.org/x/text v0.37.0 h1:Cqjiwd9eSg8e0QAkyCaQTNHFIIzWtidPahFWR83rTrc= golang.org/x/text v0.37.0/go.mod h1:a5sjxXGs9hsn/AJVwuElvCAo9v8QYLzvavO5z2PiM38= golang.org/x/time v0.15.0 h1:bbrp8t3bGUeFOx08pvsMYRTCVSMk89u4tKbNOZbp88U= @@ -519,10 +348,6 @@ golang.org/x/time v0.15.0/go.mod h1:Y4YMaQmXwGQZoFaVFk4YpCt4FLQMYKZe9oeV/f4MSno= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= -golang.org/x/tools v0.43.0 h1:12BdW9CeB3Z+J/I/wj34VMl8X+fEXBxVR90JeMX5E7s= -golang.org/x/tools v0.43.0/go.mod h1:uHkMso649BX2cZK6+RpuIPXS3ho2hZo4FVwfoy1vIk0= -golang.org/x/tools v0.44.0 h1:UP4ajHPIcuMjT1GqzDWRlalUEoY+uzoZKnhOjbIPD2c= -golang.org/x/tools v0.44.0/go.mod h1:KA0AfVErSdxRZIsOVipbv3rQhVXTnlU6UhKxHd1seDI= golang.org/x/tools v0.45.0 h1:18qN3FAooORvApf5XjCXgsuayZOEtXf6JK18I3+ONa8= golang.org/x/tools v0.45.0/go.mod h1:LuUGqqaXcXMEFEruIVJVm5mgDD8vww/z/SR1gQ4uE/0= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/internal/graph/generated/generated.go b/internal/graph/generated/generated.go index a5319fc7..22aaafac 100644 --- a/internal/graph/generated/generated.go +++ b/internal/graph/generated/generated.go @@ -7,6 +7,7 @@ import ( "context" "errors" "fmt" + "math" "strconv" "sync/atomic" "time" @@ -2260,8 +2261,8 @@ func newExecutionContext( opCtx *graphql.OperationContext, execSchema *executableSchema, deferredResults chan graphql.DeferredResult, -) executionContext { - return executionContext{ +) *executionContext { + return &executionContext{ ExecutionContextState: graphql.NewExecutionContextState[ResolverRoot, DirectiveRoot, ComplexityRoot]( opCtx, (*graphql.ExecutableSchemaState[ResolverRoot, DirectiveRoot, ComplexityRoot])(execSchema), @@ -2840,6 +2841,818 @@ input PageRequest { } var parsedSchema = gqlparser.MustLoadSchema(sources...) +// childFields_* functions provide shared child field context lookups. +// Each function is generated once per unique object type, deduplicating the +// switch statements that were previously inlined in every fieldContext_* function. + +func (ec *executionContext) childFields_Accelerator(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + switch field.Name { + case "id": + return ec.fieldContext_Accelerator_id(ctx, field) + case "type": + return ec.fieldContext_Accelerator_type(ctx, field) + case "model": + return ec.fieldContext_Accelerator_model(ctx, field) + } + return nil, fmt.Errorf("no field named %q was found under type Accelerator", field.Name) +} + +func (ec *executionContext) childFields_Cluster(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + switch field.Name { + case "name": + return ec.fieldContext_Cluster_name(ctx, field) + case "partitions": + return ec.fieldContext_Cluster_partitions(ctx, field) + case "subClusters": + return ec.fieldContext_Cluster_subClusters(ctx, field) + } + return nil, fmt.Errorf("no field named %q was found under type Cluster", field.Name) +} + +func (ec *executionContext) childFields_ClusterMetricWithName(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + switch field.Name { + case "name": + return ec.fieldContext_ClusterMetricWithName_name(ctx, field) + case "unit": + return ec.fieldContext_ClusterMetricWithName_unit(ctx, field) + case "timestep": + return ec.fieldContext_ClusterMetricWithName_timestep(ctx, field) + case "data": + return ec.fieldContext_ClusterMetricWithName_data(ctx, field) + } + return nil, fmt.Errorf("no field named %q was found under type ClusterMetricWithName", field.Name) +} + +func (ec *executionContext) childFields_ClusterMetrics(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + switch field.Name { + case "nodeCount": + return ec.fieldContext_ClusterMetrics_nodeCount(ctx, field) + case "metrics": + return ec.fieldContext_ClusterMetrics_metrics(ctx, field) + } + return nil, fmt.Errorf("no field named %q was found under type ClusterMetrics", field.Name) +} + +func (ec *executionContext) childFields_ClusterSupport(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + switch field.Name { + case "cluster": + return ec.fieldContext_ClusterSupport_cluster(ctx, field) + case "subClusters": + return ec.fieldContext_ClusterSupport_subClusters(ctx, field) + } + return nil, fmt.Errorf("no field named %q was found under type ClusterSupport", field.Name) +} + +func (ec *executionContext) childFields_Count(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + switch field.Name { + case "name": + return ec.fieldContext_Count_name(ctx, field) + case "count": + return ec.fieldContext_Count_count(ctx, field) + } + return nil, fmt.Errorf("no field named %q was found under type Count", field.Name) +} + +func (ec *executionContext) childFields_EnergyFootprintValue(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + switch field.Name { + case "hardware": + return ec.fieldContext_EnergyFootprintValue_hardware(ctx, field) + case "metric": + return ec.fieldContext_EnergyFootprintValue_metric(ctx, field) + case "value": + return ec.fieldContext_EnergyFootprintValue_value(ctx, field) + } + return nil, fmt.Errorf("no field named %q was found under type EnergyFootprintValue", field.Name) +} + +func (ec *executionContext) childFields_FootprintValue(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + switch field.Name { + case "name": + return ec.fieldContext_FootprintValue_name(ctx, field) + case "stat": + return ec.fieldContext_FootprintValue_stat(ctx, field) + case "value": + return ec.fieldContext_FootprintValue_value(ctx, field) + } + return nil, fmt.Errorf("no field named %q was found under type FootprintValue", field.Name) +} + +func (ec *executionContext) childFields_Footprints(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + switch field.Name { + case "timeWeights": + return ec.fieldContext_Footprints_timeWeights(ctx, field) + case "metrics": + return ec.fieldContext_Footprints_metrics(ctx, field) + } + return nil, fmt.Errorf("no field named %q was found under type Footprints", field.Name) +} + +func (ec *executionContext) childFields_GlobalMetricListItem(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + switch field.Name { + case "name": + return ec.fieldContext_GlobalMetricListItem_name(ctx, field) + case "unit": + return ec.fieldContext_GlobalMetricListItem_unit(ctx, field) + case "scope": + return ec.fieldContext_GlobalMetricListItem_scope(ctx, field) + case "footprint": + return ec.fieldContext_GlobalMetricListItem_footprint(ctx, field) + case "availability": + return ec.fieldContext_GlobalMetricListItem_availability(ctx, field) + } + return nil, fmt.Errorf("no field named %q was found under type GlobalMetricListItem", field.Name) +} + +func (ec *executionContext) childFields_HistoPoint(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + switch field.Name { + case "count": + return ec.fieldContext_HistoPoint_count(ctx, field) + case "value": + return ec.fieldContext_HistoPoint_value(ctx, field) + } + return nil, fmt.Errorf("no field named %q was found under type HistoPoint", field.Name) +} + +func (ec *executionContext) childFields_Job(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + switch field.Name { + case "id": + return ec.fieldContext_Job_id(ctx, field) + case "jobId": + return ec.fieldContext_Job_jobId(ctx, field) + case "user": + return ec.fieldContext_Job_user(ctx, field) + case "project": + return ec.fieldContext_Job_project(ctx, field) + case "cluster": + return ec.fieldContext_Job_cluster(ctx, field) + case "subCluster": + return ec.fieldContext_Job_subCluster(ctx, field) + case "startTime": + return ec.fieldContext_Job_startTime(ctx, field) + case "duration": + return ec.fieldContext_Job_duration(ctx, field) + case "walltime": + return ec.fieldContext_Job_walltime(ctx, field) + case "numNodes": + return ec.fieldContext_Job_numNodes(ctx, field) + case "numHWThreads": + return ec.fieldContext_Job_numHWThreads(ctx, field) + case "numAcc": + return ec.fieldContext_Job_numAcc(ctx, field) + case "energy": + return ec.fieldContext_Job_energy(ctx, field) + case "SMT": + return ec.fieldContext_Job_SMT(ctx, field) + case "shared": + return ec.fieldContext_Job_shared(ctx, field) + case "partition": + return ec.fieldContext_Job_partition(ctx, field) + case "arrayJobId": + return ec.fieldContext_Job_arrayJobId(ctx, field) + case "monitoringStatus": + return ec.fieldContext_Job_monitoringStatus(ctx, field) + case "state": + return ec.fieldContext_Job_state(ctx, field) + case "tags": + return ec.fieldContext_Job_tags(ctx, field) + case "resources": + return ec.fieldContext_Job_resources(ctx, field) + case "concurrentJobs": + return ec.fieldContext_Job_concurrentJobs(ctx, field) + case "footprint": + return ec.fieldContext_Job_footprint(ctx, field) + case "energyFootprint": + return ec.fieldContext_Job_energyFootprint(ctx, field) + case "metaData": + return ec.fieldContext_Job_metaData(ctx, field) + case "userData": + return ec.fieldContext_Job_userData(ctx, field) + } + return nil, fmt.Errorf("no field named %q was found under type Job", field.Name) +} + +func (ec *executionContext) childFields_JobLink(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + switch field.Name { + case "id": + return ec.fieldContext_JobLink_id(ctx, field) + case "jobId": + return ec.fieldContext_JobLink_jobId(ctx, field) + } + return nil, fmt.Errorf("no field named %q was found under type JobLink", field.Name) +} + +func (ec *executionContext) childFields_JobLinkResultList(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + switch field.Name { + case "listQuery": + return ec.fieldContext_JobLinkResultList_listQuery(ctx, field) + case "items": + return ec.fieldContext_JobLinkResultList_items(ctx, field) + case "count": + return ec.fieldContext_JobLinkResultList_count(ctx, field) + } + return nil, fmt.Errorf("no field named %q was found under type JobLinkResultList", field.Name) +} + +func (ec *executionContext) childFields_JobMetric(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + switch field.Name { + case "unit": + return ec.fieldContext_JobMetric_unit(ctx, field) + case "timestep": + return ec.fieldContext_JobMetric_timestep(ctx, field) + case "series": + return ec.fieldContext_JobMetric_series(ctx, field) + case "statisticsSeries": + return ec.fieldContext_JobMetric_statisticsSeries(ctx, field) + } + return nil, fmt.Errorf("no field named %q was found under type JobMetric", field.Name) +} + +func (ec *executionContext) childFields_JobMetricWithName(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + switch field.Name { + case "name": + return ec.fieldContext_JobMetricWithName_name(ctx, field) + case "scope": + return ec.fieldContext_JobMetricWithName_scope(ctx, field) + case "metric": + return ec.fieldContext_JobMetricWithName_metric(ctx, field) + } + return nil, fmt.Errorf("no field named %q was found under type JobMetricWithName", field.Name) +} + +func (ec *executionContext) childFields_JobResultList(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + switch field.Name { + case "items": + return ec.fieldContext_JobResultList_items(ctx, field) + case "offset": + return ec.fieldContext_JobResultList_offset(ctx, field) + case "limit": + return ec.fieldContext_JobResultList_limit(ctx, field) + case "count": + return ec.fieldContext_JobResultList_count(ctx, field) + case "hasNextPage": + return ec.fieldContext_JobResultList_hasNextPage(ctx, field) + } + return nil, fmt.Errorf("no field named %q was found under type JobResultList", field.Name) +} + +func (ec *executionContext) childFields_JobStats(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + switch field.Name { + case "id": + return ec.fieldContext_JobStats_id(ctx, field) + case "jobId": + return ec.fieldContext_JobStats_jobId(ctx, field) + case "startTime": + return ec.fieldContext_JobStats_startTime(ctx, field) + case "duration": + return ec.fieldContext_JobStats_duration(ctx, field) + case "cluster": + return ec.fieldContext_JobStats_cluster(ctx, field) + case "subCluster": + return ec.fieldContext_JobStats_subCluster(ctx, field) + case "numNodes": + return ec.fieldContext_JobStats_numNodes(ctx, field) + case "numHWThreads": + return ec.fieldContext_JobStats_numHWThreads(ctx, field) + case "numAccelerators": + return ec.fieldContext_JobStats_numAccelerators(ctx, field) + case "stats": + return ec.fieldContext_JobStats_stats(ctx, field) + } + return nil, fmt.Errorf("no field named %q was found under type JobStats", field.Name) +} + +func (ec *executionContext) childFields_JobsStatistics(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + switch field.Name { + case "id": + return ec.fieldContext_JobsStatistics_id(ctx, field) + case "name": + return ec.fieldContext_JobsStatistics_name(ctx, field) + case "totalUsers": + return ec.fieldContext_JobsStatistics_totalUsers(ctx, field) + case "totalJobs": + return ec.fieldContext_JobsStatistics_totalJobs(ctx, field) + case "runningJobs": + return ec.fieldContext_JobsStatistics_runningJobs(ctx, field) + case "shortJobs": + return ec.fieldContext_JobsStatistics_shortJobs(ctx, field) + case "totalWalltime": + return ec.fieldContext_JobsStatistics_totalWalltime(ctx, field) + case "totalNodes": + return ec.fieldContext_JobsStatistics_totalNodes(ctx, field) + case "totalNodeHours": + return ec.fieldContext_JobsStatistics_totalNodeHours(ctx, field) + case "totalCores": + return ec.fieldContext_JobsStatistics_totalCores(ctx, field) + case "totalCoreHours": + return ec.fieldContext_JobsStatistics_totalCoreHours(ctx, field) + case "totalAccs": + return ec.fieldContext_JobsStatistics_totalAccs(ctx, field) + case "totalAccHours": + return ec.fieldContext_JobsStatistics_totalAccHours(ctx, field) + case "histDuration": + return ec.fieldContext_JobsStatistics_histDuration(ctx, field) + case "histNumNodes": + return ec.fieldContext_JobsStatistics_histNumNodes(ctx, field) + case "histNumCores": + return ec.fieldContext_JobsStatistics_histNumCores(ctx, field) + case "histNumAccs": + return ec.fieldContext_JobsStatistics_histNumAccs(ctx, field) + case "histMetrics": + return ec.fieldContext_JobsStatistics_histMetrics(ctx, field) + } + return nil, fmt.Errorf("no field named %q was found under type JobsStatistics", field.Name) +} + +func (ec *executionContext) childFields_MetricConfig(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + switch field.Name { + case "name": + return ec.fieldContext_MetricConfig_name(ctx, field) + case "unit": + return ec.fieldContext_MetricConfig_unit(ctx, field) + case "scope": + return ec.fieldContext_MetricConfig_scope(ctx, field) + case "aggregation": + return ec.fieldContext_MetricConfig_aggregation(ctx, field) + case "timestep": + return ec.fieldContext_MetricConfig_timestep(ctx, field) + case "peak": + return ec.fieldContext_MetricConfig_peak(ctx, field) + case "normal": + return ec.fieldContext_MetricConfig_normal(ctx, field) + case "caution": + return ec.fieldContext_MetricConfig_caution(ctx, field) + case "alert": + return ec.fieldContext_MetricConfig_alert(ctx, field) + case "lowerIsBetter": + return ec.fieldContext_MetricConfig_lowerIsBetter(ctx, field) + case "subClusters": + return ec.fieldContext_MetricConfig_subClusters(ctx, field) + } + return nil, fmt.Errorf("no field named %q was found under type MetricConfig", field.Name) +} + +func (ec *executionContext) childFields_MetricFootprints(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + switch field.Name { + case "metric": + return ec.fieldContext_MetricFootprints_metric(ctx, field) + case "data": + return ec.fieldContext_MetricFootprints_data(ctx, field) + } + return nil, fmt.Errorf("no field named %q was found under type MetricFootprints", field.Name) +} + +func (ec *executionContext) childFields_MetricHistoPoint(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + switch field.Name { + case "bin": + return ec.fieldContext_MetricHistoPoint_bin(ctx, field) + case "count": + return ec.fieldContext_MetricHistoPoint_count(ctx, field) + case "min": + return ec.fieldContext_MetricHistoPoint_min(ctx, field) + case "max": + return ec.fieldContext_MetricHistoPoint_max(ctx, field) + } + return nil, fmt.Errorf("no field named %q was found under type MetricHistoPoint", field.Name) +} + +func (ec *executionContext) childFields_MetricHistoPoints(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + switch field.Name { + case "metric": + return ec.fieldContext_MetricHistoPoints_metric(ctx, field) + case "unit": + return ec.fieldContext_MetricHistoPoints_unit(ctx, field) + case "stat": + return ec.fieldContext_MetricHistoPoints_stat(ctx, field) + case "data": + return ec.fieldContext_MetricHistoPoints_data(ctx, field) + } + return nil, fmt.Errorf("no field named %q was found under type MetricHistoPoints", field.Name) +} + +func (ec *executionContext) childFields_MetricStatistics(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + switch field.Name { + case "avg": + return ec.fieldContext_MetricStatistics_avg(ctx, field) + case "min": + return ec.fieldContext_MetricStatistics_min(ctx, field) + case "max": + return ec.fieldContext_MetricStatistics_max(ctx, field) + } + return nil, fmt.Errorf("no field named %q was found under type MetricStatistics", field.Name) +} + +func (ec *executionContext) childFields_MetricValue(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + switch field.Name { + case "name": + return ec.fieldContext_MetricValue_name(ctx, field) + case "unit": + return ec.fieldContext_MetricValue_unit(ctx, field) + case "value": + return ec.fieldContext_MetricValue_value(ctx, field) + } + return nil, fmt.Errorf("no field named %q was found under type MetricValue", field.Name) +} + +func (ec *executionContext) childFields_NamedStats(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + switch field.Name { + case "name": + return ec.fieldContext_NamedStats_name(ctx, field) + case "data": + return ec.fieldContext_NamedStats_data(ctx, field) + } + return nil, fmt.Errorf("no field named %q was found under type NamedStats", field.Name) +} + +func (ec *executionContext) childFields_NamedStatsWithScope(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + switch field.Name { + case "name": + return ec.fieldContext_NamedStatsWithScope_name(ctx, field) + case "scope": + return ec.fieldContext_NamedStatsWithScope_scope(ctx, field) + case "stats": + return ec.fieldContext_NamedStatsWithScope_stats(ctx, field) + } + return nil, fmt.Errorf("no field named %q was found under type NamedStatsWithScope", field.Name) +} + +func (ec *executionContext) childFields_Node(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + switch field.Name { + case "id": + return ec.fieldContext_Node_id(ctx, field) + case "hostname": + return ec.fieldContext_Node_hostname(ctx, field) + case "cluster": + return ec.fieldContext_Node_cluster(ctx, field) + case "subCluster": + return ec.fieldContext_Node_subCluster(ctx, field) + case "jobsRunning": + return ec.fieldContext_Node_jobsRunning(ctx, field) + case "cpusAllocated": + return ec.fieldContext_Node_cpusAllocated(ctx, field) + case "memoryAllocated": + return ec.fieldContext_Node_memoryAllocated(ctx, field) + case "gpusAllocated": + return ec.fieldContext_Node_gpusAllocated(ctx, field) + case "schedulerState": + return ec.fieldContext_Node_schedulerState(ctx, field) + case "healthState": + return ec.fieldContext_Node_healthState(ctx, field) + case "metaData": + return ec.fieldContext_Node_metaData(ctx, field) + case "healthData": + return ec.fieldContext_Node_healthData(ctx, field) + } + return nil, fmt.Errorf("no field named %q was found under type Node", field.Name) +} + +func (ec *executionContext) childFields_NodeMetrics(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + switch field.Name { + case "host": + return ec.fieldContext_NodeMetrics_host(ctx, field) + case "nodeState": + return ec.fieldContext_NodeMetrics_nodeState(ctx, field) + case "metricHealth": + return ec.fieldContext_NodeMetrics_metricHealth(ctx, field) + case "subCluster": + return ec.fieldContext_NodeMetrics_subCluster(ctx, field) + case "metrics": + return ec.fieldContext_NodeMetrics_metrics(ctx, field) + } + return nil, fmt.Errorf("no field named %q was found under type NodeMetrics", field.Name) +} + +func (ec *executionContext) childFields_NodeStateResultList(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + switch field.Name { + case "items": + return ec.fieldContext_NodeStateResultList_items(ctx, field) + case "count": + return ec.fieldContext_NodeStateResultList_count(ctx, field) + } + return nil, fmt.Errorf("no field named %q was found under type NodeStateResultList", field.Name) +} + +func (ec *executionContext) childFields_NodeStates(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + switch field.Name { + case "state": + return ec.fieldContext_NodeStates_state(ctx, field) + case "count": + return ec.fieldContext_NodeStates_count(ctx, field) + } + return nil, fmt.Errorf("no field named %q was found under type NodeStates", field.Name) +} + +func (ec *executionContext) childFields_NodeStatesTimed(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + switch field.Name { + case "state": + return ec.fieldContext_NodeStatesTimed_state(ctx, field) + case "counts": + return ec.fieldContext_NodeStatesTimed_counts(ctx, field) + case "times": + return ec.fieldContext_NodeStatesTimed_times(ctx, field) + } + return nil, fmt.Errorf("no field named %q was found under type NodeStatesTimed", field.Name) +} + +func (ec *executionContext) childFields_NodesResultList(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + switch field.Name { + case "items": + return ec.fieldContext_NodesResultList_items(ctx, field) + case "offset": + return ec.fieldContext_NodesResultList_offset(ctx, field) + case "limit": + return ec.fieldContext_NodesResultList_limit(ctx, field) + case "count": + return ec.fieldContext_NodesResultList_count(ctx, field) + case "totalNodes": + return ec.fieldContext_NodesResultList_totalNodes(ctx, field) + case "hasNextPage": + return ec.fieldContext_NodesResultList_hasNextPage(ctx, field) + } + return nil, fmt.Errorf("no field named %q was found under type NodesResultList", field.Name) +} + +func (ec *executionContext) childFields_Resource(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + switch field.Name { + case "hostname": + return ec.fieldContext_Resource_hostname(ctx, field) + case "hwthreads": + return ec.fieldContext_Resource_hwthreads(ctx, field) + case "accelerators": + return ec.fieldContext_Resource_accelerators(ctx, field) + case "configuration": + return ec.fieldContext_Resource_configuration(ctx, field) + } + return nil, fmt.Errorf("no field named %q was found under type Resource", field.Name) +} + +func (ec *executionContext) childFields_ScopedStats(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + switch field.Name { + case "hostname": + return ec.fieldContext_ScopedStats_hostname(ctx, field) + case "id": + return ec.fieldContext_ScopedStats_id(ctx, field) + case "data": + return ec.fieldContext_ScopedStats_data(ctx, field) + } + return nil, fmt.Errorf("no field named %q was found under type ScopedStats", field.Name) +} + +func (ec *executionContext) childFields_Series(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + switch field.Name { + case "hostname": + return ec.fieldContext_Series_hostname(ctx, field) + case "id": + return ec.fieldContext_Series_id(ctx, field) + case "statistics": + return ec.fieldContext_Series_statistics(ctx, field) + case "data": + return ec.fieldContext_Series_data(ctx, field) + } + return nil, fmt.Errorf("no field named %q was found under type Series", field.Name) +} + +func (ec *executionContext) childFields_StatsSeries(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + switch field.Name { + case "mean": + return ec.fieldContext_StatsSeries_mean(ctx, field) + case "median": + return ec.fieldContext_StatsSeries_median(ctx, field) + case "min": + return ec.fieldContext_StatsSeries_min(ctx, field) + case "max": + return ec.fieldContext_StatsSeries_max(ctx, field) + } + return nil, fmt.Errorf("no field named %q was found under type StatsSeries", field.Name) +} + +func (ec *executionContext) childFields_SubCluster(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + switch field.Name { + case "name": + return ec.fieldContext_SubCluster_name(ctx, field) + case "nodes": + return ec.fieldContext_SubCluster_nodes(ctx, field) + case "numberOfNodes": + return ec.fieldContext_SubCluster_numberOfNodes(ctx, field) + case "processorType": + return ec.fieldContext_SubCluster_processorType(ctx, field) + case "socketsPerNode": + return ec.fieldContext_SubCluster_socketsPerNode(ctx, field) + case "coresPerSocket": + return ec.fieldContext_SubCluster_coresPerSocket(ctx, field) + case "threadsPerCore": + return ec.fieldContext_SubCluster_threadsPerCore(ctx, field) + case "flopRateScalar": + return ec.fieldContext_SubCluster_flopRateScalar(ctx, field) + case "flopRateSimd": + return ec.fieldContext_SubCluster_flopRateSimd(ctx, field) + case "memoryBandwidth": + return ec.fieldContext_SubCluster_memoryBandwidth(ctx, field) + case "topology": + return ec.fieldContext_SubCluster_topology(ctx, field) + case "metricConfig": + return ec.fieldContext_SubCluster_metricConfig(ctx, field) + case "footprint": + return ec.fieldContext_SubCluster_footprint(ctx, field) + } + return nil, fmt.Errorf("no field named %q was found under type SubCluster", field.Name) +} + +func (ec *executionContext) childFields_SubClusterConfig(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + switch field.Name { + case "name": + return ec.fieldContext_SubClusterConfig_name(ctx, field) + case "peak": + return ec.fieldContext_SubClusterConfig_peak(ctx, field) + case "normal": + return ec.fieldContext_SubClusterConfig_normal(ctx, field) + case "caution": + return ec.fieldContext_SubClusterConfig_caution(ctx, field) + case "alert": + return ec.fieldContext_SubClusterConfig_alert(ctx, field) + case "remove": + return ec.fieldContext_SubClusterConfig_remove(ctx, field) + } + return nil, fmt.Errorf("no field named %q was found under type SubClusterConfig", field.Name) +} + +func (ec *executionContext) childFields_Tag(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + switch field.Name { + case "id": + return ec.fieldContext_Tag_id(ctx, field) + case "type": + return ec.fieldContext_Tag_type(ctx, field) + case "name": + return ec.fieldContext_Tag_name(ctx, field) + case "scope": + return ec.fieldContext_Tag_scope(ctx, field) + } + return nil, fmt.Errorf("no field named %q was found under type Tag", field.Name) +} + +func (ec *executionContext) childFields_TimeWeights(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + switch field.Name { + case "nodeHours": + return ec.fieldContext_TimeWeights_nodeHours(ctx, field) + case "accHours": + return ec.fieldContext_TimeWeights_accHours(ctx, field) + case "coreHours": + return ec.fieldContext_TimeWeights_coreHours(ctx, field) + } + return nil, fmt.Errorf("no field named %q was found under type TimeWeights", field.Name) +} + +func (ec *executionContext) childFields_Topology(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + switch field.Name { + case "node": + return ec.fieldContext_Topology_node(ctx, field) + case "socket": + return ec.fieldContext_Topology_socket(ctx, field) + case "memoryDomain": + return ec.fieldContext_Topology_memoryDomain(ctx, field) + case "die": + return ec.fieldContext_Topology_die(ctx, field) + case "core": + return ec.fieldContext_Topology_core(ctx, field) + case "accelerators": + return ec.fieldContext_Topology_accelerators(ctx, field) + } + return nil, fmt.Errorf("no field named %q was found under type Topology", field.Name) +} + +func (ec *executionContext) childFields_Unit(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + switch field.Name { + case "base": + return ec.fieldContext_Unit_base(ctx, field) + case "prefix": + return ec.fieldContext_Unit_prefix(ctx, field) + } + return nil, fmt.Errorf("no field named %q was found under type Unit", field.Name) +} + +func (ec *executionContext) childFields_User(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + switch field.Name { + case "username": + return ec.fieldContext_User_username(ctx, field) + case "name": + return ec.fieldContext_User_name(ctx, field) + case "email": + return ec.fieldContext_User_email(ctx, field) + } + return nil, fmt.Errorf("no field named %q was found under type User", field.Name) +} + +func (ec *executionContext) childFields___Directive(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + switch field.Name { + case "name": + return ec.fieldContext___Directive_name(ctx, field) + case "description": + return ec.fieldContext___Directive_description(ctx, field) + case "isRepeatable": + return ec.fieldContext___Directive_isRepeatable(ctx, field) + case "locations": + return ec.fieldContext___Directive_locations(ctx, field) + case "args": + return ec.fieldContext___Directive_args(ctx, field) + } + return nil, fmt.Errorf("no field named %q was found under type __Directive", field.Name) +} + +func (ec *executionContext) childFields___EnumValue(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + switch field.Name { + case "name": + return ec.fieldContext___EnumValue_name(ctx, field) + case "description": + return ec.fieldContext___EnumValue_description(ctx, field) + case "isDeprecated": + return ec.fieldContext___EnumValue_isDeprecated(ctx, field) + case "deprecationReason": + return ec.fieldContext___EnumValue_deprecationReason(ctx, field) + } + return nil, fmt.Errorf("no field named %q was found under type __EnumValue", field.Name) +} + +func (ec *executionContext) childFields___Field(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + switch field.Name { + case "name": + return ec.fieldContext___Field_name(ctx, field) + case "description": + return ec.fieldContext___Field_description(ctx, field) + case "args": + return ec.fieldContext___Field_args(ctx, field) + case "type": + return ec.fieldContext___Field_type(ctx, field) + case "isDeprecated": + return ec.fieldContext___Field_isDeprecated(ctx, field) + case "deprecationReason": + return ec.fieldContext___Field_deprecationReason(ctx, field) + } + return nil, fmt.Errorf("no field named %q was found under type __Field", field.Name) +} + +func (ec *executionContext) childFields___InputValue(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + switch field.Name { + case "name": + return ec.fieldContext___InputValue_name(ctx, field) + case "description": + return ec.fieldContext___InputValue_description(ctx, field) + case "type": + return ec.fieldContext___InputValue_type(ctx, field) + case "defaultValue": + return ec.fieldContext___InputValue_defaultValue(ctx, field) + case "isDeprecated": + return ec.fieldContext___InputValue_isDeprecated(ctx, field) + case "deprecationReason": + return ec.fieldContext___InputValue_deprecationReason(ctx, field) + } + return nil, fmt.Errorf("no field named %q was found under type __InputValue", field.Name) +} + +func (ec *executionContext) childFields___Schema(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + switch field.Name { + case "description": + return ec.fieldContext___Schema_description(ctx, field) + case "types": + return ec.fieldContext___Schema_types(ctx, field) + case "queryType": + return ec.fieldContext___Schema_queryType(ctx, field) + case "mutationType": + return ec.fieldContext___Schema_mutationType(ctx, field) + case "subscriptionType": + return ec.fieldContext___Schema_subscriptionType(ctx, field) + case "directives": + return ec.fieldContext___Schema_directives(ctx, field) + } + return nil, fmt.Errorf("no field named %q was found under type __Schema", field.Name) +} + +func (ec *executionContext) childFields___Type(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + switch field.Name { + case "kind": + return ec.fieldContext___Type_kind(ctx, field) + case "name": + return ec.fieldContext___Type_name(ctx, field) + case "description": + return ec.fieldContext___Type_description(ctx, field) + case "specifiedByURL": + return ec.fieldContext___Type_specifiedByURL(ctx, field) + case "fields": + return ec.fieldContext___Type_fields(ctx, field) + case "interfaces": + return ec.fieldContext___Type_interfaces(ctx, field) + case "possibleTypes": + return ec.fieldContext___Type_possibleTypes(ctx, field) + case "enumValues": + return ec.fieldContext___Type_enumValues(ctx, field) + case "inputFields": + return ec.fieldContext___Type_inputFields(ctx, field) + case "ofType": + return ec.fieldContext___Type_ofType(ctx, field) + case "isOneOf": + return ec.fieldContext___Type_isOneOf(ctx, field) + } + return nil, fmt.Errorf("no field named %q was found under type __Type", field.Name) +} + // endregion ************************** generated!.gotpl ************************** // region ***************************** args.gotpl ***************************** @@ -2847,12 +3660,18 @@ 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 := graphql.ProcessArgField(ctx, rawArgs, "job", ec.unmarshalNID2string) + arg0, err := graphql.ProcessArgField(ctx, rawArgs, "job", + func(ctx context.Context, v any) (string, error) { + return ec.unmarshalNID2string(ctx, v) + }) if err != nil { return nil, err } args["job"] = arg0 - arg1, err := graphql.ProcessArgField(ctx, rawArgs, "tagIds", ec.unmarshalNID2ᚕstringᚄ) + arg1, err := graphql.ProcessArgField(ctx, rawArgs, "tagIds", + func(ctx context.Context, v any) ([]string, error) { + return ec.unmarshalNID2ᚕstringᚄ(ctx, v) + }) if err != nil { return nil, err } @@ -2863,17 +3682,26 @@ func (ec *executionContext) field_Mutation_addTagsToJob_args(ctx context.Context 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 := graphql.ProcessArgField(ctx, rawArgs, "type", ec.unmarshalNString2string) + arg0, err := graphql.ProcessArgField(ctx, rawArgs, "type", + func(ctx context.Context, v any) (string, error) { + return ec.unmarshalNString2string(ctx, v) + }) if err != nil { return nil, err } args["type"] = arg0 - arg1, err := graphql.ProcessArgField(ctx, rawArgs, "name", ec.unmarshalNString2string) + arg1, err := graphql.ProcessArgField(ctx, rawArgs, "name", + func(ctx context.Context, v any) (string, error) { + return ec.unmarshalNString2string(ctx, v) + }) if err != nil { return nil, err } args["name"] = arg1 - arg2, err := graphql.ProcessArgField(ctx, rawArgs, "scope", ec.unmarshalNString2string) + arg2, err := graphql.ProcessArgField(ctx, rawArgs, "scope", + func(ctx context.Context, v any) (string, error) { + return ec.unmarshalNString2string(ctx, v) + }) if err != nil { return nil, err } @@ -2884,7 +3712,10 @@ func (ec *executionContext) field_Mutation_createTag_args(ctx context.Context, r 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 := graphql.ProcessArgField(ctx, rawArgs, "id", ec.unmarshalNID2string) + arg0, err := graphql.ProcessArgField(ctx, rawArgs, "id", + func(ctx context.Context, v any) (string, error) { + return ec.unmarshalNID2string(ctx, v) + }) if err != nil { return nil, err } @@ -2895,7 +3726,10 @@ func (ec *executionContext) field_Mutation_deleteTag_args(ctx context.Context, r 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 := graphql.ProcessArgField(ctx, rawArgs, "tagIds", ec.unmarshalNID2ᚕstringᚄ) + arg0, err := graphql.ProcessArgField(ctx, rawArgs, "tagIds", + func(ctx context.Context, v any) ([]string, error) { + return ec.unmarshalNID2ᚕstringᚄ(ctx, v) + }) if err != nil { return nil, err } @@ -2906,12 +3740,18 @@ func (ec *executionContext) field_Mutation_removeTagFromList_args(ctx context.Co 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 := graphql.ProcessArgField(ctx, rawArgs, "job", ec.unmarshalNID2string) + arg0, err := graphql.ProcessArgField(ctx, rawArgs, "job", + func(ctx context.Context, v any) (string, error) { + return ec.unmarshalNID2string(ctx, v) + }) if err != nil { return nil, err } args["job"] = arg0 - arg1, err := graphql.ProcessArgField(ctx, rawArgs, "tagIds", ec.unmarshalNID2ᚕstringᚄ) + arg1, err := graphql.ProcessArgField(ctx, rawArgs, "tagIds", + func(ctx context.Context, v any) ([]string, error) { + return ec.unmarshalNID2ᚕstringᚄ(ctx, v) + }) if err != nil { return nil, err } @@ -2922,12 +3762,18 @@ func (ec *executionContext) field_Mutation_removeTagsFromJob_args(ctx context.Co 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 := graphql.ProcessArgField(ctx, rawArgs, "name", ec.unmarshalNString2string) + arg0, err := graphql.ProcessArgField(ctx, rawArgs, "name", + func(ctx context.Context, v any) (string, error) { + return ec.unmarshalNString2string(ctx, v) + }) if err != nil { return nil, err } args["name"] = arg0 - arg1, err := graphql.ProcessArgField(ctx, rawArgs, "value", ec.unmarshalNString2string) + arg1, err := graphql.ProcessArgField(ctx, rawArgs, "value", + func(ctx context.Context, v any) (string, error) { + return ec.unmarshalNString2string(ctx, v) + }) if err != nil { return nil, err } @@ -2938,7 +3784,10 @@ func (ec *executionContext) field_Mutation_updateConfiguration_args(ctx context. 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 := graphql.ProcessArgField(ctx, rawArgs, "name", ec.unmarshalNString2string) + arg0, err := graphql.ProcessArgField(ctx, rawArgs, "name", + func(ctx context.Context, v any) (string, error) { + return ec.unmarshalNString2string(ctx, v) + }) if err != nil { return nil, err } @@ -2949,7 +3798,10 @@ func (ec *executionContext) field_Query___type_args(ctx context.Context, rawArgs 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 := graphql.ProcessArgField(ctx, rawArgs, "cluster", ec.unmarshalNString2string) + arg0, err := graphql.ProcessArgField(ctx, rawArgs, "cluster", + func(ctx context.Context, v any) (string, error) { + return ec.unmarshalNString2string(ctx, v) + }) if err != nil { return nil, err } @@ -2960,22 +3812,34 @@ func (ec *executionContext) field_Query_allocatedNodes_args(ctx context.Context, func (ec *executionContext) field_Query_clusterMetrics_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) { var err error args := map[string]any{} - arg0, err := graphql.ProcessArgField(ctx, rawArgs, "cluster", ec.unmarshalNString2string) + arg0, err := graphql.ProcessArgField(ctx, rawArgs, "cluster", + func(ctx context.Context, v any) (string, error) { + return ec.unmarshalNString2string(ctx, v) + }) if err != nil { return nil, err } args["cluster"] = arg0 - arg1, err := graphql.ProcessArgField(ctx, rawArgs, "metrics", ec.unmarshalOString2ᚕstringᚄ) + arg1, err := graphql.ProcessArgField(ctx, rawArgs, "metrics", + func(ctx context.Context, v any) ([]string, error) { + return ec.unmarshalOString2ᚕstringᚄ(ctx, v) + }) if err != nil { return nil, err } args["metrics"] = arg1 - arg2, err := graphql.ProcessArgField(ctx, rawArgs, "from", ec.unmarshalNTime2timeᚐTime) + arg2, err := graphql.ProcessArgField(ctx, rawArgs, "from", + func(ctx context.Context, v any) (time.Time, error) { + return ec.unmarshalNTime2timeᚐTime(ctx, v) + }) if err != nil { return nil, err } args["from"] = arg2 - arg3, err := graphql.ProcessArgField(ctx, rawArgs, "to", ec.unmarshalNTime2timeᚐTime) + arg3, err := graphql.ProcessArgField(ctx, rawArgs, "to", + func(ctx context.Context, v any) (time.Time, error) { + return ec.unmarshalNTime2timeᚐTime(ctx, v) + }) if err != nil { return nil, err } @@ -2986,22 +3850,34 @@ func (ec *executionContext) field_Query_clusterMetrics_args(ctx context.Context, 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 := graphql.ProcessArgField(ctx, rawArgs, "id", ec.unmarshalNID2string) + arg0, err := graphql.ProcessArgField(ctx, rawArgs, "id", + func(ctx context.Context, v any) (string, error) { + return ec.unmarshalNID2string(ctx, v) + }) if err != nil { return nil, err } args["id"] = arg0 - arg1, err := graphql.ProcessArgField(ctx, rawArgs, "metrics", ec.unmarshalOString2ᚕstringᚄ) + arg1, err := graphql.ProcessArgField(ctx, rawArgs, "metrics", + func(ctx context.Context, v any) ([]string, error) { + return ec.unmarshalOString2ᚕstringᚄ(ctx, v) + }) if err != nil { return nil, err } args["metrics"] = arg1 - arg2, err := graphql.ProcessArgField(ctx, rawArgs, "scopes", ec.unmarshalOMetricScope2ᚕgithubᚗcomᚋClusterCockpitᚋccᚑlibᚋv2ᚋschemaᚐMetricScopeᚄ) + arg2, err := graphql.ProcessArgField(ctx, rawArgs, "scopes", + func(ctx context.Context, v any) ([]schema.MetricScope, error) { + return ec.unmarshalOMetricScope2ᚕgithubᚗcomᚋClusterCockpitᚋccᚑlibᚋv2ᚋschemaᚐMetricScopeᚄ(ctx, v) + }) if err != nil { return nil, err } args["scopes"] = arg2 - arg3, err := graphql.ProcessArgField(ctx, rawArgs, "resolution", ec.unmarshalOInt2ᚖint) + arg3, err := graphql.ProcessArgField(ctx, rawArgs, "resolution", + func(ctx context.Context, v any) (*int, error) { + return ec.unmarshalOInt2ᚖint(ctx, v) + }) if err != nil { return nil, err } @@ -3012,12 +3888,18 @@ func (ec *executionContext) field_Query_jobMetrics_args(ctx context.Context, raw 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 := graphql.ProcessArgField(ctx, rawArgs, "id", ec.unmarshalNID2string) + arg0, err := graphql.ProcessArgField(ctx, rawArgs, "id", + func(ctx context.Context, v any) (string, error) { + return ec.unmarshalNID2string(ctx, v) + }) if err != nil { return nil, err } args["id"] = arg0 - arg1, err := graphql.ProcessArgField(ctx, rawArgs, "metrics", ec.unmarshalOString2ᚕstringᚄ) + arg1, err := graphql.ProcessArgField(ctx, rawArgs, "metrics", + func(ctx context.Context, v any) ([]string, error) { + return ec.unmarshalOString2ᚕstringᚄ(ctx, v) + }) if err != nil { return nil, err } @@ -3028,7 +3910,10 @@ func (ec *executionContext) field_Query_jobStats_args(ctx context.Context, rawAr 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 := graphql.ProcessArgField(ctx, rawArgs, "id", ec.unmarshalNID2string) + arg0, err := graphql.ProcessArgField(ctx, rawArgs, "id", + func(ctx context.Context, v any) (string, error) { + return ec.unmarshalNID2string(ctx, v) + }) if err != nil { return nil, err } @@ -3039,12 +3924,18 @@ func (ec *executionContext) field_Query_job_args(ctx context.Context, rawArgs ma 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 := graphql.ProcessArgField(ctx, rawArgs, "filter", ec.unmarshalOJobFilter2ᚕᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐJobFilterᚄ) + arg0, err := graphql.ProcessArgField(ctx, rawArgs, "filter", + func(ctx context.Context, v any) ([]*model.JobFilter, error) { + return ec.unmarshalOJobFilter2ᚕᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐJobFilterᚄ(ctx, v) + }) if err != nil { return nil, err } args["filter"] = arg0 - arg1, err := graphql.ProcessArgField(ctx, rawArgs, "metrics", ec.unmarshalNString2ᚕstringᚄ) + arg1, err := graphql.ProcessArgField(ctx, rawArgs, "metrics", + func(ctx context.Context, v any) ([]string, error) { + return ec.unmarshalNString2ᚕstringᚄ(ctx, v) + }) if err != nil { return nil, err } @@ -3055,12 +3946,18 @@ func (ec *executionContext) field_Query_jobsFootprints_args(ctx context.Context, 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 := graphql.ProcessArgField(ctx, rawArgs, "filter", ec.unmarshalOJobFilter2ᚕᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐJobFilterᚄ) + arg0, err := graphql.ProcessArgField(ctx, rawArgs, "filter", + func(ctx context.Context, v any) ([]*model.JobFilter, error) { + return ec.unmarshalOJobFilter2ᚕᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐJobFilterᚄ(ctx, v) + }) if err != nil { return nil, err } args["filter"] = arg0 - arg1, err := graphql.ProcessArgField(ctx, rawArgs, "metrics", ec.unmarshalOString2ᚕstringᚄ) + arg1, err := graphql.ProcessArgField(ctx, rawArgs, "metrics", + func(ctx context.Context, v any) ([]string, error) { + return ec.unmarshalOString2ᚕstringᚄ(ctx, v) + }) if err != nil { return nil, err } @@ -3071,37 +3968,58 @@ func (ec *executionContext) field_Query_jobsMetricStats_args(ctx context.Context 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 := graphql.ProcessArgField(ctx, rawArgs, "filter", ec.unmarshalOJobFilter2ᚕᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐJobFilterᚄ) + arg0, err := graphql.ProcessArgField(ctx, rawArgs, "filter", + func(ctx context.Context, v any) ([]*model.JobFilter, error) { + return ec.unmarshalOJobFilter2ᚕᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐJobFilterᚄ(ctx, v) + }) if err != nil { return nil, err } args["filter"] = arg0 - arg1, err := graphql.ProcessArgField(ctx, rawArgs, "metrics", ec.unmarshalOString2ᚕstringᚄ) + arg1, err := graphql.ProcessArgField(ctx, rawArgs, "metrics", + func(ctx context.Context, v any) ([]string, error) { + return ec.unmarshalOString2ᚕstringᚄ(ctx, v) + }) if err != nil { return nil, err } args["metrics"] = arg1 - arg2, err := graphql.ProcessArgField(ctx, rawArgs, "page", ec.unmarshalOPageRequest2ᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐPageRequest) + arg2, err := graphql.ProcessArgField(ctx, rawArgs, "page", + func(ctx context.Context, v any) (*model.PageRequest, error) { + return ec.unmarshalOPageRequest2ᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐPageRequest(ctx, v) + }) if err != nil { return nil, err } args["page"] = arg2 - arg3, err := graphql.ProcessArgField(ctx, rawArgs, "sortBy", ec.unmarshalOSortByAggregate2ᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐSortByAggregate) + arg3, err := graphql.ProcessArgField(ctx, rawArgs, "sortBy", + func(ctx context.Context, v any) (*model.SortByAggregate, error) { + return ec.unmarshalOSortByAggregate2ᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐSortByAggregate(ctx, v) + }) if err != nil { return nil, err } args["sortBy"] = arg3 - arg4, err := graphql.ProcessArgField(ctx, rawArgs, "groupBy", ec.unmarshalOAggregate2ᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐAggregate) + arg4, err := graphql.ProcessArgField(ctx, rawArgs, "groupBy", + func(ctx context.Context, v any) (*model.Aggregate, error) { + return ec.unmarshalOAggregate2ᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐAggregate(ctx, v) + }) if err != nil { return nil, err } args["groupBy"] = arg4 - arg5, err := graphql.ProcessArgField(ctx, rawArgs, "numDurationBins", ec.unmarshalOString2ᚖstring) + arg5, err := graphql.ProcessArgField(ctx, rawArgs, "numDurationBins", + func(ctx context.Context, v any) (*string, error) { + return ec.unmarshalOString2ᚖstring(ctx, v) + }) if err != nil { return nil, err } args["numDurationBins"] = arg5 - arg6, err := graphql.ProcessArgField(ctx, rawArgs, "numMetricBins", ec.unmarshalOInt2ᚖint) + arg6, err := graphql.ProcessArgField(ctx, rawArgs, "numMetricBins", + func(ctx context.Context, v any) (*int, error) { + return ec.unmarshalOInt2ᚖint(ctx, v) + }) if err != nil { return nil, err } @@ -3112,17 +4030,26 @@ func (ec *executionContext) field_Query_jobsStatistics_args(ctx context.Context, 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 := graphql.ProcessArgField(ctx, rawArgs, "filter", ec.unmarshalOJobFilter2ᚕᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐJobFilterᚄ) + arg0, err := graphql.ProcessArgField(ctx, rawArgs, "filter", + func(ctx context.Context, v any) ([]*model.JobFilter, error) { + return ec.unmarshalOJobFilter2ᚕᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐJobFilterᚄ(ctx, v) + }) if err != nil { return nil, err } args["filter"] = arg0 - arg1, err := graphql.ProcessArgField(ctx, rawArgs, "page", ec.unmarshalOPageRequest2ᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐPageRequest) + arg1, err := graphql.ProcessArgField(ctx, rawArgs, "page", + func(ctx context.Context, v any) (*model.PageRequest, error) { + return ec.unmarshalOPageRequest2ᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐPageRequest(ctx, v) + }) if err != nil { return nil, err } args["page"] = arg1 - arg2, err := graphql.ProcessArgField(ctx, rawArgs, "order", ec.unmarshalOOrderByInput2ᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐOrderByInput) + arg2, err := graphql.ProcessArgField(ctx, rawArgs, "order", + func(ctx context.Context, v any) (*model.OrderByInput, error) { + return ec.unmarshalOOrderByInput2ᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐOrderByInput(ctx, v) + }) if err != nil { return nil, err } @@ -3133,52 +4060,82 @@ func (ec *executionContext) field_Query_jobs_args(ctx context.Context, rawArgs m 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 := graphql.ProcessArgField(ctx, rawArgs, "cluster", ec.unmarshalNString2string) + arg0, err := graphql.ProcessArgField(ctx, rawArgs, "cluster", + func(ctx context.Context, v any) (string, error) { + return ec.unmarshalNString2string(ctx, v) + }) if err != nil { return nil, err } args["cluster"] = arg0 - arg1, err := graphql.ProcessArgField(ctx, rawArgs, "subCluster", ec.unmarshalNString2string) + arg1, err := graphql.ProcessArgField(ctx, rawArgs, "subCluster", + func(ctx context.Context, v any) (string, error) { + return ec.unmarshalNString2string(ctx, v) + }) if err != nil { return nil, err } args["subCluster"] = arg1 - arg2, err := graphql.ProcessArgField(ctx, rawArgs, "stateFilter", ec.unmarshalNString2string) + arg2, err := graphql.ProcessArgField(ctx, rawArgs, "stateFilter", + func(ctx context.Context, v any) (string, error) { + return ec.unmarshalNString2string(ctx, v) + }) if err != nil { return nil, err } args["stateFilter"] = arg2 - arg3, err := graphql.ProcessArgField(ctx, rawArgs, "nodeFilter", ec.unmarshalNString2string) + arg3, err := graphql.ProcessArgField(ctx, rawArgs, "nodeFilter", + func(ctx context.Context, v any) (string, error) { + return ec.unmarshalNString2string(ctx, v) + }) if err != nil { return nil, err } args["nodeFilter"] = arg3 - arg4, err := graphql.ProcessArgField(ctx, rawArgs, "scopes", ec.unmarshalOMetricScope2ᚕgithubᚗcomᚋClusterCockpitᚋccᚑlibᚋv2ᚋschemaᚐMetricScopeᚄ) + arg4, err := graphql.ProcessArgField(ctx, rawArgs, "scopes", + func(ctx context.Context, v any) ([]schema.MetricScope, error) { + return ec.unmarshalOMetricScope2ᚕgithubᚗcomᚋClusterCockpitᚋccᚑlibᚋv2ᚋschemaᚐMetricScopeᚄ(ctx, v) + }) if err != nil { return nil, err } args["scopes"] = arg4 - arg5, err := graphql.ProcessArgField(ctx, rawArgs, "metrics", ec.unmarshalOString2ᚕstringᚄ) + arg5, err := graphql.ProcessArgField(ctx, rawArgs, "metrics", + func(ctx context.Context, v any) ([]string, error) { + return ec.unmarshalOString2ᚕstringᚄ(ctx, v) + }) if err != nil { return nil, err } args["metrics"] = arg5 - arg6, err := graphql.ProcessArgField(ctx, rawArgs, "from", ec.unmarshalNTime2timeᚐTime) + arg6, err := graphql.ProcessArgField(ctx, rawArgs, "from", + func(ctx context.Context, v any) (time.Time, error) { + return ec.unmarshalNTime2timeᚐTime(ctx, v) + }) if err != nil { return nil, err } args["from"] = arg6 - arg7, err := graphql.ProcessArgField(ctx, rawArgs, "to", ec.unmarshalNTime2timeᚐTime) + arg7, err := graphql.ProcessArgField(ctx, rawArgs, "to", + func(ctx context.Context, v any) (time.Time, error) { + return ec.unmarshalNTime2timeᚐTime(ctx, v) + }) if err != nil { return nil, err } args["to"] = arg7 - arg8, err := graphql.ProcessArgField(ctx, rawArgs, "page", ec.unmarshalOPageRequest2ᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐPageRequest) + arg8, err := graphql.ProcessArgField(ctx, rawArgs, "page", + func(ctx context.Context, v any) (*model.PageRequest, error) { + return ec.unmarshalOPageRequest2ᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐPageRequest(ctx, v) + }) if err != nil { return nil, err } args["page"] = arg8 - arg9, err := graphql.ProcessArgField(ctx, rawArgs, "resolution", ec.unmarshalOInt2ᚖint) + arg9, err := graphql.ProcessArgField(ctx, rawArgs, "resolution", + func(ctx context.Context, v any) (*int, error) { + return ec.unmarshalOInt2ᚖint(ctx, v) + }) if err != nil { return nil, err } @@ -3189,32 +4146,50 @@ func (ec *executionContext) field_Query_nodeMetricsList_args(ctx context.Context 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 := graphql.ProcessArgField(ctx, rawArgs, "cluster", ec.unmarshalNString2string) + arg0, err := graphql.ProcessArgField(ctx, rawArgs, "cluster", + func(ctx context.Context, v any) (string, error) { + return ec.unmarshalNString2string(ctx, v) + }) if err != nil { return nil, err } args["cluster"] = arg0 - arg1, err := graphql.ProcessArgField(ctx, rawArgs, "nodes", ec.unmarshalOString2ᚕstringᚄ) + arg1, err := graphql.ProcessArgField(ctx, rawArgs, "nodes", + func(ctx context.Context, v any) ([]string, error) { + return ec.unmarshalOString2ᚕstringᚄ(ctx, v) + }) if err != nil { return nil, err } args["nodes"] = arg1 - arg2, err := graphql.ProcessArgField(ctx, rawArgs, "scopes", ec.unmarshalOMetricScope2ᚕgithubᚗcomᚋClusterCockpitᚋccᚑlibᚋv2ᚋschemaᚐMetricScopeᚄ) + arg2, err := graphql.ProcessArgField(ctx, rawArgs, "scopes", + func(ctx context.Context, v any) ([]schema.MetricScope, error) { + return ec.unmarshalOMetricScope2ᚕgithubᚗcomᚋClusterCockpitᚋccᚑlibᚋv2ᚋschemaᚐMetricScopeᚄ(ctx, v) + }) if err != nil { return nil, err } args["scopes"] = arg2 - arg3, err := graphql.ProcessArgField(ctx, rawArgs, "metrics", ec.unmarshalOString2ᚕstringᚄ) + arg3, err := graphql.ProcessArgField(ctx, rawArgs, "metrics", + func(ctx context.Context, v any) ([]string, error) { + return ec.unmarshalOString2ᚕstringᚄ(ctx, v) + }) if err != nil { return nil, err } args["metrics"] = arg3 - arg4, err := graphql.ProcessArgField(ctx, rawArgs, "from", ec.unmarshalNTime2timeᚐTime) + arg4, err := graphql.ProcessArgField(ctx, rawArgs, "from", + func(ctx context.Context, v any) (time.Time, error) { + return ec.unmarshalNTime2timeᚐTime(ctx, v) + }) if err != nil { return nil, err } args["from"] = arg4 - arg5, err := graphql.ProcessArgField(ctx, rawArgs, "to", ec.unmarshalNTime2timeᚐTime) + arg5, err := graphql.ProcessArgField(ctx, rawArgs, "to", + func(ctx context.Context, v any) (time.Time, error) { + return ec.unmarshalNTime2timeᚐTime(ctx, v) + }) if err != nil { return nil, err } @@ -3225,12 +4200,18 @@ func (ec *executionContext) field_Query_nodeMetrics_args(ctx context.Context, ra func (ec *executionContext) field_Query_nodeStatesTimed_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) { var err error args := map[string]any{} - arg0, err := graphql.ProcessArgField(ctx, rawArgs, "filter", ec.unmarshalONodeFilter2ᚕᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐNodeFilterᚄ) + arg0, err := graphql.ProcessArgField(ctx, rawArgs, "filter", + func(ctx context.Context, v any) ([]*model.NodeFilter, error) { + return ec.unmarshalONodeFilter2ᚕᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐNodeFilterᚄ(ctx, v) + }) if err != nil { return nil, err } args["filter"] = arg0 - arg1, err := graphql.ProcessArgField(ctx, rawArgs, "type", ec.unmarshalNString2string) + arg1, err := graphql.ProcessArgField(ctx, rawArgs, "type", + func(ctx context.Context, v any) (string, error) { + return ec.unmarshalNString2string(ctx, v) + }) if err != nil { return nil, err } @@ -3241,7 +4222,10 @@ func (ec *executionContext) field_Query_nodeStatesTimed_args(ctx context.Context func (ec *executionContext) field_Query_nodeStates_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) { var err error args := map[string]any{} - arg0, err := graphql.ProcessArgField(ctx, rawArgs, "filter", ec.unmarshalONodeFilter2ᚕᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐNodeFilterᚄ) + arg0, err := graphql.ProcessArgField(ctx, rawArgs, "filter", + func(ctx context.Context, v any) ([]*model.NodeFilter, error) { + return ec.unmarshalONodeFilter2ᚕᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐNodeFilterᚄ(ctx, v) + }) if err != nil { return nil, err } @@ -3252,7 +4236,10 @@ func (ec *executionContext) field_Query_nodeStates_args(ctx context.Context, raw 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 := graphql.ProcessArgField(ctx, rawArgs, "id", ec.unmarshalNID2string) + arg0, err := graphql.ProcessArgField(ctx, rawArgs, "id", + func(ctx context.Context, v any) (string, error) { + return ec.unmarshalNID2string(ctx, v) + }) if err != nil { return nil, err } @@ -3263,12 +4250,18 @@ func (ec *executionContext) field_Query_node_args(ctx context.Context, rawArgs m func (ec *executionContext) field_Query_nodesWithMeta_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) { var err error args := map[string]any{} - arg0, err := graphql.ProcessArgField(ctx, rawArgs, "filter", ec.unmarshalONodeFilter2ᚕᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐNodeFilterᚄ) + arg0, err := graphql.ProcessArgField(ctx, rawArgs, "filter", + func(ctx context.Context, v any) ([]*model.NodeFilter, error) { + return ec.unmarshalONodeFilter2ᚕᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐNodeFilterᚄ(ctx, v) + }) if err != nil { return nil, err } args["filter"] = arg0 - arg1, err := graphql.ProcessArgField(ctx, rawArgs, "order", ec.unmarshalOOrderByInput2ᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐOrderByInput) + arg1, err := graphql.ProcessArgField(ctx, rawArgs, "order", + func(ctx context.Context, v any) (*model.OrderByInput, error) { + return ec.unmarshalOOrderByInput2ᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐOrderByInput(ctx, v) + }) if err != nil { return nil, err } @@ -3279,12 +4272,18 @@ func (ec *executionContext) field_Query_nodesWithMeta_args(ctx context.Context, 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 := graphql.ProcessArgField(ctx, rawArgs, "filter", ec.unmarshalONodeFilter2ᚕᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐNodeFilterᚄ) + arg0, err := graphql.ProcessArgField(ctx, rawArgs, "filter", + func(ctx context.Context, v any) ([]*model.NodeFilter, error) { + return ec.unmarshalONodeFilter2ᚕᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐNodeFilterᚄ(ctx, v) + }) if err != nil { return nil, err } args["filter"] = arg0 - arg1, err := graphql.ProcessArgField(ctx, rawArgs, "order", ec.unmarshalOOrderByInput2ᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐOrderByInput) + arg1, err := graphql.ProcessArgField(ctx, rawArgs, "order", + func(ctx context.Context, v any) (*model.OrderByInput, error) { + return ec.unmarshalOOrderByInput2ᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐOrderByInput(ctx, v) + }) if err != nil { return nil, err } @@ -3295,37 +4294,58 @@ func (ec *executionContext) field_Query_nodes_args(ctx context.Context, rawArgs 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 := graphql.ProcessArgField(ctx, rawArgs, "filter", ec.unmarshalNJobFilter2ᚕᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐJobFilterᚄ) + arg0, err := graphql.ProcessArgField(ctx, rawArgs, "filter", + func(ctx context.Context, v any) ([]*model.JobFilter, error) { + return ec.unmarshalNJobFilter2ᚕᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐJobFilterᚄ(ctx, v) + }) if err != nil { return nil, err } args["filter"] = arg0 - arg1, err := graphql.ProcessArgField(ctx, rawArgs, "rows", ec.unmarshalNInt2int) + arg1, err := graphql.ProcessArgField(ctx, rawArgs, "rows", + func(ctx context.Context, v any) (int, error) { + return ec.unmarshalNInt2int(ctx, v) + }) if err != nil { return nil, err } args["rows"] = arg1 - arg2, err := graphql.ProcessArgField(ctx, rawArgs, "cols", ec.unmarshalNInt2int) + arg2, err := graphql.ProcessArgField(ctx, rawArgs, "cols", + func(ctx context.Context, v any) (int, error) { + return ec.unmarshalNInt2int(ctx, v) + }) if err != nil { return nil, err } args["cols"] = arg2 - arg3, err := graphql.ProcessArgField(ctx, rawArgs, "minX", ec.unmarshalNFloat2float64) + arg3, err := graphql.ProcessArgField(ctx, rawArgs, "minX", + func(ctx context.Context, v any) (float64, error) { + return ec.unmarshalNFloat2float64(ctx, v) + }) if err != nil { return nil, err } args["minX"] = arg3 - arg4, err := graphql.ProcessArgField(ctx, rawArgs, "minY", ec.unmarshalNFloat2float64) + arg4, err := graphql.ProcessArgField(ctx, rawArgs, "minY", + func(ctx context.Context, v any) (float64, error) { + return ec.unmarshalNFloat2float64(ctx, v) + }) if err != nil { return nil, err } args["minY"] = arg4 - arg5, err := graphql.ProcessArgField(ctx, rawArgs, "maxX", ec.unmarshalNFloat2float64) + arg5, err := graphql.ProcessArgField(ctx, rawArgs, "maxX", + func(ctx context.Context, v any) (float64, error) { + return ec.unmarshalNFloat2float64(ctx, v) + }) if err != nil { return nil, err } args["maxX"] = arg5 - arg6, err := graphql.ProcessArgField(ctx, rawArgs, "maxY", ec.unmarshalNFloat2float64) + arg6, err := graphql.ProcessArgField(ctx, rawArgs, "maxY", + func(ctx context.Context, v any) (float64, error) { + return ec.unmarshalNFloat2float64(ctx, v) + }) if err != nil { return nil, err } @@ -3336,17 +4356,26 @@ func (ec *executionContext) field_Query_rooflineHeatmap_args(ctx context.Context 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 := graphql.ProcessArgField(ctx, rawArgs, "id", ec.unmarshalNID2string) + arg0, err := graphql.ProcessArgField(ctx, rawArgs, "id", + func(ctx context.Context, v any) (string, error) { + return ec.unmarshalNID2string(ctx, v) + }) if err != nil { return nil, err } args["id"] = arg0 - arg1, err := graphql.ProcessArgField(ctx, rawArgs, "metrics", ec.unmarshalOString2ᚕstringᚄ) + arg1, err := graphql.ProcessArgField(ctx, rawArgs, "metrics", + func(ctx context.Context, v any) ([]string, error) { + return ec.unmarshalOString2ᚕstringᚄ(ctx, v) + }) if err != nil { return nil, err } args["metrics"] = arg1 - arg2, err := graphql.ProcessArgField(ctx, rawArgs, "scopes", ec.unmarshalOMetricScope2ᚕgithubᚗcomᚋClusterCockpitᚋccᚑlibᚋv2ᚋschemaᚐMetricScopeᚄ) + arg2, err := graphql.ProcessArgField(ctx, rawArgs, "scopes", + func(ctx context.Context, v any) ([]schema.MetricScope, error) { + return ec.unmarshalOMetricScope2ᚕgithubᚗcomᚋClusterCockpitᚋccᚑlibᚋv2ᚋschemaᚐMetricScopeᚄ(ctx, v) + }) if err != nil { return nil, err } @@ -3357,7 +4386,10 @@ func (ec *executionContext) field_Query_scopedJobStats_args(ctx context.Context, 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 := graphql.ProcessArgField(ctx, rawArgs, "username", ec.unmarshalNString2string) + arg0, err := graphql.ProcessArgField(ctx, rawArgs, "username", + func(ctx context.Context, v any) (string, error) { + return ec.unmarshalNString2string(ctx, v) + }) if err != nil { return nil, err } @@ -3368,7 +4400,10 @@ func (ec *executionContext) field_Query_user_args(ctx context.Context, rawArgs m 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 := graphql.ProcessArgField(ctx, rawArgs, "includeDeprecated", ec.unmarshalOBoolean2ᚖbool) + arg0, err := graphql.ProcessArgField(ctx, rawArgs, "includeDeprecated", + func(ctx context.Context, v any) (*bool, error) { + return ec.unmarshalOBoolean2ᚖbool(ctx, v) + }) if err != nil { return nil, err } @@ -3379,7 +4414,10 @@ func (ec *executionContext) field___Directive_args_args(ctx context.Context, raw 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 := graphql.ProcessArgField(ctx, rawArgs, "includeDeprecated", ec.unmarshalOBoolean2ᚖbool) + arg0, err := graphql.ProcessArgField(ctx, rawArgs, "includeDeprecated", + func(ctx context.Context, v any) (*bool, error) { + return ec.unmarshalOBoolean2ᚖbool(ctx, v) + }) if err != nil { return nil, err } @@ -3390,7 +4428,10 @@ func (ec *executionContext) field___Field_args_args(ctx context.Context, rawArgs 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 := graphql.ProcessArgField(ctx, rawArgs, "includeDeprecated", ec.unmarshalOBoolean2bool) + arg0, err := graphql.ProcessArgField(ctx, rawArgs, "includeDeprecated", + func(ctx context.Context, v any) (bool, error) { + return ec.unmarshalOBoolean2bool(ctx, v) + }) if err != nil { return nil, err } @@ -3401,7 +4442,10 @@ func (ec *executionContext) field___Type_enumValues_args(ctx context.Context, ra 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 := graphql.ProcessArgField(ctx, rawArgs, "includeDeprecated", ec.unmarshalOBoolean2bool) + arg0, err := graphql.ProcessArgField(ctx, rawArgs, "includeDeprecated", + func(ctx context.Context, v any) (bool, error) { + return ec.unmarshalOBoolean2bool(ctx, v) + }) if err != nil { return nil, err } @@ -3422,28 +4466,22 @@ func (ec *executionContext) _Accelerator_id(ctx context.Context, field graphql.C ctx, ec.OperationContext, field, - ec.fieldContext_Accelerator_id, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_Accelerator_id(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.ID, nil }, nil, - ec.marshalNString2string, + func(ctx context.Context, selections ast.SelectionSet, v string) graphql.Marshaler { + return ec.marshalNString2string(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_Accelerator_id(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "Accelerator", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type String does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("Accelerator", field, false, false, errors.New("field of type String does not have child fields")) } func (ec *executionContext) _Accelerator_type(ctx context.Context, field graphql.CollectedField, obj *schema.Accelerator) (ret graphql.Marshaler) { @@ -3451,28 +4489,22 @@ func (ec *executionContext) _Accelerator_type(ctx context.Context, field graphql ctx, ec.OperationContext, field, - ec.fieldContext_Accelerator_type, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_Accelerator_type(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Type, nil }, nil, - ec.marshalNString2string, + func(ctx context.Context, selections ast.SelectionSet, v string) graphql.Marshaler { + return ec.marshalNString2string(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_Accelerator_type(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "Accelerator", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type String does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("Accelerator", field, false, false, errors.New("field of type String does not have child fields")) } func (ec *executionContext) _Accelerator_model(ctx context.Context, field graphql.CollectedField, obj *schema.Accelerator) (ret graphql.Marshaler) { @@ -3480,28 +4512,22 @@ func (ec *executionContext) _Accelerator_model(ctx context.Context, field graphq ctx, ec.OperationContext, field, - ec.fieldContext_Accelerator_model, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_Accelerator_model(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Model, nil }, nil, - ec.marshalNString2string, + func(ctx context.Context, selections ast.SelectionSet, v string) graphql.Marshaler { + return ec.marshalNString2string(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_Accelerator_model(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "Accelerator", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type String does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("Accelerator", field, false, false, errors.New("field of type String does not have child fields")) } func (ec *executionContext) _Cluster_name(ctx context.Context, field graphql.CollectedField, obj *schema.Cluster) (ret graphql.Marshaler) { @@ -3509,28 +4535,22 @@ func (ec *executionContext) _Cluster_name(ctx context.Context, field graphql.Col ctx, ec.OperationContext, field, - ec.fieldContext_Cluster_name, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_Cluster_name(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Name, nil }, nil, - ec.marshalNString2string, + func(ctx context.Context, selections ast.SelectionSet, v string) graphql.Marshaler { + return ec.marshalNString2string(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_Cluster_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "Cluster", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type String does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("Cluster", field, false, false, errors.New("field of type String does not have child fields")) } func (ec *executionContext) _Cluster_partitions(ctx context.Context, field graphql.CollectedField, obj *schema.Cluster) (ret graphql.Marshaler) { @@ -3538,28 +4558,22 @@ func (ec *executionContext) _Cluster_partitions(ctx context.Context, field graph ctx, ec.OperationContext, field, - ec.fieldContext_Cluster_partitions, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_Cluster_partitions(ctx, field) + }, func(ctx context.Context) (any, error) { return ec.Resolvers.Cluster().Partitions(ctx, obj) }, nil, - ec.marshalNString2ᚕstringᚄ, + func(ctx context.Context, selections ast.SelectionSet, v []string) graphql.Marshaler { + return ec.marshalNString2ᚕstringᚄ(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_Cluster_partitions(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "Cluster", - Field: field, - IsMethod: true, - IsResolver: true, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type String does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("Cluster", field, true, true, errors.New("field of type String does not have child fields")) } func (ec *executionContext) _Cluster_subClusters(ctx context.Context, field graphql.CollectedField, obj *schema.Cluster) (ret graphql.Marshaler) { @@ -3567,17 +4581,20 @@ func (ec *executionContext) _Cluster_subClusters(ctx context.Context, field grap ctx, ec.OperationContext, field, - ec.fieldContext_Cluster_subClusters, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_Cluster_subClusters(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.SubClusters, nil }, nil, - ec.marshalNSubCluster2ᚕᚖgithubᚗcomᚋClusterCockpitᚋccᚑlibᚋv2ᚋschemaᚐSubClusterᚄ, + func(ctx context.Context, selections ast.SelectionSet, v []*schema.SubCluster) graphql.Marshaler { + return ec.marshalNSubCluster2ᚕᚖgithubᚗcomᚋClusterCockpitᚋccᚑlibᚋv2ᚋschemaᚐSubClusterᚄ(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_Cluster_subClusters(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ Object: "Cluster", @@ -3585,35 +4602,7 @@ func (ec *executionContext) fieldContext_Cluster_subClusters(_ context.Context, IsMethod: false, IsResolver: false, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - switch field.Name { - case "name": - return ec.fieldContext_SubCluster_name(ctx, field) - case "nodes": - return ec.fieldContext_SubCluster_nodes(ctx, field) - case "numberOfNodes": - return ec.fieldContext_SubCluster_numberOfNodes(ctx, field) - case "processorType": - return ec.fieldContext_SubCluster_processorType(ctx, field) - case "socketsPerNode": - return ec.fieldContext_SubCluster_socketsPerNode(ctx, field) - case "coresPerSocket": - return ec.fieldContext_SubCluster_coresPerSocket(ctx, field) - case "threadsPerCore": - return ec.fieldContext_SubCluster_threadsPerCore(ctx, field) - case "flopRateScalar": - return ec.fieldContext_SubCluster_flopRateScalar(ctx, field) - case "flopRateSimd": - return ec.fieldContext_SubCluster_flopRateSimd(ctx, field) - case "memoryBandwidth": - return ec.fieldContext_SubCluster_memoryBandwidth(ctx, field) - case "topology": - return ec.fieldContext_SubCluster_topology(ctx, field) - case "metricConfig": - return ec.fieldContext_SubCluster_metricConfig(ctx, field) - case "footprint": - return ec.fieldContext_SubCluster_footprint(ctx, field) - } - return nil, fmt.Errorf("no field named %q was found under type SubCluster", field.Name) + return ec.childFields_SubCluster(ctx, field) }, } return fc, nil @@ -3624,28 +4613,22 @@ func (ec *executionContext) _ClusterMetricWithName_name(ctx context.Context, fie ctx, ec.OperationContext, field, - ec.fieldContext_ClusterMetricWithName_name, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_ClusterMetricWithName_name(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Name, nil }, nil, - ec.marshalNString2string, + func(ctx context.Context, selections ast.SelectionSet, v string) graphql.Marshaler { + return ec.marshalNString2string(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_ClusterMetricWithName_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "ClusterMetricWithName", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type String does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("ClusterMetricWithName", field, false, false, errors.New("field of type String does not have child fields")) } func (ec *executionContext) _ClusterMetricWithName_unit(ctx context.Context, field graphql.CollectedField, obj *model.ClusterMetricWithName) (ret graphql.Marshaler) { @@ -3653,17 +4636,20 @@ func (ec *executionContext) _ClusterMetricWithName_unit(ctx context.Context, fie ctx, ec.OperationContext, field, - ec.fieldContext_ClusterMetricWithName_unit, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_ClusterMetricWithName_unit(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Unit, nil }, nil, - ec.marshalOUnit2ᚖgithubᚗcomᚋClusterCockpitᚋccᚑlibᚋv2ᚋschemaᚐUnit, + func(ctx context.Context, selections ast.SelectionSet, v *schema.Unit) graphql.Marshaler { + return ec.marshalOUnit2ᚖgithubᚗcomᚋClusterCockpitᚋccᚑlibᚋv2ᚋschemaᚐUnit(ctx, selections, v) + }, true, false, ) } - func (ec *executionContext) fieldContext_ClusterMetricWithName_unit(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ Object: "ClusterMetricWithName", @@ -3671,13 +4657,7 @@ func (ec *executionContext) fieldContext_ClusterMetricWithName_unit(_ context.Co IsMethod: false, IsResolver: false, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - switch field.Name { - case "base": - return ec.fieldContext_Unit_base(ctx, field) - case "prefix": - return ec.fieldContext_Unit_prefix(ctx, field) - } - return nil, fmt.Errorf("no field named %q was found under type Unit", field.Name) + return ec.childFields_Unit(ctx, field) }, } return fc, nil @@ -3688,28 +4668,22 @@ func (ec *executionContext) _ClusterMetricWithName_timestep(ctx context.Context, ctx, ec.OperationContext, field, - ec.fieldContext_ClusterMetricWithName_timestep, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_ClusterMetricWithName_timestep(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Timestep, nil }, nil, - ec.marshalNInt2int, + func(ctx context.Context, selections ast.SelectionSet, v int) graphql.Marshaler { + return ec.marshalNInt2int(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_ClusterMetricWithName_timestep(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "ClusterMetricWithName", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Int does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("ClusterMetricWithName", field, false, false, errors.New("field of type Int does not have child fields")) } func (ec *executionContext) _ClusterMetricWithName_data(ctx context.Context, field graphql.CollectedField, obj *model.ClusterMetricWithName) (ret graphql.Marshaler) { @@ -3717,28 +4691,22 @@ func (ec *executionContext) _ClusterMetricWithName_data(ctx context.Context, fie ctx, ec.OperationContext, field, - ec.fieldContext_ClusterMetricWithName_data, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_ClusterMetricWithName_data(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Data, nil }, nil, - ec.marshalNNullableFloat2ᚕgithubᚗcomᚋClusterCockpitᚋccᚑlibᚋv2ᚋschemaᚐFloatᚄ, + func(ctx context.Context, selections ast.SelectionSet, v []schema.Float) graphql.Marshaler { + return ec.marshalNNullableFloat2ᚕgithubᚗcomᚋClusterCockpitᚋccᚑlibᚋv2ᚋschemaᚐFloatᚄ(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_ClusterMetricWithName_data(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "ClusterMetricWithName", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type NullableFloat does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("ClusterMetricWithName", field, false, false, errors.New("field of type NullableFloat does not have child fields")) } func (ec *executionContext) _ClusterMetrics_nodeCount(ctx context.Context, field graphql.CollectedField, obj *model.ClusterMetrics) (ret graphql.Marshaler) { @@ -3746,28 +4714,22 @@ func (ec *executionContext) _ClusterMetrics_nodeCount(ctx context.Context, field ctx, ec.OperationContext, field, - ec.fieldContext_ClusterMetrics_nodeCount, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_ClusterMetrics_nodeCount(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.NodeCount, nil }, nil, - ec.marshalNInt2int, + func(ctx context.Context, selections ast.SelectionSet, v int) graphql.Marshaler { + return ec.marshalNInt2int(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_ClusterMetrics_nodeCount(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "ClusterMetrics", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Int does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("ClusterMetrics", field, false, false, errors.New("field of type Int does not have child fields")) } func (ec *executionContext) _ClusterMetrics_metrics(ctx context.Context, field graphql.CollectedField, obj *model.ClusterMetrics) (ret graphql.Marshaler) { @@ -3775,17 +4737,20 @@ func (ec *executionContext) _ClusterMetrics_metrics(ctx context.Context, field g ctx, ec.OperationContext, field, - ec.fieldContext_ClusterMetrics_metrics, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_ClusterMetrics_metrics(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Metrics, nil }, nil, - ec.marshalNClusterMetricWithName2ᚕᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐClusterMetricWithNameᚄ, + func(ctx context.Context, selections ast.SelectionSet, v []*model.ClusterMetricWithName) graphql.Marshaler { + return ec.marshalNClusterMetricWithName2ᚕᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐClusterMetricWithNameᚄ(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_ClusterMetrics_metrics(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ Object: "ClusterMetrics", @@ -3793,17 +4758,7 @@ func (ec *executionContext) fieldContext_ClusterMetrics_metrics(_ context.Contex IsMethod: false, IsResolver: false, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - switch field.Name { - case "name": - return ec.fieldContext_ClusterMetricWithName_name(ctx, field) - case "unit": - return ec.fieldContext_ClusterMetricWithName_unit(ctx, field) - case "timestep": - return ec.fieldContext_ClusterMetricWithName_timestep(ctx, field) - case "data": - return ec.fieldContext_ClusterMetricWithName_data(ctx, field) - } - return nil, fmt.Errorf("no field named %q was found under type ClusterMetricWithName", field.Name) + return ec.childFields_ClusterMetricWithName(ctx, field) }, } return fc, nil @@ -3814,28 +4769,22 @@ func (ec *executionContext) _ClusterSupport_cluster(ctx context.Context, field g ctx, ec.OperationContext, field, - ec.fieldContext_ClusterSupport_cluster, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_ClusterSupport_cluster(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Cluster, nil }, nil, - ec.marshalNString2string, + func(ctx context.Context, selections ast.SelectionSet, v string) graphql.Marshaler { + return ec.marshalNString2string(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_ClusterSupport_cluster(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "ClusterSupport", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type String does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("ClusterSupport", field, false, false, errors.New("field of type String does not have child fields")) } func (ec *executionContext) _ClusterSupport_subClusters(ctx context.Context, field graphql.CollectedField, obj *schema.ClusterSupport) (ret graphql.Marshaler) { @@ -3843,28 +4792,22 @@ func (ec *executionContext) _ClusterSupport_subClusters(ctx context.Context, fie ctx, ec.OperationContext, field, - ec.fieldContext_ClusterSupport_subClusters, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_ClusterSupport_subClusters(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.SubClusters, nil }, nil, - ec.marshalNString2ᚕstringᚄ, + func(ctx context.Context, selections ast.SelectionSet, v []string) graphql.Marshaler { + return ec.marshalNString2ᚕstringᚄ(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_ClusterSupport_subClusters(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "ClusterSupport", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type String does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("ClusterSupport", field, false, false, errors.New("field of type String does not have child fields")) } func (ec *executionContext) _Count_name(ctx context.Context, field graphql.CollectedField, obj *model.Count) (ret graphql.Marshaler) { @@ -3872,28 +4815,22 @@ func (ec *executionContext) _Count_name(ctx context.Context, field graphql.Colle ctx, ec.OperationContext, field, - ec.fieldContext_Count_name, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_Count_name(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Name, nil }, nil, - ec.marshalNString2string, + func(ctx context.Context, selections ast.SelectionSet, v string) graphql.Marshaler { + return ec.marshalNString2string(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_Count_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "Count", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type String does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("Count", field, false, false, errors.New("field of type String does not have child fields")) } func (ec *executionContext) _Count_count(ctx context.Context, field graphql.CollectedField, obj *model.Count) (ret graphql.Marshaler) { @@ -3901,28 +4838,22 @@ func (ec *executionContext) _Count_count(ctx context.Context, field graphql.Coll ctx, ec.OperationContext, field, - ec.fieldContext_Count_count, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_Count_count(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Count, nil }, nil, - ec.marshalNInt2int, + func(ctx context.Context, selections ast.SelectionSet, v int) graphql.Marshaler { + return ec.marshalNInt2int(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_Count_count(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "Count", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Int does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("Count", field, false, false, errors.New("field of type Int does not have child fields")) } func (ec *executionContext) _EnergyFootprintValue_hardware(ctx context.Context, field graphql.CollectedField, obj *model.EnergyFootprintValue) (ret graphql.Marshaler) { @@ -3930,28 +4861,22 @@ func (ec *executionContext) _EnergyFootprintValue_hardware(ctx context.Context, ctx, ec.OperationContext, field, - ec.fieldContext_EnergyFootprintValue_hardware, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_EnergyFootprintValue_hardware(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Hardware, nil }, nil, - ec.marshalNString2string, + func(ctx context.Context, selections ast.SelectionSet, v string) graphql.Marshaler { + return ec.marshalNString2string(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_EnergyFootprintValue_hardware(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "EnergyFootprintValue", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type String does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("EnergyFootprintValue", field, false, false, errors.New("field of type String does not have child fields")) } func (ec *executionContext) _EnergyFootprintValue_metric(ctx context.Context, field graphql.CollectedField, obj *model.EnergyFootprintValue) (ret graphql.Marshaler) { @@ -3959,28 +4884,22 @@ func (ec *executionContext) _EnergyFootprintValue_metric(ctx context.Context, fi ctx, ec.OperationContext, field, - ec.fieldContext_EnergyFootprintValue_metric, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_EnergyFootprintValue_metric(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Metric, nil }, nil, - ec.marshalNString2string, + func(ctx context.Context, selections ast.SelectionSet, v string) graphql.Marshaler { + return ec.marshalNString2string(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_EnergyFootprintValue_metric(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "EnergyFootprintValue", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type String does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("EnergyFootprintValue", field, false, false, errors.New("field of type String does not have child fields")) } func (ec *executionContext) _EnergyFootprintValue_value(ctx context.Context, field graphql.CollectedField, obj *model.EnergyFootprintValue) (ret graphql.Marshaler) { @@ -3988,28 +4907,22 @@ func (ec *executionContext) _EnergyFootprintValue_value(ctx context.Context, fie ctx, ec.OperationContext, field, - ec.fieldContext_EnergyFootprintValue_value, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_EnergyFootprintValue_value(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Value, nil }, nil, - ec.marshalNFloat2float64, + func(ctx context.Context, selections ast.SelectionSet, v float64) graphql.Marshaler { + return ec.marshalNFloat2float64(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_EnergyFootprintValue_value(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "EnergyFootprintValue", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Float does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("EnergyFootprintValue", field, false, false, errors.New("field of type Float does not have child fields")) } func (ec *executionContext) _FootprintValue_name(ctx context.Context, field graphql.CollectedField, obj *model.FootprintValue) (ret graphql.Marshaler) { @@ -4017,28 +4930,22 @@ func (ec *executionContext) _FootprintValue_name(ctx context.Context, field grap ctx, ec.OperationContext, field, - ec.fieldContext_FootprintValue_name, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_FootprintValue_name(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Name, nil }, nil, - ec.marshalNString2string, + func(ctx context.Context, selections ast.SelectionSet, v string) graphql.Marshaler { + return ec.marshalNString2string(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_FootprintValue_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "FootprintValue", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type String does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("FootprintValue", field, false, false, errors.New("field of type String does not have child fields")) } func (ec *executionContext) _FootprintValue_stat(ctx context.Context, field graphql.CollectedField, obj *model.FootprintValue) (ret graphql.Marshaler) { @@ -4046,28 +4953,22 @@ func (ec *executionContext) _FootprintValue_stat(ctx context.Context, field grap ctx, ec.OperationContext, field, - ec.fieldContext_FootprintValue_stat, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_FootprintValue_stat(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Stat, nil }, nil, - ec.marshalNString2string, + func(ctx context.Context, selections ast.SelectionSet, v string) graphql.Marshaler { + return ec.marshalNString2string(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_FootprintValue_stat(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "FootprintValue", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type String does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("FootprintValue", field, false, false, errors.New("field of type String does not have child fields")) } func (ec *executionContext) _FootprintValue_value(ctx context.Context, field graphql.CollectedField, obj *model.FootprintValue) (ret graphql.Marshaler) { @@ -4075,28 +4976,22 @@ func (ec *executionContext) _FootprintValue_value(ctx context.Context, field gra ctx, ec.OperationContext, field, - ec.fieldContext_FootprintValue_value, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_FootprintValue_value(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Value, nil }, nil, - ec.marshalNFloat2float64, + func(ctx context.Context, selections ast.SelectionSet, v float64) graphql.Marshaler { + return ec.marshalNFloat2float64(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_FootprintValue_value(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "FootprintValue", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Float does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("FootprintValue", field, false, false, errors.New("field of type Float does not have child fields")) } func (ec *executionContext) _Footprints_timeWeights(ctx context.Context, field graphql.CollectedField, obj *model.Footprints) (ret graphql.Marshaler) { @@ -4104,17 +4999,20 @@ func (ec *executionContext) _Footprints_timeWeights(ctx context.Context, field g ctx, ec.OperationContext, field, - ec.fieldContext_Footprints_timeWeights, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_Footprints_timeWeights(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.TimeWeights, nil }, nil, - ec.marshalNTimeWeights2ᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐTimeWeights, + func(ctx context.Context, selections ast.SelectionSet, v *model.TimeWeights) graphql.Marshaler { + return ec.marshalNTimeWeights2ᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐTimeWeights(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_Footprints_timeWeights(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ Object: "Footprints", @@ -4122,15 +5020,7 @@ func (ec *executionContext) fieldContext_Footprints_timeWeights(_ context.Contex IsMethod: false, IsResolver: false, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - switch field.Name { - case "nodeHours": - return ec.fieldContext_TimeWeights_nodeHours(ctx, field) - case "accHours": - return ec.fieldContext_TimeWeights_accHours(ctx, field) - case "coreHours": - return ec.fieldContext_TimeWeights_coreHours(ctx, field) - } - return nil, fmt.Errorf("no field named %q was found under type TimeWeights", field.Name) + return ec.childFields_TimeWeights(ctx, field) }, } return fc, nil @@ -4141,17 +5031,20 @@ func (ec *executionContext) _Footprints_metrics(ctx context.Context, field graph ctx, ec.OperationContext, field, - ec.fieldContext_Footprints_metrics, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_Footprints_metrics(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Metrics, nil }, nil, - ec.marshalNMetricFootprints2ᚕᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐMetricFootprintsᚄ, + func(ctx context.Context, selections ast.SelectionSet, v []*model.MetricFootprints) graphql.Marshaler { + return ec.marshalNMetricFootprints2ᚕᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐMetricFootprintsᚄ(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_Footprints_metrics(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ Object: "Footprints", @@ -4159,13 +5052,7 @@ func (ec *executionContext) fieldContext_Footprints_metrics(_ context.Context, f IsMethod: false, IsResolver: false, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - switch field.Name { - case "metric": - return ec.fieldContext_MetricFootprints_metric(ctx, field) - case "data": - return ec.fieldContext_MetricFootprints_data(ctx, field) - } - return nil, fmt.Errorf("no field named %q was found under type MetricFootprints", field.Name) + return ec.childFields_MetricFootprints(ctx, field) }, } return fc, nil @@ -4176,28 +5063,22 @@ func (ec *executionContext) _GlobalMetricListItem_name(ctx context.Context, fiel ctx, ec.OperationContext, field, - ec.fieldContext_GlobalMetricListItem_name, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_GlobalMetricListItem_name(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Name, nil }, nil, - ec.marshalNString2string, + func(ctx context.Context, selections ast.SelectionSet, v string) graphql.Marshaler { + return ec.marshalNString2string(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_GlobalMetricListItem_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "GlobalMetricListItem", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type String does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("GlobalMetricListItem", field, false, false, errors.New("field of type String does not have child fields")) } func (ec *executionContext) _GlobalMetricListItem_unit(ctx context.Context, field graphql.CollectedField, obj *schema.GlobalMetricListItem) (ret graphql.Marshaler) { @@ -4205,17 +5086,20 @@ func (ec *executionContext) _GlobalMetricListItem_unit(ctx context.Context, fiel ctx, ec.OperationContext, field, - ec.fieldContext_GlobalMetricListItem_unit, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_GlobalMetricListItem_unit(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Unit, nil }, nil, - ec.marshalNUnit2githubᚗcomᚋClusterCockpitᚋccᚑlibᚋv2ᚋschemaᚐUnit, + func(ctx context.Context, selections ast.SelectionSet, v schema.Unit) graphql.Marshaler { + return ec.marshalNUnit2githubᚗcomᚋClusterCockpitᚋccᚑlibᚋv2ᚋschemaᚐUnit(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_GlobalMetricListItem_unit(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ Object: "GlobalMetricListItem", @@ -4223,13 +5107,7 @@ func (ec *executionContext) fieldContext_GlobalMetricListItem_unit(_ context.Con IsMethod: false, IsResolver: false, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - switch field.Name { - case "base": - return ec.fieldContext_Unit_base(ctx, field) - case "prefix": - return ec.fieldContext_Unit_prefix(ctx, field) - } - return nil, fmt.Errorf("no field named %q was found under type Unit", field.Name) + return ec.childFields_Unit(ctx, field) }, } return fc, nil @@ -4240,28 +5118,22 @@ func (ec *executionContext) _GlobalMetricListItem_scope(ctx context.Context, fie ctx, ec.OperationContext, field, - ec.fieldContext_GlobalMetricListItem_scope, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_GlobalMetricListItem_scope(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Scope, nil }, nil, - ec.marshalNMetricScope2githubᚗcomᚋClusterCockpitᚋccᚑlibᚋv2ᚋschemaᚐMetricScope, + func(ctx context.Context, selections ast.SelectionSet, v schema.MetricScope) graphql.Marshaler { + return ec.marshalNMetricScope2githubᚗcomᚋClusterCockpitᚋccᚑlibᚋv2ᚋschemaᚐMetricScope(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_GlobalMetricListItem_scope(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "GlobalMetricListItem", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type MetricScope does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("GlobalMetricListItem", field, false, false, errors.New("field of type MetricScope does not have child fields")) } func (ec *executionContext) _GlobalMetricListItem_footprint(ctx context.Context, field graphql.CollectedField, obj *schema.GlobalMetricListItem) (ret graphql.Marshaler) { @@ -4269,28 +5141,22 @@ func (ec *executionContext) _GlobalMetricListItem_footprint(ctx context.Context, ctx, ec.OperationContext, field, - ec.fieldContext_GlobalMetricListItem_footprint, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_GlobalMetricListItem_footprint(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Footprint, nil }, nil, - ec.marshalOString2string, + func(ctx context.Context, selections ast.SelectionSet, v string) graphql.Marshaler { + return ec.marshalOString2string(ctx, selections, v) + }, true, false, ) } - func (ec *executionContext) fieldContext_GlobalMetricListItem_footprint(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "GlobalMetricListItem", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type String does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("GlobalMetricListItem", field, false, false, errors.New("field of type String does not have child fields")) } func (ec *executionContext) _GlobalMetricListItem_availability(ctx context.Context, field graphql.CollectedField, obj *schema.GlobalMetricListItem) (ret graphql.Marshaler) { @@ -4298,17 +5164,20 @@ func (ec *executionContext) _GlobalMetricListItem_availability(ctx context.Conte ctx, ec.OperationContext, field, - ec.fieldContext_GlobalMetricListItem_availability, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_GlobalMetricListItem_availability(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Availability, nil }, nil, - ec.marshalNClusterSupport2ᚕgithubᚗcomᚋClusterCockpitᚋccᚑlibᚋv2ᚋschemaᚐClusterSupportᚄ, + func(ctx context.Context, selections ast.SelectionSet, v []schema.ClusterSupport) graphql.Marshaler { + return ec.marshalNClusterSupport2ᚕgithubᚗcomᚋClusterCockpitᚋccᚑlibᚋv2ᚋschemaᚐClusterSupportᚄ(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_GlobalMetricListItem_availability(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ Object: "GlobalMetricListItem", @@ -4316,13 +5185,7 @@ func (ec *executionContext) fieldContext_GlobalMetricListItem_availability(_ con IsMethod: false, IsResolver: false, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - switch field.Name { - case "cluster": - return ec.fieldContext_ClusterSupport_cluster(ctx, field) - case "subClusters": - return ec.fieldContext_ClusterSupport_subClusters(ctx, field) - } - return nil, fmt.Errorf("no field named %q was found under type ClusterSupport", field.Name) + return ec.childFields_ClusterSupport(ctx, field) }, } return fc, nil @@ -4333,28 +5196,22 @@ func (ec *executionContext) _HistoPoint_count(ctx context.Context, field graphql ctx, ec.OperationContext, field, - ec.fieldContext_HistoPoint_count, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_HistoPoint_count(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Count, nil }, nil, - ec.marshalNInt2int, + func(ctx context.Context, selections ast.SelectionSet, v int) graphql.Marshaler { + return ec.marshalNInt2int(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_HistoPoint_count(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "HistoPoint", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Int does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("HistoPoint", field, false, false, errors.New("field of type Int does not have child fields")) } func (ec *executionContext) _HistoPoint_value(ctx context.Context, field graphql.CollectedField, obj *model.HistoPoint) (ret graphql.Marshaler) { @@ -4362,28 +5219,22 @@ func (ec *executionContext) _HistoPoint_value(ctx context.Context, field graphql ctx, ec.OperationContext, field, - ec.fieldContext_HistoPoint_value, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_HistoPoint_value(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Value, nil }, nil, - ec.marshalNInt2int, + func(ctx context.Context, selections ast.SelectionSet, v int) graphql.Marshaler { + return ec.marshalNInt2int(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_HistoPoint_value(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "HistoPoint", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Int does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("HistoPoint", field, false, false, errors.New("field of type Int does not have child fields")) } func (ec *executionContext) _IntRangeOutput_from(ctx context.Context, field graphql.CollectedField, obj *model.IntRangeOutput) (ret graphql.Marshaler) { @@ -4391,28 +5242,22 @@ func (ec *executionContext) _IntRangeOutput_from(ctx context.Context, field grap ctx, ec.OperationContext, field, - ec.fieldContext_IntRangeOutput_from, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_IntRangeOutput_from(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.From, nil }, nil, - ec.marshalNInt2int, + func(ctx context.Context, selections ast.SelectionSet, v int) graphql.Marshaler { + return ec.marshalNInt2int(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_IntRangeOutput_from(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "IntRangeOutput", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Int does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("IntRangeOutput", field, false, false, errors.New("field of type Int does not have child fields")) } func (ec *executionContext) _IntRangeOutput_to(ctx context.Context, field graphql.CollectedField, obj *model.IntRangeOutput) (ret graphql.Marshaler) { @@ -4420,28 +5265,22 @@ func (ec *executionContext) _IntRangeOutput_to(ctx context.Context, field graphq ctx, ec.OperationContext, field, - ec.fieldContext_IntRangeOutput_to, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_IntRangeOutput_to(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.To, nil }, nil, - ec.marshalNInt2int, + func(ctx context.Context, selections ast.SelectionSet, v int) graphql.Marshaler { + return ec.marshalNInt2int(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_IntRangeOutput_to(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "IntRangeOutput", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Int does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("IntRangeOutput", field, false, false, errors.New("field of type Int does not have child fields")) } func (ec *executionContext) _Job_id(ctx context.Context, field graphql.CollectedField, obj *schema.Job) (ret graphql.Marshaler) { @@ -4449,28 +5288,22 @@ func (ec *executionContext) _Job_id(ctx context.Context, field graphql.Collected ctx, ec.OperationContext, field, - ec.fieldContext_Job_id, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_Job_id(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.ID, nil }, nil, - ec.marshalNID2ᚖint64, + func(ctx context.Context, selections ast.SelectionSet, v *int64) graphql.Marshaler { + return ec.marshalNID2ᚖint64(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_Job_id(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "Job", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type ID does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("Job", field, false, false, errors.New("field of type ID does not have child fields")) } func (ec *executionContext) _Job_jobId(ctx context.Context, field graphql.CollectedField, obj *schema.Job) (ret graphql.Marshaler) { @@ -4478,28 +5311,22 @@ func (ec *executionContext) _Job_jobId(ctx context.Context, field graphql.Collec ctx, ec.OperationContext, field, - ec.fieldContext_Job_jobId, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_Job_jobId(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.JobID, nil }, nil, - ec.marshalNInt2int64, + func(ctx context.Context, selections ast.SelectionSet, v int64) graphql.Marshaler { + return ec.marshalNInt2int64(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_Job_jobId(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "Job", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Int does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("Job", field, false, false, errors.New("field of type Int does not have child fields")) } func (ec *executionContext) _Job_user(ctx context.Context, field graphql.CollectedField, obj *schema.Job) (ret graphql.Marshaler) { @@ -4507,28 +5334,22 @@ func (ec *executionContext) _Job_user(ctx context.Context, field graphql.Collect ctx, ec.OperationContext, field, - ec.fieldContext_Job_user, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_Job_user(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.User, nil }, nil, - ec.marshalNString2string, + func(ctx context.Context, selections ast.SelectionSet, v string) graphql.Marshaler { + return ec.marshalNString2string(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_Job_user(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "Job", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type String does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("Job", field, false, false, errors.New("field of type String does not have child fields")) } func (ec *executionContext) _Job_project(ctx context.Context, field graphql.CollectedField, obj *schema.Job) (ret graphql.Marshaler) { @@ -4536,28 +5357,22 @@ func (ec *executionContext) _Job_project(ctx context.Context, field graphql.Coll ctx, ec.OperationContext, field, - ec.fieldContext_Job_project, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_Job_project(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Project, nil }, nil, - ec.marshalNString2string, + func(ctx context.Context, selections ast.SelectionSet, v string) graphql.Marshaler { + return ec.marshalNString2string(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_Job_project(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "Job", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type String does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("Job", field, false, false, errors.New("field of type String does not have child fields")) } func (ec *executionContext) _Job_cluster(ctx context.Context, field graphql.CollectedField, obj *schema.Job) (ret graphql.Marshaler) { @@ -4565,28 +5380,22 @@ func (ec *executionContext) _Job_cluster(ctx context.Context, field graphql.Coll ctx, ec.OperationContext, field, - ec.fieldContext_Job_cluster, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_Job_cluster(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Cluster, nil }, nil, - ec.marshalNString2string, + func(ctx context.Context, selections ast.SelectionSet, v string) graphql.Marshaler { + return ec.marshalNString2string(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_Job_cluster(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "Job", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type String does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("Job", field, false, false, errors.New("field of type String does not have child fields")) } func (ec *executionContext) _Job_subCluster(ctx context.Context, field graphql.CollectedField, obj *schema.Job) (ret graphql.Marshaler) { @@ -4594,28 +5403,22 @@ func (ec *executionContext) _Job_subCluster(ctx context.Context, field graphql.C ctx, ec.OperationContext, field, - ec.fieldContext_Job_subCluster, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_Job_subCluster(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.SubCluster, nil }, nil, - ec.marshalNString2string, + func(ctx context.Context, selections ast.SelectionSet, v string) graphql.Marshaler { + return ec.marshalNString2string(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_Job_subCluster(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "Job", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type String does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("Job", field, false, false, errors.New("field of type String does not have child fields")) } func (ec *executionContext) _Job_startTime(ctx context.Context, field graphql.CollectedField, obj *schema.Job) (ret graphql.Marshaler) { @@ -4623,28 +5426,22 @@ func (ec *executionContext) _Job_startTime(ctx context.Context, field graphql.Co ctx, ec.OperationContext, field, - ec.fieldContext_Job_startTime, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_Job_startTime(ctx, field) + }, func(ctx context.Context) (any, error) { return ec.Resolvers.Job().StartTime(ctx, obj) }, nil, - ec.marshalNTime2ᚖtimeᚐTime, + func(ctx context.Context, selections ast.SelectionSet, v *time.Time) graphql.Marshaler { + return ec.marshalNTime2ᚖtimeᚐTime(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_Job_startTime(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "Job", - Field: field, - IsMethod: true, - IsResolver: true, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Time does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("Job", field, true, true, errors.New("field of type Time does not have child fields")) } func (ec *executionContext) _Job_duration(ctx context.Context, field graphql.CollectedField, obj *schema.Job) (ret graphql.Marshaler) { @@ -4652,28 +5449,22 @@ func (ec *executionContext) _Job_duration(ctx context.Context, field graphql.Col ctx, ec.OperationContext, field, - ec.fieldContext_Job_duration, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_Job_duration(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Duration, nil }, nil, - ec.marshalNInt2int32, + func(ctx context.Context, selections ast.SelectionSet, v int32) graphql.Marshaler { + return ec.marshalNInt2int32(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_Job_duration(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "Job", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Int does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("Job", field, false, false, errors.New("field of type Int does not have child fields")) } func (ec *executionContext) _Job_walltime(ctx context.Context, field graphql.CollectedField, obj *schema.Job) (ret graphql.Marshaler) { @@ -4681,28 +5472,22 @@ func (ec *executionContext) _Job_walltime(ctx context.Context, field graphql.Col ctx, ec.OperationContext, field, - ec.fieldContext_Job_walltime, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_Job_walltime(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Walltime, nil }, nil, - ec.marshalNInt2int64, + func(ctx context.Context, selections ast.SelectionSet, v int64) graphql.Marshaler { + return ec.marshalNInt2int64(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_Job_walltime(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "Job", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Int does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("Job", field, false, false, errors.New("field of type Int does not have child fields")) } func (ec *executionContext) _Job_numNodes(ctx context.Context, field graphql.CollectedField, obj *schema.Job) (ret graphql.Marshaler) { @@ -4710,28 +5495,22 @@ func (ec *executionContext) _Job_numNodes(ctx context.Context, field graphql.Col ctx, ec.OperationContext, field, - ec.fieldContext_Job_numNodes, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_Job_numNodes(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.NumNodes, nil }, nil, - ec.marshalNInt2int32, + func(ctx context.Context, selections ast.SelectionSet, v int32) graphql.Marshaler { + return ec.marshalNInt2int32(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_Job_numNodes(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "Job", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Int does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("Job", field, false, false, errors.New("field of type Int does not have child fields")) } func (ec *executionContext) _Job_numHWThreads(ctx context.Context, field graphql.CollectedField, obj *schema.Job) (ret graphql.Marshaler) { @@ -4739,28 +5518,22 @@ func (ec *executionContext) _Job_numHWThreads(ctx context.Context, field graphql ctx, ec.OperationContext, field, - ec.fieldContext_Job_numHWThreads, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_Job_numHWThreads(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.NumHWThreads, nil }, nil, - ec.marshalNInt2int32, + func(ctx context.Context, selections ast.SelectionSet, v int32) graphql.Marshaler { + return ec.marshalNInt2int32(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_Job_numHWThreads(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "Job", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Int does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("Job", field, false, false, errors.New("field of type Int does not have child fields")) } func (ec *executionContext) _Job_numAcc(ctx context.Context, field graphql.CollectedField, obj *schema.Job) (ret graphql.Marshaler) { @@ -4768,28 +5541,22 @@ func (ec *executionContext) _Job_numAcc(ctx context.Context, field graphql.Colle ctx, ec.OperationContext, field, - ec.fieldContext_Job_numAcc, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_Job_numAcc(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.NumAcc, nil }, nil, - ec.marshalNInt2int32, + func(ctx context.Context, selections ast.SelectionSet, v int32) graphql.Marshaler { + return ec.marshalNInt2int32(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_Job_numAcc(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "Job", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Int does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("Job", field, false, false, errors.New("field of type Int does not have child fields")) } func (ec *executionContext) _Job_energy(ctx context.Context, field graphql.CollectedField, obj *schema.Job) (ret graphql.Marshaler) { @@ -4797,28 +5564,22 @@ func (ec *executionContext) _Job_energy(ctx context.Context, field graphql.Colle ctx, ec.OperationContext, field, - ec.fieldContext_Job_energy, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_Job_energy(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Energy, nil }, nil, - ec.marshalNFloat2float64, + func(ctx context.Context, selections ast.SelectionSet, v float64) graphql.Marshaler { + return ec.marshalNFloat2float64(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_Job_energy(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "Job", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Float does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("Job", field, false, false, errors.New("field of type Float does not have child fields")) } func (ec *executionContext) _Job_SMT(ctx context.Context, field graphql.CollectedField, obj *schema.Job) (ret graphql.Marshaler) { @@ -4826,28 +5587,22 @@ func (ec *executionContext) _Job_SMT(ctx context.Context, field graphql.Collecte ctx, ec.OperationContext, field, - ec.fieldContext_Job_SMT, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_Job_SMT(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.SMT, nil }, nil, - ec.marshalNInt2int32, + func(ctx context.Context, selections ast.SelectionSet, v int32) graphql.Marshaler { + return ec.marshalNInt2int32(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_Job_SMT(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "Job", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Int does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("Job", field, false, false, errors.New("field of type Int does not have child fields")) } func (ec *executionContext) _Job_shared(ctx context.Context, field graphql.CollectedField, obj *schema.Job) (ret graphql.Marshaler) { @@ -4855,28 +5610,22 @@ func (ec *executionContext) _Job_shared(ctx context.Context, field graphql.Colle ctx, ec.OperationContext, field, - ec.fieldContext_Job_shared, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_Job_shared(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Shared, nil }, nil, - ec.marshalNString2string, + func(ctx context.Context, selections ast.SelectionSet, v string) graphql.Marshaler { + return ec.marshalNString2string(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_Job_shared(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "Job", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type String does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("Job", field, false, false, errors.New("field of type String does not have child fields")) } func (ec *executionContext) _Job_partition(ctx context.Context, field graphql.CollectedField, obj *schema.Job) (ret graphql.Marshaler) { @@ -4884,28 +5633,22 @@ func (ec *executionContext) _Job_partition(ctx context.Context, field graphql.Co ctx, ec.OperationContext, field, - ec.fieldContext_Job_partition, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_Job_partition(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Partition, nil }, nil, - ec.marshalNString2string, + func(ctx context.Context, selections ast.SelectionSet, v string) graphql.Marshaler { + return ec.marshalNString2string(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_Job_partition(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "Job", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type String does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("Job", field, false, false, errors.New("field of type String does not have child fields")) } func (ec *executionContext) _Job_arrayJobId(ctx context.Context, field graphql.CollectedField, obj *schema.Job) (ret graphql.Marshaler) { @@ -4913,28 +5656,22 @@ func (ec *executionContext) _Job_arrayJobId(ctx context.Context, field graphql.C ctx, ec.OperationContext, field, - ec.fieldContext_Job_arrayJobId, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_Job_arrayJobId(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.ArrayJobID, nil }, nil, - ec.marshalNInt2int64, + func(ctx context.Context, selections ast.SelectionSet, v int64) graphql.Marshaler { + return ec.marshalNInt2int64(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_Job_arrayJobId(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "Job", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Int does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("Job", field, false, false, errors.New("field of type Int does not have child fields")) } func (ec *executionContext) _Job_monitoringStatus(ctx context.Context, field graphql.CollectedField, obj *schema.Job) (ret graphql.Marshaler) { @@ -4942,28 +5679,22 @@ func (ec *executionContext) _Job_monitoringStatus(ctx context.Context, field gra ctx, ec.OperationContext, field, - ec.fieldContext_Job_monitoringStatus, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_Job_monitoringStatus(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.MonitoringStatus, nil }, nil, - ec.marshalNInt2int32, + func(ctx context.Context, selections ast.SelectionSet, v int32) graphql.Marshaler { + return ec.marshalNInt2int32(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_Job_monitoringStatus(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "Job", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Int does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("Job", field, false, false, errors.New("field of type Int does not have child fields")) } func (ec *executionContext) _Job_state(ctx context.Context, field graphql.CollectedField, obj *schema.Job) (ret graphql.Marshaler) { @@ -4971,28 +5702,22 @@ func (ec *executionContext) _Job_state(ctx context.Context, field graphql.Collec ctx, ec.OperationContext, field, - ec.fieldContext_Job_state, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_Job_state(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.State, nil }, nil, - ec.marshalNJobState2githubᚗcomᚋClusterCockpitᚋccᚑlibᚋv2ᚋschemaᚐJobState, + func(ctx context.Context, selections ast.SelectionSet, v schema.JobState) graphql.Marshaler { + return ec.marshalNJobState2githubᚗcomᚋClusterCockpitᚋccᚑlibᚋv2ᚋschemaᚐJobState(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_Job_state(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "Job", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type JobState does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("Job", field, false, false, errors.New("field of type JobState does not have child fields")) } func (ec *executionContext) _Job_tags(ctx context.Context, field graphql.CollectedField, obj *schema.Job) (ret graphql.Marshaler) { @@ -5000,17 +5725,20 @@ func (ec *executionContext) _Job_tags(ctx context.Context, field graphql.Collect ctx, ec.OperationContext, field, - ec.fieldContext_Job_tags, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_Job_tags(ctx, field) + }, func(ctx context.Context) (any, error) { return ec.Resolvers.Job().Tags(ctx, obj) }, nil, - ec.marshalNTag2ᚕᚖgithubᚗcomᚋClusterCockpitᚋccᚑlibᚋv2ᚋschemaᚐTagᚄ, + func(ctx context.Context, selections ast.SelectionSet, v []*schema.Tag) graphql.Marshaler { + return ec.marshalNTag2ᚕᚖgithubᚗcomᚋClusterCockpitᚋccᚑlibᚋv2ᚋschemaᚐTagᚄ(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_Job_tags(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ Object: "Job", @@ -5018,17 +5746,7 @@ func (ec *executionContext) fieldContext_Job_tags(_ context.Context, field graph IsMethod: true, IsResolver: true, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - switch field.Name { - case "id": - return ec.fieldContext_Tag_id(ctx, field) - case "type": - return ec.fieldContext_Tag_type(ctx, field) - case "name": - return ec.fieldContext_Tag_name(ctx, field) - case "scope": - return ec.fieldContext_Tag_scope(ctx, field) - } - return nil, fmt.Errorf("no field named %q was found under type Tag", field.Name) + return ec.childFields_Tag(ctx, field) }, } return fc, nil @@ -5039,17 +5757,20 @@ func (ec *executionContext) _Job_resources(ctx context.Context, field graphql.Co ctx, ec.OperationContext, field, - ec.fieldContext_Job_resources, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_Job_resources(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Resources, nil }, nil, - ec.marshalNResource2ᚕᚖgithubᚗcomᚋClusterCockpitᚋccᚑlibᚋv2ᚋschemaᚐResourceᚄ, + func(ctx context.Context, selections ast.SelectionSet, v []*schema.Resource) graphql.Marshaler { + return ec.marshalNResource2ᚕᚖgithubᚗcomᚋClusterCockpitᚋccᚑlibᚋv2ᚋschemaᚐResourceᚄ(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_Job_resources(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ Object: "Job", @@ -5057,17 +5778,7 @@ func (ec *executionContext) fieldContext_Job_resources(_ context.Context, field IsMethod: false, IsResolver: false, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - switch field.Name { - case "hostname": - return ec.fieldContext_Resource_hostname(ctx, field) - case "hwthreads": - return ec.fieldContext_Resource_hwthreads(ctx, field) - case "accelerators": - return ec.fieldContext_Resource_accelerators(ctx, field) - case "configuration": - return ec.fieldContext_Resource_configuration(ctx, field) - } - return nil, fmt.Errorf("no field named %q was found under type Resource", field.Name) + return ec.childFields_Resource(ctx, field) }, } return fc, nil @@ -5078,17 +5789,20 @@ func (ec *executionContext) _Job_concurrentJobs(ctx context.Context, field graph ctx, ec.OperationContext, field, - ec.fieldContext_Job_concurrentJobs, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_Job_concurrentJobs(ctx, field) + }, func(ctx context.Context) (any, error) { return ec.Resolvers.Job().ConcurrentJobs(ctx, obj) }, nil, - ec.marshalOJobLinkResultList2ᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐJobLinkResultList, + func(ctx context.Context, selections ast.SelectionSet, v *model.JobLinkResultList) graphql.Marshaler { + return ec.marshalOJobLinkResultList2ᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐJobLinkResultList(ctx, selections, v) + }, true, false, ) } - func (ec *executionContext) fieldContext_Job_concurrentJobs(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ Object: "Job", @@ -5096,15 +5810,7 @@ func (ec *executionContext) fieldContext_Job_concurrentJobs(_ context.Context, f IsMethod: true, IsResolver: true, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - switch field.Name { - case "listQuery": - return ec.fieldContext_JobLinkResultList_listQuery(ctx, field) - case "items": - return ec.fieldContext_JobLinkResultList_items(ctx, field) - case "count": - return ec.fieldContext_JobLinkResultList_count(ctx, field) - } - return nil, fmt.Errorf("no field named %q was found under type JobLinkResultList", field.Name) + return ec.childFields_JobLinkResultList(ctx, field) }, } return fc, nil @@ -5115,17 +5821,20 @@ func (ec *executionContext) _Job_footprint(ctx context.Context, field graphql.Co ctx, ec.OperationContext, field, - ec.fieldContext_Job_footprint, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_Job_footprint(ctx, field) + }, func(ctx context.Context) (any, error) { return ec.Resolvers.Job().Footprint(ctx, obj) }, nil, - ec.marshalOFootprintValue2ᚕᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐFootprintValue, + func(ctx context.Context, selections ast.SelectionSet, v []*model.FootprintValue) graphql.Marshaler { + return ec.marshalOFootprintValue2ᚕᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐFootprintValue(ctx, selections, v) + }, true, false, ) } - func (ec *executionContext) fieldContext_Job_footprint(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ Object: "Job", @@ -5133,15 +5842,7 @@ func (ec *executionContext) fieldContext_Job_footprint(_ context.Context, field IsMethod: true, IsResolver: true, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - switch field.Name { - case "name": - return ec.fieldContext_FootprintValue_name(ctx, field) - case "stat": - return ec.fieldContext_FootprintValue_stat(ctx, field) - case "value": - return ec.fieldContext_FootprintValue_value(ctx, field) - } - return nil, fmt.Errorf("no field named %q was found under type FootprintValue", field.Name) + return ec.childFields_FootprintValue(ctx, field) }, } return fc, nil @@ -5152,17 +5853,20 @@ func (ec *executionContext) _Job_energyFootprint(ctx context.Context, field grap ctx, ec.OperationContext, field, - ec.fieldContext_Job_energyFootprint, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_Job_energyFootprint(ctx, field) + }, func(ctx context.Context) (any, error) { return ec.Resolvers.Job().EnergyFootprint(ctx, obj) }, nil, - ec.marshalOEnergyFootprintValue2ᚕᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐEnergyFootprintValue, + func(ctx context.Context, selections ast.SelectionSet, v []*model.EnergyFootprintValue) graphql.Marshaler { + return ec.marshalOEnergyFootprintValue2ᚕᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐEnergyFootprintValue(ctx, selections, v) + }, true, false, ) } - func (ec *executionContext) fieldContext_Job_energyFootprint(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ Object: "Job", @@ -5170,15 +5874,7 @@ func (ec *executionContext) fieldContext_Job_energyFootprint(_ context.Context, IsMethod: true, IsResolver: true, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - switch field.Name { - case "hardware": - return ec.fieldContext_EnergyFootprintValue_hardware(ctx, field) - case "metric": - return ec.fieldContext_EnergyFootprintValue_metric(ctx, field) - case "value": - return ec.fieldContext_EnergyFootprintValue_value(ctx, field) - } - return nil, fmt.Errorf("no field named %q was found under type EnergyFootprintValue", field.Name) + return ec.childFields_EnergyFootprintValue(ctx, field) }, } return fc, nil @@ -5189,28 +5885,22 @@ func (ec *executionContext) _Job_metaData(ctx context.Context, field graphql.Col ctx, ec.OperationContext, field, - ec.fieldContext_Job_metaData, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_Job_metaData(ctx, field) + }, func(ctx context.Context) (any, error) { return ec.Resolvers.Job().MetaData(ctx, obj) }, nil, - ec.marshalOAny2interface, + func(ctx context.Context, selections ast.SelectionSet, v any) graphql.Marshaler { + return ec.marshalOAny2interface(ctx, selections, v) + }, true, false, ) } - func (ec *executionContext) fieldContext_Job_metaData(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "Job", - Field: field, - IsMethod: true, - IsResolver: true, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Any does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("Job", field, true, true, errors.New("field of type Any does not have child fields")) } func (ec *executionContext) _Job_userData(ctx context.Context, field graphql.CollectedField, obj *schema.Job) (ret graphql.Marshaler) { @@ -5218,17 +5908,20 @@ func (ec *executionContext) _Job_userData(ctx context.Context, field graphql.Col ctx, ec.OperationContext, field, - ec.fieldContext_Job_userData, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_Job_userData(ctx, field) + }, func(ctx context.Context) (any, error) { return ec.Resolvers.Job().UserData(ctx, obj) }, nil, - ec.marshalOUser2ᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐUser, + func(ctx context.Context, selections ast.SelectionSet, v *model.User) graphql.Marshaler { + return ec.marshalOUser2ᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐUser(ctx, selections, v) + }, true, false, ) } - func (ec *executionContext) fieldContext_Job_userData(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ Object: "Job", @@ -5236,15 +5929,7 @@ func (ec *executionContext) fieldContext_Job_userData(_ context.Context, field g IsMethod: true, IsResolver: true, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - switch field.Name { - case "username": - return ec.fieldContext_User_username(ctx, field) - case "name": - return ec.fieldContext_User_name(ctx, field) - case "email": - return ec.fieldContext_User_email(ctx, field) - } - return nil, fmt.Errorf("no field named %q was found under type User", field.Name) + return ec.childFields_User(ctx, field) }, } return fc, nil @@ -5255,28 +5940,22 @@ func (ec *executionContext) _JobLink_id(ctx context.Context, field graphql.Colle ctx, ec.OperationContext, field, - ec.fieldContext_JobLink_id, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_JobLink_id(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.ID, nil }, nil, - ec.marshalNID2string, + func(ctx context.Context, selections ast.SelectionSet, v string) graphql.Marshaler { + return ec.marshalNID2string(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_JobLink_id(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "JobLink", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type ID does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("JobLink", field, false, false, errors.New("field of type ID does not have child fields")) } func (ec *executionContext) _JobLink_jobId(ctx context.Context, field graphql.CollectedField, obj *model.JobLink) (ret graphql.Marshaler) { @@ -5284,28 +5963,22 @@ func (ec *executionContext) _JobLink_jobId(ctx context.Context, field graphql.Co ctx, ec.OperationContext, field, - ec.fieldContext_JobLink_jobId, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_JobLink_jobId(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.JobID, nil }, nil, - ec.marshalNInt2int, + func(ctx context.Context, selections ast.SelectionSet, v int) graphql.Marshaler { + return ec.marshalNInt2int(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_JobLink_jobId(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "JobLink", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Int does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("JobLink", field, false, false, errors.New("field of type Int does not have child fields")) } func (ec *executionContext) _JobLinkResultList_listQuery(ctx context.Context, field graphql.CollectedField, obj *model.JobLinkResultList) (ret graphql.Marshaler) { @@ -5313,28 +5986,22 @@ func (ec *executionContext) _JobLinkResultList_listQuery(ctx context.Context, fi ctx, ec.OperationContext, field, - ec.fieldContext_JobLinkResultList_listQuery, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_JobLinkResultList_listQuery(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.ListQuery, nil }, nil, - ec.marshalOString2ᚖstring, + func(ctx context.Context, selections ast.SelectionSet, v *string) graphql.Marshaler { + return ec.marshalOString2ᚖstring(ctx, selections, v) + }, true, false, ) } - func (ec *executionContext) fieldContext_JobLinkResultList_listQuery(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "JobLinkResultList", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type String does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("JobLinkResultList", field, false, false, errors.New("field of type String does not have child fields")) } func (ec *executionContext) _JobLinkResultList_items(ctx context.Context, field graphql.CollectedField, obj *model.JobLinkResultList) (ret graphql.Marshaler) { @@ -5342,17 +6009,20 @@ func (ec *executionContext) _JobLinkResultList_items(ctx context.Context, field ctx, ec.OperationContext, field, - ec.fieldContext_JobLinkResultList_items, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_JobLinkResultList_items(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Items, nil }, nil, - ec.marshalNJobLink2ᚕᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐJobLinkᚄ, + func(ctx context.Context, selections ast.SelectionSet, v []*model.JobLink) graphql.Marshaler { + return ec.marshalNJobLink2ᚕᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐJobLinkᚄ(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_JobLinkResultList_items(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ Object: "JobLinkResultList", @@ -5360,13 +6030,7 @@ func (ec *executionContext) fieldContext_JobLinkResultList_items(_ context.Conte IsMethod: false, IsResolver: false, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - switch field.Name { - case "id": - return ec.fieldContext_JobLink_id(ctx, field) - case "jobId": - return ec.fieldContext_JobLink_jobId(ctx, field) - } - return nil, fmt.Errorf("no field named %q was found under type JobLink", field.Name) + return ec.childFields_JobLink(ctx, field) }, } return fc, nil @@ -5377,28 +6041,22 @@ func (ec *executionContext) _JobLinkResultList_count(ctx context.Context, field ctx, ec.OperationContext, field, - ec.fieldContext_JobLinkResultList_count, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_JobLinkResultList_count(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Count, nil }, nil, - ec.marshalOInt2ᚖint, + func(ctx context.Context, selections ast.SelectionSet, v *int) graphql.Marshaler { + return ec.marshalOInt2ᚖint(ctx, selections, v) + }, true, false, ) } - func (ec *executionContext) fieldContext_JobLinkResultList_count(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "JobLinkResultList", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Int does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("JobLinkResultList", field, false, false, errors.New("field of type Int does not have child fields")) } func (ec *executionContext) _JobMetric_unit(ctx context.Context, field graphql.CollectedField, obj *schema.JobMetric) (ret graphql.Marshaler) { @@ -5406,17 +6064,20 @@ func (ec *executionContext) _JobMetric_unit(ctx context.Context, field graphql.C ctx, ec.OperationContext, field, - ec.fieldContext_JobMetric_unit, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_JobMetric_unit(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Unit, nil }, nil, - ec.marshalOUnit2githubᚗcomᚋClusterCockpitᚋccᚑlibᚋv2ᚋschemaᚐUnit, + func(ctx context.Context, selections ast.SelectionSet, v schema.Unit) graphql.Marshaler { + return ec.marshalOUnit2githubᚗcomᚋClusterCockpitᚋccᚑlibᚋv2ᚋschemaᚐUnit(ctx, selections, v) + }, true, false, ) } - func (ec *executionContext) fieldContext_JobMetric_unit(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ Object: "JobMetric", @@ -5424,13 +6085,7 @@ func (ec *executionContext) fieldContext_JobMetric_unit(_ context.Context, field IsMethod: false, IsResolver: false, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - switch field.Name { - case "base": - return ec.fieldContext_Unit_base(ctx, field) - case "prefix": - return ec.fieldContext_Unit_prefix(ctx, field) - } - return nil, fmt.Errorf("no field named %q was found under type Unit", field.Name) + return ec.childFields_Unit(ctx, field) }, } return fc, nil @@ -5441,28 +6096,22 @@ func (ec *executionContext) _JobMetric_timestep(ctx context.Context, field graph ctx, ec.OperationContext, field, - ec.fieldContext_JobMetric_timestep, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_JobMetric_timestep(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Timestep, nil }, nil, - ec.marshalNInt2int, + func(ctx context.Context, selections ast.SelectionSet, v int) graphql.Marshaler { + return ec.marshalNInt2int(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_JobMetric_timestep(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "JobMetric", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Int does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("JobMetric", field, false, false, errors.New("field of type Int does not have child fields")) } func (ec *executionContext) _JobMetric_series(ctx context.Context, field graphql.CollectedField, obj *schema.JobMetric) (ret graphql.Marshaler) { @@ -5470,17 +6119,20 @@ func (ec *executionContext) _JobMetric_series(ctx context.Context, field graphql ctx, ec.OperationContext, field, - ec.fieldContext_JobMetric_series, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_JobMetric_series(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Series, nil }, nil, - ec.marshalOSeries2ᚕgithubᚗcomᚋClusterCockpitᚋccᚑlibᚋv2ᚋschemaᚐSeriesᚄ, + func(ctx context.Context, selections ast.SelectionSet, v []schema.Series) graphql.Marshaler { + return ec.marshalOSeries2ᚕgithubᚗcomᚋClusterCockpitᚋccᚑlibᚋv2ᚋschemaᚐSeriesᚄ(ctx, selections, v) + }, true, false, ) } - func (ec *executionContext) fieldContext_JobMetric_series(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ Object: "JobMetric", @@ -5488,17 +6140,7 @@ func (ec *executionContext) fieldContext_JobMetric_series(_ context.Context, fie IsMethod: false, IsResolver: false, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - switch field.Name { - case "hostname": - return ec.fieldContext_Series_hostname(ctx, field) - case "id": - return ec.fieldContext_Series_id(ctx, field) - case "statistics": - return ec.fieldContext_Series_statistics(ctx, field) - case "data": - return ec.fieldContext_Series_data(ctx, field) - } - return nil, fmt.Errorf("no field named %q was found under type Series", field.Name) + return ec.childFields_Series(ctx, field) }, } return fc, nil @@ -5509,17 +6151,20 @@ func (ec *executionContext) _JobMetric_statisticsSeries(ctx context.Context, fie ctx, ec.OperationContext, field, - ec.fieldContext_JobMetric_statisticsSeries, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_JobMetric_statisticsSeries(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.StatisticsSeries, nil }, nil, - ec.marshalOStatsSeries2ᚖgithubᚗcomᚋClusterCockpitᚋccᚑlibᚋv2ᚋschemaᚐStatsSeries, + func(ctx context.Context, selections ast.SelectionSet, v *schema.StatsSeries) graphql.Marshaler { + return ec.marshalOStatsSeries2ᚖgithubᚗcomᚋClusterCockpitᚋccᚑlibᚋv2ᚋschemaᚐStatsSeries(ctx, selections, v) + }, true, false, ) } - func (ec *executionContext) fieldContext_JobMetric_statisticsSeries(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ Object: "JobMetric", @@ -5527,17 +6172,7 @@ func (ec *executionContext) fieldContext_JobMetric_statisticsSeries(_ context.Co IsMethod: false, IsResolver: false, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - switch field.Name { - case "mean": - return ec.fieldContext_StatsSeries_mean(ctx, field) - case "median": - return ec.fieldContext_StatsSeries_median(ctx, field) - case "min": - return ec.fieldContext_StatsSeries_min(ctx, field) - case "max": - return ec.fieldContext_StatsSeries_max(ctx, field) - } - return nil, fmt.Errorf("no field named %q was found under type StatsSeries", field.Name) + return ec.childFields_StatsSeries(ctx, field) }, } return fc, nil @@ -5548,28 +6183,22 @@ func (ec *executionContext) _JobMetricWithName_name(ctx context.Context, field g ctx, ec.OperationContext, field, - ec.fieldContext_JobMetricWithName_name, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_JobMetricWithName_name(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Name, nil }, nil, - ec.marshalNString2string, + func(ctx context.Context, selections ast.SelectionSet, v string) graphql.Marshaler { + return ec.marshalNString2string(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_JobMetricWithName_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "JobMetricWithName", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type String does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("JobMetricWithName", field, false, false, errors.New("field of type String does not have child fields")) } func (ec *executionContext) _JobMetricWithName_scope(ctx context.Context, field graphql.CollectedField, obj *model.JobMetricWithName) (ret graphql.Marshaler) { @@ -5577,28 +6206,22 @@ func (ec *executionContext) _JobMetricWithName_scope(ctx context.Context, field ctx, ec.OperationContext, field, - ec.fieldContext_JobMetricWithName_scope, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_JobMetricWithName_scope(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Scope, nil }, nil, - ec.marshalNMetricScope2githubᚗcomᚋClusterCockpitᚋccᚑlibᚋv2ᚋschemaᚐMetricScope, + func(ctx context.Context, selections ast.SelectionSet, v schema.MetricScope) graphql.Marshaler { + return ec.marshalNMetricScope2githubᚗcomᚋClusterCockpitᚋccᚑlibᚋv2ᚋschemaᚐMetricScope(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_JobMetricWithName_scope(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "JobMetricWithName", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type MetricScope does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("JobMetricWithName", field, false, false, errors.New("field of type MetricScope does not have child fields")) } func (ec *executionContext) _JobMetricWithName_metric(ctx context.Context, field graphql.CollectedField, obj *model.JobMetricWithName) (ret graphql.Marshaler) { @@ -5606,17 +6229,20 @@ func (ec *executionContext) _JobMetricWithName_metric(ctx context.Context, field ctx, ec.OperationContext, field, - ec.fieldContext_JobMetricWithName_metric, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_JobMetricWithName_metric(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Metric, nil }, nil, - ec.marshalNJobMetric2ᚖgithubᚗcomᚋClusterCockpitᚋccᚑlibᚋv2ᚋschemaᚐJobMetric, + func(ctx context.Context, selections ast.SelectionSet, v *schema.JobMetric) graphql.Marshaler { + return ec.marshalNJobMetric2ᚖgithubᚗcomᚋClusterCockpitᚋccᚑlibᚋv2ᚋschemaᚐJobMetric(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_JobMetricWithName_metric(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ Object: "JobMetricWithName", @@ -5624,17 +6250,7 @@ func (ec *executionContext) fieldContext_JobMetricWithName_metric(_ context.Cont IsMethod: false, IsResolver: false, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - switch field.Name { - case "unit": - return ec.fieldContext_JobMetric_unit(ctx, field) - case "timestep": - return ec.fieldContext_JobMetric_timestep(ctx, field) - case "series": - return ec.fieldContext_JobMetric_series(ctx, field) - case "statisticsSeries": - return ec.fieldContext_JobMetric_statisticsSeries(ctx, field) - } - return nil, fmt.Errorf("no field named %q was found under type JobMetric", field.Name) + return ec.childFields_JobMetric(ctx, field) }, } return fc, nil @@ -5645,17 +6261,20 @@ func (ec *executionContext) _JobResultList_items(ctx context.Context, field grap ctx, ec.OperationContext, field, - ec.fieldContext_JobResultList_items, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_JobResultList_items(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Items, nil }, nil, - ec.marshalNJob2ᚕᚖgithubᚗcomᚋClusterCockpitᚋccᚑlibᚋv2ᚋschemaᚐJobᚄ, + func(ctx context.Context, selections ast.SelectionSet, v []*schema.Job) graphql.Marshaler { + return ec.marshalNJob2ᚕᚖgithubᚗcomᚋClusterCockpitᚋccᚑlibᚋv2ᚋschemaᚐJobᚄ(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_JobResultList_items(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ Object: "JobResultList", @@ -5663,61 +6282,7 @@ func (ec *executionContext) fieldContext_JobResultList_items(_ context.Context, IsMethod: false, IsResolver: false, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - switch field.Name { - case "id": - return ec.fieldContext_Job_id(ctx, field) - case "jobId": - return ec.fieldContext_Job_jobId(ctx, field) - case "user": - return ec.fieldContext_Job_user(ctx, field) - case "project": - return ec.fieldContext_Job_project(ctx, field) - case "cluster": - return ec.fieldContext_Job_cluster(ctx, field) - case "subCluster": - return ec.fieldContext_Job_subCluster(ctx, field) - case "startTime": - return ec.fieldContext_Job_startTime(ctx, field) - case "duration": - return ec.fieldContext_Job_duration(ctx, field) - case "walltime": - return ec.fieldContext_Job_walltime(ctx, field) - case "numNodes": - return ec.fieldContext_Job_numNodes(ctx, field) - case "numHWThreads": - return ec.fieldContext_Job_numHWThreads(ctx, field) - case "numAcc": - return ec.fieldContext_Job_numAcc(ctx, field) - case "energy": - return ec.fieldContext_Job_energy(ctx, field) - case "SMT": - return ec.fieldContext_Job_SMT(ctx, field) - case "shared": - return ec.fieldContext_Job_shared(ctx, field) - case "partition": - return ec.fieldContext_Job_partition(ctx, field) - case "arrayJobId": - return ec.fieldContext_Job_arrayJobId(ctx, field) - case "monitoringStatus": - return ec.fieldContext_Job_monitoringStatus(ctx, field) - case "state": - return ec.fieldContext_Job_state(ctx, field) - case "tags": - return ec.fieldContext_Job_tags(ctx, field) - case "resources": - return ec.fieldContext_Job_resources(ctx, field) - case "concurrentJobs": - return ec.fieldContext_Job_concurrentJobs(ctx, field) - case "footprint": - return ec.fieldContext_Job_footprint(ctx, field) - case "energyFootprint": - return ec.fieldContext_Job_energyFootprint(ctx, field) - case "metaData": - return ec.fieldContext_Job_metaData(ctx, field) - case "userData": - return ec.fieldContext_Job_userData(ctx, field) - } - return nil, fmt.Errorf("no field named %q was found under type Job", field.Name) + return ec.childFields_Job(ctx, field) }, } return fc, nil @@ -5728,28 +6293,22 @@ func (ec *executionContext) _JobResultList_offset(ctx context.Context, field gra ctx, ec.OperationContext, field, - ec.fieldContext_JobResultList_offset, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_JobResultList_offset(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Offset, nil }, nil, - ec.marshalOInt2ᚖint, + func(ctx context.Context, selections ast.SelectionSet, v *int) graphql.Marshaler { + return ec.marshalOInt2ᚖint(ctx, selections, v) + }, true, false, ) } - func (ec *executionContext) fieldContext_JobResultList_offset(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "JobResultList", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Int does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("JobResultList", field, false, false, errors.New("field of type Int does not have child fields")) } func (ec *executionContext) _JobResultList_limit(ctx context.Context, field graphql.CollectedField, obj *model.JobResultList) (ret graphql.Marshaler) { @@ -5757,28 +6316,22 @@ func (ec *executionContext) _JobResultList_limit(ctx context.Context, field grap ctx, ec.OperationContext, field, - ec.fieldContext_JobResultList_limit, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_JobResultList_limit(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Limit, nil }, nil, - ec.marshalOInt2ᚖint, + func(ctx context.Context, selections ast.SelectionSet, v *int) graphql.Marshaler { + return ec.marshalOInt2ᚖint(ctx, selections, v) + }, true, false, ) } - func (ec *executionContext) fieldContext_JobResultList_limit(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "JobResultList", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Int does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("JobResultList", field, false, false, errors.New("field of type Int does not have child fields")) } func (ec *executionContext) _JobResultList_count(ctx context.Context, field graphql.CollectedField, obj *model.JobResultList) (ret graphql.Marshaler) { @@ -5786,28 +6339,22 @@ func (ec *executionContext) _JobResultList_count(ctx context.Context, field grap ctx, ec.OperationContext, field, - ec.fieldContext_JobResultList_count, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_JobResultList_count(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Count, nil }, nil, - ec.marshalOInt2ᚖint, + func(ctx context.Context, selections ast.SelectionSet, v *int) graphql.Marshaler { + return ec.marshalOInt2ᚖint(ctx, selections, v) + }, true, false, ) } - func (ec *executionContext) fieldContext_JobResultList_count(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "JobResultList", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Int does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("JobResultList", field, false, false, errors.New("field of type Int does not have child fields")) } func (ec *executionContext) _JobResultList_hasNextPage(ctx context.Context, field graphql.CollectedField, obj *model.JobResultList) (ret graphql.Marshaler) { @@ -5815,28 +6362,22 @@ func (ec *executionContext) _JobResultList_hasNextPage(ctx context.Context, fiel ctx, ec.OperationContext, field, - ec.fieldContext_JobResultList_hasNextPage, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_JobResultList_hasNextPage(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.HasNextPage, nil }, nil, - ec.marshalOBoolean2ᚖbool, + func(ctx context.Context, selections ast.SelectionSet, v *bool) graphql.Marshaler { + return ec.marshalOBoolean2ᚖbool(ctx, selections, v) + }, true, false, ) } - func (ec *executionContext) fieldContext_JobResultList_hasNextPage(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "JobResultList", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Boolean does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("JobResultList", field, false, false, errors.New("field of type Boolean does not have child fields")) } func (ec *executionContext) _JobStats_id(ctx context.Context, field graphql.CollectedField, obj *model.JobStats) (ret graphql.Marshaler) { @@ -5844,28 +6385,22 @@ func (ec *executionContext) _JobStats_id(ctx context.Context, field graphql.Coll ctx, ec.OperationContext, field, - ec.fieldContext_JobStats_id, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_JobStats_id(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.ID, nil }, nil, - ec.marshalNInt2int, + func(ctx context.Context, selections ast.SelectionSet, v int) graphql.Marshaler { + return ec.marshalNInt2int(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_JobStats_id(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "JobStats", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Int does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("JobStats", field, false, false, errors.New("field of type Int does not have child fields")) } func (ec *executionContext) _JobStats_jobId(ctx context.Context, field graphql.CollectedField, obj *model.JobStats) (ret graphql.Marshaler) { @@ -5873,28 +6408,22 @@ func (ec *executionContext) _JobStats_jobId(ctx context.Context, field graphql.C ctx, ec.OperationContext, field, - ec.fieldContext_JobStats_jobId, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_JobStats_jobId(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.JobID, nil }, nil, - ec.marshalNString2string, + func(ctx context.Context, selections ast.SelectionSet, v string) graphql.Marshaler { + return ec.marshalNString2string(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_JobStats_jobId(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "JobStats", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type String does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("JobStats", field, false, false, errors.New("field of type String does not have child fields")) } func (ec *executionContext) _JobStats_startTime(ctx context.Context, field graphql.CollectedField, obj *model.JobStats) (ret graphql.Marshaler) { @@ -5902,28 +6431,22 @@ func (ec *executionContext) _JobStats_startTime(ctx context.Context, field graph ctx, ec.OperationContext, field, - ec.fieldContext_JobStats_startTime, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_JobStats_startTime(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.StartTime, nil }, nil, - ec.marshalNInt2int, + func(ctx context.Context, selections ast.SelectionSet, v int) graphql.Marshaler { + return ec.marshalNInt2int(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_JobStats_startTime(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "JobStats", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Int does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("JobStats", field, false, false, errors.New("field of type Int does not have child fields")) } func (ec *executionContext) _JobStats_duration(ctx context.Context, field graphql.CollectedField, obj *model.JobStats) (ret graphql.Marshaler) { @@ -5931,28 +6454,22 @@ func (ec *executionContext) _JobStats_duration(ctx context.Context, field graphq ctx, ec.OperationContext, field, - ec.fieldContext_JobStats_duration, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_JobStats_duration(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Duration, nil }, nil, - ec.marshalNInt2int, + func(ctx context.Context, selections ast.SelectionSet, v int) graphql.Marshaler { + return ec.marshalNInt2int(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_JobStats_duration(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "JobStats", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Int does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("JobStats", field, false, false, errors.New("field of type Int does not have child fields")) } func (ec *executionContext) _JobStats_cluster(ctx context.Context, field graphql.CollectedField, obj *model.JobStats) (ret graphql.Marshaler) { @@ -5960,28 +6477,22 @@ func (ec *executionContext) _JobStats_cluster(ctx context.Context, field graphql ctx, ec.OperationContext, field, - ec.fieldContext_JobStats_cluster, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_JobStats_cluster(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Cluster, nil }, nil, - ec.marshalNString2string, + func(ctx context.Context, selections ast.SelectionSet, v string) graphql.Marshaler { + return ec.marshalNString2string(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_JobStats_cluster(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "JobStats", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type String does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("JobStats", field, false, false, errors.New("field of type String does not have child fields")) } func (ec *executionContext) _JobStats_subCluster(ctx context.Context, field graphql.CollectedField, obj *model.JobStats) (ret graphql.Marshaler) { @@ -5989,28 +6500,22 @@ func (ec *executionContext) _JobStats_subCluster(ctx context.Context, field grap ctx, ec.OperationContext, field, - ec.fieldContext_JobStats_subCluster, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_JobStats_subCluster(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.SubCluster, nil }, nil, - ec.marshalNString2string, + func(ctx context.Context, selections ast.SelectionSet, v string) graphql.Marshaler { + return ec.marshalNString2string(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_JobStats_subCluster(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "JobStats", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type String does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("JobStats", field, false, false, errors.New("field of type String does not have child fields")) } func (ec *executionContext) _JobStats_numNodes(ctx context.Context, field graphql.CollectedField, obj *model.JobStats) (ret graphql.Marshaler) { @@ -6018,28 +6523,22 @@ func (ec *executionContext) _JobStats_numNodes(ctx context.Context, field graphq ctx, ec.OperationContext, field, - ec.fieldContext_JobStats_numNodes, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_JobStats_numNodes(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.NumNodes, nil }, nil, - ec.marshalNInt2int, + func(ctx context.Context, selections ast.SelectionSet, v int) graphql.Marshaler { + return ec.marshalNInt2int(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_JobStats_numNodes(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "JobStats", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Int does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("JobStats", field, false, false, errors.New("field of type Int does not have child fields")) } func (ec *executionContext) _JobStats_numHWThreads(ctx context.Context, field graphql.CollectedField, obj *model.JobStats) (ret graphql.Marshaler) { @@ -6047,28 +6546,22 @@ func (ec *executionContext) _JobStats_numHWThreads(ctx context.Context, field gr ctx, ec.OperationContext, field, - ec.fieldContext_JobStats_numHWThreads, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_JobStats_numHWThreads(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.NumHWThreads, nil }, nil, - ec.marshalOInt2ᚖint, + func(ctx context.Context, selections ast.SelectionSet, v *int) graphql.Marshaler { + return ec.marshalOInt2ᚖint(ctx, selections, v) + }, true, false, ) } - func (ec *executionContext) fieldContext_JobStats_numHWThreads(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "JobStats", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Int does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("JobStats", field, false, false, errors.New("field of type Int does not have child fields")) } func (ec *executionContext) _JobStats_numAccelerators(ctx context.Context, field graphql.CollectedField, obj *model.JobStats) (ret graphql.Marshaler) { @@ -6076,28 +6569,22 @@ func (ec *executionContext) _JobStats_numAccelerators(ctx context.Context, field ctx, ec.OperationContext, field, - ec.fieldContext_JobStats_numAccelerators, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_JobStats_numAccelerators(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.NumAccelerators, nil }, nil, - ec.marshalOInt2ᚖint, + func(ctx context.Context, selections ast.SelectionSet, v *int) graphql.Marshaler { + return ec.marshalOInt2ᚖint(ctx, selections, v) + }, true, false, ) } - func (ec *executionContext) fieldContext_JobStats_numAccelerators(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "JobStats", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Int does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("JobStats", field, false, false, errors.New("field of type Int does not have child fields")) } func (ec *executionContext) _JobStats_stats(ctx context.Context, field graphql.CollectedField, obj *model.JobStats) (ret graphql.Marshaler) { @@ -6105,17 +6592,20 @@ func (ec *executionContext) _JobStats_stats(ctx context.Context, field graphql.C ctx, ec.OperationContext, field, - ec.fieldContext_JobStats_stats, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_JobStats_stats(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Stats, nil }, nil, - ec.marshalNNamedStats2ᚕᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐNamedStatsᚄ, + func(ctx context.Context, selections ast.SelectionSet, v []*model.NamedStats) graphql.Marshaler { + return ec.marshalNNamedStats2ᚕᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐNamedStatsᚄ(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_JobStats_stats(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ Object: "JobStats", @@ -6123,13 +6613,7 @@ func (ec *executionContext) fieldContext_JobStats_stats(_ context.Context, field IsMethod: false, IsResolver: false, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - switch field.Name { - case "name": - return ec.fieldContext_NamedStats_name(ctx, field) - case "data": - return ec.fieldContext_NamedStats_data(ctx, field) - } - return nil, fmt.Errorf("no field named %q was found under type NamedStats", field.Name) + return ec.childFields_NamedStats(ctx, field) }, } return fc, nil @@ -6140,28 +6624,22 @@ func (ec *executionContext) _JobsStatistics_id(ctx context.Context, field graphq ctx, ec.OperationContext, field, - ec.fieldContext_JobsStatistics_id, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_JobsStatistics_id(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.ID, nil }, nil, - ec.marshalNID2string, + func(ctx context.Context, selections ast.SelectionSet, v string) graphql.Marshaler { + return ec.marshalNID2string(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_JobsStatistics_id(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "JobsStatistics", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type ID does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("JobsStatistics", field, false, false, errors.New("field of type ID does not have child fields")) } func (ec *executionContext) _JobsStatistics_name(ctx context.Context, field graphql.CollectedField, obj *model.JobsStatistics) (ret graphql.Marshaler) { @@ -6169,28 +6647,22 @@ func (ec *executionContext) _JobsStatistics_name(ctx context.Context, field grap ctx, ec.OperationContext, field, - ec.fieldContext_JobsStatistics_name, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_JobsStatistics_name(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Name, nil }, nil, - ec.marshalNString2string, + func(ctx context.Context, selections ast.SelectionSet, v string) graphql.Marshaler { + return ec.marshalNString2string(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_JobsStatistics_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "JobsStatistics", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type String does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("JobsStatistics", field, false, false, errors.New("field of type String does not have child fields")) } func (ec *executionContext) _JobsStatistics_totalUsers(ctx context.Context, field graphql.CollectedField, obj *model.JobsStatistics) (ret graphql.Marshaler) { @@ -6198,28 +6670,22 @@ func (ec *executionContext) _JobsStatistics_totalUsers(ctx context.Context, fiel ctx, ec.OperationContext, field, - ec.fieldContext_JobsStatistics_totalUsers, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_JobsStatistics_totalUsers(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.TotalUsers, nil }, nil, - ec.marshalNInt2int, + func(ctx context.Context, selections ast.SelectionSet, v int) graphql.Marshaler { + return ec.marshalNInt2int(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_JobsStatistics_totalUsers(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "JobsStatistics", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Int does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("JobsStatistics", field, false, false, errors.New("field of type Int does not have child fields")) } func (ec *executionContext) _JobsStatistics_totalJobs(ctx context.Context, field graphql.CollectedField, obj *model.JobsStatistics) (ret graphql.Marshaler) { @@ -6227,28 +6693,22 @@ func (ec *executionContext) _JobsStatistics_totalJobs(ctx context.Context, field ctx, ec.OperationContext, field, - ec.fieldContext_JobsStatistics_totalJobs, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_JobsStatistics_totalJobs(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.TotalJobs, nil }, nil, - ec.marshalNInt2int, + func(ctx context.Context, selections ast.SelectionSet, v int) graphql.Marshaler { + return ec.marshalNInt2int(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_JobsStatistics_totalJobs(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "JobsStatistics", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Int does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("JobsStatistics", field, false, false, errors.New("field of type Int does not have child fields")) } func (ec *executionContext) _JobsStatistics_runningJobs(ctx context.Context, field graphql.CollectedField, obj *model.JobsStatistics) (ret graphql.Marshaler) { @@ -6256,28 +6716,22 @@ func (ec *executionContext) _JobsStatistics_runningJobs(ctx context.Context, fie ctx, ec.OperationContext, field, - ec.fieldContext_JobsStatistics_runningJobs, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_JobsStatistics_runningJobs(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.RunningJobs, nil }, nil, - ec.marshalNInt2int, + func(ctx context.Context, selections ast.SelectionSet, v int) graphql.Marshaler { + return ec.marshalNInt2int(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_JobsStatistics_runningJobs(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "JobsStatistics", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Int does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("JobsStatistics", field, false, false, errors.New("field of type Int does not have child fields")) } func (ec *executionContext) _JobsStatistics_shortJobs(ctx context.Context, field graphql.CollectedField, obj *model.JobsStatistics) (ret graphql.Marshaler) { @@ -6285,28 +6739,22 @@ func (ec *executionContext) _JobsStatistics_shortJobs(ctx context.Context, field ctx, ec.OperationContext, field, - ec.fieldContext_JobsStatistics_shortJobs, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_JobsStatistics_shortJobs(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.ShortJobs, nil }, nil, - ec.marshalNInt2int, + func(ctx context.Context, selections ast.SelectionSet, v int) graphql.Marshaler { + return ec.marshalNInt2int(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_JobsStatistics_shortJobs(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "JobsStatistics", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Int does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("JobsStatistics", field, false, false, errors.New("field of type Int does not have child fields")) } func (ec *executionContext) _JobsStatistics_totalWalltime(ctx context.Context, field graphql.CollectedField, obj *model.JobsStatistics) (ret graphql.Marshaler) { @@ -6314,28 +6762,22 @@ func (ec *executionContext) _JobsStatistics_totalWalltime(ctx context.Context, f ctx, ec.OperationContext, field, - ec.fieldContext_JobsStatistics_totalWalltime, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_JobsStatistics_totalWalltime(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.TotalWalltime, nil }, nil, - ec.marshalNInt2int, + func(ctx context.Context, selections ast.SelectionSet, v int) graphql.Marshaler { + return ec.marshalNInt2int(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_JobsStatistics_totalWalltime(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "JobsStatistics", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Int does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("JobsStatistics", field, false, false, errors.New("field of type Int does not have child fields")) } func (ec *executionContext) _JobsStatistics_totalNodes(ctx context.Context, field graphql.CollectedField, obj *model.JobsStatistics) (ret graphql.Marshaler) { @@ -6343,28 +6785,22 @@ func (ec *executionContext) _JobsStatistics_totalNodes(ctx context.Context, fiel ctx, ec.OperationContext, field, - ec.fieldContext_JobsStatistics_totalNodes, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_JobsStatistics_totalNodes(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.TotalNodes, nil }, nil, - ec.marshalNInt2int, + func(ctx context.Context, selections ast.SelectionSet, v int) graphql.Marshaler { + return ec.marshalNInt2int(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_JobsStatistics_totalNodes(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "JobsStatistics", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Int does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("JobsStatistics", field, false, false, errors.New("field of type Int does not have child fields")) } func (ec *executionContext) _JobsStatistics_totalNodeHours(ctx context.Context, field graphql.CollectedField, obj *model.JobsStatistics) (ret graphql.Marshaler) { @@ -6372,28 +6808,22 @@ func (ec *executionContext) _JobsStatistics_totalNodeHours(ctx context.Context, ctx, ec.OperationContext, field, - ec.fieldContext_JobsStatistics_totalNodeHours, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_JobsStatistics_totalNodeHours(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.TotalNodeHours, nil }, nil, - ec.marshalNInt2int, + func(ctx context.Context, selections ast.SelectionSet, v int) graphql.Marshaler { + return ec.marshalNInt2int(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_JobsStatistics_totalNodeHours(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "JobsStatistics", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Int does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("JobsStatistics", field, false, false, errors.New("field of type Int does not have child fields")) } func (ec *executionContext) _JobsStatistics_totalCores(ctx context.Context, field graphql.CollectedField, obj *model.JobsStatistics) (ret graphql.Marshaler) { @@ -6401,28 +6831,22 @@ func (ec *executionContext) _JobsStatistics_totalCores(ctx context.Context, fiel ctx, ec.OperationContext, field, - ec.fieldContext_JobsStatistics_totalCores, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_JobsStatistics_totalCores(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.TotalCores, nil }, nil, - ec.marshalNInt2int, + func(ctx context.Context, selections ast.SelectionSet, v int) graphql.Marshaler { + return ec.marshalNInt2int(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_JobsStatistics_totalCores(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "JobsStatistics", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Int does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("JobsStatistics", field, false, false, errors.New("field of type Int does not have child fields")) } func (ec *executionContext) _JobsStatistics_totalCoreHours(ctx context.Context, field graphql.CollectedField, obj *model.JobsStatistics) (ret graphql.Marshaler) { @@ -6430,28 +6854,22 @@ func (ec *executionContext) _JobsStatistics_totalCoreHours(ctx context.Context, ctx, ec.OperationContext, field, - ec.fieldContext_JobsStatistics_totalCoreHours, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_JobsStatistics_totalCoreHours(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.TotalCoreHours, nil }, nil, - ec.marshalNInt2int, + func(ctx context.Context, selections ast.SelectionSet, v int) graphql.Marshaler { + return ec.marshalNInt2int(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_JobsStatistics_totalCoreHours(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "JobsStatistics", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Int does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("JobsStatistics", field, false, false, errors.New("field of type Int does not have child fields")) } func (ec *executionContext) _JobsStatistics_totalAccs(ctx context.Context, field graphql.CollectedField, obj *model.JobsStatistics) (ret graphql.Marshaler) { @@ -6459,28 +6877,22 @@ func (ec *executionContext) _JobsStatistics_totalAccs(ctx context.Context, field ctx, ec.OperationContext, field, - ec.fieldContext_JobsStatistics_totalAccs, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_JobsStatistics_totalAccs(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.TotalAccs, nil }, nil, - ec.marshalNInt2int, + func(ctx context.Context, selections ast.SelectionSet, v int) graphql.Marshaler { + return ec.marshalNInt2int(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_JobsStatistics_totalAccs(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "JobsStatistics", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Int does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("JobsStatistics", field, false, false, errors.New("field of type Int does not have child fields")) } func (ec *executionContext) _JobsStatistics_totalAccHours(ctx context.Context, field graphql.CollectedField, obj *model.JobsStatistics) (ret graphql.Marshaler) { @@ -6488,28 +6900,22 @@ func (ec *executionContext) _JobsStatistics_totalAccHours(ctx context.Context, f ctx, ec.OperationContext, field, - ec.fieldContext_JobsStatistics_totalAccHours, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_JobsStatistics_totalAccHours(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.TotalAccHours, nil }, nil, - ec.marshalNInt2int, + func(ctx context.Context, selections ast.SelectionSet, v int) graphql.Marshaler { + return ec.marshalNInt2int(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_JobsStatistics_totalAccHours(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "JobsStatistics", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Int does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("JobsStatistics", field, false, false, errors.New("field of type Int does not have child fields")) } func (ec *executionContext) _JobsStatistics_histDuration(ctx context.Context, field graphql.CollectedField, obj *model.JobsStatistics) (ret graphql.Marshaler) { @@ -6517,17 +6923,20 @@ func (ec *executionContext) _JobsStatistics_histDuration(ctx context.Context, fi ctx, ec.OperationContext, field, - ec.fieldContext_JobsStatistics_histDuration, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_JobsStatistics_histDuration(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.HistDuration, nil }, nil, - ec.marshalNHistoPoint2ᚕᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐHistoPointᚄ, + func(ctx context.Context, selections ast.SelectionSet, v []*model.HistoPoint) graphql.Marshaler { + return ec.marshalNHistoPoint2ᚕᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐHistoPointᚄ(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_JobsStatistics_histDuration(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ Object: "JobsStatistics", @@ -6535,13 +6944,7 @@ func (ec *executionContext) fieldContext_JobsStatistics_histDuration(_ context.C IsMethod: false, IsResolver: false, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - switch field.Name { - case "count": - return ec.fieldContext_HistoPoint_count(ctx, field) - case "value": - return ec.fieldContext_HistoPoint_value(ctx, field) - } - return nil, fmt.Errorf("no field named %q was found under type HistoPoint", field.Name) + return ec.childFields_HistoPoint(ctx, field) }, } return fc, nil @@ -6552,17 +6955,20 @@ func (ec *executionContext) _JobsStatistics_histNumNodes(ctx context.Context, fi ctx, ec.OperationContext, field, - ec.fieldContext_JobsStatistics_histNumNodes, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_JobsStatistics_histNumNodes(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.HistNumNodes, nil }, nil, - ec.marshalNHistoPoint2ᚕᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐHistoPointᚄ, + func(ctx context.Context, selections ast.SelectionSet, v []*model.HistoPoint) graphql.Marshaler { + return ec.marshalNHistoPoint2ᚕᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐHistoPointᚄ(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_JobsStatistics_histNumNodes(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ Object: "JobsStatistics", @@ -6570,13 +6976,7 @@ func (ec *executionContext) fieldContext_JobsStatistics_histNumNodes(_ context.C IsMethod: false, IsResolver: false, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - switch field.Name { - case "count": - return ec.fieldContext_HistoPoint_count(ctx, field) - case "value": - return ec.fieldContext_HistoPoint_value(ctx, field) - } - return nil, fmt.Errorf("no field named %q was found under type HistoPoint", field.Name) + return ec.childFields_HistoPoint(ctx, field) }, } return fc, nil @@ -6587,17 +6987,20 @@ func (ec *executionContext) _JobsStatistics_histNumCores(ctx context.Context, fi ctx, ec.OperationContext, field, - ec.fieldContext_JobsStatistics_histNumCores, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_JobsStatistics_histNumCores(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.HistNumCores, nil }, nil, - ec.marshalNHistoPoint2ᚕᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐHistoPointᚄ, + func(ctx context.Context, selections ast.SelectionSet, v []*model.HistoPoint) graphql.Marshaler { + return ec.marshalNHistoPoint2ᚕᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐHistoPointᚄ(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_JobsStatistics_histNumCores(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ Object: "JobsStatistics", @@ -6605,13 +7008,7 @@ func (ec *executionContext) fieldContext_JobsStatistics_histNumCores(_ context.C IsMethod: false, IsResolver: false, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - switch field.Name { - case "count": - return ec.fieldContext_HistoPoint_count(ctx, field) - case "value": - return ec.fieldContext_HistoPoint_value(ctx, field) - } - return nil, fmt.Errorf("no field named %q was found under type HistoPoint", field.Name) + return ec.childFields_HistoPoint(ctx, field) }, } return fc, nil @@ -6622,17 +7019,20 @@ func (ec *executionContext) _JobsStatistics_histNumAccs(ctx context.Context, fie ctx, ec.OperationContext, field, - ec.fieldContext_JobsStatistics_histNumAccs, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_JobsStatistics_histNumAccs(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.HistNumAccs, nil }, nil, - ec.marshalNHistoPoint2ᚕᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐHistoPointᚄ, + func(ctx context.Context, selections ast.SelectionSet, v []*model.HistoPoint) graphql.Marshaler { + return ec.marshalNHistoPoint2ᚕᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐHistoPointᚄ(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_JobsStatistics_histNumAccs(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ Object: "JobsStatistics", @@ -6640,13 +7040,7 @@ func (ec *executionContext) fieldContext_JobsStatistics_histNumAccs(_ context.Co IsMethod: false, IsResolver: false, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - switch field.Name { - case "count": - return ec.fieldContext_HistoPoint_count(ctx, field) - case "value": - return ec.fieldContext_HistoPoint_value(ctx, field) - } - return nil, fmt.Errorf("no field named %q was found under type HistoPoint", field.Name) + return ec.childFields_HistoPoint(ctx, field) }, } return fc, nil @@ -6657,17 +7051,20 @@ func (ec *executionContext) _JobsStatistics_histMetrics(ctx context.Context, fie ctx, ec.OperationContext, field, - ec.fieldContext_JobsStatistics_histMetrics, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_JobsStatistics_histMetrics(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.HistMetrics, nil }, nil, - ec.marshalNMetricHistoPoints2ᚕᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐMetricHistoPointsᚄ, + func(ctx context.Context, selections ast.SelectionSet, v []*model.MetricHistoPoints) graphql.Marshaler { + return ec.marshalNMetricHistoPoints2ᚕᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐMetricHistoPointsᚄ(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_JobsStatistics_histMetrics(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ Object: "JobsStatistics", @@ -6675,17 +7072,7 @@ func (ec *executionContext) fieldContext_JobsStatistics_histMetrics(_ context.Co IsMethod: false, IsResolver: false, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - switch field.Name { - case "metric": - return ec.fieldContext_MetricHistoPoints_metric(ctx, field) - case "unit": - return ec.fieldContext_MetricHistoPoints_unit(ctx, field) - case "stat": - return ec.fieldContext_MetricHistoPoints_stat(ctx, field) - case "data": - return ec.fieldContext_MetricHistoPoints_data(ctx, field) - } - return nil, fmt.Errorf("no field named %q was found under type MetricHistoPoints", field.Name) + return ec.childFields_MetricHistoPoints(ctx, field) }, } return fc, nil @@ -6696,28 +7083,22 @@ func (ec *executionContext) _MetricConfig_name(ctx context.Context, field graphq ctx, ec.OperationContext, field, - ec.fieldContext_MetricConfig_name, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_MetricConfig_name(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Name, nil }, nil, - ec.marshalNString2string, + func(ctx context.Context, selections ast.SelectionSet, v string) graphql.Marshaler { + return ec.marshalNString2string(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_MetricConfig_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "MetricConfig", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type String does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("MetricConfig", field, false, false, errors.New("field of type String does not have child fields")) } func (ec *executionContext) _MetricConfig_unit(ctx context.Context, field graphql.CollectedField, obj *schema.MetricConfig) (ret graphql.Marshaler) { @@ -6725,17 +7106,20 @@ func (ec *executionContext) _MetricConfig_unit(ctx context.Context, field graphq ctx, ec.OperationContext, field, - ec.fieldContext_MetricConfig_unit, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_MetricConfig_unit(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Unit, nil }, nil, - ec.marshalNUnit2githubᚗcomᚋClusterCockpitᚋccᚑlibᚋv2ᚋschemaᚐUnit, + func(ctx context.Context, selections ast.SelectionSet, v schema.Unit) graphql.Marshaler { + return ec.marshalNUnit2githubᚗcomᚋClusterCockpitᚋccᚑlibᚋv2ᚋschemaᚐUnit(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_MetricConfig_unit(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ Object: "MetricConfig", @@ -6743,13 +7127,7 @@ func (ec *executionContext) fieldContext_MetricConfig_unit(_ context.Context, fi IsMethod: false, IsResolver: false, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - switch field.Name { - case "base": - return ec.fieldContext_Unit_base(ctx, field) - case "prefix": - return ec.fieldContext_Unit_prefix(ctx, field) - } - return nil, fmt.Errorf("no field named %q was found under type Unit", field.Name) + return ec.childFields_Unit(ctx, field) }, } return fc, nil @@ -6760,28 +7138,22 @@ func (ec *executionContext) _MetricConfig_scope(ctx context.Context, field graph ctx, ec.OperationContext, field, - ec.fieldContext_MetricConfig_scope, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_MetricConfig_scope(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Scope, nil }, nil, - ec.marshalNMetricScope2githubᚗcomᚋClusterCockpitᚋccᚑlibᚋv2ᚋschemaᚐMetricScope, + func(ctx context.Context, selections ast.SelectionSet, v schema.MetricScope) graphql.Marshaler { + return ec.marshalNMetricScope2githubᚗcomᚋClusterCockpitᚋccᚑlibᚋv2ᚋschemaᚐMetricScope(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_MetricConfig_scope(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "MetricConfig", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type MetricScope does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("MetricConfig", field, false, false, errors.New("field of type MetricScope does not have child fields")) } func (ec *executionContext) _MetricConfig_aggregation(ctx context.Context, field graphql.CollectedField, obj *schema.MetricConfig) (ret graphql.Marshaler) { @@ -6789,28 +7161,22 @@ func (ec *executionContext) _MetricConfig_aggregation(ctx context.Context, field ctx, ec.OperationContext, field, - ec.fieldContext_MetricConfig_aggregation, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_MetricConfig_aggregation(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Aggregation, nil }, nil, - ec.marshalNString2string, + func(ctx context.Context, selections ast.SelectionSet, v string) graphql.Marshaler { + return ec.marshalNString2string(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_MetricConfig_aggregation(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "MetricConfig", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type String does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("MetricConfig", field, false, false, errors.New("field of type String does not have child fields")) } func (ec *executionContext) _MetricConfig_timestep(ctx context.Context, field graphql.CollectedField, obj *schema.MetricConfig) (ret graphql.Marshaler) { @@ -6818,28 +7184,22 @@ func (ec *executionContext) _MetricConfig_timestep(ctx context.Context, field gr ctx, ec.OperationContext, field, - ec.fieldContext_MetricConfig_timestep, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_MetricConfig_timestep(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Timestep, nil }, nil, - ec.marshalNInt2int, + func(ctx context.Context, selections ast.SelectionSet, v int) graphql.Marshaler { + return ec.marshalNInt2int(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_MetricConfig_timestep(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "MetricConfig", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Int does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("MetricConfig", field, false, false, errors.New("field of type Int does not have child fields")) } func (ec *executionContext) _MetricConfig_peak(ctx context.Context, field graphql.CollectedField, obj *schema.MetricConfig) (ret graphql.Marshaler) { @@ -6847,28 +7207,22 @@ func (ec *executionContext) _MetricConfig_peak(ctx context.Context, field graphq ctx, ec.OperationContext, field, - ec.fieldContext_MetricConfig_peak, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_MetricConfig_peak(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Peak, nil }, nil, - ec.marshalNFloat2float64, + func(ctx context.Context, selections ast.SelectionSet, v float64) graphql.Marshaler { + return ec.marshalNFloat2float64(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_MetricConfig_peak(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "MetricConfig", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Float does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("MetricConfig", field, false, false, errors.New("field of type Float does not have child fields")) } func (ec *executionContext) _MetricConfig_normal(ctx context.Context, field graphql.CollectedField, obj *schema.MetricConfig) (ret graphql.Marshaler) { @@ -6876,28 +7230,22 @@ func (ec *executionContext) _MetricConfig_normal(ctx context.Context, field grap ctx, ec.OperationContext, field, - ec.fieldContext_MetricConfig_normal, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_MetricConfig_normal(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Normal, nil }, nil, - ec.marshalOFloat2float64, + func(ctx context.Context, selections ast.SelectionSet, v float64) graphql.Marshaler { + return ec.marshalOFloat2float64(ctx, selections, v) + }, true, false, ) } - func (ec *executionContext) fieldContext_MetricConfig_normal(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "MetricConfig", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Float does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("MetricConfig", field, false, false, errors.New("field of type Float does not have child fields")) } func (ec *executionContext) _MetricConfig_caution(ctx context.Context, field graphql.CollectedField, obj *schema.MetricConfig) (ret graphql.Marshaler) { @@ -6905,28 +7253,22 @@ func (ec *executionContext) _MetricConfig_caution(ctx context.Context, field gra ctx, ec.OperationContext, field, - ec.fieldContext_MetricConfig_caution, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_MetricConfig_caution(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Caution, nil }, nil, - ec.marshalNFloat2float64, + func(ctx context.Context, selections ast.SelectionSet, v float64) graphql.Marshaler { + return ec.marshalNFloat2float64(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_MetricConfig_caution(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "MetricConfig", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Float does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("MetricConfig", field, false, false, errors.New("field of type Float does not have child fields")) } func (ec *executionContext) _MetricConfig_alert(ctx context.Context, field graphql.CollectedField, obj *schema.MetricConfig) (ret graphql.Marshaler) { @@ -6934,28 +7276,22 @@ func (ec *executionContext) _MetricConfig_alert(ctx context.Context, field graph ctx, ec.OperationContext, field, - ec.fieldContext_MetricConfig_alert, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_MetricConfig_alert(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Alert, nil }, nil, - ec.marshalNFloat2float64, + func(ctx context.Context, selections ast.SelectionSet, v float64) graphql.Marshaler { + return ec.marshalNFloat2float64(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_MetricConfig_alert(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "MetricConfig", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Float does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("MetricConfig", field, false, false, errors.New("field of type Float does not have child fields")) } func (ec *executionContext) _MetricConfig_lowerIsBetter(ctx context.Context, field graphql.CollectedField, obj *schema.MetricConfig) (ret graphql.Marshaler) { @@ -6963,28 +7299,22 @@ func (ec *executionContext) _MetricConfig_lowerIsBetter(ctx context.Context, fie ctx, ec.OperationContext, field, - ec.fieldContext_MetricConfig_lowerIsBetter, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_MetricConfig_lowerIsBetter(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.LowerIsBetter, nil }, nil, - ec.marshalOBoolean2bool, + func(ctx context.Context, selections ast.SelectionSet, v bool) graphql.Marshaler { + return ec.marshalOBoolean2bool(ctx, selections, v) + }, true, false, ) } - func (ec *executionContext) fieldContext_MetricConfig_lowerIsBetter(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "MetricConfig", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Boolean does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("MetricConfig", field, false, false, errors.New("field of type Boolean does not have child fields")) } func (ec *executionContext) _MetricConfig_subClusters(ctx context.Context, field graphql.CollectedField, obj *schema.MetricConfig) (ret graphql.Marshaler) { @@ -6992,17 +7322,20 @@ func (ec *executionContext) _MetricConfig_subClusters(ctx context.Context, field ctx, ec.OperationContext, field, - ec.fieldContext_MetricConfig_subClusters, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_MetricConfig_subClusters(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.SubClusters, nil }, nil, - ec.marshalNSubClusterConfig2ᚕᚖgithubᚗcomᚋClusterCockpitᚋccᚑlibᚋv2ᚋschemaᚐSubClusterConfigᚄ, + func(ctx context.Context, selections ast.SelectionSet, v []*schema.SubClusterConfig) graphql.Marshaler { + return ec.marshalNSubClusterConfig2ᚕᚖgithubᚗcomᚋClusterCockpitᚋccᚑlibᚋv2ᚋschemaᚐSubClusterConfigᚄ(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_MetricConfig_subClusters(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ Object: "MetricConfig", @@ -7010,21 +7343,7 @@ func (ec *executionContext) fieldContext_MetricConfig_subClusters(_ context.Cont IsMethod: false, IsResolver: false, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - switch field.Name { - case "name": - return ec.fieldContext_SubClusterConfig_name(ctx, field) - case "peak": - return ec.fieldContext_SubClusterConfig_peak(ctx, field) - case "normal": - return ec.fieldContext_SubClusterConfig_normal(ctx, field) - case "caution": - return ec.fieldContext_SubClusterConfig_caution(ctx, field) - case "alert": - return ec.fieldContext_SubClusterConfig_alert(ctx, field) - case "remove": - return ec.fieldContext_SubClusterConfig_remove(ctx, field) - } - return nil, fmt.Errorf("no field named %q was found under type SubClusterConfig", field.Name) + return ec.childFields_SubClusterConfig(ctx, field) }, } return fc, nil @@ -7035,28 +7354,22 @@ func (ec *executionContext) _MetricFootprints_metric(ctx context.Context, field ctx, ec.OperationContext, field, - ec.fieldContext_MetricFootprints_metric, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_MetricFootprints_metric(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Metric, nil }, nil, - ec.marshalNString2string, + func(ctx context.Context, selections ast.SelectionSet, v string) graphql.Marshaler { + return ec.marshalNString2string(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_MetricFootprints_metric(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "MetricFootprints", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type String does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("MetricFootprints", field, false, false, errors.New("field of type String does not have child fields")) } func (ec *executionContext) _MetricFootprints_data(ctx context.Context, field graphql.CollectedField, obj *model.MetricFootprints) (ret graphql.Marshaler) { @@ -7064,28 +7377,22 @@ func (ec *executionContext) _MetricFootprints_data(ctx context.Context, field gr ctx, ec.OperationContext, field, - ec.fieldContext_MetricFootprints_data, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_MetricFootprints_data(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Data, nil }, nil, - ec.marshalNNullableFloat2ᚕgithubᚗcomᚋClusterCockpitᚋccᚑlibᚋv2ᚋschemaᚐFloatᚄ, + func(ctx context.Context, selections ast.SelectionSet, v []schema.Float) graphql.Marshaler { + return ec.marshalNNullableFloat2ᚕgithubᚗcomᚋClusterCockpitᚋccᚑlibᚋv2ᚋschemaᚐFloatᚄ(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_MetricFootprints_data(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "MetricFootprints", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type NullableFloat does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("MetricFootprints", field, false, false, errors.New("field of type NullableFloat does not have child fields")) } func (ec *executionContext) _MetricHistoPoint_bin(ctx context.Context, field graphql.CollectedField, obj *model.MetricHistoPoint) (ret graphql.Marshaler) { @@ -7093,28 +7400,22 @@ func (ec *executionContext) _MetricHistoPoint_bin(ctx context.Context, field gra ctx, ec.OperationContext, field, - ec.fieldContext_MetricHistoPoint_bin, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_MetricHistoPoint_bin(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Bin, nil }, nil, - ec.marshalOInt2ᚖint, + func(ctx context.Context, selections ast.SelectionSet, v *int) graphql.Marshaler { + return ec.marshalOInt2ᚖint(ctx, selections, v) + }, true, false, ) } - func (ec *executionContext) fieldContext_MetricHistoPoint_bin(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "MetricHistoPoint", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Int does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("MetricHistoPoint", field, false, false, errors.New("field of type Int does not have child fields")) } func (ec *executionContext) _MetricHistoPoint_count(ctx context.Context, field graphql.CollectedField, obj *model.MetricHistoPoint) (ret graphql.Marshaler) { @@ -7122,28 +7423,22 @@ func (ec *executionContext) _MetricHistoPoint_count(ctx context.Context, field g ctx, ec.OperationContext, field, - ec.fieldContext_MetricHistoPoint_count, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_MetricHistoPoint_count(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Count, nil }, nil, - ec.marshalNInt2int, + func(ctx context.Context, selections ast.SelectionSet, v int) graphql.Marshaler { + return ec.marshalNInt2int(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_MetricHistoPoint_count(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "MetricHistoPoint", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Int does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("MetricHistoPoint", field, false, false, errors.New("field of type Int does not have child fields")) } func (ec *executionContext) _MetricHistoPoint_min(ctx context.Context, field graphql.CollectedField, obj *model.MetricHistoPoint) (ret graphql.Marshaler) { @@ -7151,28 +7446,22 @@ func (ec *executionContext) _MetricHistoPoint_min(ctx context.Context, field gra ctx, ec.OperationContext, field, - ec.fieldContext_MetricHistoPoint_min, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_MetricHistoPoint_min(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Min, nil }, nil, - ec.marshalOInt2ᚖint, + func(ctx context.Context, selections ast.SelectionSet, v *int) graphql.Marshaler { + return ec.marshalOInt2ᚖint(ctx, selections, v) + }, true, false, ) } - func (ec *executionContext) fieldContext_MetricHistoPoint_min(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "MetricHistoPoint", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Int does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("MetricHistoPoint", field, false, false, errors.New("field of type Int does not have child fields")) } func (ec *executionContext) _MetricHistoPoint_max(ctx context.Context, field graphql.CollectedField, obj *model.MetricHistoPoint) (ret graphql.Marshaler) { @@ -7180,28 +7469,22 @@ func (ec *executionContext) _MetricHistoPoint_max(ctx context.Context, field gra ctx, ec.OperationContext, field, - ec.fieldContext_MetricHistoPoint_max, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_MetricHistoPoint_max(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Max, nil }, nil, - ec.marshalOInt2ᚖint, + func(ctx context.Context, selections ast.SelectionSet, v *int) graphql.Marshaler { + return ec.marshalOInt2ᚖint(ctx, selections, v) + }, true, false, ) } - func (ec *executionContext) fieldContext_MetricHistoPoint_max(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "MetricHistoPoint", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Int does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("MetricHistoPoint", field, false, false, errors.New("field of type Int does not have child fields")) } func (ec *executionContext) _MetricHistoPoints_metric(ctx context.Context, field graphql.CollectedField, obj *model.MetricHistoPoints) (ret graphql.Marshaler) { @@ -7209,28 +7492,22 @@ func (ec *executionContext) _MetricHistoPoints_metric(ctx context.Context, field ctx, ec.OperationContext, field, - ec.fieldContext_MetricHistoPoints_metric, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_MetricHistoPoints_metric(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Metric, nil }, nil, - ec.marshalNString2string, + func(ctx context.Context, selections ast.SelectionSet, v string) graphql.Marshaler { + return ec.marshalNString2string(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_MetricHistoPoints_metric(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "MetricHistoPoints", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type String does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("MetricHistoPoints", field, false, false, errors.New("field of type String does not have child fields")) } func (ec *executionContext) _MetricHistoPoints_unit(ctx context.Context, field graphql.CollectedField, obj *model.MetricHistoPoints) (ret graphql.Marshaler) { @@ -7238,28 +7515,22 @@ func (ec *executionContext) _MetricHistoPoints_unit(ctx context.Context, field g ctx, ec.OperationContext, field, - ec.fieldContext_MetricHistoPoints_unit, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_MetricHistoPoints_unit(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Unit, nil }, nil, - ec.marshalNString2string, + func(ctx context.Context, selections ast.SelectionSet, v string) graphql.Marshaler { + return ec.marshalNString2string(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_MetricHistoPoints_unit(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "MetricHistoPoints", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type String does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("MetricHistoPoints", field, false, false, errors.New("field of type String does not have child fields")) } func (ec *executionContext) _MetricHistoPoints_stat(ctx context.Context, field graphql.CollectedField, obj *model.MetricHistoPoints) (ret graphql.Marshaler) { @@ -7267,28 +7538,22 @@ func (ec *executionContext) _MetricHistoPoints_stat(ctx context.Context, field g ctx, ec.OperationContext, field, - ec.fieldContext_MetricHistoPoints_stat, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_MetricHistoPoints_stat(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Stat, nil }, nil, - ec.marshalOString2ᚖstring, + func(ctx context.Context, selections ast.SelectionSet, v *string) graphql.Marshaler { + return ec.marshalOString2ᚖstring(ctx, selections, v) + }, true, false, ) } - func (ec *executionContext) fieldContext_MetricHistoPoints_stat(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "MetricHistoPoints", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type String does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("MetricHistoPoints", field, false, false, errors.New("field of type String does not have child fields")) } func (ec *executionContext) _MetricHistoPoints_data(ctx context.Context, field graphql.CollectedField, obj *model.MetricHistoPoints) (ret graphql.Marshaler) { @@ -7296,17 +7561,20 @@ func (ec *executionContext) _MetricHistoPoints_data(ctx context.Context, field g ctx, ec.OperationContext, field, - ec.fieldContext_MetricHistoPoints_data, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_MetricHistoPoints_data(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Data, nil }, nil, - ec.marshalOMetricHistoPoint2ᚕᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐMetricHistoPointᚄ, + func(ctx context.Context, selections ast.SelectionSet, v []*model.MetricHistoPoint) graphql.Marshaler { + return ec.marshalOMetricHistoPoint2ᚕᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐMetricHistoPointᚄ(ctx, selections, v) + }, true, false, ) } - func (ec *executionContext) fieldContext_MetricHistoPoints_data(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ Object: "MetricHistoPoints", @@ -7314,17 +7582,7 @@ func (ec *executionContext) fieldContext_MetricHistoPoints_data(_ context.Contex IsMethod: false, IsResolver: false, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - switch field.Name { - case "bin": - return ec.fieldContext_MetricHistoPoint_bin(ctx, field) - case "count": - return ec.fieldContext_MetricHistoPoint_count(ctx, field) - case "min": - return ec.fieldContext_MetricHistoPoint_min(ctx, field) - case "max": - return ec.fieldContext_MetricHistoPoint_max(ctx, field) - } - return nil, fmt.Errorf("no field named %q was found under type MetricHistoPoint", field.Name) + return ec.childFields_MetricHistoPoint(ctx, field) }, } return fc, nil @@ -7335,28 +7593,22 @@ func (ec *executionContext) _MetricStatistics_avg(ctx context.Context, field gra ctx, ec.OperationContext, field, - ec.fieldContext_MetricStatistics_avg, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_MetricStatistics_avg(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Avg, nil }, nil, - ec.marshalNFloat2float64, + func(ctx context.Context, selections ast.SelectionSet, v float64) graphql.Marshaler { + return ec.marshalNFloat2float64(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_MetricStatistics_avg(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "MetricStatistics", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Float does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("MetricStatistics", field, false, false, errors.New("field of type Float does not have child fields")) } func (ec *executionContext) _MetricStatistics_min(ctx context.Context, field graphql.CollectedField, obj *schema.MetricStatistics) (ret graphql.Marshaler) { @@ -7364,28 +7616,22 @@ func (ec *executionContext) _MetricStatistics_min(ctx context.Context, field gra ctx, ec.OperationContext, field, - ec.fieldContext_MetricStatistics_min, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_MetricStatistics_min(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Min, nil }, nil, - ec.marshalNFloat2float64, + func(ctx context.Context, selections ast.SelectionSet, v float64) graphql.Marshaler { + return ec.marshalNFloat2float64(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_MetricStatistics_min(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "MetricStatistics", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Float does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("MetricStatistics", field, false, false, errors.New("field of type Float does not have child fields")) } func (ec *executionContext) _MetricStatistics_max(ctx context.Context, field graphql.CollectedField, obj *schema.MetricStatistics) (ret graphql.Marshaler) { @@ -7393,28 +7639,22 @@ func (ec *executionContext) _MetricStatistics_max(ctx context.Context, field gra ctx, ec.OperationContext, field, - ec.fieldContext_MetricStatistics_max, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_MetricStatistics_max(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Max, nil }, nil, - ec.marshalNFloat2float64, + func(ctx context.Context, selections ast.SelectionSet, v float64) graphql.Marshaler { + return ec.marshalNFloat2float64(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_MetricStatistics_max(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "MetricStatistics", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Float does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("MetricStatistics", field, false, false, errors.New("field of type Float does not have child fields")) } func (ec *executionContext) _MetricValue_name(ctx context.Context, field graphql.CollectedField, obj *schema.MetricValue) (ret graphql.Marshaler) { @@ -7422,28 +7662,22 @@ func (ec *executionContext) _MetricValue_name(ctx context.Context, field graphql ctx, ec.OperationContext, field, - ec.fieldContext_MetricValue_name, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_MetricValue_name(ctx, field) + }, func(ctx context.Context) (any, error) { return ec.Resolvers.MetricValue().Name(ctx, obj) }, nil, - ec.marshalOString2ᚖstring, + func(ctx context.Context, selections ast.SelectionSet, v *string) graphql.Marshaler { + return ec.marshalOString2ᚖstring(ctx, selections, v) + }, true, false, ) } - func (ec *executionContext) fieldContext_MetricValue_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "MetricValue", - Field: field, - IsMethod: true, - IsResolver: true, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type String does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("MetricValue", field, true, true, errors.New("field of type String does not have child fields")) } func (ec *executionContext) _MetricValue_unit(ctx context.Context, field graphql.CollectedField, obj *schema.MetricValue) (ret graphql.Marshaler) { @@ -7451,17 +7685,20 @@ func (ec *executionContext) _MetricValue_unit(ctx context.Context, field graphql ctx, ec.OperationContext, field, - ec.fieldContext_MetricValue_unit, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_MetricValue_unit(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Unit, nil }, nil, - ec.marshalNUnit2githubᚗcomᚋClusterCockpitᚋccᚑlibᚋv2ᚋschemaᚐUnit, + func(ctx context.Context, selections ast.SelectionSet, v schema.Unit) graphql.Marshaler { + return ec.marshalNUnit2githubᚗcomᚋClusterCockpitᚋccᚑlibᚋv2ᚋschemaᚐUnit(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_MetricValue_unit(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ Object: "MetricValue", @@ -7469,13 +7706,7 @@ func (ec *executionContext) fieldContext_MetricValue_unit(_ context.Context, fie IsMethod: false, IsResolver: false, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - switch field.Name { - case "base": - return ec.fieldContext_Unit_base(ctx, field) - case "prefix": - return ec.fieldContext_Unit_prefix(ctx, field) - } - return nil, fmt.Errorf("no field named %q was found under type Unit", field.Name) + return ec.childFields_Unit(ctx, field) }, } return fc, nil @@ -7486,28 +7717,22 @@ func (ec *executionContext) _MetricValue_value(ctx context.Context, field graphq ctx, ec.OperationContext, field, - ec.fieldContext_MetricValue_value, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_MetricValue_value(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Value, nil }, nil, - ec.marshalNFloat2float64, + func(ctx context.Context, selections ast.SelectionSet, v float64) graphql.Marshaler { + return ec.marshalNFloat2float64(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_MetricValue_value(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "MetricValue", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Float does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("MetricValue", field, false, false, errors.New("field of type Float does not have child fields")) } func (ec *executionContext) _Mutation_createTag(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { @@ -7515,18 +7740,21 @@ func (ec *executionContext) _Mutation_createTag(ctx context.Context, field graph ctx, ec.OperationContext, field, - ec.fieldContext_Mutation_createTag, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_Mutation_createTag(ctx, field) + }, func(ctx context.Context) (any, error) { fc := graphql.GetFieldContext(ctx) return ec.Resolvers.Mutation().CreateTag(ctx, fc.Args["type"].(string), fc.Args["name"].(string), fc.Args["scope"].(string)) }, nil, - ec.marshalNTag2ᚖgithubᚗcomᚋClusterCockpitᚋccᚑlibᚋv2ᚋschemaᚐTag, + func(ctx context.Context, selections ast.SelectionSet, v *schema.Tag) graphql.Marshaler { + return ec.marshalNTag2ᚖgithubᚗcomᚋClusterCockpitᚋccᚑlibᚋv2ᚋschemaᚐTag(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_Mutation_createTag(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ Object: "Mutation", @@ -7534,17 +7762,7 @@ func (ec *executionContext) fieldContext_Mutation_createTag(ctx context.Context, IsMethod: true, IsResolver: true, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - switch field.Name { - case "id": - return ec.fieldContext_Tag_id(ctx, field) - case "type": - return ec.fieldContext_Tag_type(ctx, field) - case "name": - return ec.fieldContext_Tag_name(ctx, field) - case "scope": - return ec.fieldContext_Tag_scope(ctx, field) - } - return nil, fmt.Errorf("no field named %q was found under type Tag", field.Name) + return ec.childFields_Tag(ctx, field) }, } defer func() { @@ -7566,18 +7784,21 @@ func (ec *executionContext) _Mutation_deleteTag(ctx context.Context, field graph ctx, ec.OperationContext, field, - ec.fieldContext_Mutation_deleteTag, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_Mutation_deleteTag(ctx, field) + }, func(ctx context.Context) (any, error) { fc := graphql.GetFieldContext(ctx) return ec.Resolvers.Mutation().DeleteTag(ctx, fc.Args["id"].(string)) }, nil, - ec.marshalNID2string, + func(ctx context.Context, selections ast.SelectionSet, v string) graphql.Marshaler { + return ec.marshalNID2string(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_Mutation_deleteTag(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ Object: "Mutation", @@ -7607,18 +7828,21 @@ func (ec *executionContext) _Mutation_addTagsToJob(ctx context.Context, field gr ctx, ec.OperationContext, field, - ec.fieldContext_Mutation_addTagsToJob, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_Mutation_addTagsToJob(ctx, field) + }, func(ctx context.Context) (any, error) { fc := graphql.GetFieldContext(ctx) return ec.Resolvers.Mutation().AddTagsToJob(ctx, fc.Args["job"].(string), fc.Args["tagIds"].([]string)) }, nil, - ec.marshalNTag2ᚕᚖgithubᚗcomᚋClusterCockpitᚋccᚑlibᚋv2ᚋschemaᚐTagᚄ, + func(ctx context.Context, selections ast.SelectionSet, v []*schema.Tag) graphql.Marshaler { + return ec.marshalNTag2ᚕᚖgithubᚗcomᚋClusterCockpitᚋccᚑlibᚋv2ᚋschemaᚐTagᚄ(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_Mutation_addTagsToJob(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ Object: "Mutation", @@ -7626,17 +7850,7 @@ func (ec *executionContext) fieldContext_Mutation_addTagsToJob(ctx context.Conte IsMethod: true, IsResolver: true, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - switch field.Name { - case "id": - return ec.fieldContext_Tag_id(ctx, field) - case "type": - return ec.fieldContext_Tag_type(ctx, field) - case "name": - return ec.fieldContext_Tag_name(ctx, field) - case "scope": - return ec.fieldContext_Tag_scope(ctx, field) - } - return nil, fmt.Errorf("no field named %q was found under type Tag", field.Name) + return ec.childFields_Tag(ctx, field) }, } defer func() { @@ -7658,18 +7872,21 @@ func (ec *executionContext) _Mutation_removeTagsFromJob(ctx context.Context, fie ctx, ec.OperationContext, field, - ec.fieldContext_Mutation_removeTagsFromJob, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_Mutation_removeTagsFromJob(ctx, field) + }, func(ctx context.Context) (any, error) { fc := graphql.GetFieldContext(ctx) return ec.Resolvers.Mutation().RemoveTagsFromJob(ctx, fc.Args["job"].(string), fc.Args["tagIds"].([]string)) }, nil, - ec.marshalNTag2ᚕᚖgithubᚗcomᚋClusterCockpitᚋccᚑlibᚋv2ᚋschemaᚐTagᚄ, + func(ctx context.Context, selections ast.SelectionSet, v []*schema.Tag) graphql.Marshaler { + return ec.marshalNTag2ᚕᚖgithubᚗcomᚋClusterCockpitᚋccᚑlibᚋv2ᚋschemaᚐTagᚄ(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_Mutation_removeTagsFromJob(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ Object: "Mutation", @@ -7677,17 +7894,7 @@ func (ec *executionContext) fieldContext_Mutation_removeTagsFromJob(ctx context. IsMethod: true, IsResolver: true, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - switch field.Name { - case "id": - return ec.fieldContext_Tag_id(ctx, field) - case "type": - return ec.fieldContext_Tag_type(ctx, field) - case "name": - return ec.fieldContext_Tag_name(ctx, field) - case "scope": - return ec.fieldContext_Tag_scope(ctx, field) - } - return nil, fmt.Errorf("no field named %q was found under type Tag", field.Name) + return ec.childFields_Tag(ctx, field) }, } defer func() { @@ -7709,18 +7916,21 @@ func (ec *executionContext) _Mutation_removeTagFromList(ctx context.Context, fie ctx, ec.OperationContext, field, - ec.fieldContext_Mutation_removeTagFromList, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_Mutation_removeTagFromList(ctx, field) + }, func(ctx context.Context) (any, error) { fc := graphql.GetFieldContext(ctx) return ec.Resolvers.Mutation().RemoveTagFromList(ctx, fc.Args["tagIds"].([]string)) }, nil, - ec.marshalNInt2ᚕintᚄ, + func(ctx context.Context, selections ast.SelectionSet, v []int) graphql.Marshaler { + return ec.marshalNInt2ᚕintᚄ(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_Mutation_removeTagFromList(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ Object: "Mutation", @@ -7750,18 +7960,21 @@ func (ec *executionContext) _Mutation_updateConfiguration(ctx context.Context, f ctx, ec.OperationContext, field, - ec.fieldContext_Mutation_updateConfiguration, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_Mutation_updateConfiguration(ctx, field) + }, func(ctx context.Context) (any, error) { fc := graphql.GetFieldContext(ctx) return ec.Resolvers.Mutation().UpdateConfiguration(ctx, fc.Args["name"].(string), fc.Args["value"].(string)) }, nil, - ec.marshalOString2ᚖstring, + func(ctx context.Context, selections ast.SelectionSet, v *string) graphql.Marshaler { + return ec.marshalOString2ᚖstring(ctx, selections, v) + }, true, false, ) } - func (ec *executionContext) fieldContext_Mutation_updateConfiguration(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ Object: "Mutation", @@ -7791,28 +8004,22 @@ func (ec *executionContext) _NamedStats_name(ctx context.Context, field graphql. ctx, ec.OperationContext, field, - ec.fieldContext_NamedStats_name, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_NamedStats_name(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Name, nil }, nil, - ec.marshalNString2string, + func(ctx context.Context, selections ast.SelectionSet, v string) graphql.Marshaler { + return ec.marshalNString2string(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_NamedStats_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "NamedStats", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type String does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("NamedStats", field, false, false, errors.New("field of type String does not have child fields")) } func (ec *executionContext) _NamedStats_data(ctx context.Context, field graphql.CollectedField, obj *model.NamedStats) (ret graphql.Marshaler) { @@ -7820,17 +8027,20 @@ func (ec *executionContext) _NamedStats_data(ctx context.Context, field graphql. ctx, ec.OperationContext, field, - ec.fieldContext_NamedStats_data, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_NamedStats_data(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Data, nil }, nil, - ec.marshalNMetricStatistics2ᚖgithubᚗcomᚋClusterCockpitᚋccᚑlibᚋv2ᚋschemaᚐMetricStatistics, + func(ctx context.Context, selections ast.SelectionSet, v *schema.MetricStatistics) graphql.Marshaler { + return ec.marshalNMetricStatistics2ᚖgithubᚗcomᚋClusterCockpitᚋccᚑlibᚋv2ᚋschemaᚐMetricStatistics(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_NamedStats_data(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ Object: "NamedStats", @@ -7838,15 +8048,7 @@ func (ec *executionContext) fieldContext_NamedStats_data(_ context.Context, fiel IsMethod: false, IsResolver: false, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - switch field.Name { - case "avg": - return ec.fieldContext_MetricStatistics_avg(ctx, field) - case "min": - return ec.fieldContext_MetricStatistics_min(ctx, field) - case "max": - return ec.fieldContext_MetricStatistics_max(ctx, field) - } - return nil, fmt.Errorf("no field named %q was found under type MetricStatistics", field.Name) + return ec.childFields_MetricStatistics(ctx, field) }, } return fc, nil @@ -7857,28 +8059,22 @@ func (ec *executionContext) _NamedStatsWithScope_name(ctx context.Context, field ctx, ec.OperationContext, field, - ec.fieldContext_NamedStatsWithScope_name, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_NamedStatsWithScope_name(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Name, nil }, nil, - ec.marshalNString2string, + func(ctx context.Context, selections ast.SelectionSet, v string) graphql.Marshaler { + return ec.marshalNString2string(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_NamedStatsWithScope_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "NamedStatsWithScope", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type String does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("NamedStatsWithScope", field, false, false, errors.New("field of type String does not have child fields")) } func (ec *executionContext) _NamedStatsWithScope_scope(ctx context.Context, field graphql.CollectedField, obj *model.NamedStatsWithScope) (ret graphql.Marshaler) { @@ -7886,28 +8082,22 @@ func (ec *executionContext) _NamedStatsWithScope_scope(ctx context.Context, fiel ctx, ec.OperationContext, field, - ec.fieldContext_NamedStatsWithScope_scope, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_NamedStatsWithScope_scope(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Scope, nil }, nil, - ec.marshalNMetricScope2githubᚗcomᚋClusterCockpitᚋccᚑlibᚋv2ᚋschemaᚐMetricScope, + func(ctx context.Context, selections ast.SelectionSet, v schema.MetricScope) graphql.Marshaler { + return ec.marshalNMetricScope2githubᚗcomᚋClusterCockpitᚋccᚑlibᚋv2ᚋschemaᚐMetricScope(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_NamedStatsWithScope_scope(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "NamedStatsWithScope", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type MetricScope does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("NamedStatsWithScope", field, false, false, errors.New("field of type MetricScope does not have child fields")) } func (ec *executionContext) _NamedStatsWithScope_stats(ctx context.Context, field graphql.CollectedField, obj *model.NamedStatsWithScope) (ret graphql.Marshaler) { @@ -7915,17 +8105,20 @@ func (ec *executionContext) _NamedStatsWithScope_stats(ctx context.Context, fiel ctx, ec.OperationContext, field, - ec.fieldContext_NamedStatsWithScope_stats, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_NamedStatsWithScope_stats(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Stats, nil }, nil, - ec.marshalNScopedStats2ᚕᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐScopedStatsᚄ, + func(ctx context.Context, selections ast.SelectionSet, v []*model.ScopedStats) graphql.Marshaler { + return ec.marshalNScopedStats2ᚕᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐScopedStatsᚄ(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_NamedStatsWithScope_stats(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ Object: "NamedStatsWithScope", @@ -7933,15 +8126,7 @@ func (ec *executionContext) fieldContext_NamedStatsWithScope_stats(_ context.Con IsMethod: false, IsResolver: false, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - switch field.Name { - case "hostname": - return ec.fieldContext_ScopedStats_hostname(ctx, field) - case "id": - return ec.fieldContext_ScopedStats_id(ctx, field) - case "data": - return ec.fieldContext_ScopedStats_data(ctx, field) - } - return nil, fmt.Errorf("no field named %q was found under type ScopedStats", field.Name) + return ec.childFields_ScopedStats(ctx, field) }, } return fc, nil @@ -7952,28 +8137,22 @@ func (ec *executionContext) _Node_id(ctx context.Context, field graphql.Collecte ctx, ec.OperationContext, field, - ec.fieldContext_Node_id, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_Node_id(ctx, field) + }, func(ctx context.Context) (any, error) { return ec.Resolvers.Node().ID(ctx, obj) }, nil, - ec.marshalNID2string, + func(ctx context.Context, selections ast.SelectionSet, v string) graphql.Marshaler { + return ec.marshalNID2string(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_Node_id(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "Node", - Field: field, - IsMethod: true, - IsResolver: true, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type ID does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("Node", field, true, true, errors.New("field of type ID does not have child fields")) } func (ec *executionContext) _Node_hostname(ctx context.Context, field graphql.CollectedField, obj *schema.Node) (ret graphql.Marshaler) { @@ -7981,28 +8160,22 @@ func (ec *executionContext) _Node_hostname(ctx context.Context, field graphql.Co ctx, ec.OperationContext, field, - ec.fieldContext_Node_hostname, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_Node_hostname(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Hostname, nil }, nil, - ec.marshalNString2string, + func(ctx context.Context, selections ast.SelectionSet, v string) graphql.Marshaler { + return ec.marshalNString2string(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_Node_hostname(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "Node", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type String does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("Node", field, false, false, errors.New("field of type String does not have child fields")) } func (ec *executionContext) _Node_cluster(ctx context.Context, field graphql.CollectedField, obj *schema.Node) (ret graphql.Marshaler) { @@ -8010,28 +8183,22 @@ func (ec *executionContext) _Node_cluster(ctx context.Context, field graphql.Col ctx, ec.OperationContext, field, - ec.fieldContext_Node_cluster, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_Node_cluster(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Cluster, nil }, nil, - ec.marshalNString2string, + func(ctx context.Context, selections ast.SelectionSet, v string) graphql.Marshaler { + return ec.marshalNString2string(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_Node_cluster(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "Node", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type String does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("Node", field, false, false, errors.New("field of type String does not have child fields")) } func (ec *executionContext) _Node_subCluster(ctx context.Context, field graphql.CollectedField, obj *schema.Node) (ret graphql.Marshaler) { @@ -8039,28 +8206,22 @@ func (ec *executionContext) _Node_subCluster(ctx context.Context, field graphql. ctx, ec.OperationContext, field, - ec.fieldContext_Node_subCluster, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_Node_subCluster(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.SubCluster, nil }, nil, - ec.marshalNString2string, + func(ctx context.Context, selections ast.SelectionSet, v string) graphql.Marshaler { + return ec.marshalNString2string(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_Node_subCluster(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "Node", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type String does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("Node", field, false, false, errors.New("field of type String does not have child fields")) } func (ec *executionContext) _Node_jobsRunning(ctx context.Context, field graphql.CollectedField, obj *schema.Node) (ret graphql.Marshaler) { @@ -8068,28 +8229,22 @@ func (ec *executionContext) _Node_jobsRunning(ctx context.Context, field graphql ctx, ec.OperationContext, field, - ec.fieldContext_Node_jobsRunning, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_Node_jobsRunning(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.JobsRunning, nil }, nil, - ec.marshalNInt2int, + func(ctx context.Context, selections ast.SelectionSet, v int) graphql.Marshaler { + return ec.marshalNInt2int(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_Node_jobsRunning(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "Node", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Int does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("Node", field, false, false, errors.New("field of type Int does not have child fields")) } func (ec *executionContext) _Node_cpusAllocated(ctx context.Context, field graphql.CollectedField, obj *schema.Node) (ret graphql.Marshaler) { @@ -8097,28 +8252,22 @@ func (ec *executionContext) _Node_cpusAllocated(ctx context.Context, field graph ctx, ec.OperationContext, field, - ec.fieldContext_Node_cpusAllocated, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_Node_cpusAllocated(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.CpusAllocated, nil }, nil, - ec.marshalOInt2int, + func(ctx context.Context, selections ast.SelectionSet, v int) graphql.Marshaler { + return ec.marshalOInt2int(ctx, selections, v) + }, true, false, ) } - func (ec *executionContext) fieldContext_Node_cpusAllocated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "Node", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Int does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("Node", field, false, false, errors.New("field of type Int does not have child fields")) } func (ec *executionContext) _Node_memoryAllocated(ctx context.Context, field graphql.CollectedField, obj *schema.Node) (ret graphql.Marshaler) { @@ -8126,28 +8275,22 @@ func (ec *executionContext) _Node_memoryAllocated(ctx context.Context, field gra ctx, ec.OperationContext, field, - ec.fieldContext_Node_memoryAllocated, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_Node_memoryAllocated(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.MemoryAllocated, nil }, nil, - ec.marshalOInt2int, + func(ctx context.Context, selections ast.SelectionSet, v int) graphql.Marshaler { + return ec.marshalOInt2int(ctx, selections, v) + }, true, false, ) } - func (ec *executionContext) fieldContext_Node_memoryAllocated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "Node", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Int does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("Node", field, false, false, errors.New("field of type Int does not have child fields")) } func (ec *executionContext) _Node_gpusAllocated(ctx context.Context, field graphql.CollectedField, obj *schema.Node) (ret graphql.Marshaler) { @@ -8155,28 +8298,22 @@ func (ec *executionContext) _Node_gpusAllocated(ctx context.Context, field graph ctx, ec.OperationContext, field, - ec.fieldContext_Node_gpusAllocated, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_Node_gpusAllocated(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.GpusAllocated, nil }, nil, - ec.marshalOInt2int, + func(ctx context.Context, selections ast.SelectionSet, v int) graphql.Marshaler { + return ec.marshalOInt2int(ctx, selections, v) + }, true, false, ) } - func (ec *executionContext) fieldContext_Node_gpusAllocated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "Node", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Int does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("Node", field, false, false, errors.New("field of type Int does not have child fields")) } func (ec *executionContext) _Node_schedulerState(ctx context.Context, field graphql.CollectedField, obj *schema.Node) (ret graphql.Marshaler) { @@ -8184,28 +8321,22 @@ func (ec *executionContext) _Node_schedulerState(ctx context.Context, field grap ctx, ec.OperationContext, field, - ec.fieldContext_Node_schedulerState, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_Node_schedulerState(ctx, field) + }, func(ctx context.Context) (any, error) { return ec.Resolvers.Node().SchedulerState(ctx, obj) }, nil, - ec.marshalNSchedulerState2githubᚗcomᚋClusterCockpitᚋccᚑlibᚋv2ᚋschemaᚐSchedulerState, + func(ctx context.Context, selections ast.SelectionSet, v schema.SchedulerState) graphql.Marshaler { + return ec.marshalNSchedulerState2githubᚗcomᚋClusterCockpitᚋccᚑlibᚋv2ᚋschemaᚐSchedulerState(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_Node_schedulerState(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "Node", - Field: field, - IsMethod: true, - IsResolver: true, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type SchedulerState does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("Node", field, true, true, errors.New("field of type SchedulerState does not have child fields")) } func (ec *executionContext) _Node_healthState(ctx context.Context, field graphql.CollectedField, obj *schema.Node) (ret graphql.Marshaler) { @@ -8213,28 +8344,22 @@ func (ec *executionContext) _Node_healthState(ctx context.Context, field graphql ctx, ec.OperationContext, field, - ec.fieldContext_Node_healthState, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_Node_healthState(ctx, field) + }, func(ctx context.Context) (any, error) { return ec.Resolvers.Node().HealthState(ctx, obj) }, nil, - ec.marshalNMonitoringState2string, + func(ctx context.Context, selections ast.SelectionSet, v string) graphql.Marshaler { + return ec.marshalNMonitoringState2string(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_Node_healthState(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "Node", - Field: field, - IsMethod: true, - IsResolver: true, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type MonitoringState does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("Node", field, true, true, errors.New("field of type MonitoringState does not have child fields")) } func (ec *executionContext) _Node_metaData(ctx context.Context, field graphql.CollectedField, obj *schema.Node) (ret graphql.Marshaler) { @@ -8242,28 +8367,22 @@ func (ec *executionContext) _Node_metaData(ctx context.Context, field graphql.Co ctx, ec.OperationContext, field, - ec.fieldContext_Node_metaData, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_Node_metaData(ctx, field) + }, func(ctx context.Context) (any, error) { return ec.Resolvers.Node().MetaData(ctx, obj) }, nil, - ec.marshalOAny2interface, + func(ctx context.Context, selections ast.SelectionSet, v any) graphql.Marshaler { + return ec.marshalOAny2interface(ctx, selections, v) + }, true, false, ) } - func (ec *executionContext) fieldContext_Node_metaData(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "Node", - Field: field, - IsMethod: true, - IsResolver: true, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Any does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("Node", field, true, true, errors.New("field of type Any does not have child fields")) } func (ec *executionContext) _Node_healthData(ctx context.Context, field graphql.CollectedField, obj *schema.Node) (ret graphql.Marshaler) { @@ -8271,28 +8390,22 @@ func (ec *executionContext) _Node_healthData(ctx context.Context, field graphql. ctx, ec.OperationContext, field, - ec.fieldContext_Node_healthData, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_Node_healthData(ctx, field) + }, func(ctx context.Context) (any, error) { return ec.Resolvers.Node().HealthData(ctx, obj) }, nil, - ec.marshalOAny2interface, + func(ctx context.Context, selections ast.SelectionSet, v any) graphql.Marshaler { + return ec.marshalOAny2interface(ctx, selections, v) + }, true, false, ) } - func (ec *executionContext) fieldContext_Node_healthData(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "Node", - Field: field, - IsMethod: true, - IsResolver: true, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Any does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("Node", field, true, true, errors.New("field of type Any does not have child fields")) } func (ec *executionContext) _NodeMetrics_host(ctx context.Context, field graphql.CollectedField, obj *model.NodeMetrics) (ret graphql.Marshaler) { @@ -8300,28 +8413,22 @@ func (ec *executionContext) _NodeMetrics_host(ctx context.Context, field graphql ctx, ec.OperationContext, field, - ec.fieldContext_NodeMetrics_host, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_NodeMetrics_host(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Host, nil }, nil, - ec.marshalNString2string, + func(ctx context.Context, selections ast.SelectionSet, v string) graphql.Marshaler { + return ec.marshalNString2string(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_NodeMetrics_host(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "NodeMetrics", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type String does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("NodeMetrics", field, false, false, errors.New("field of type String does not have child fields")) } func (ec *executionContext) _NodeMetrics_nodeState(ctx context.Context, field graphql.CollectedField, obj *model.NodeMetrics) (ret graphql.Marshaler) { @@ -8329,28 +8436,22 @@ func (ec *executionContext) _NodeMetrics_nodeState(ctx context.Context, field gr ctx, ec.OperationContext, field, - ec.fieldContext_NodeMetrics_nodeState, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_NodeMetrics_nodeState(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.NodeState, nil }, nil, - ec.marshalNString2string, + func(ctx context.Context, selections ast.SelectionSet, v string) graphql.Marshaler { + return ec.marshalNString2string(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_NodeMetrics_nodeState(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "NodeMetrics", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type String does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("NodeMetrics", field, false, false, errors.New("field of type String does not have child fields")) } func (ec *executionContext) _NodeMetrics_metricHealth(ctx context.Context, field graphql.CollectedField, obj *model.NodeMetrics) (ret graphql.Marshaler) { @@ -8358,28 +8459,22 @@ func (ec *executionContext) _NodeMetrics_metricHealth(ctx context.Context, field ctx, ec.OperationContext, field, - ec.fieldContext_NodeMetrics_metricHealth, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_NodeMetrics_metricHealth(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.MetricHealth, nil }, nil, - ec.marshalNString2string, + func(ctx context.Context, selections ast.SelectionSet, v string) graphql.Marshaler { + return ec.marshalNString2string(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_NodeMetrics_metricHealth(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "NodeMetrics", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type String does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("NodeMetrics", field, false, false, errors.New("field of type String does not have child fields")) } func (ec *executionContext) _NodeMetrics_subCluster(ctx context.Context, field graphql.CollectedField, obj *model.NodeMetrics) (ret graphql.Marshaler) { @@ -8387,28 +8482,22 @@ func (ec *executionContext) _NodeMetrics_subCluster(ctx context.Context, field g ctx, ec.OperationContext, field, - ec.fieldContext_NodeMetrics_subCluster, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_NodeMetrics_subCluster(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.SubCluster, nil }, nil, - ec.marshalNString2string, + func(ctx context.Context, selections ast.SelectionSet, v string) graphql.Marshaler { + return ec.marshalNString2string(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_NodeMetrics_subCluster(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "NodeMetrics", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type String does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("NodeMetrics", field, false, false, errors.New("field of type String does not have child fields")) } func (ec *executionContext) _NodeMetrics_metrics(ctx context.Context, field graphql.CollectedField, obj *model.NodeMetrics) (ret graphql.Marshaler) { @@ -8416,17 +8505,20 @@ func (ec *executionContext) _NodeMetrics_metrics(ctx context.Context, field grap ctx, ec.OperationContext, field, - ec.fieldContext_NodeMetrics_metrics, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_NodeMetrics_metrics(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Metrics, nil }, nil, - ec.marshalNJobMetricWithName2ᚕᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐJobMetricWithNameᚄ, + func(ctx context.Context, selections ast.SelectionSet, v []*model.JobMetricWithName) graphql.Marshaler { + return ec.marshalNJobMetricWithName2ᚕᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐJobMetricWithNameᚄ(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_NodeMetrics_metrics(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ Object: "NodeMetrics", @@ -8434,15 +8526,7 @@ func (ec *executionContext) fieldContext_NodeMetrics_metrics(_ context.Context, IsMethod: false, IsResolver: false, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - switch field.Name { - case "name": - return ec.fieldContext_JobMetricWithName_name(ctx, field) - case "scope": - return ec.fieldContext_JobMetricWithName_scope(ctx, field) - case "metric": - return ec.fieldContext_JobMetricWithName_metric(ctx, field) - } - return nil, fmt.Errorf("no field named %q was found under type JobMetricWithName", field.Name) + return ec.childFields_JobMetricWithName(ctx, field) }, } return fc, nil @@ -8453,17 +8537,20 @@ func (ec *executionContext) _NodeStateResultList_items(ctx context.Context, fiel ctx, ec.OperationContext, field, - ec.fieldContext_NodeStateResultList_items, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_NodeStateResultList_items(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Items, nil }, nil, - ec.marshalNNode2ᚕᚖgithubᚗcomᚋClusterCockpitᚋccᚑlibᚋv2ᚋschemaᚐNodeᚄ, + func(ctx context.Context, selections ast.SelectionSet, v []*schema.Node) graphql.Marshaler { + return ec.marshalNNode2ᚕᚖgithubᚗcomᚋClusterCockpitᚋccᚑlibᚋv2ᚋschemaᚐNodeᚄ(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_NodeStateResultList_items(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ Object: "NodeStateResultList", @@ -8471,33 +8558,7 @@ func (ec *executionContext) fieldContext_NodeStateResultList_items(_ context.Con IsMethod: false, IsResolver: false, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - switch field.Name { - case "id": - return ec.fieldContext_Node_id(ctx, field) - case "hostname": - return ec.fieldContext_Node_hostname(ctx, field) - case "cluster": - return ec.fieldContext_Node_cluster(ctx, field) - case "subCluster": - return ec.fieldContext_Node_subCluster(ctx, field) - case "jobsRunning": - return ec.fieldContext_Node_jobsRunning(ctx, field) - case "cpusAllocated": - return ec.fieldContext_Node_cpusAllocated(ctx, field) - case "memoryAllocated": - return ec.fieldContext_Node_memoryAllocated(ctx, field) - case "gpusAllocated": - return ec.fieldContext_Node_gpusAllocated(ctx, field) - case "schedulerState": - return ec.fieldContext_Node_schedulerState(ctx, field) - case "healthState": - return ec.fieldContext_Node_healthState(ctx, field) - case "metaData": - return ec.fieldContext_Node_metaData(ctx, field) - case "healthData": - return ec.fieldContext_Node_healthData(ctx, field) - } - return nil, fmt.Errorf("no field named %q was found under type Node", field.Name) + return ec.childFields_Node(ctx, field) }, } return fc, nil @@ -8508,28 +8569,22 @@ func (ec *executionContext) _NodeStateResultList_count(ctx context.Context, fiel ctx, ec.OperationContext, field, - ec.fieldContext_NodeStateResultList_count, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_NodeStateResultList_count(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Count, nil }, nil, - ec.marshalOInt2ᚖint, + func(ctx context.Context, selections ast.SelectionSet, v *int) graphql.Marshaler { + return ec.marshalOInt2ᚖint(ctx, selections, v) + }, true, false, ) } - func (ec *executionContext) fieldContext_NodeStateResultList_count(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "NodeStateResultList", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Int does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("NodeStateResultList", field, false, false, errors.New("field of type Int does not have child fields")) } func (ec *executionContext) _NodeStates_state(ctx context.Context, field graphql.CollectedField, obj *model.NodeStates) (ret graphql.Marshaler) { @@ -8537,28 +8592,22 @@ func (ec *executionContext) _NodeStates_state(ctx context.Context, field graphql ctx, ec.OperationContext, field, - ec.fieldContext_NodeStates_state, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_NodeStates_state(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.State, nil }, nil, - ec.marshalNString2string, + func(ctx context.Context, selections ast.SelectionSet, v string) graphql.Marshaler { + return ec.marshalNString2string(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_NodeStates_state(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "NodeStates", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type String does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("NodeStates", field, false, false, errors.New("field of type String does not have child fields")) } func (ec *executionContext) _NodeStates_count(ctx context.Context, field graphql.CollectedField, obj *model.NodeStates) (ret graphql.Marshaler) { @@ -8566,28 +8615,22 @@ func (ec *executionContext) _NodeStates_count(ctx context.Context, field graphql ctx, ec.OperationContext, field, - ec.fieldContext_NodeStates_count, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_NodeStates_count(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Count, nil }, nil, - ec.marshalNInt2int, + func(ctx context.Context, selections ast.SelectionSet, v int) graphql.Marshaler { + return ec.marshalNInt2int(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_NodeStates_count(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "NodeStates", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Int does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("NodeStates", field, false, false, errors.New("field of type Int does not have child fields")) } func (ec *executionContext) _NodeStatesTimed_state(ctx context.Context, field graphql.CollectedField, obj *model.NodeStatesTimed) (ret graphql.Marshaler) { @@ -8595,28 +8638,22 @@ func (ec *executionContext) _NodeStatesTimed_state(ctx context.Context, field gr ctx, ec.OperationContext, field, - ec.fieldContext_NodeStatesTimed_state, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_NodeStatesTimed_state(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.State, nil }, nil, - ec.marshalNString2string, + func(ctx context.Context, selections ast.SelectionSet, v string) graphql.Marshaler { + return ec.marshalNString2string(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_NodeStatesTimed_state(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "NodeStatesTimed", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type String does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("NodeStatesTimed", field, false, false, errors.New("field of type String does not have child fields")) } func (ec *executionContext) _NodeStatesTimed_counts(ctx context.Context, field graphql.CollectedField, obj *model.NodeStatesTimed) (ret graphql.Marshaler) { @@ -8624,28 +8661,22 @@ func (ec *executionContext) _NodeStatesTimed_counts(ctx context.Context, field g ctx, ec.OperationContext, field, - ec.fieldContext_NodeStatesTimed_counts, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_NodeStatesTimed_counts(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Counts, nil }, nil, - ec.marshalNInt2ᚕintᚄ, + func(ctx context.Context, selections ast.SelectionSet, v []int) graphql.Marshaler { + return ec.marshalNInt2ᚕintᚄ(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_NodeStatesTimed_counts(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "NodeStatesTimed", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Int does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("NodeStatesTimed", field, false, false, errors.New("field of type Int does not have child fields")) } func (ec *executionContext) _NodeStatesTimed_times(ctx context.Context, field graphql.CollectedField, obj *model.NodeStatesTimed) (ret graphql.Marshaler) { @@ -8653,28 +8684,22 @@ func (ec *executionContext) _NodeStatesTimed_times(ctx context.Context, field gr ctx, ec.OperationContext, field, - ec.fieldContext_NodeStatesTimed_times, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_NodeStatesTimed_times(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Times, nil }, nil, - ec.marshalNInt2ᚕintᚄ, + func(ctx context.Context, selections ast.SelectionSet, v []int) graphql.Marshaler { + return ec.marshalNInt2ᚕintᚄ(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_NodeStatesTimed_times(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "NodeStatesTimed", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Int does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("NodeStatesTimed", field, false, false, errors.New("field of type Int does not have child fields")) } func (ec *executionContext) _NodesResultList_items(ctx context.Context, field graphql.CollectedField, obj *model.NodesResultList) (ret graphql.Marshaler) { @@ -8682,17 +8707,20 @@ func (ec *executionContext) _NodesResultList_items(ctx context.Context, field gr ctx, ec.OperationContext, field, - ec.fieldContext_NodesResultList_items, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_NodesResultList_items(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Items, nil }, nil, - ec.marshalNNodeMetrics2ᚕᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐNodeMetricsᚄ, + func(ctx context.Context, selections ast.SelectionSet, v []*model.NodeMetrics) graphql.Marshaler { + return ec.marshalNNodeMetrics2ᚕᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐNodeMetricsᚄ(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_NodesResultList_items(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ Object: "NodesResultList", @@ -8700,19 +8728,7 @@ func (ec *executionContext) fieldContext_NodesResultList_items(_ context.Context IsMethod: false, IsResolver: false, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - switch field.Name { - case "host": - return ec.fieldContext_NodeMetrics_host(ctx, field) - case "nodeState": - return ec.fieldContext_NodeMetrics_nodeState(ctx, field) - case "metricHealth": - return ec.fieldContext_NodeMetrics_metricHealth(ctx, field) - case "subCluster": - return ec.fieldContext_NodeMetrics_subCluster(ctx, field) - case "metrics": - return ec.fieldContext_NodeMetrics_metrics(ctx, field) - } - return nil, fmt.Errorf("no field named %q was found under type NodeMetrics", field.Name) + return ec.childFields_NodeMetrics(ctx, field) }, } return fc, nil @@ -8723,28 +8739,22 @@ func (ec *executionContext) _NodesResultList_offset(ctx context.Context, field g ctx, ec.OperationContext, field, - ec.fieldContext_NodesResultList_offset, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_NodesResultList_offset(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Offset, nil }, nil, - ec.marshalOInt2ᚖint, + func(ctx context.Context, selections ast.SelectionSet, v *int) graphql.Marshaler { + return ec.marshalOInt2ᚖint(ctx, selections, v) + }, true, false, ) } - func (ec *executionContext) fieldContext_NodesResultList_offset(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "NodesResultList", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Int does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("NodesResultList", field, false, false, errors.New("field of type Int does not have child fields")) } func (ec *executionContext) _NodesResultList_limit(ctx context.Context, field graphql.CollectedField, obj *model.NodesResultList) (ret graphql.Marshaler) { @@ -8752,28 +8762,22 @@ func (ec *executionContext) _NodesResultList_limit(ctx context.Context, field gr ctx, ec.OperationContext, field, - ec.fieldContext_NodesResultList_limit, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_NodesResultList_limit(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Limit, nil }, nil, - ec.marshalOInt2ᚖint, + func(ctx context.Context, selections ast.SelectionSet, v *int) graphql.Marshaler { + return ec.marshalOInt2ᚖint(ctx, selections, v) + }, true, false, ) } - func (ec *executionContext) fieldContext_NodesResultList_limit(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "NodesResultList", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Int does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("NodesResultList", field, false, false, errors.New("field of type Int does not have child fields")) } func (ec *executionContext) _NodesResultList_count(ctx context.Context, field graphql.CollectedField, obj *model.NodesResultList) (ret graphql.Marshaler) { @@ -8781,28 +8785,22 @@ func (ec *executionContext) _NodesResultList_count(ctx context.Context, field gr ctx, ec.OperationContext, field, - ec.fieldContext_NodesResultList_count, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_NodesResultList_count(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Count, nil }, nil, - ec.marshalOInt2ᚖint, + func(ctx context.Context, selections ast.SelectionSet, v *int) graphql.Marshaler { + return ec.marshalOInt2ᚖint(ctx, selections, v) + }, true, false, ) } - func (ec *executionContext) fieldContext_NodesResultList_count(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "NodesResultList", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Int does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("NodesResultList", field, false, false, errors.New("field of type Int does not have child fields")) } func (ec *executionContext) _NodesResultList_totalNodes(ctx context.Context, field graphql.CollectedField, obj *model.NodesResultList) (ret graphql.Marshaler) { @@ -8810,28 +8808,22 @@ func (ec *executionContext) _NodesResultList_totalNodes(ctx context.Context, fie ctx, ec.OperationContext, field, - ec.fieldContext_NodesResultList_totalNodes, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_NodesResultList_totalNodes(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.TotalNodes, nil }, nil, - ec.marshalOInt2ᚖint, + func(ctx context.Context, selections ast.SelectionSet, v *int) graphql.Marshaler { + return ec.marshalOInt2ᚖint(ctx, selections, v) + }, true, false, ) } - func (ec *executionContext) fieldContext_NodesResultList_totalNodes(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "NodesResultList", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Int does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("NodesResultList", field, false, false, errors.New("field of type Int does not have child fields")) } func (ec *executionContext) _NodesResultList_hasNextPage(ctx context.Context, field graphql.CollectedField, obj *model.NodesResultList) (ret graphql.Marshaler) { @@ -8839,28 +8831,22 @@ func (ec *executionContext) _NodesResultList_hasNextPage(ctx context.Context, fi ctx, ec.OperationContext, field, - ec.fieldContext_NodesResultList_hasNextPage, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_NodesResultList_hasNextPage(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.HasNextPage, nil }, nil, - ec.marshalOBoolean2ᚖbool, + func(ctx context.Context, selections ast.SelectionSet, v *bool) graphql.Marshaler { + return ec.marshalOBoolean2ᚖbool(ctx, selections, v) + }, true, false, ) } - func (ec *executionContext) fieldContext_NodesResultList_hasNextPage(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "NodesResultList", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Boolean does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("NodesResultList", field, false, false, errors.New("field of type Boolean does not have child fields")) } func (ec *executionContext) _Query_clusters(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { @@ -8868,17 +8854,20 @@ func (ec *executionContext) _Query_clusters(ctx context.Context, field graphql.C ctx, ec.OperationContext, field, - ec.fieldContext_Query_clusters, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_Query_clusters(ctx, field) + }, func(ctx context.Context) (any, error) { return ec.Resolvers.Query().Clusters(ctx) }, nil, - ec.marshalNCluster2ᚕᚖgithubᚗcomᚋClusterCockpitᚋccᚑlibᚋv2ᚋschemaᚐClusterᚄ, + func(ctx context.Context, selections ast.SelectionSet, v []*schema.Cluster) graphql.Marshaler { + return ec.marshalNCluster2ᚕᚖgithubᚗcomᚋClusterCockpitᚋccᚑlibᚋv2ᚋschemaᚐClusterᚄ(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_Query_clusters(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ Object: "Query", @@ -8886,15 +8875,7 @@ func (ec *executionContext) fieldContext_Query_clusters(_ context.Context, field IsMethod: true, IsResolver: true, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - switch field.Name { - case "name": - return ec.fieldContext_Cluster_name(ctx, field) - case "partitions": - return ec.fieldContext_Cluster_partitions(ctx, field) - case "subClusters": - return ec.fieldContext_Cluster_subClusters(ctx, field) - } - return nil, fmt.Errorf("no field named %q was found under type Cluster", field.Name) + return ec.childFields_Cluster(ctx, field) }, } return fc, nil @@ -8905,17 +8886,20 @@ func (ec *executionContext) _Query_tags(ctx context.Context, field graphql.Colle ctx, ec.OperationContext, field, - ec.fieldContext_Query_tags, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_Query_tags(ctx, field) + }, func(ctx context.Context) (any, error) { return ec.Resolvers.Query().Tags(ctx) }, nil, - ec.marshalNTag2ᚕᚖgithubᚗcomᚋClusterCockpitᚋccᚑlibᚋv2ᚋschemaᚐTagᚄ, + func(ctx context.Context, selections ast.SelectionSet, v []*schema.Tag) graphql.Marshaler { + return ec.marshalNTag2ᚕᚖgithubᚗcomᚋClusterCockpitᚋccᚑlibᚋv2ᚋschemaᚐTagᚄ(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_Query_tags(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ Object: "Query", @@ -8923,17 +8907,7 @@ func (ec *executionContext) fieldContext_Query_tags(_ context.Context, field gra IsMethod: true, IsResolver: true, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - switch field.Name { - case "id": - return ec.fieldContext_Tag_id(ctx, field) - case "type": - return ec.fieldContext_Tag_type(ctx, field) - case "name": - return ec.fieldContext_Tag_name(ctx, field) - case "scope": - return ec.fieldContext_Tag_scope(ctx, field) - } - return nil, fmt.Errorf("no field named %q was found under type Tag", field.Name) + return ec.childFields_Tag(ctx, field) }, } return fc, nil @@ -8944,17 +8918,20 @@ func (ec *executionContext) _Query_globalMetrics(ctx context.Context, field grap ctx, ec.OperationContext, field, - ec.fieldContext_Query_globalMetrics, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_Query_globalMetrics(ctx, field) + }, func(ctx context.Context) (any, error) { return ec.Resolvers.Query().GlobalMetrics(ctx) }, nil, - ec.marshalNGlobalMetricListItem2ᚕᚖgithubᚗcomᚋClusterCockpitᚋccᚑlibᚋv2ᚋschemaᚐGlobalMetricListItemᚄ, + func(ctx context.Context, selections ast.SelectionSet, v []*schema.GlobalMetricListItem) graphql.Marshaler { + return ec.marshalNGlobalMetricListItem2ᚕᚖgithubᚗcomᚋClusterCockpitᚋccᚑlibᚋv2ᚋschemaᚐGlobalMetricListItemᚄ(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_Query_globalMetrics(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ Object: "Query", @@ -8962,19 +8939,7 @@ func (ec *executionContext) fieldContext_Query_globalMetrics(_ context.Context, IsMethod: true, IsResolver: true, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - switch field.Name { - case "name": - return ec.fieldContext_GlobalMetricListItem_name(ctx, field) - case "unit": - return ec.fieldContext_GlobalMetricListItem_unit(ctx, field) - case "scope": - return ec.fieldContext_GlobalMetricListItem_scope(ctx, field) - case "footprint": - return ec.fieldContext_GlobalMetricListItem_footprint(ctx, field) - case "availability": - return ec.fieldContext_GlobalMetricListItem_availability(ctx, field) - } - return nil, fmt.Errorf("no field named %q was found under type GlobalMetricListItem", field.Name) + return ec.childFields_GlobalMetricListItem(ctx, field) }, } return fc, nil @@ -8985,18 +8950,21 @@ func (ec *executionContext) _Query_user(ctx context.Context, field graphql.Colle ctx, ec.OperationContext, field, - ec.fieldContext_Query_user, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_Query_user(ctx, field) + }, func(ctx context.Context) (any, error) { fc := graphql.GetFieldContext(ctx) return ec.Resolvers.Query().User(ctx, fc.Args["username"].(string)) }, nil, - ec.marshalOUser2ᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐUser, + func(ctx context.Context, selections ast.SelectionSet, v *model.User) graphql.Marshaler { + return ec.marshalOUser2ᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐUser(ctx, selections, v) + }, true, false, ) } - func (ec *executionContext) fieldContext_Query_user(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ Object: "Query", @@ -9004,15 +8972,7 @@ func (ec *executionContext) fieldContext_Query_user(ctx context.Context, field g IsMethod: true, IsResolver: true, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - switch field.Name { - case "username": - return ec.fieldContext_User_username(ctx, field) - case "name": - return ec.fieldContext_User_name(ctx, field) - case "email": - return ec.fieldContext_User_email(ctx, field) - } - return nil, fmt.Errorf("no field named %q was found under type User", field.Name) + return ec.childFields_User(ctx, field) }, } defer func() { @@ -9034,18 +8994,21 @@ func (ec *executionContext) _Query_allocatedNodes(ctx context.Context, field gra ctx, ec.OperationContext, field, - ec.fieldContext_Query_allocatedNodes, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_Query_allocatedNodes(ctx, field) + }, func(ctx context.Context) (any, error) { fc := graphql.GetFieldContext(ctx) return ec.Resolvers.Query().AllocatedNodes(ctx, fc.Args["cluster"].(string)) }, nil, - ec.marshalNCount2ᚕᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐCountᚄ, + func(ctx context.Context, selections ast.SelectionSet, v []*model.Count) graphql.Marshaler { + return ec.marshalNCount2ᚕᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐCountᚄ(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_Query_allocatedNodes(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ Object: "Query", @@ -9053,13 +9016,7 @@ func (ec *executionContext) fieldContext_Query_allocatedNodes(ctx context.Contex IsMethod: true, IsResolver: true, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - switch field.Name { - case "name": - return ec.fieldContext_Count_name(ctx, field) - case "count": - return ec.fieldContext_Count_count(ctx, field) - } - return nil, fmt.Errorf("no field named %q was found under type Count", field.Name) + return ec.childFields_Count(ctx, field) }, } defer func() { @@ -9081,18 +9038,21 @@ func (ec *executionContext) _Query_node(ctx context.Context, field graphql.Colle ctx, ec.OperationContext, field, - ec.fieldContext_Query_node, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_Query_node(ctx, field) + }, func(ctx context.Context) (any, error) { fc := graphql.GetFieldContext(ctx) return ec.Resolvers.Query().Node(ctx, fc.Args["id"].(string)) }, nil, - ec.marshalONode2ᚖgithubᚗcomᚋClusterCockpitᚋccᚑlibᚋv2ᚋschemaᚐNode, + func(ctx context.Context, selections ast.SelectionSet, v *schema.Node) graphql.Marshaler { + return ec.marshalONode2ᚖgithubᚗcomᚋClusterCockpitᚋccᚑlibᚋv2ᚋschemaᚐNode(ctx, selections, v) + }, true, false, ) } - func (ec *executionContext) fieldContext_Query_node(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ Object: "Query", @@ -9100,33 +9060,7 @@ func (ec *executionContext) fieldContext_Query_node(ctx context.Context, field g IsMethod: true, IsResolver: true, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - switch field.Name { - case "id": - return ec.fieldContext_Node_id(ctx, field) - case "hostname": - return ec.fieldContext_Node_hostname(ctx, field) - case "cluster": - return ec.fieldContext_Node_cluster(ctx, field) - case "subCluster": - return ec.fieldContext_Node_subCluster(ctx, field) - case "jobsRunning": - return ec.fieldContext_Node_jobsRunning(ctx, field) - case "cpusAllocated": - return ec.fieldContext_Node_cpusAllocated(ctx, field) - case "memoryAllocated": - return ec.fieldContext_Node_memoryAllocated(ctx, field) - case "gpusAllocated": - return ec.fieldContext_Node_gpusAllocated(ctx, field) - case "schedulerState": - return ec.fieldContext_Node_schedulerState(ctx, field) - case "healthState": - return ec.fieldContext_Node_healthState(ctx, field) - case "metaData": - return ec.fieldContext_Node_metaData(ctx, field) - case "healthData": - return ec.fieldContext_Node_healthData(ctx, field) - } - return nil, fmt.Errorf("no field named %q was found under type Node", field.Name) + return ec.childFields_Node(ctx, field) }, } defer func() { @@ -9148,18 +9082,21 @@ func (ec *executionContext) _Query_nodes(ctx context.Context, field graphql.Coll ctx, ec.OperationContext, field, - ec.fieldContext_Query_nodes, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_Query_nodes(ctx, field) + }, func(ctx context.Context) (any, error) { fc := graphql.GetFieldContext(ctx) return ec.Resolvers.Query().Nodes(ctx, fc.Args["filter"].([]*model.NodeFilter), fc.Args["order"].(*model.OrderByInput)) }, nil, - ec.marshalNNodeStateResultList2ᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐNodeStateResultList, + func(ctx context.Context, selections ast.SelectionSet, v *model.NodeStateResultList) graphql.Marshaler { + return ec.marshalNNodeStateResultList2ᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐNodeStateResultList(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_Query_nodes(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ Object: "Query", @@ -9167,13 +9104,7 @@ func (ec *executionContext) fieldContext_Query_nodes(ctx context.Context, field IsMethod: true, IsResolver: true, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - switch field.Name { - case "items": - return ec.fieldContext_NodeStateResultList_items(ctx, field) - case "count": - return ec.fieldContext_NodeStateResultList_count(ctx, field) - } - return nil, fmt.Errorf("no field named %q was found under type NodeStateResultList", field.Name) + return ec.childFields_NodeStateResultList(ctx, field) }, } defer func() { @@ -9195,18 +9126,21 @@ func (ec *executionContext) _Query_nodesWithMeta(ctx context.Context, field grap ctx, ec.OperationContext, field, - ec.fieldContext_Query_nodesWithMeta, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_Query_nodesWithMeta(ctx, field) + }, func(ctx context.Context) (any, error) { fc := graphql.GetFieldContext(ctx) return ec.Resolvers.Query().NodesWithMeta(ctx, fc.Args["filter"].([]*model.NodeFilter), fc.Args["order"].(*model.OrderByInput)) }, nil, - ec.marshalNNodeStateResultList2ᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐNodeStateResultList, + func(ctx context.Context, selections ast.SelectionSet, v *model.NodeStateResultList) graphql.Marshaler { + return ec.marshalNNodeStateResultList2ᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐNodeStateResultList(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_Query_nodesWithMeta(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ Object: "Query", @@ -9214,13 +9148,7 @@ func (ec *executionContext) fieldContext_Query_nodesWithMeta(ctx context.Context IsMethod: true, IsResolver: true, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - switch field.Name { - case "items": - return ec.fieldContext_NodeStateResultList_items(ctx, field) - case "count": - return ec.fieldContext_NodeStateResultList_count(ctx, field) - } - return nil, fmt.Errorf("no field named %q was found under type NodeStateResultList", field.Name) + return ec.childFields_NodeStateResultList(ctx, field) }, } defer func() { @@ -9242,18 +9170,21 @@ func (ec *executionContext) _Query_nodeStates(ctx context.Context, field graphql ctx, ec.OperationContext, field, - ec.fieldContext_Query_nodeStates, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_Query_nodeStates(ctx, field) + }, func(ctx context.Context) (any, error) { fc := graphql.GetFieldContext(ctx) return ec.Resolvers.Query().NodeStates(ctx, fc.Args["filter"].([]*model.NodeFilter)) }, nil, - ec.marshalNNodeStates2ᚕᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐNodeStatesᚄ, + func(ctx context.Context, selections ast.SelectionSet, v []*model.NodeStates) graphql.Marshaler { + return ec.marshalNNodeStates2ᚕᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐNodeStatesᚄ(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_Query_nodeStates(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ Object: "Query", @@ -9261,13 +9192,7 @@ func (ec *executionContext) fieldContext_Query_nodeStates(ctx context.Context, f IsMethod: true, IsResolver: true, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - switch field.Name { - case "state": - return ec.fieldContext_NodeStates_state(ctx, field) - case "count": - return ec.fieldContext_NodeStates_count(ctx, field) - } - return nil, fmt.Errorf("no field named %q was found under type NodeStates", field.Name) + return ec.childFields_NodeStates(ctx, field) }, } defer func() { @@ -9289,18 +9214,21 @@ func (ec *executionContext) _Query_nodeStatesTimed(ctx context.Context, field gr ctx, ec.OperationContext, field, - ec.fieldContext_Query_nodeStatesTimed, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_Query_nodeStatesTimed(ctx, field) + }, func(ctx context.Context) (any, error) { fc := graphql.GetFieldContext(ctx) return ec.Resolvers.Query().NodeStatesTimed(ctx, fc.Args["filter"].([]*model.NodeFilter), fc.Args["type"].(string)) }, nil, - ec.marshalNNodeStatesTimed2ᚕᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐNodeStatesTimedᚄ, + func(ctx context.Context, selections ast.SelectionSet, v []*model.NodeStatesTimed) graphql.Marshaler { + return ec.marshalNNodeStatesTimed2ᚕᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐNodeStatesTimedᚄ(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_Query_nodeStatesTimed(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ Object: "Query", @@ -9308,15 +9236,7 @@ func (ec *executionContext) fieldContext_Query_nodeStatesTimed(ctx context.Conte IsMethod: true, IsResolver: true, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - switch field.Name { - case "state": - return ec.fieldContext_NodeStatesTimed_state(ctx, field) - case "counts": - return ec.fieldContext_NodeStatesTimed_counts(ctx, field) - case "times": - return ec.fieldContext_NodeStatesTimed_times(ctx, field) - } - return nil, fmt.Errorf("no field named %q was found under type NodeStatesTimed", field.Name) + return ec.childFields_NodeStatesTimed(ctx, field) }, } defer func() { @@ -9338,18 +9258,21 @@ func (ec *executionContext) _Query_job(ctx context.Context, field graphql.Collec ctx, ec.OperationContext, field, - ec.fieldContext_Query_job, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_Query_job(ctx, field) + }, func(ctx context.Context) (any, error) { fc := graphql.GetFieldContext(ctx) return ec.Resolvers.Query().Job(ctx, fc.Args["id"].(string)) }, nil, - ec.marshalOJob2ᚖgithubᚗcomᚋClusterCockpitᚋccᚑlibᚋv2ᚋschemaᚐJob, + func(ctx context.Context, selections ast.SelectionSet, v *schema.Job) graphql.Marshaler { + return ec.marshalOJob2ᚖgithubᚗcomᚋClusterCockpitᚋccᚑlibᚋv2ᚋschemaᚐJob(ctx, selections, v) + }, true, false, ) } - func (ec *executionContext) fieldContext_Query_job(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ Object: "Query", @@ -9357,61 +9280,7 @@ func (ec *executionContext) fieldContext_Query_job(ctx context.Context, field gr IsMethod: true, IsResolver: true, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - switch field.Name { - case "id": - return ec.fieldContext_Job_id(ctx, field) - case "jobId": - return ec.fieldContext_Job_jobId(ctx, field) - case "user": - return ec.fieldContext_Job_user(ctx, field) - case "project": - return ec.fieldContext_Job_project(ctx, field) - case "cluster": - return ec.fieldContext_Job_cluster(ctx, field) - case "subCluster": - return ec.fieldContext_Job_subCluster(ctx, field) - case "startTime": - return ec.fieldContext_Job_startTime(ctx, field) - case "duration": - return ec.fieldContext_Job_duration(ctx, field) - case "walltime": - return ec.fieldContext_Job_walltime(ctx, field) - case "numNodes": - return ec.fieldContext_Job_numNodes(ctx, field) - case "numHWThreads": - return ec.fieldContext_Job_numHWThreads(ctx, field) - case "numAcc": - return ec.fieldContext_Job_numAcc(ctx, field) - case "energy": - return ec.fieldContext_Job_energy(ctx, field) - case "SMT": - return ec.fieldContext_Job_SMT(ctx, field) - case "shared": - return ec.fieldContext_Job_shared(ctx, field) - case "partition": - return ec.fieldContext_Job_partition(ctx, field) - case "arrayJobId": - return ec.fieldContext_Job_arrayJobId(ctx, field) - case "monitoringStatus": - return ec.fieldContext_Job_monitoringStatus(ctx, field) - case "state": - return ec.fieldContext_Job_state(ctx, field) - case "tags": - return ec.fieldContext_Job_tags(ctx, field) - case "resources": - return ec.fieldContext_Job_resources(ctx, field) - case "concurrentJobs": - return ec.fieldContext_Job_concurrentJobs(ctx, field) - case "footprint": - return ec.fieldContext_Job_footprint(ctx, field) - case "energyFootprint": - return ec.fieldContext_Job_energyFootprint(ctx, field) - case "metaData": - return ec.fieldContext_Job_metaData(ctx, field) - case "userData": - return ec.fieldContext_Job_userData(ctx, field) - } - return nil, fmt.Errorf("no field named %q was found under type Job", field.Name) + return ec.childFields_Job(ctx, field) }, } defer func() { @@ -9433,18 +9302,21 @@ func (ec *executionContext) _Query_jobMetrics(ctx context.Context, field graphql ctx, ec.OperationContext, field, - ec.fieldContext_Query_jobMetrics, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_Query_jobMetrics(ctx, field) + }, func(ctx context.Context) (any, error) { fc := graphql.GetFieldContext(ctx) return ec.Resolvers.Query().JobMetrics(ctx, fc.Args["id"].(string), fc.Args["metrics"].([]string), fc.Args["scopes"].([]schema.MetricScope), fc.Args["resolution"].(*int)) }, nil, - ec.marshalNJobMetricWithName2ᚕᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐJobMetricWithNameᚄ, + func(ctx context.Context, selections ast.SelectionSet, v []*model.JobMetricWithName) graphql.Marshaler { + return ec.marshalNJobMetricWithName2ᚕᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐJobMetricWithNameᚄ(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_Query_jobMetrics(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ Object: "Query", @@ -9452,15 +9324,7 @@ func (ec *executionContext) fieldContext_Query_jobMetrics(ctx context.Context, f IsMethod: true, IsResolver: true, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - switch field.Name { - case "name": - return ec.fieldContext_JobMetricWithName_name(ctx, field) - case "scope": - return ec.fieldContext_JobMetricWithName_scope(ctx, field) - case "metric": - return ec.fieldContext_JobMetricWithName_metric(ctx, field) - } - return nil, fmt.Errorf("no field named %q was found under type JobMetricWithName", field.Name) + return ec.childFields_JobMetricWithName(ctx, field) }, } defer func() { @@ -9482,18 +9346,21 @@ func (ec *executionContext) _Query_jobStats(ctx context.Context, field graphql.C ctx, ec.OperationContext, field, - ec.fieldContext_Query_jobStats, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_Query_jobStats(ctx, field) + }, func(ctx context.Context) (any, error) { fc := graphql.GetFieldContext(ctx) return ec.Resolvers.Query().JobStats(ctx, fc.Args["id"].(string), fc.Args["metrics"].([]string)) }, nil, - ec.marshalNNamedStats2ᚕᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐNamedStatsᚄ, + func(ctx context.Context, selections ast.SelectionSet, v []*model.NamedStats) graphql.Marshaler { + return ec.marshalNNamedStats2ᚕᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐNamedStatsᚄ(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_Query_jobStats(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ Object: "Query", @@ -9501,13 +9368,7 @@ func (ec *executionContext) fieldContext_Query_jobStats(ctx context.Context, fie IsMethod: true, IsResolver: true, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - switch field.Name { - case "name": - return ec.fieldContext_NamedStats_name(ctx, field) - case "data": - return ec.fieldContext_NamedStats_data(ctx, field) - } - return nil, fmt.Errorf("no field named %q was found under type NamedStats", field.Name) + return ec.childFields_NamedStats(ctx, field) }, } defer func() { @@ -9529,18 +9390,21 @@ func (ec *executionContext) _Query_scopedJobStats(ctx context.Context, field gra ctx, ec.OperationContext, field, - ec.fieldContext_Query_scopedJobStats, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_Query_scopedJobStats(ctx, field) + }, func(ctx context.Context) (any, error) { fc := graphql.GetFieldContext(ctx) return ec.Resolvers.Query().ScopedJobStats(ctx, fc.Args["id"].(string), fc.Args["metrics"].([]string), fc.Args["scopes"].([]schema.MetricScope)) }, nil, - ec.marshalNNamedStatsWithScope2ᚕᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐNamedStatsWithScopeᚄ, + func(ctx context.Context, selections ast.SelectionSet, v []*model.NamedStatsWithScope) graphql.Marshaler { + return ec.marshalNNamedStatsWithScope2ᚕᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐNamedStatsWithScopeᚄ(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_Query_scopedJobStats(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ Object: "Query", @@ -9548,15 +9412,7 @@ func (ec *executionContext) fieldContext_Query_scopedJobStats(ctx context.Contex IsMethod: true, IsResolver: true, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - switch field.Name { - case "name": - return ec.fieldContext_NamedStatsWithScope_name(ctx, field) - case "scope": - return ec.fieldContext_NamedStatsWithScope_scope(ctx, field) - case "stats": - return ec.fieldContext_NamedStatsWithScope_stats(ctx, field) - } - return nil, fmt.Errorf("no field named %q was found under type NamedStatsWithScope", field.Name) + return ec.childFields_NamedStatsWithScope(ctx, field) }, } defer func() { @@ -9578,18 +9434,21 @@ func (ec *executionContext) _Query_jobs(ctx context.Context, field graphql.Colle ctx, ec.OperationContext, field, - ec.fieldContext_Query_jobs, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_Query_jobs(ctx, field) + }, func(ctx context.Context) (any, error) { fc := graphql.GetFieldContext(ctx) return ec.Resolvers.Query().Jobs(ctx, fc.Args["filter"].([]*model.JobFilter), fc.Args["page"].(*model.PageRequest), fc.Args["order"].(*model.OrderByInput)) }, nil, - ec.marshalNJobResultList2ᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐJobResultList, + func(ctx context.Context, selections ast.SelectionSet, v *model.JobResultList) graphql.Marshaler { + return ec.marshalNJobResultList2ᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐJobResultList(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_Query_jobs(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ Object: "Query", @@ -9597,19 +9456,7 @@ func (ec *executionContext) fieldContext_Query_jobs(ctx context.Context, field g IsMethod: true, IsResolver: true, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - switch field.Name { - case "items": - return ec.fieldContext_JobResultList_items(ctx, field) - case "offset": - return ec.fieldContext_JobResultList_offset(ctx, field) - case "limit": - return ec.fieldContext_JobResultList_limit(ctx, field) - case "count": - return ec.fieldContext_JobResultList_count(ctx, field) - case "hasNextPage": - return ec.fieldContext_JobResultList_hasNextPage(ctx, field) - } - return nil, fmt.Errorf("no field named %q was found under type JobResultList", field.Name) + return ec.childFields_JobResultList(ctx, field) }, } defer func() { @@ -9631,18 +9478,21 @@ func (ec *executionContext) _Query_jobsStatistics(ctx context.Context, field gra ctx, ec.OperationContext, field, - ec.fieldContext_Query_jobsStatistics, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_Query_jobsStatistics(ctx, field) + }, func(ctx context.Context) (any, error) { fc := graphql.GetFieldContext(ctx) return ec.Resolvers.Query().JobsStatistics(ctx, fc.Args["filter"].([]*model.JobFilter), fc.Args["metrics"].([]string), fc.Args["page"].(*model.PageRequest), fc.Args["sortBy"].(*model.SortByAggregate), fc.Args["groupBy"].(*model.Aggregate), fc.Args["numDurationBins"].(*string), fc.Args["numMetricBins"].(*int)) }, nil, - ec.marshalNJobsStatistics2ᚕᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐJobsStatisticsᚄ, + func(ctx context.Context, selections ast.SelectionSet, v []*model.JobsStatistics) graphql.Marshaler { + return ec.marshalNJobsStatistics2ᚕᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐJobsStatisticsᚄ(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_Query_jobsStatistics(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ Object: "Query", @@ -9650,45 +9500,7 @@ func (ec *executionContext) fieldContext_Query_jobsStatistics(ctx context.Contex IsMethod: true, IsResolver: true, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - switch field.Name { - case "id": - return ec.fieldContext_JobsStatistics_id(ctx, field) - case "name": - return ec.fieldContext_JobsStatistics_name(ctx, field) - case "totalUsers": - return ec.fieldContext_JobsStatistics_totalUsers(ctx, field) - case "totalJobs": - return ec.fieldContext_JobsStatistics_totalJobs(ctx, field) - case "runningJobs": - return ec.fieldContext_JobsStatistics_runningJobs(ctx, field) - case "shortJobs": - return ec.fieldContext_JobsStatistics_shortJobs(ctx, field) - case "totalWalltime": - return ec.fieldContext_JobsStatistics_totalWalltime(ctx, field) - case "totalNodes": - return ec.fieldContext_JobsStatistics_totalNodes(ctx, field) - case "totalNodeHours": - return ec.fieldContext_JobsStatistics_totalNodeHours(ctx, field) - case "totalCores": - return ec.fieldContext_JobsStatistics_totalCores(ctx, field) - case "totalCoreHours": - return ec.fieldContext_JobsStatistics_totalCoreHours(ctx, field) - case "totalAccs": - return ec.fieldContext_JobsStatistics_totalAccs(ctx, field) - case "totalAccHours": - return ec.fieldContext_JobsStatistics_totalAccHours(ctx, field) - case "histDuration": - return ec.fieldContext_JobsStatistics_histDuration(ctx, field) - case "histNumNodes": - return ec.fieldContext_JobsStatistics_histNumNodes(ctx, field) - case "histNumCores": - return ec.fieldContext_JobsStatistics_histNumCores(ctx, field) - case "histNumAccs": - return ec.fieldContext_JobsStatistics_histNumAccs(ctx, field) - case "histMetrics": - return ec.fieldContext_JobsStatistics_histMetrics(ctx, field) - } - return nil, fmt.Errorf("no field named %q was found under type JobsStatistics", field.Name) + return ec.childFields_JobsStatistics(ctx, field) }, } defer func() { @@ -9710,18 +9522,21 @@ func (ec *executionContext) _Query_jobsMetricStats(ctx context.Context, field gr ctx, ec.OperationContext, field, - ec.fieldContext_Query_jobsMetricStats, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_Query_jobsMetricStats(ctx, field) + }, func(ctx context.Context) (any, error) { fc := graphql.GetFieldContext(ctx) return ec.Resolvers.Query().JobsMetricStats(ctx, fc.Args["filter"].([]*model.JobFilter), fc.Args["metrics"].([]string)) }, nil, - ec.marshalNJobStats2ᚕᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐJobStatsᚄ, + func(ctx context.Context, selections ast.SelectionSet, v []*model.JobStats) graphql.Marshaler { + return ec.marshalNJobStats2ᚕᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐJobStatsᚄ(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_Query_jobsMetricStats(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ Object: "Query", @@ -9729,29 +9544,7 @@ func (ec *executionContext) fieldContext_Query_jobsMetricStats(ctx context.Conte IsMethod: true, IsResolver: true, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - switch field.Name { - case "id": - return ec.fieldContext_JobStats_id(ctx, field) - case "jobId": - return ec.fieldContext_JobStats_jobId(ctx, field) - case "startTime": - return ec.fieldContext_JobStats_startTime(ctx, field) - case "duration": - return ec.fieldContext_JobStats_duration(ctx, field) - case "cluster": - return ec.fieldContext_JobStats_cluster(ctx, field) - case "subCluster": - return ec.fieldContext_JobStats_subCluster(ctx, field) - case "numNodes": - return ec.fieldContext_JobStats_numNodes(ctx, field) - case "numHWThreads": - return ec.fieldContext_JobStats_numHWThreads(ctx, field) - case "numAccelerators": - return ec.fieldContext_JobStats_numAccelerators(ctx, field) - case "stats": - return ec.fieldContext_JobStats_stats(ctx, field) - } - return nil, fmt.Errorf("no field named %q was found under type JobStats", field.Name) + return ec.childFields_JobStats(ctx, field) }, } defer func() { @@ -9773,18 +9566,21 @@ func (ec *executionContext) _Query_jobsFootprints(ctx context.Context, field gra ctx, ec.OperationContext, field, - ec.fieldContext_Query_jobsFootprints, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_Query_jobsFootprints(ctx, field) + }, func(ctx context.Context) (any, error) { fc := graphql.GetFieldContext(ctx) return ec.Resolvers.Query().JobsFootprints(ctx, fc.Args["filter"].([]*model.JobFilter), fc.Args["metrics"].([]string)) }, nil, - ec.marshalOFootprints2ᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐFootprints, + func(ctx context.Context, selections ast.SelectionSet, v *model.Footprints) graphql.Marshaler { + return ec.marshalOFootprints2ᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐFootprints(ctx, selections, v) + }, true, false, ) } - func (ec *executionContext) fieldContext_Query_jobsFootprints(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ Object: "Query", @@ -9792,13 +9588,7 @@ func (ec *executionContext) fieldContext_Query_jobsFootprints(ctx context.Contex IsMethod: true, IsResolver: true, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - switch field.Name { - case "timeWeights": - return ec.fieldContext_Footprints_timeWeights(ctx, field) - case "metrics": - return ec.fieldContext_Footprints_metrics(ctx, field) - } - return nil, fmt.Errorf("no field named %q was found under type Footprints", field.Name) + return ec.childFields_Footprints(ctx, field) }, } defer func() { @@ -9820,18 +9610,21 @@ func (ec *executionContext) _Query_rooflineHeatmap(ctx context.Context, field gr ctx, ec.OperationContext, field, - ec.fieldContext_Query_rooflineHeatmap, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_Query_rooflineHeatmap(ctx, field) + }, func(ctx context.Context) (any, error) { fc := graphql.GetFieldContext(ctx) return ec.Resolvers.Query().RooflineHeatmap(ctx, fc.Args["filter"].([]*model.JobFilter), fc.Args["rows"].(int), fc.Args["cols"].(int), fc.Args["minX"].(float64), fc.Args["minY"].(float64), fc.Args["maxX"].(float64), fc.Args["maxY"].(float64)) }, nil, - ec.marshalNFloat2ᚕᚕfloat64ᚄ, + func(ctx context.Context, selections ast.SelectionSet, v [][]float64) graphql.Marshaler { + return ec.marshalNFloat2ᚕᚕfloat64ᚄ(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_Query_rooflineHeatmap(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ Object: "Query", @@ -9861,18 +9654,21 @@ func (ec *executionContext) _Query_nodeMetrics(ctx context.Context, field graphq ctx, ec.OperationContext, field, - ec.fieldContext_Query_nodeMetrics, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_Query_nodeMetrics(ctx, field) + }, func(ctx context.Context) (any, error) { fc := graphql.GetFieldContext(ctx) return ec.Resolvers.Query().NodeMetrics(ctx, fc.Args["cluster"].(string), fc.Args["nodes"].([]string), fc.Args["scopes"].([]schema.MetricScope), fc.Args["metrics"].([]string), fc.Args["from"].(time.Time), fc.Args["to"].(time.Time)) }, nil, - ec.marshalNNodeMetrics2ᚕᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐNodeMetricsᚄ, + func(ctx context.Context, selections ast.SelectionSet, v []*model.NodeMetrics) graphql.Marshaler { + return ec.marshalNNodeMetrics2ᚕᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐNodeMetricsᚄ(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_Query_nodeMetrics(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ Object: "Query", @@ -9880,19 +9676,7 @@ func (ec *executionContext) fieldContext_Query_nodeMetrics(ctx context.Context, IsMethod: true, IsResolver: true, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - switch field.Name { - case "host": - return ec.fieldContext_NodeMetrics_host(ctx, field) - case "nodeState": - return ec.fieldContext_NodeMetrics_nodeState(ctx, field) - case "metricHealth": - return ec.fieldContext_NodeMetrics_metricHealth(ctx, field) - case "subCluster": - return ec.fieldContext_NodeMetrics_subCluster(ctx, field) - case "metrics": - return ec.fieldContext_NodeMetrics_metrics(ctx, field) - } - return nil, fmt.Errorf("no field named %q was found under type NodeMetrics", field.Name) + return ec.childFields_NodeMetrics(ctx, field) }, } defer func() { @@ -9914,18 +9698,21 @@ func (ec *executionContext) _Query_nodeMetricsList(ctx context.Context, field gr ctx, ec.OperationContext, field, - ec.fieldContext_Query_nodeMetricsList, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_Query_nodeMetricsList(ctx, field) + }, func(ctx context.Context) (any, error) { fc := graphql.GetFieldContext(ctx) return ec.Resolvers.Query().NodeMetricsList(ctx, fc.Args["cluster"].(string), fc.Args["subCluster"].(string), fc.Args["stateFilter"].(string), fc.Args["nodeFilter"].(string), fc.Args["scopes"].([]schema.MetricScope), fc.Args["metrics"].([]string), fc.Args["from"].(time.Time), fc.Args["to"].(time.Time), fc.Args["page"].(*model.PageRequest), fc.Args["resolution"].(*int)) }, nil, - ec.marshalNNodesResultList2ᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐNodesResultList, + func(ctx context.Context, selections ast.SelectionSet, v *model.NodesResultList) graphql.Marshaler { + return ec.marshalNNodesResultList2ᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐNodesResultList(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_Query_nodeMetricsList(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ Object: "Query", @@ -9933,21 +9720,7 @@ func (ec *executionContext) fieldContext_Query_nodeMetricsList(ctx context.Conte IsMethod: true, IsResolver: true, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - switch field.Name { - case "items": - return ec.fieldContext_NodesResultList_items(ctx, field) - case "offset": - return ec.fieldContext_NodesResultList_offset(ctx, field) - case "limit": - return ec.fieldContext_NodesResultList_limit(ctx, field) - case "count": - return ec.fieldContext_NodesResultList_count(ctx, field) - case "totalNodes": - return ec.fieldContext_NodesResultList_totalNodes(ctx, field) - case "hasNextPage": - return ec.fieldContext_NodesResultList_hasNextPage(ctx, field) - } - return nil, fmt.Errorf("no field named %q was found under type NodesResultList", field.Name) + return ec.childFields_NodesResultList(ctx, field) }, } defer func() { @@ -9969,18 +9742,21 @@ func (ec *executionContext) _Query_clusterMetrics(ctx context.Context, field gra ctx, ec.OperationContext, field, - ec.fieldContext_Query_clusterMetrics, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_Query_clusterMetrics(ctx, field) + }, func(ctx context.Context) (any, error) { fc := graphql.GetFieldContext(ctx) return ec.Resolvers.Query().ClusterMetrics(ctx, fc.Args["cluster"].(string), fc.Args["metrics"].([]string), fc.Args["from"].(time.Time), fc.Args["to"].(time.Time)) }, nil, - ec.marshalNClusterMetrics2ᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐClusterMetrics, + func(ctx context.Context, selections ast.SelectionSet, v *model.ClusterMetrics) graphql.Marshaler { + return ec.marshalNClusterMetrics2ᚖgithubᚗcomᚋClusterCockpitᚋccᚑbackendᚋinternalᚋgraphᚋmodelᚐClusterMetrics(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_Query_clusterMetrics(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ Object: "Query", @@ -9988,13 +9764,7 @@ func (ec *executionContext) fieldContext_Query_clusterMetrics(ctx context.Contex IsMethod: true, IsResolver: true, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - switch field.Name { - case "nodeCount": - return ec.fieldContext_ClusterMetrics_nodeCount(ctx, field) - case "metrics": - return ec.fieldContext_ClusterMetrics_metrics(ctx, field) - } - return nil, fmt.Errorf("no field named %q was found under type ClusterMetrics", field.Name) + return ec.childFields_ClusterMetrics(ctx, field) }, } defer func() { @@ -10016,18 +9786,21 @@ func (ec *executionContext) _Query___type(ctx context.Context, field graphql.Col ctx, ec.OperationContext, field, - ec.fieldContext_Query___type, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_Query___type(ctx, field) + }, func(ctx context.Context) (any, error) { fc := graphql.GetFieldContext(ctx) return ec.IntrospectType(fc.Args["name"].(string)) }, nil, - ec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType, + func(ctx context.Context, selections ast.SelectionSet, v *introspection.Type) graphql.Marshaler { + return ec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, selections, v) + }, true, false, ) } - func (ec *executionContext) fieldContext_Query___type(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ Object: "Query", @@ -10035,31 +9808,7 @@ func (ec *executionContext) fieldContext_Query___type(ctx context.Context, field IsMethod: true, IsResolver: false, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - switch field.Name { - case "kind": - return ec.fieldContext___Type_kind(ctx, field) - case "name": - return ec.fieldContext___Type_name(ctx, field) - case "description": - return ec.fieldContext___Type_description(ctx, field) - case "specifiedByURL": - return ec.fieldContext___Type_specifiedByURL(ctx, field) - case "fields": - return ec.fieldContext___Type_fields(ctx, field) - case "interfaces": - return ec.fieldContext___Type_interfaces(ctx, field) - case "possibleTypes": - return ec.fieldContext___Type_possibleTypes(ctx, field) - case "enumValues": - return ec.fieldContext___Type_enumValues(ctx, field) - case "inputFields": - return ec.fieldContext___Type_inputFields(ctx, field) - case "ofType": - return ec.fieldContext___Type_ofType(ctx, field) - case "isOneOf": - return ec.fieldContext___Type_isOneOf(ctx, field) - } - return nil, fmt.Errorf("no field named %q was found under type __Type", field.Name) + return ec.childFields___Type(ctx, field) }, } defer func() { @@ -10081,17 +9830,20 @@ func (ec *executionContext) _Query___schema(ctx context.Context, field graphql.C ctx, ec.OperationContext, field, - ec.fieldContext_Query___schema, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_Query___schema(ctx, field) + }, func(ctx context.Context) (any, error) { return ec.IntrospectSchema() }, nil, - ec.marshalO__Schema2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐSchema, + func(ctx context.Context, selections ast.SelectionSet, v *introspection.Schema) graphql.Marshaler { + return ec.marshalO__Schema2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐSchema(ctx, selections, v) + }, true, false, ) } - func (ec *executionContext) fieldContext_Query___schema(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ Object: "Query", @@ -10099,21 +9851,7 @@ func (ec *executionContext) fieldContext_Query___schema(_ context.Context, field IsMethod: true, IsResolver: false, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - switch field.Name { - case "description": - return ec.fieldContext___Schema_description(ctx, field) - case "types": - return ec.fieldContext___Schema_types(ctx, field) - case "queryType": - return ec.fieldContext___Schema_queryType(ctx, field) - case "mutationType": - return ec.fieldContext___Schema_mutationType(ctx, field) - case "subscriptionType": - return ec.fieldContext___Schema_subscriptionType(ctx, field) - case "directives": - return ec.fieldContext___Schema_directives(ctx, field) - } - return nil, fmt.Errorf("no field named %q was found under type __Schema", field.Name) + return ec.childFields___Schema(ctx, field) }, } return fc, nil @@ -10124,28 +9862,22 @@ func (ec *executionContext) _Resource_hostname(ctx context.Context, field graphq ctx, ec.OperationContext, field, - ec.fieldContext_Resource_hostname, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_Resource_hostname(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Hostname, nil }, nil, - ec.marshalNString2string, + func(ctx context.Context, selections ast.SelectionSet, v string) graphql.Marshaler { + return ec.marshalNString2string(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_Resource_hostname(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "Resource", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type String does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("Resource", field, false, false, errors.New("field of type String does not have child fields")) } func (ec *executionContext) _Resource_hwthreads(ctx context.Context, field graphql.CollectedField, obj *schema.Resource) (ret graphql.Marshaler) { @@ -10153,28 +9885,22 @@ func (ec *executionContext) _Resource_hwthreads(ctx context.Context, field graph ctx, ec.OperationContext, field, - ec.fieldContext_Resource_hwthreads, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_Resource_hwthreads(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.HWThreads, nil }, nil, - ec.marshalOInt2ᚕintᚄ, + func(ctx context.Context, selections ast.SelectionSet, v []int) graphql.Marshaler { + return ec.marshalOInt2ᚕintᚄ(ctx, selections, v) + }, true, false, ) } - func (ec *executionContext) fieldContext_Resource_hwthreads(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "Resource", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Int does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("Resource", field, false, false, errors.New("field of type Int does not have child fields")) } func (ec *executionContext) _Resource_accelerators(ctx context.Context, field graphql.CollectedField, obj *schema.Resource) (ret graphql.Marshaler) { @@ -10182,28 +9908,22 @@ func (ec *executionContext) _Resource_accelerators(ctx context.Context, field gr ctx, ec.OperationContext, field, - ec.fieldContext_Resource_accelerators, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_Resource_accelerators(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Accelerators, nil }, nil, - ec.marshalOString2ᚕstringᚄ, + func(ctx context.Context, selections ast.SelectionSet, v []string) graphql.Marshaler { + return ec.marshalOString2ᚕstringᚄ(ctx, selections, v) + }, true, false, ) } - func (ec *executionContext) fieldContext_Resource_accelerators(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "Resource", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type String does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("Resource", field, false, false, errors.New("field of type String does not have child fields")) } func (ec *executionContext) _Resource_configuration(ctx context.Context, field graphql.CollectedField, obj *schema.Resource) (ret graphql.Marshaler) { @@ -10211,28 +9931,22 @@ func (ec *executionContext) _Resource_configuration(ctx context.Context, field g ctx, ec.OperationContext, field, - ec.fieldContext_Resource_configuration, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_Resource_configuration(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Configuration, nil }, nil, - ec.marshalOString2string, + func(ctx context.Context, selections ast.SelectionSet, v string) graphql.Marshaler { + return ec.marshalOString2string(ctx, selections, v) + }, true, false, ) } - func (ec *executionContext) fieldContext_Resource_configuration(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "Resource", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type String does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("Resource", field, false, false, errors.New("field of type String does not have child fields")) } func (ec *executionContext) _ScopedStats_hostname(ctx context.Context, field graphql.CollectedField, obj *model.ScopedStats) (ret graphql.Marshaler) { @@ -10240,28 +9954,22 @@ func (ec *executionContext) _ScopedStats_hostname(ctx context.Context, field gra ctx, ec.OperationContext, field, - ec.fieldContext_ScopedStats_hostname, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_ScopedStats_hostname(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Hostname, nil }, nil, - ec.marshalNString2string, + func(ctx context.Context, selections ast.SelectionSet, v string) graphql.Marshaler { + return ec.marshalNString2string(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_ScopedStats_hostname(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "ScopedStats", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type String does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("ScopedStats", field, false, false, errors.New("field of type String does not have child fields")) } func (ec *executionContext) _ScopedStats_id(ctx context.Context, field graphql.CollectedField, obj *model.ScopedStats) (ret graphql.Marshaler) { @@ -10269,28 +9977,22 @@ func (ec *executionContext) _ScopedStats_id(ctx context.Context, field graphql.C ctx, ec.OperationContext, field, - ec.fieldContext_ScopedStats_id, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_ScopedStats_id(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.ID, nil }, nil, - ec.marshalOString2ᚖstring, + func(ctx context.Context, selections ast.SelectionSet, v *string) graphql.Marshaler { + return ec.marshalOString2ᚖstring(ctx, selections, v) + }, true, false, ) } - func (ec *executionContext) fieldContext_ScopedStats_id(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "ScopedStats", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type String does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("ScopedStats", field, false, false, errors.New("field of type String does not have child fields")) } func (ec *executionContext) _ScopedStats_data(ctx context.Context, field graphql.CollectedField, obj *model.ScopedStats) (ret graphql.Marshaler) { @@ -10298,17 +10000,20 @@ func (ec *executionContext) _ScopedStats_data(ctx context.Context, field graphql ctx, ec.OperationContext, field, - ec.fieldContext_ScopedStats_data, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_ScopedStats_data(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Data, nil }, nil, - ec.marshalNMetricStatistics2ᚖgithubᚗcomᚋClusterCockpitᚋccᚑlibᚋv2ᚋschemaᚐMetricStatistics, + func(ctx context.Context, selections ast.SelectionSet, v *schema.MetricStatistics) graphql.Marshaler { + return ec.marshalNMetricStatistics2ᚖgithubᚗcomᚋClusterCockpitᚋccᚑlibᚋv2ᚋschemaᚐMetricStatistics(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_ScopedStats_data(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ Object: "ScopedStats", @@ -10316,15 +10021,7 @@ func (ec *executionContext) fieldContext_ScopedStats_data(_ context.Context, fie IsMethod: false, IsResolver: false, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - switch field.Name { - case "avg": - return ec.fieldContext_MetricStatistics_avg(ctx, field) - case "min": - return ec.fieldContext_MetricStatistics_min(ctx, field) - case "max": - return ec.fieldContext_MetricStatistics_max(ctx, field) - } - return nil, fmt.Errorf("no field named %q was found under type MetricStatistics", field.Name) + return ec.childFields_MetricStatistics(ctx, field) }, } return fc, nil @@ -10335,28 +10032,22 @@ func (ec *executionContext) _Series_hostname(ctx context.Context, field graphql. ctx, ec.OperationContext, field, - ec.fieldContext_Series_hostname, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_Series_hostname(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Hostname, nil }, nil, - ec.marshalNString2string, + func(ctx context.Context, selections ast.SelectionSet, v string) graphql.Marshaler { + return ec.marshalNString2string(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_Series_hostname(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "Series", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type String does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("Series", field, false, false, errors.New("field of type String does not have child fields")) } func (ec *executionContext) _Series_id(ctx context.Context, field graphql.CollectedField, obj *schema.Series) (ret graphql.Marshaler) { @@ -10364,28 +10055,22 @@ func (ec *executionContext) _Series_id(ctx context.Context, field graphql.Collec ctx, ec.OperationContext, field, - ec.fieldContext_Series_id, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_Series_id(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.ID, nil }, nil, - ec.marshalOString2ᚖstring, + func(ctx context.Context, selections ast.SelectionSet, v *string) graphql.Marshaler { + return ec.marshalOString2ᚖstring(ctx, selections, v) + }, true, false, ) } - func (ec *executionContext) fieldContext_Series_id(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "Series", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type String does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("Series", field, false, false, errors.New("field of type String does not have child fields")) } func (ec *executionContext) _Series_statistics(ctx context.Context, field graphql.CollectedField, obj *schema.Series) (ret graphql.Marshaler) { @@ -10393,17 +10078,20 @@ func (ec *executionContext) _Series_statistics(ctx context.Context, field graphq ctx, ec.OperationContext, field, - ec.fieldContext_Series_statistics, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_Series_statistics(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Statistics, nil }, nil, - ec.marshalOMetricStatistics2githubᚗcomᚋClusterCockpitᚋccᚑlibᚋv2ᚋschemaᚐMetricStatistics, + func(ctx context.Context, selections ast.SelectionSet, v schema.MetricStatistics) graphql.Marshaler { + return ec.marshalOMetricStatistics2githubᚗcomᚋClusterCockpitᚋccᚑlibᚋv2ᚋschemaᚐMetricStatistics(ctx, selections, v) + }, true, false, ) } - func (ec *executionContext) fieldContext_Series_statistics(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ Object: "Series", @@ -10411,15 +10099,7 @@ func (ec *executionContext) fieldContext_Series_statistics(_ context.Context, fi IsMethod: false, IsResolver: false, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - switch field.Name { - case "avg": - return ec.fieldContext_MetricStatistics_avg(ctx, field) - case "min": - return ec.fieldContext_MetricStatistics_min(ctx, field) - case "max": - return ec.fieldContext_MetricStatistics_max(ctx, field) - } - return nil, fmt.Errorf("no field named %q was found under type MetricStatistics", field.Name) + return ec.childFields_MetricStatistics(ctx, field) }, } return fc, nil @@ -10430,28 +10110,22 @@ func (ec *executionContext) _Series_data(ctx context.Context, field graphql.Coll ctx, ec.OperationContext, field, - ec.fieldContext_Series_data, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_Series_data(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Data, nil }, nil, - ec.marshalNNullableFloat2ᚕgithubᚗcomᚋClusterCockpitᚋccᚑlibᚋv2ᚋschemaᚐFloatᚄ, + func(ctx context.Context, selections ast.SelectionSet, v []schema.Float) graphql.Marshaler { + return ec.marshalNNullableFloat2ᚕgithubᚗcomᚋClusterCockpitᚋccᚑlibᚋv2ᚋschemaᚐFloatᚄ(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_Series_data(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "Series", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type NullableFloat does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("Series", field, false, false, errors.New("field of type NullableFloat does not have child fields")) } func (ec *executionContext) _StatsSeries_mean(ctx context.Context, field graphql.CollectedField, obj *schema.StatsSeries) (ret graphql.Marshaler) { @@ -10459,28 +10133,22 @@ func (ec *executionContext) _StatsSeries_mean(ctx context.Context, field graphql ctx, ec.OperationContext, field, - ec.fieldContext_StatsSeries_mean, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_StatsSeries_mean(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Mean, nil }, nil, - ec.marshalNNullableFloat2ᚕgithubᚗcomᚋClusterCockpitᚋccᚑlibᚋv2ᚋschemaᚐFloatᚄ, + func(ctx context.Context, selections ast.SelectionSet, v []schema.Float) graphql.Marshaler { + return ec.marshalNNullableFloat2ᚕgithubᚗcomᚋClusterCockpitᚋccᚑlibᚋv2ᚋschemaᚐFloatᚄ(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_StatsSeries_mean(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "StatsSeries", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type NullableFloat does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("StatsSeries", field, false, false, errors.New("field of type NullableFloat does not have child fields")) } func (ec *executionContext) _StatsSeries_median(ctx context.Context, field graphql.CollectedField, obj *schema.StatsSeries) (ret graphql.Marshaler) { @@ -10488,28 +10156,22 @@ func (ec *executionContext) _StatsSeries_median(ctx context.Context, field graph ctx, ec.OperationContext, field, - ec.fieldContext_StatsSeries_median, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_StatsSeries_median(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Median, nil }, nil, - ec.marshalNNullableFloat2ᚕgithubᚗcomᚋClusterCockpitᚋccᚑlibᚋv2ᚋschemaᚐFloatᚄ, + func(ctx context.Context, selections ast.SelectionSet, v []schema.Float) graphql.Marshaler { + return ec.marshalNNullableFloat2ᚕgithubᚗcomᚋClusterCockpitᚋccᚑlibᚋv2ᚋschemaᚐFloatᚄ(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_StatsSeries_median(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "StatsSeries", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type NullableFloat does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("StatsSeries", field, false, false, errors.New("field of type NullableFloat does not have child fields")) } func (ec *executionContext) _StatsSeries_min(ctx context.Context, field graphql.CollectedField, obj *schema.StatsSeries) (ret graphql.Marshaler) { @@ -10517,28 +10179,22 @@ func (ec *executionContext) _StatsSeries_min(ctx context.Context, field graphql. ctx, ec.OperationContext, field, - ec.fieldContext_StatsSeries_min, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_StatsSeries_min(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Min, nil }, nil, - ec.marshalNNullableFloat2ᚕgithubᚗcomᚋClusterCockpitᚋccᚑlibᚋv2ᚋschemaᚐFloatᚄ, + func(ctx context.Context, selections ast.SelectionSet, v []schema.Float) graphql.Marshaler { + return ec.marshalNNullableFloat2ᚕgithubᚗcomᚋClusterCockpitᚋccᚑlibᚋv2ᚋschemaᚐFloatᚄ(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_StatsSeries_min(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "StatsSeries", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type NullableFloat does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("StatsSeries", field, false, false, errors.New("field of type NullableFloat does not have child fields")) } func (ec *executionContext) _StatsSeries_max(ctx context.Context, field graphql.CollectedField, obj *schema.StatsSeries) (ret graphql.Marshaler) { @@ -10546,28 +10202,22 @@ func (ec *executionContext) _StatsSeries_max(ctx context.Context, field graphql. ctx, ec.OperationContext, field, - ec.fieldContext_StatsSeries_max, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_StatsSeries_max(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Max, nil }, nil, - ec.marshalNNullableFloat2ᚕgithubᚗcomᚋClusterCockpitᚋccᚑlibᚋv2ᚋschemaᚐFloatᚄ, + func(ctx context.Context, selections ast.SelectionSet, v []schema.Float) graphql.Marshaler { + return ec.marshalNNullableFloat2ᚕgithubᚗcomᚋClusterCockpitᚋccᚑlibᚋv2ᚋschemaᚐFloatᚄ(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_StatsSeries_max(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "StatsSeries", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type NullableFloat does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("StatsSeries", field, false, false, errors.New("field of type NullableFloat does not have child fields")) } func (ec *executionContext) _SubCluster_name(ctx context.Context, field graphql.CollectedField, obj *schema.SubCluster) (ret graphql.Marshaler) { @@ -10575,28 +10225,22 @@ func (ec *executionContext) _SubCluster_name(ctx context.Context, field graphql. ctx, ec.OperationContext, field, - ec.fieldContext_SubCluster_name, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_SubCluster_name(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Name, nil }, nil, - ec.marshalNString2string, + func(ctx context.Context, selections ast.SelectionSet, v string) graphql.Marshaler { + return ec.marshalNString2string(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_SubCluster_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "SubCluster", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type String does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("SubCluster", field, false, false, errors.New("field of type String does not have child fields")) } func (ec *executionContext) _SubCluster_nodes(ctx context.Context, field graphql.CollectedField, obj *schema.SubCluster) (ret graphql.Marshaler) { @@ -10604,28 +10248,22 @@ func (ec *executionContext) _SubCluster_nodes(ctx context.Context, field graphql ctx, ec.OperationContext, field, - ec.fieldContext_SubCluster_nodes, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_SubCluster_nodes(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Nodes, nil }, nil, - ec.marshalNString2string, + func(ctx context.Context, selections ast.SelectionSet, v string) graphql.Marshaler { + return ec.marshalNString2string(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_SubCluster_nodes(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "SubCluster", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type String does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("SubCluster", field, false, false, errors.New("field of type String does not have child fields")) } func (ec *executionContext) _SubCluster_numberOfNodes(ctx context.Context, field graphql.CollectedField, obj *schema.SubCluster) (ret graphql.Marshaler) { @@ -10633,28 +10271,22 @@ func (ec *executionContext) _SubCluster_numberOfNodes(ctx context.Context, field ctx, ec.OperationContext, field, - ec.fieldContext_SubCluster_numberOfNodes, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_SubCluster_numberOfNodes(ctx, field) + }, func(ctx context.Context) (any, error) { return ec.Resolvers.SubCluster().NumberOfNodes(ctx, obj) }, nil, - ec.marshalNInt2int, + func(ctx context.Context, selections ast.SelectionSet, v int) graphql.Marshaler { + return ec.marshalNInt2int(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_SubCluster_numberOfNodes(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "SubCluster", - Field: field, - 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") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("SubCluster", field, true, true, errors.New("field of type Int does not have child fields")) } func (ec *executionContext) _SubCluster_processorType(ctx context.Context, field graphql.CollectedField, obj *schema.SubCluster) (ret graphql.Marshaler) { @@ -10662,28 +10294,22 @@ func (ec *executionContext) _SubCluster_processorType(ctx context.Context, field ctx, ec.OperationContext, field, - ec.fieldContext_SubCluster_processorType, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_SubCluster_processorType(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.ProcessorType, nil }, nil, - ec.marshalNString2string, + func(ctx context.Context, selections ast.SelectionSet, v string) graphql.Marshaler { + return ec.marshalNString2string(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_SubCluster_processorType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "SubCluster", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type String does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("SubCluster", field, false, false, errors.New("field of type String does not have child fields")) } func (ec *executionContext) _SubCluster_socketsPerNode(ctx context.Context, field graphql.CollectedField, obj *schema.SubCluster) (ret graphql.Marshaler) { @@ -10691,28 +10317,22 @@ func (ec *executionContext) _SubCluster_socketsPerNode(ctx context.Context, fiel ctx, ec.OperationContext, field, - ec.fieldContext_SubCluster_socketsPerNode, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_SubCluster_socketsPerNode(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.SocketsPerNode, nil }, nil, - ec.marshalNInt2int, + func(ctx context.Context, selections ast.SelectionSet, v int) graphql.Marshaler { + return ec.marshalNInt2int(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_SubCluster_socketsPerNode(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "SubCluster", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Int does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("SubCluster", field, false, false, errors.New("field of type Int does not have child fields")) } func (ec *executionContext) _SubCluster_coresPerSocket(ctx context.Context, field graphql.CollectedField, obj *schema.SubCluster) (ret graphql.Marshaler) { @@ -10720,28 +10340,22 @@ func (ec *executionContext) _SubCluster_coresPerSocket(ctx context.Context, fiel ctx, ec.OperationContext, field, - ec.fieldContext_SubCluster_coresPerSocket, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_SubCluster_coresPerSocket(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.CoresPerSocket, nil }, nil, - ec.marshalNInt2int, + func(ctx context.Context, selections ast.SelectionSet, v int) graphql.Marshaler { + return ec.marshalNInt2int(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_SubCluster_coresPerSocket(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "SubCluster", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Int does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("SubCluster", field, false, false, errors.New("field of type Int does not have child fields")) } func (ec *executionContext) _SubCluster_threadsPerCore(ctx context.Context, field graphql.CollectedField, obj *schema.SubCluster) (ret graphql.Marshaler) { @@ -10749,28 +10363,22 @@ func (ec *executionContext) _SubCluster_threadsPerCore(ctx context.Context, fiel ctx, ec.OperationContext, field, - ec.fieldContext_SubCluster_threadsPerCore, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_SubCluster_threadsPerCore(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.ThreadsPerCore, nil }, nil, - ec.marshalNInt2int, + func(ctx context.Context, selections ast.SelectionSet, v int) graphql.Marshaler { + return ec.marshalNInt2int(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_SubCluster_threadsPerCore(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "SubCluster", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Int does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("SubCluster", field, false, false, errors.New("field of type Int does not have child fields")) } func (ec *executionContext) _SubCluster_flopRateScalar(ctx context.Context, field graphql.CollectedField, obj *schema.SubCluster) (ret graphql.Marshaler) { @@ -10778,17 +10386,20 @@ func (ec *executionContext) _SubCluster_flopRateScalar(ctx context.Context, fiel ctx, ec.OperationContext, field, - ec.fieldContext_SubCluster_flopRateScalar, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_SubCluster_flopRateScalar(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.FlopRateScalar, nil }, nil, - ec.marshalNMetricValue2githubᚗcomᚋClusterCockpitᚋccᚑlibᚋv2ᚋschemaᚐMetricValue, + func(ctx context.Context, selections ast.SelectionSet, v schema.MetricValue) graphql.Marshaler { + return ec.marshalNMetricValue2githubᚗcomᚋClusterCockpitᚋccᚑlibᚋv2ᚋschemaᚐMetricValue(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_SubCluster_flopRateScalar(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ Object: "SubCluster", @@ -10796,15 +10407,7 @@ func (ec *executionContext) fieldContext_SubCluster_flopRateScalar(_ context.Con IsMethod: false, IsResolver: false, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - switch field.Name { - case "name": - return ec.fieldContext_MetricValue_name(ctx, field) - case "unit": - return ec.fieldContext_MetricValue_unit(ctx, field) - case "value": - return ec.fieldContext_MetricValue_value(ctx, field) - } - return nil, fmt.Errorf("no field named %q was found under type MetricValue", field.Name) + return ec.childFields_MetricValue(ctx, field) }, } return fc, nil @@ -10815,17 +10418,20 @@ func (ec *executionContext) _SubCluster_flopRateSimd(ctx context.Context, field ctx, ec.OperationContext, field, - ec.fieldContext_SubCluster_flopRateSimd, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_SubCluster_flopRateSimd(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.FlopRateSimd, nil }, nil, - ec.marshalNMetricValue2githubᚗcomᚋClusterCockpitᚋccᚑlibᚋv2ᚋschemaᚐMetricValue, + func(ctx context.Context, selections ast.SelectionSet, v schema.MetricValue) graphql.Marshaler { + return ec.marshalNMetricValue2githubᚗcomᚋClusterCockpitᚋccᚑlibᚋv2ᚋschemaᚐMetricValue(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_SubCluster_flopRateSimd(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ Object: "SubCluster", @@ -10833,15 +10439,7 @@ func (ec *executionContext) fieldContext_SubCluster_flopRateSimd(_ context.Conte IsMethod: false, IsResolver: false, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - switch field.Name { - case "name": - return ec.fieldContext_MetricValue_name(ctx, field) - case "unit": - return ec.fieldContext_MetricValue_unit(ctx, field) - case "value": - return ec.fieldContext_MetricValue_value(ctx, field) - } - return nil, fmt.Errorf("no field named %q was found under type MetricValue", field.Name) + return ec.childFields_MetricValue(ctx, field) }, } return fc, nil @@ -10852,17 +10450,20 @@ func (ec *executionContext) _SubCluster_memoryBandwidth(ctx context.Context, fie ctx, ec.OperationContext, field, - ec.fieldContext_SubCluster_memoryBandwidth, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_SubCluster_memoryBandwidth(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.MemoryBandwidth, nil }, nil, - ec.marshalNMetricValue2githubᚗcomᚋClusterCockpitᚋccᚑlibᚋv2ᚋschemaᚐMetricValue, + func(ctx context.Context, selections ast.SelectionSet, v schema.MetricValue) graphql.Marshaler { + return ec.marshalNMetricValue2githubᚗcomᚋClusterCockpitᚋccᚑlibᚋv2ᚋschemaᚐMetricValue(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_SubCluster_memoryBandwidth(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ Object: "SubCluster", @@ -10870,15 +10471,7 @@ func (ec *executionContext) fieldContext_SubCluster_memoryBandwidth(_ context.Co IsMethod: false, IsResolver: false, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - switch field.Name { - case "name": - return ec.fieldContext_MetricValue_name(ctx, field) - case "unit": - return ec.fieldContext_MetricValue_unit(ctx, field) - case "value": - return ec.fieldContext_MetricValue_value(ctx, field) - } - return nil, fmt.Errorf("no field named %q was found under type MetricValue", field.Name) + return ec.childFields_MetricValue(ctx, field) }, } return fc, nil @@ -10889,17 +10482,20 @@ func (ec *executionContext) _SubCluster_topology(ctx context.Context, field grap ctx, ec.OperationContext, field, - ec.fieldContext_SubCluster_topology, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_SubCluster_topology(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Topology, nil }, nil, - ec.marshalNTopology2githubᚗcomᚋClusterCockpitᚋccᚑlibᚋv2ᚋschemaᚐTopology, + func(ctx context.Context, selections ast.SelectionSet, v schema.Topology) graphql.Marshaler { + return ec.marshalNTopology2githubᚗcomᚋClusterCockpitᚋccᚑlibᚋv2ᚋschemaᚐTopology(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_SubCluster_topology(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ Object: "SubCluster", @@ -10907,21 +10503,7 @@ func (ec *executionContext) fieldContext_SubCluster_topology(_ context.Context, IsMethod: false, IsResolver: false, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - switch field.Name { - case "node": - return ec.fieldContext_Topology_node(ctx, field) - case "socket": - return ec.fieldContext_Topology_socket(ctx, field) - case "memoryDomain": - return ec.fieldContext_Topology_memoryDomain(ctx, field) - case "die": - return ec.fieldContext_Topology_die(ctx, field) - case "core": - return ec.fieldContext_Topology_core(ctx, field) - case "accelerators": - return ec.fieldContext_Topology_accelerators(ctx, field) - } - return nil, fmt.Errorf("no field named %q was found under type Topology", field.Name) + return ec.childFields_Topology(ctx, field) }, } return fc, nil @@ -10932,17 +10514,20 @@ func (ec *executionContext) _SubCluster_metricConfig(ctx context.Context, field ctx, ec.OperationContext, field, - ec.fieldContext_SubCluster_metricConfig, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_SubCluster_metricConfig(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.MetricConfig, nil }, nil, - ec.marshalNMetricConfig2ᚕᚖgithubᚗcomᚋClusterCockpitᚋccᚑlibᚋv2ᚋschemaᚐMetricConfigᚄ, + func(ctx context.Context, selections ast.SelectionSet, v []*schema.MetricConfig) graphql.Marshaler { + return ec.marshalNMetricConfig2ᚕᚖgithubᚗcomᚋClusterCockpitᚋccᚑlibᚋv2ᚋschemaᚐMetricConfigᚄ(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_SubCluster_metricConfig(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ Object: "SubCluster", @@ -10950,31 +10535,7 @@ func (ec *executionContext) fieldContext_SubCluster_metricConfig(_ context.Conte IsMethod: false, IsResolver: false, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - switch field.Name { - case "name": - return ec.fieldContext_MetricConfig_name(ctx, field) - case "unit": - return ec.fieldContext_MetricConfig_unit(ctx, field) - case "scope": - return ec.fieldContext_MetricConfig_scope(ctx, field) - case "aggregation": - return ec.fieldContext_MetricConfig_aggregation(ctx, field) - case "timestep": - return ec.fieldContext_MetricConfig_timestep(ctx, field) - case "peak": - return ec.fieldContext_MetricConfig_peak(ctx, field) - case "normal": - return ec.fieldContext_MetricConfig_normal(ctx, field) - case "caution": - return ec.fieldContext_MetricConfig_caution(ctx, field) - case "alert": - return ec.fieldContext_MetricConfig_alert(ctx, field) - case "lowerIsBetter": - return ec.fieldContext_MetricConfig_lowerIsBetter(ctx, field) - case "subClusters": - return ec.fieldContext_MetricConfig_subClusters(ctx, field) - } - return nil, fmt.Errorf("no field named %q was found under type MetricConfig", field.Name) + return ec.childFields_MetricConfig(ctx, field) }, } return fc, nil @@ -10985,28 +10546,22 @@ func (ec *executionContext) _SubCluster_footprint(ctx context.Context, field gra ctx, ec.OperationContext, field, - ec.fieldContext_SubCluster_footprint, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_SubCluster_footprint(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Footprint, nil }, nil, - ec.marshalNString2ᚕstringᚄ, + func(ctx context.Context, selections ast.SelectionSet, v []string) graphql.Marshaler { + return ec.marshalNString2ᚕstringᚄ(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_SubCluster_footprint(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "SubCluster", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type String does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("SubCluster", field, false, false, errors.New("field of type String does not have child fields")) } func (ec *executionContext) _SubClusterConfig_name(ctx context.Context, field graphql.CollectedField, obj *schema.SubClusterConfig) (ret graphql.Marshaler) { @@ -11014,28 +10569,22 @@ func (ec *executionContext) _SubClusterConfig_name(ctx context.Context, field gr ctx, ec.OperationContext, field, - ec.fieldContext_SubClusterConfig_name, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_SubClusterConfig_name(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Name, nil }, nil, - ec.marshalNString2string, + func(ctx context.Context, selections ast.SelectionSet, v string) graphql.Marshaler { + return ec.marshalNString2string(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_SubClusterConfig_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "SubClusterConfig", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type String does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("SubClusterConfig", field, false, false, errors.New("field of type String does not have child fields")) } func (ec *executionContext) _SubClusterConfig_peak(ctx context.Context, field graphql.CollectedField, obj *schema.SubClusterConfig) (ret graphql.Marshaler) { @@ -11043,28 +10592,22 @@ func (ec *executionContext) _SubClusterConfig_peak(ctx context.Context, field gr ctx, ec.OperationContext, field, - ec.fieldContext_SubClusterConfig_peak, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_SubClusterConfig_peak(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Peak, nil }, nil, - ec.marshalOFloat2float64, + func(ctx context.Context, selections ast.SelectionSet, v float64) graphql.Marshaler { + return ec.marshalOFloat2float64(ctx, selections, v) + }, true, false, ) } - func (ec *executionContext) fieldContext_SubClusterConfig_peak(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "SubClusterConfig", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Float does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("SubClusterConfig", field, false, false, errors.New("field of type Float does not have child fields")) } func (ec *executionContext) _SubClusterConfig_normal(ctx context.Context, field graphql.CollectedField, obj *schema.SubClusterConfig) (ret graphql.Marshaler) { @@ -11072,28 +10615,22 @@ func (ec *executionContext) _SubClusterConfig_normal(ctx context.Context, field ctx, ec.OperationContext, field, - ec.fieldContext_SubClusterConfig_normal, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_SubClusterConfig_normal(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Normal, nil }, nil, - ec.marshalOFloat2float64, + func(ctx context.Context, selections ast.SelectionSet, v float64) graphql.Marshaler { + return ec.marshalOFloat2float64(ctx, selections, v) + }, true, false, ) } - func (ec *executionContext) fieldContext_SubClusterConfig_normal(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "SubClusterConfig", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Float does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("SubClusterConfig", field, false, false, errors.New("field of type Float does not have child fields")) } func (ec *executionContext) _SubClusterConfig_caution(ctx context.Context, field graphql.CollectedField, obj *schema.SubClusterConfig) (ret graphql.Marshaler) { @@ -11101,28 +10638,22 @@ func (ec *executionContext) _SubClusterConfig_caution(ctx context.Context, field ctx, ec.OperationContext, field, - ec.fieldContext_SubClusterConfig_caution, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_SubClusterConfig_caution(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Caution, nil }, nil, - ec.marshalOFloat2float64, + func(ctx context.Context, selections ast.SelectionSet, v float64) graphql.Marshaler { + return ec.marshalOFloat2float64(ctx, selections, v) + }, true, false, ) } - func (ec *executionContext) fieldContext_SubClusterConfig_caution(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "SubClusterConfig", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Float does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("SubClusterConfig", field, false, false, errors.New("field of type Float does not have child fields")) } func (ec *executionContext) _SubClusterConfig_alert(ctx context.Context, field graphql.CollectedField, obj *schema.SubClusterConfig) (ret graphql.Marshaler) { @@ -11130,28 +10661,22 @@ func (ec *executionContext) _SubClusterConfig_alert(ctx context.Context, field g ctx, ec.OperationContext, field, - ec.fieldContext_SubClusterConfig_alert, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_SubClusterConfig_alert(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Alert, nil }, nil, - ec.marshalOFloat2float64, + func(ctx context.Context, selections ast.SelectionSet, v float64) graphql.Marshaler { + return ec.marshalOFloat2float64(ctx, selections, v) + }, true, false, ) } - func (ec *executionContext) fieldContext_SubClusterConfig_alert(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "SubClusterConfig", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Float does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("SubClusterConfig", field, false, false, errors.New("field of type Float does not have child fields")) } func (ec *executionContext) _SubClusterConfig_remove(ctx context.Context, field graphql.CollectedField, obj *schema.SubClusterConfig) (ret graphql.Marshaler) { @@ -11159,28 +10684,22 @@ func (ec *executionContext) _SubClusterConfig_remove(ctx context.Context, field ctx, ec.OperationContext, field, - ec.fieldContext_SubClusterConfig_remove, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_SubClusterConfig_remove(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Remove, nil }, nil, - ec.marshalOBoolean2bool, + func(ctx context.Context, selections ast.SelectionSet, v bool) graphql.Marshaler { + return ec.marshalOBoolean2bool(ctx, selections, v) + }, true, false, ) } - func (ec *executionContext) fieldContext_SubClusterConfig_remove(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "SubClusterConfig", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Boolean does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("SubClusterConfig", field, false, false, errors.New("field of type Boolean does not have child fields")) } func (ec *executionContext) _Tag_id(ctx context.Context, field graphql.CollectedField, obj *schema.Tag) (ret graphql.Marshaler) { @@ -11188,28 +10707,22 @@ func (ec *executionContext) _Tag_id(ctx context.Context, field graphql.Collected ctx, ec.OperationContext, field, - ec.fieldContext_Tag_id, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_Tag_id(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.ID, nil }, nil, - ec.marshalNID2int64, + func(ctx context.Context, selections ast.SelectionSet, v int64) graphql.Marshaler { + return ec.marshalNID2int64(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_Tag_id(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "Tag", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type ID does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("Tag", field, false, false, errors.New("field of type ID does not have child fields")) } func (ec *executionContext) _Tag_type(ctx context.Context, field graphql.CollectedField, obj *schema.Tag) (ret graphql.Marshaler) { @@ -11217,28 +10730,22 @@ func (ec *executionContext) _Tag_type(ctx context.Context, field graphql.Collect ctx, ec.OperationContext, field, - ec.fieldContext_Tag_type, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_Tag_type(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Type, nil }, nil, - ec.marshalNString2string, + func(ctx context.Context, selections ast.SelectionSet, v string) graphql.Marshaler { + return ec.marshalNString2string(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_Tag_type(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "Tag", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type String does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("Tag", field, false, false, errors.New("field of type String does not have child fields")) } func (ec *executionContext) _Tag_name(ctx context.Context, field graphql.CollectedField, obj *schema.Tag) (ret graphql.Marshaler) { @@ -11246,28 +10753,22 @@ func (ec *executionContext) _Tag_name(ctx context.Context, field graphql.Collect ctx, ec.OperationContext, field, - ec.fieldContext_Tag_name, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_Tag_name(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Name, nil }, nil, - ec.marshalNString2string, + func(ctx context.Context, selections ast.SelectionSet, v string) graphql.Marshaler { + return ec.marshalNString2string(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_Tag_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "Tag", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type String does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("Tag", field, false, false, errors.New("field of type String does not have child fields")) } func (ec *executionContext) _Tag_scope(ctx context.Context, field graphql.CollectedField, obj *schema.Tag) (ret graphql.Marshaler) { @@ -11275,28 +10776,22 @@ func (ec *executionContext) _Tag_scope(ctx context.Context, field graphql.Collec ctx, ec.OperationContext, field, - ec.fieldContext_Tag_scope, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_Tag_scope(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Scope, nil }, nil, - ec.marshalNString2string, + func(ctx context.Context, selections ast.SelectionSet, v string) graphql.Marshaler { + return ec.marshalNString2string(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_Tag_scope(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "Tag", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type String does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("Tag", field, false, false, errors.New("field of type String does not have child fields")) } func (ec *executionContext) _TimeRangeOutput_range(ctx context.Context, field graphql.CollectedField, obj *model.TimeRangeOutput) (ret graphql.Marshaler) { @@ -11304,28 +10799,22 @@ func (ec *executionContext) _TimeRangeOutput_range(ctx context.Context, field gr ctx, ec.OperationContext, field, - ec.fieldContext_TimeRangeOutput_range, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_TimeRangeOutput_range(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Range, nil }, nil, - ec.marshalOString2ᚖstring, + func(ctx context.Context, selections ast.SelectionSet, v *string) graphql.Marshaler { + return ec.marshalOString2ᚖstring(ctx, selections, v) + }, true, false, ) } - func (ec *executionContext) fieldContext_TimeRangeOutput_range(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "TimeRangeOutput", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type String does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("TimeRangeOutput", field, false, false, errors.New("field of type String does not have child fields")) } func (ec *executionContext) _TimeRangeOutput_from(ctx context.Context, field graphql.CollectedField, obj *model.TimeRangeOutput) (ret graphql.Marshaler) { @@ -11333,28 +10822,22 @@ func (ec *executionContext) _TimeRangeOutput_from(ctx context.Context, field gra ctx, ec.OperationContext, field, - ec.fieldContext_TimeRangeOutput_from, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_TimeRangeOutput_from(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.From, nil }, nil, - ec.marshalNTime2timeᚐTime, + func(ctx context.Context, selections ast.SelectionSet, v time.Time) graphql.Marshaler { + return ec.marshalNTime2timeᚐTime(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_TimeRangeOutput_from(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "TimeRangeOutput", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Time does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("TimeRangeOutput", field, false, false, errors.New("field of type Time does not have child fields")) } func (ec *executionContext) _TimeRangeOutput_to(ctx context.Context, field graphql.CollectedField, obj *model.TimeRangeOutput) (ret graphql.Marshaler) { @@ -11362,28 +10845,22 @@ func (ec *executionContext) _TimeRangeOutput_to(ctx context.Context, field graph ctx, ec.OperationContext, field, - ec.fieldContext_TimeRangeOutput_to, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_TimeRangeOutput_to(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.To, nil }, nil, - ec.marshalNTime2timeᚐTime, + func(ctx context.Context, selections ast.SelectionSet, v time.Time) graphql.Marshaler { + return ec.marshalNTime2timeᚐTime(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_TimeRangeOutput_to(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "TimeRangeOutput", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Time does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("TimeRangeOutput", field, false, false, errors.New("field of type Time does not have child fields")) } func (ec *executionContext) _TimeWeights_nodeHours(ctx context.Context, field graphql.CollectedField, obj *model.TimeWeights) (ret graphql.Marshaler) { @@ -11391,28 +10868,22 @@ func (ec *executionContext) _TimeWeights_nodeHours(ctx context.Context, field gr ctx, ec.OperationContext, field, - ec.fieldContext_TimeWeights_nodeHours, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_TimeWeights_nodeHours(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.NodeHours, nil }, nil, - ec.marshalNNullableFloat2ᚕgithubᚗcomᚋClusterCockpitᚋccᚑlibᚋv2ᚋschemaᚐFloatᚄ, + func(ctx context.Context, selections ast.SelectionSet, v []schema.Float) graphql.Marshaler { + return ec.marshalNNullableFloat2ᚕgithubᚗcomᚋClusterCockpitᚋccᚑlibᚋv2ᚋschemaᚐFloatᚄ(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_TimeWeights_nodeHours(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "TimeWeights", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type NullableFloat does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("TimeWeights", field, false, false, errors.New("field of type NullableFloat does not have child fields")) } func (ec *executionContext) _TimeWeights_accHours(ctx context.Context, field graphql.CollectedField, obj *model.TimeWeights) (ret graphql.Marshaler) { @@ -11420,28 +10891,22 @@ func (ec *executionContext) _TimeWeights_accHours(ctx context.Context, field gra ctx, ec.OperationContext, field, - ec.fieldContext_TimeWeights_accHours, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_TimeWeights_accHours(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.AccHours, nil }, nil, - ec.marshalNNullableFloat2ᚕgithubᚗcomᚋClusterCockpitᚋccᚑlibᚋv2ᚋschemaᚐFloatᚄ, + func(ctx context.Context, selections ast.SelectionSet, v []schema.Float) graphql.Marshaler { + return ec.marshalNNullableFloat2ᚕgithubᚗcomᚋClusterCockpitᚋccᚑlibᚋv2ᚋschemaᚐFloatᚄ(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_TimeWeights_accHours(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "TimeWeights", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type NullableFloat does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("TimeWeights", field, false, false, errors.New("field of type NullableFloat does not have child fields")) } func (ec *executionContext) _TimeWeights_coreHours(ctx context.Context, field graphql.CollectedField, obj *model.TimeWeights) (ret graphql.Marshaler) { @@ -11449,28 +10914,22 @@ func (ec *executionContext) _TimeWeights_coreHours(ctx context.Context, field gr ctx, ec.OperationContext, field, - ec.fieldContext_TimeWeights_coreHours, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_TimeWeights_coreHours(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.CoreHours, nil }, nil, - ec.marshalNNullableFloat2ᚕgithubᚗcomᚋClusterCockpitᚋccᚑlibᚋv2ᚋschemaᚐFloatᚄ, + func(ctx context.Context, selections ast.SelectionSet, v []schema.Float) graphql.Marshaler { + return ec.marshalNNullableFloat2ᚕgithubᚗcomᚋClusterCockpitᚋccᚑlibᚋv2ᚋschemaᚐFloatᚄ(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_TimeWeights_coreHours(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "TimeWeights", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type NullableFloat does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("TimeWeights", field, false, false, errors.New("field of type NullableFloat does not have child fields")) } func (ec *executionContext) _Topology_node(ctx context.Context, field graphql.CollectedField, obj *schema.Topology) (ret graphql.Marshaler) { @@ -11478,28 +10937,22 @@ func (ec *executionContext) _Topology_node(ctx context.Context, field graphql.Co ctx, ec.OperationContext, field, - ec.fieldContext_Topology_node, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_Topology_node(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Node, nil }, nil, - ec.marshalOInt2ᚕintᚄ, + func(ctx context.Context, selections ast.SelectionSet, v []int) graphql.Marshaler { + return ec.marshalOInt2ᚕintᚄ(ctx, selections, v) + }, true, false, ) } - func (ec *executionContext) fieldContext_Topology_node(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "Topology", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Int does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("Topology", field, false, false, errors.New("field of type Int does not have child fields")) } func (ec *executionContext) _Topology_socket(ctx context.Context, field graphql.CollectedField, obj *schema.Topology) (ret graphql.Marshaler) { @@ -11507,28 +10960,22 @@ func (ec *executionContext) _Topology_socket(ctx context.Context, field graphql. ctx, ec.OperationContext, field, - ec.fieldContext_Topology_socket, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_Topology_socket(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Socket, nil }, nil, - ec.marshalOInt2ᚕᚕintᚄ, + func(ctx context.Context, selections ast.SelectionSet, v [][]int) graphql.Marshaler { + return ec.marshalOInt2ᚕᚕintᚄ(ctx, selections, v) + }, true, false, ) } - func (ec *executionContext) fieldContext_Topology_socket(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "Topology", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Int does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("Topology", field, false, false, errors.New("field of type Int does not have child fields")) } func (ec *executionContext) _Topology_memoryDomain(ctx context.Context, field graphql.CollectedField, obj *schema.Topology) (ret graphql.Marshaler) { @@ -11536,28 +10983,22 @@ func (ec *executionContext) _Topology_memoryDomain(ctx context.Context, field gr ctx, ec.OperationContext, field, - ec.fieldContext_Topology_memoryDomain, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_Topology_memoryDomain(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.MemoryDomain, nil }, nil, - ec.marshalOInt2ᚕᚕintᚄ, + func(ctx context.Context, selections ast.SelectionSet, v [][]int) graphql.Marshaler { + return ec.marshalOInt2ᚕᚕintᚄ(ctx, selections, v) + }, true, false, ) } - func (ec *executionContext) fieldContext_Topology_memoryDomain(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "Topology", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Int does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("Topology", field, false, false, errors.New("field of type Int does not have child fields")) } func (ec *executionContext) _Topology_die(ctx context.Context, field graphql.CollectedField, obj *schema.Topology) (ret graphql.Marshaler) { @@ -11565,28 +11006,22 @@ func (ec *executionContext) _Topology_die(ctx context.Context, field graphql.Col ctx, ec.OperationContext, field, - ec.fieldContext_Topology_die, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_Topology_die(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Die, nil }, nil, - ec.marshalOInt2ᚕᚕᚖintᚄ, + func(ctx context.Context, selections ast.SelectionSet, v [][]*int) graphql.Marshaler { + return ec.marshalOInt2ᚕᚕᚖintᚄ(ctx, selections, v) + }, true, false, ) } - func (ec *executionContext) fieldContext_Topology_die(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "Topology", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Int does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("Topology", field, false, false, errors.New("field of type Int does not have child fields")) } func (ec *executionContext) _Topology_core(ctx context.Context, field graphql.CollectedField, obj *schema.Topology) (ret graphql.Marshaler) { @@ -11594,28 +11029,22 @@ func (ec *executionContext) _Topology_core(ctx context.Context, field graphql.Co ctx, ec.OperationContext, field, - ec.fieldContext_Topology_core, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_Topology_core(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Core, nil }, nil, - ec.marshalOInt2ᚕᚕintᚄ, + func(ctx context.Context, selections ast.SelectionSet, v [][]int) graphql.Marshaler { + return ec.marshalOInt2ᚕᚕintᚄ(ctx, selections, v) + }, true, false, ) } - func (ec *executionContext) fieldContext_Topology_core(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "Topology", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Int does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("Topology", field, false, false, errors.New("field of type Int does not have child fields")) } func (ec *executionContext) _Topology_accelerators(ctx context.Context, field graphql.CollectedField, obj *schema.Topology) (ret graphql.Marshaler) { @@ -11623,17 +11052,20 @@ func (ec *executionContext) _Topology_accelerators(ctx context.Context, field gr ctx, ec.OperationContext, field, - ec.fieldContext_Topology_accelerators, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_Topology_accelerators(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Accelerators, nil }, nil, - ec.marshalOAccelerator2ᚕᚖgithubᚗcomᚋClusterCockpitᚋccᚑlibᚋv2ᚋschemaᚐAcceleratorᚄ, + func(ctx context.Context, selections ast.SelectionSet, v []*schema.Accelerator) graphql.Marshaler { + return ec.marshalOAccelerator2ᚕᚖgithubᚗcomᚋClusterCockpitᚋccᚑlibᚋv2ᚋschemaᚐAcceleratorᚄ(ctx, selections, v) + }, true, false, ) } - func (ec *executionContext) fieldContext_Topology_accelerators(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ Object: "Topology", @@ -11641,15 +11073,7 @@ func (ec *executionContext) fieldContext_Topology_accelerators(_ context.Context IsMethod: false, IsResolver: false, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - switch field.Name { - case "id": - return ec.fieldContext_Accelerator_id(ctx, field) - case "type": - return ec.fieldContext_Accelerator_type(ctx, field) - case "model": - return ec.fieldContext_Accelerator_model(ctx, field) - } - return nil, fmt.Errorf("no field named %q was found under type Accelerator", field.Name) + return ec.childFields_Accelerator(ctx, field) }, } return fc, nil @@ -11660,28 +11084,22 @@ func (ec *executionContext) _Unit_base(ctx context.Context, field graphql.Collec ctx, ec.OperationContext, field, - ec.fieldContext_Unit_base, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_Unit_base(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Base, nil }, nil, - ec.marshalNString2string, + func(ctx context.Context, selections ast.SelectionSet, v string) graphql.Marshaler { + return ec.marshalNString2string(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_Unit_base(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "Unit", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type String does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("Unit", field, false, false, errors.New("field of type String does not have child fields")) } func (ec *executionContext) _Unit_prefix(ctx context.Context, field graphql.CollectedField, obj *schema.Unit) (ret graphql.Marshaler) { @@ -11689,28 +11107,22 @@ func (ec *executionContext) _Unit_prefix(ctx context.Context, field graphql.Coll ctx, ec.OperationContext, field, - ec.fieldContext_Unit_prefix, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_Unit_prefix(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Prefix, nil }, nil, - ec.marshalOString2string, + func(ctx context.Context, selections ast.SelectionSet, v string) graphql.Marshaler { + return ec.marshalOString2string(ctx, selections, v) + }, true, false, ) } - func (ec *executionContext) fieldContext_Unit_prefix(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "Unit", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type String does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("Unit", field, false, false, errors.New("field of type String does not have child fields")) } func (ec *executionContext) _User_username(ctx context.Context, field graphql.CollectedField, obj *model.User) (ret graphql.Marshaler) { @@ -11718,28 +11130,22 @@ func (ec *executionContext) _User_username(ctx context.Context, field graphql.Co ctx, ec.OperationContext, field, - ec.fieldContext_User_username, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_User_username(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Username, nil }, nil, - ec.marshalNString2string, + func(ctx context.Context, selections ast.SelectionSet, v string) graphql.Marshaler { + return ec.marshalNString2string(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_User_username(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "User", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type String does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("User", field, false, false, errors.New("field of type String does not have child fields")) } func (ec *executionContext) _User_name(ctx context.Context, field graphql.CollectedField, obj *model.User) (ret graphql.Marshaler) { @@ -11747,28 +11153,22 @@ func (ec *executionContext) _User_name(ctx context.Context, field graphql.Collec ctx, ec.OperationContext, field, - ec.fieldContext_User_name, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_User_name(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Name, nil }, nil, - ec.marshalNString2string, + func(ctx context.Context, selections ast.SelectionSet, v string) graphql.Marshaler { + return ec.marshalNString2string(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_User_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "User", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type String does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("User", field, false, false, errors.New("field of type String does not have child fields")) } func (ec *executionContext) _User_email(ctx context.Context, field graphql.CollectedField, obj *model.User) (ret graphql.Marshaler) { @@ -11776,28 +11176,22 @@ func (ec *executionContext) _User_email(ctx context.Context, field graphql.Colle ctx, ec.OperationContext, field, - ec.fieldContext_User_email, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext_User_email(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Email, nil }, nil, - ec.marshalNString2string, + func(ctx context.Context, selections ast.SelectionSet, v string) graphql.Marshaler { + return ec.marshalNString2string(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext_User_email(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "User", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type String does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("User", field, false, false, errors.New("field of type String does not have child fields")) } func (ec *executionContext) ___Directive_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) { @@ -11805,28 +11199,22 @@ func (ec *executionContext) ___Directive_name(ctx context.Context, field graphql ctx, ec.OperationContext, field, - ec.fieldContext___Directive_name, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext___Directive_name(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Name, nil }, nil, - ec.marshalNString2string, + func(ctx context.Context, selections ast.SelectionSet, v string) graphql.Marshaler { + return ec.marshalNString2string(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext___Directive_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "__Directive", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type String does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("__Directive", field, false, false, errors.New("field of type String does not have child fields")) } func (ec *executionContext) ___Directive_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) { @@ -11834,28 +11222,22 @@ func (ec *executionContext) ___Directive_description(ctx context.Context, field ctx, ec.OperationContext, field, - ec.fieldContext___Directive_description, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext___Directive_description(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Description(), nil }, nil, - ec.marshalOString2ᚖstring, + func(ctx context.Context, selections ast.SelectionSet, v *string) graphql.Marshaler { + return ec.marshalOString2ᚖstring(ctx, selections, v) + }, true, false, ) } - func (ec *executionContext) fieldContext___Directive_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "__Directive", - Field: field, - IsMethod: true, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type String does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("__Directive", field, true, false, errors.New("field of type String does not have child fields")) } func (ec *executionContext) ___Directive_isRepeatable(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) { @@ -11863,28 +11245,22 @@ func (ec *executionContext) ___Directive_isRepeatable(ctx context.Context, field ctx, ec.OperationContext, field, - ec.fieldContext___Directive_isRepeatable, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext___Directive_isRepeatable(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.IsRepeatable, nil }, nil, - ec.marshalNBoolean2bool, + func(ctx context.Context, selections ast.SelectionSet, v bool) graphql.Marshaler { + return ec.marshalNBoolean2bool(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext___Directive_isRepeatable(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "__Directive", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Boolean does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("__Directive", field, false, false, errors.New("field of type Boolean does not have child fields")) } func (ec *executionContext) ___Directive_locations(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) { @@ -11892,28 +11268,22 @@ func (ec *executionContext) ___Directive_locations(ctx context.Context, field gr ctx, ec.OperationContext, field, - ec.fieldContext___Directive_locations, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext___Directive_locations(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Locations, nil }, nil, - ec.marshalN__DirectiveLocation2ᚕstringᚄ, + func(ctx context.Context, selections ast.SelectionSet, v []string) graphql.Marshaler { + return ec.marshalN__DirectiveLocation2ᚕstringᚄ(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext___Directive_locations(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "__Directive", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type __DirectiveLocation does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("__Directive", field, false, false, errors.New("field of type __DirectiveLocation does not have child fields")) } func (ec *executionContext) ___Directive_args(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) { @@ -11921,17 +11291,20 @@ func (ec *executionContext) ___Directive_args(ctx context.Context, field graphql ctx, ec.OperationContext, field, - ec.fieldContext___Directive_args, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext___Directive_args(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Args, nil }, nil, - ec.marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ, + func(ctx context.Context, selections ast.SelectionSet, v []introspection.InputValue) graphql.Marshaler { + return ec.marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext___Directive_args(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ Object: "__Directive", @@ -11939,21 +11312,7 @@ func (ec *executionContext) fieldContext___Directive_args(ctx context.Context, f IsMethod: false, IsResolver: false, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - switch field.Name { - case "name": - return ec.fieldContext___InputValue_name(ctx, field) - case "description": - return ec.fieldContext___InputValue_description(ctx, field) - case "type": - return ec.fieldContext___InputValue_type(ctx, field) - case "defaultValue": - return ec.fieldContext___InputValue_defaultValue(ctx, field) - case "isDeprecated": - return ec.fieldContext___InputValue_isDeprecated(ctx, field) - case "deprecationReason": - return ec.fieldContext___InputValue_deprecationReason(ctx, field) - } - return nil, fmt.Errorf("no field named %q was found under type __InputValue", field.Name) + return ec.childFields___InputValue(ctx, field) }, } defer func() { @@ -11975,28 +11334,22 @@ func (ec *executionContext) ___EnumValue_name(ctx context.Context, field graphql ctx, ec.OperationContext, field, - ec.fieldContext___EnumValue_name, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext___EnumValue_name(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Name, nil }, nil, - ec.marshalNString2string, + func(ctx context.Context, selections ast.SelectionSet, v string) graphql.Marshaler { + return ec.marshalNString2string(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext___EnumValue_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "__EnumValue", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type String does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("__EnumValue", field, false, false, errors.New("field of type String does not have child fields")) } func (ec *executionContext) ___EnumValue_description(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) { @@ -12004,28 +11357,22 @@ func (ec *executionContext) ___EnumValue_description(ctx context.Context, field ctx, ec.OperationContext, field, - ec.fieldContext___EnumValue_description, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext___EnumValue_description(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Description(), nil }, nil, - ec.marshalOString2ᚖstring, + func(ctx context.Context, selections ast.SelectionSet, v *string) graphql.Marshaler { + return ec.marshalOString2ᚖstring(ctx, selections, v) + }, true, false, ) } - func (ec *executionContext) fieldContext___EnumValue_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "__EnumValue", - Field: field, - IsMethod: true, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type String does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("__EnumValue", field, true, false, errors.New("field of type String does not have child fields")) } func (ec *executionContext) ___EnumValue_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) { @@ -12033,28 +11380,22 @@ func (ec *executionContext) ___EnumValue_isDeprecated(ctx context.Context, field ctx, ec.OperationContext, field, - ec.fieldContext___EnumValue_isDeprecated, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext___EnumValue_isDeprecated(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.IsDeprecated(), nil }, nil, - ec.marshalNBoolean2bool, + func(ctx context.Context, selections ast.SelectionSet, v bool) graphql.Marshaler { + return ec.marshalNBoolean2bool(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext___EnumValue_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "__EnumValue", - Field: field, - IsMethod: true, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Boolean does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("__EnumValue", field, true, false, errors.New("field of type Boolean does not have child fields")) } func (ec *executionContext) ___EnumValue_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) { @@ -12062,28 +11403,22 @@ func (ec *executionContext) ___EnumValue_deprecationReason(ctx context.Context, ctx, ec.OperationContext, field, - ec.fieldContext___EnumValue_deprecationReason, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext___EnumValue_deprecationReason(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.DeprecationReason(), nil }, nil, - ec.marshalOString2ᚖstring, + func(ctx context.Context, selections ast.SelectionSet, v *string) graphql.Marshaler { + return ec.marshalOString2ᚖstring(ctx, selections, v) + }, true, false, ) } - func (ec *executionContext) fieldContext___EnumValue_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "__EnumValue", - Field: field, - IsMethod: true, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type String does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("__EnumValue", field, true, false, errors.New("field of type String does not have child fields")) } func (ec *executionContext) ___Field_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) { @@ -12091,28 +11426,22 @@ func (ec *executionContext) ___Field_name(ctx context.Context, field graphql.Col ctx, ec.OperationContext, field, - ec.fieldContext___Field_name, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext___Field_name(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Name, nil }, nil, - ec.marshalNString2string, + func(ctx context.Context, selections ast.SelectionSet, v string) graphql.Marshaler { + return ec.marshalNString2string(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext___Field_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "__Field", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type String does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("__Field", field, false, false, errors.New("field of type String does not have child fields")) } func (ec *executionContext) ___Field_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) { @@ -12120,28 +11449,22 @@ func (ec *executionContext) ___Field_description(ctx context.Context, field grap ctx, ec.OperationContext, field, - ec.fieldContext___Field_description, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext___Field_description(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Description(), nil }, nil, - ec.marshalOString2ᚖstring, + func(ctx context.Context, selections ast.SelectionSet, v *string) graphql.Marshaler { + return ec.marshalOString2ᚖstring(ctx, selections, v) + }, true, false, ) } - func (ec *executionContext) fieldContext___Field_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "__Field", - Field: field, - IsMethod: true, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type String does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("__Field", field, true, false, errors.New("field of type String does not have child fields")) } func (ec *executionContext) ___Field_args(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) { @@ -12149,17 +11472,20 @@ func (ec *executionContext) ___Field_args(ctx context.Context, field graphql.Col ctx, ec.OperationContext, field, - ec.fieldContext___Field_args, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext___Field_args(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Args, nil }, nil, - ec.marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ, + func(ctx context.Context, selections ast.SelectionSet, v []introspection.InputValue) graphql.Marshaler { + return ec.marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext___Field_args(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ Object: "__Field", @@ -12167,21 +11493,7 @@ func (ec *executionContext) fieldContext___Field_args(ctx context.Context, field IsMethod: false, IsResolver: false, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - switch field.Name { - case "name": - return ec.fieldContext___InputValue_name(ctx, field) - case "description": - return ec.fieldContext___InputValue_description(ctx, field) - case "type": - return ec.fieldContext___InputValue_type(ctx, field) - case "defaultValue": - return ec.fieldContext___InputValue_defaultValue(ctx, field) - case "isDeprecated": - return ec.fieldContext___InputValue_isDeprecated(ctx, field) - case "deprecationReason": - return ec.fieldContext___InputValue_deprecationReason(ctx, field) - } - return nil, fmt.Errorf("no field named %q was found under type __InputValue", field.Name) + return ec.childFields___InputValue(ctx, field) }, } defer func() { @@ -12203,17 +11515,20 @@ func (ec *executionContext) ___Field_type(ctx context.Context, field graphql.Col ctx, ec.OperationContext, field, - ec.fieldContext___Field_type, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext___Field_type(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Type, nil }, nil, - ec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType, + func(ctx context.Context, selections ast.SelectionSet, v *introspection.Type) graphql.Marshaler { + return ec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext___Field_type(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ Object: "__Field", @@ -12221,31 +11536,7 @@ func (ec *executionContext) fieldContext___Field_type(_ context.Context, field g IsMethod: false, IsResolver: false, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - switch field.Name { - case "kind": - return ec.fieldContext___Type_kind(ctx, field) - case "name": - return ec.fieldContext___Type_name(ctx, field) - case "description": - return ec.fieldContext___Type_description(ctx, field) - case "specifiedByURL": - return ec.fieldContext___Type_specifiedByURL(ctx, field) - case "fields": - return ec.fieldContext___Type_fields(ctx, field) - case "interfaces": - return ec.fieldContext___Type_interfaces(ctx, field) - case "possibleTypes": - return ec.fieldContext___Type_possibleTypes(ctx, field) - case "enumValues": - return ec.fieldContext___Type_enumValues(ctx, field) - case "inputFields": - return ec.fieldContext___Type_inputFields(ctx, field) - case "ofType": - return ec.fieldContext___Type_ofType(ctx, field) - case "isOneOf": - return ec.fieldContext___Type_isOneOf(ctx, field) - } - return nil, fmt.Errorf("no field named %q was found under type __Type", field.Name) + return ec.childFields___Type(ctx, field) }, } return fc, nil @@ -12256,28 +11547,22 @@ func (ec *executionContext) ___Field_isDeprecated(ctx context.Context, field gra ctx, ec.OperationContext, field, - ec.fieldContext___Field_isDeprecated, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext___Field_isDeprecated(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.IsDeprecated(), nil }, nil, - ec.marshalNBoolean2bool, + func(ctx context.Context, selections ast.SelectionSet, v bool) graphql.Marshaler { + return ec.marshalNBoolean2bool(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext___Field_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "__Field", - Field: field, - IsMethod: true, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Boolean does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("__Field", field, true, false, errors.New("field of type Boolean does not have child fields")) } func (ec *executionContext) ___Field_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) { @@ -12285,28 +11570,22 @@ func (ec *executionContext) ___Field_deprecationReason(ctx context.Context, fiel ctx, ec.OperationContext, field, - ec.fieldContext___Field_deprecationReason, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext___Field_deprecationReason(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.DeprecationReason(), nil }, nil, - ec.marshalOString2ᚖstring, + func(ctx context.Context, selections ast.SelectionSet, v *string) graphql.Marshaler { + return ec.marshalOString2ᚖstring(ctx, selections, v) + }, true, false, ) } - func (ec *executionContext) fieldContext___Field_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "__Field", - Field: field, - IsMethod: true, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type String does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("__Field", field, true, false, errors.New("field of type String does not have child fields")) } func (ec *executionContext) ___InputValue_name(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) { @@ -12314,28 +11593,22 @@ func (ec *executionContext) ___InputValue_name(ctx context.Context, field graphq ctx, ec.OperationContext, field, - ec.fieldContext___InputValue_name, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext___InputValue_name(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Name, nil }, nil, - ec.marshalNString2string, + func(ctx context.Context, selections ast.SelectionSet, v string) graphql.Marshaler { + return ec.marshalNString2string(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext___InputValue_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "__InputValue", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type String does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("__InputValue", field, false, false, errors.New("field of type String does not have child fields")) } func (ec *executionContext) ___InputValue_description(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) { @@ -12343,28 +11616,22 @@ func (ec *executionContext) ___InputValue_description(ctx context.Context, field ctx, ec.OperationContext, field, - ec.fieldContext___InputValue_description, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext___InputValue_description(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Description(), nil }, nil, - ec.marshalOString2ᚖstring, + func(ctx context.Context, selections ast.SelectionSet, v *string) graphql.Marshaler { + return ec.marshalOString2ᚖstring(ctx, selections, v) + }, true, false, ) } - func (ec *executionContext) fieldContext___InputValue_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "__InputValue", - Field: field, - IsMethod: true, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type String does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("__InputValue", field, true, false, errors.New("field of type String does not have child fields")) } func (ec *executionContext) ___InputValue_type(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) { @@ -12372,17 +11639,20 @@ func (ec *executionContext) ___InputValue_type(ctx context.Context, field graphq ctx, ec.OperationContext, field, - ec.fieldContext___InputValue_type, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext___InputValue_type(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Type, nil }, nil, - ec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType, + func(ctx context.Context, selections ast.SelectionSet, v *introspection.Type) graphql.Marshaler { + return ec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext___InputValue_type(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ Object: "__InputValue", @@ -12390,31 +11660,7 @@ func (ec *executionContext) fieldContext___InputValue_type(_ context.Context, fi IsMethod: false, IsResolver: false, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - switch field.Name { - case "kind": - return ec.fieldContext___Type_kind(ctx, field) - case "name": - return ec.fieldContext___Type_name(ctx, field) - case "description": - return ec.fieldContext___Type_description(ctx, field) - case "specifiedByURL": - return ec.fieldContext___Type_specifiedByURL(ctx, field) - case "fields": - return ec.fieldContext___Type_fields(ctx, field) - case "interfaces": - return ec.fieldContext___Type_interfaces(ctx, field) - case "possibleTypes": - return ec.fieldContext___Type_possibleTypes(ctx, field) - case "enumValues": - return ec.fieldContext___Type_enumValues(ctx, field) - case "inputFields": - return ec.fieldContext___Type_inputFields(ctx, field) - case "ofType": - return ec.fieldContext___Type_ofType(ctx, field) - case "isOneOf": - return ec.fieldContext___Type_isOneOf(ctx, field) - } - return nil, fmt.Errorf("no field named %q was found under type __Type", field.Name) + return ec.childFields___Type(ctx, field) }, } return fc, nil @@ -12425,28 +11671,22 @@ func (ec *executionContext) ___InputValue_defaultValue(ctx context.Context, fiel ctx, ec.OperationContext, field, - ec.fieldContext___InputValue_defaultValue, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext___InputValue_defaultValue(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.DefaultValue, nil }, nil, - ec.marshalOString2ᚖstring, + func(ctx context.Context, selections ast.SelectionSet, v *string) graphql.Marshaler { + return ec.marshalOString2ᚖstring(ctx, selections, v) + }, true, false, ) } - func (ec *executionContext) fieldContext___InputValue_defaultValue(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "__InputValue", - Field: field, - IsMethod: false, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type String does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("__InputValue", field, false, false, errors.New("field of type String does not have child fields")) } func (ec *executionContext) ___InputValue_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) { @@ -12454,28 +11694,22 @@ func (ec *executionContext) ___InputValue_isDeprecated(ctx context.Context, fiel ctx, ec.OperationContext, field, - ec.fieldContext___InputValue_isDeprecated, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext___InputValue_isDeprecated(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.IsDeprecated(), nil }, nil, - ec.marshalNBoolean2bool, + func(ctx context.Context, selections ast.SelectionSet, v bool) graphql.Marshaler { + return ec.marshalNBoolean2bool(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext___InputValue_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "__InputValue", - Field: field, - IsMethod: true, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Boolean does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("__InputValue", field, true, false, errors.New("field of type Boolean does not have child fields")) } func (ec *executionContext) ___InputValue_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) { @@ -12483,28 +11717,22 @@ func (ec *executionContext) ___InputValue_deprecationReason(ctx context.Context, ctx, ec.OperationContext, field, - ec.fieldContext___InputValue_deprecationReason, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext___InputValue_deprecationReason(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.DeprecationReason(), nil }, nil, - ec.marshalOString2ᚖstring, + func(ctx context.Context, selections ast.SelectionSet, v *string) graphql.Marshaler { + return ec.marshalOString2ᚖstring(ctx, selections, v) + }, true, false, ) } - func (ec *executionContext) fieldContext___InputValue_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "__InputValue", - Field: field, - IsMethod: true, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type String does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("__InputValue", field, true, false, errors.New("field of type String does not have child fields")) } func (ec *executionContext) ___Schema_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) { @@ -12512,28 +11740,22 @@ func (ec *executionContext) ___Schema_description(ctx context.Context, field gra ctx, ec.OperationContext, field, - ec.fieldContext___Schema_description, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext___Schema_description(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Description(), nil }, nil, - ec.marshalOString2ᚖstring, + func(ctx context.Context, selections ast.SelectionSet, v *string) graphql.Marshaler { + return ec.marshalOString2ᚖstring(ctx, selections, v) + }, true, false, ) } - func (ec *executionContext) fieldContext___Schema_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "__Schema", - Field: field, - IsMethod: true, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type String does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("__Schema", field, true, false, errors.New("field of type String does not have child fields")) } func (ec *executionContext) ___Schema_types(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) { @@ -12541,17 +11763,20 @@ func (ec *executionContext) ___Schema_types(ctx context.Context, field graphql.C ctx, ec.OperationContext, field, - ec.fieldContext___Schema_types, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext___Schema_types(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Types(), nil }, nil, - ec.marshalN__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ, + func(ctx context.Context, selections ast.SelectionSet, v []introspection.Type) graphql.Marshaler { + return ec.marshalN__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext___Schema_types(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ Object: "__Schema", @@ -12559,31 +11784,7 @@ func (ec *executionContext) fieldContext___Schema_types(_ context.Context, field IsMethod: true, IsResolver: false, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - switch field.Name { - case "kind": - return ec.fieldContext___Type_kind(ctx, field) - case "name": - return ec.fieldContext___Type_name(ctx, field) - case "description": - return ec.fieldContext___Type_description(ctx, field) - case "specifiedByURL": - return ec.fieldContext___Type_specifiedByURL(ctx, field) - case "fields": - return ec.fieldContext___Type_fields(ctx, field) - case "interfaces": - return ec.fieldContext___Type_interfaces(ctx, field) - case "possibleTypes": - return ec.fieldContext___Type_possibleTypes(ctx, field) - case "enumValues": - return ec.fieldContext___Type_enumValues(ctx, field) - case "inputFields": - return ec.fieldContext___Type_inputFields(ctx, field) - case "ofType": - return ec.fieldContext___Type_ofType(ctx, field) - case "isOneOf": - return ec.fieldContext___Type_isOneOf(ctx, field) - } - return nil, fmt.Errorf("no field named %q was found under type __Type", field.Name) + return ec.childFields___Type(ctx, field) }, } return fc, nil @@ -12594,17 +11795,20 @@ func (ec *executionContext) ___Schema_queryType(ctx context.Context, field graph ctx, ec.OperationContext, field, - ec.fieldContext___Schema_queryType, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext___Schema_queryType(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.QueryType(), nil }, nil, - ec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType, + func(ctx context.Context, selections ast.SelectionSet, v *introspection.Type) graphql.Marshaler { + return ec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext___Schema_queryType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ Object: "__Schema", @@ -12612,31 +11816,7 @@ func (ec *executionContext) fieldContext___Schema_queryType(_ context.Context, f IsMethod: true, IsResolver: false, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - switch field.Name { - case "kind": - return ec.fieldContext___Type_kind(ctx, field) - case "name": - return ec.fieldContext___Type_name(ctx, field) - case "description": - return ec.fieldContext___Type_description(ctx, field) - case "specifiedByURL": - return ec.fieldContext___Type_specifiedByURL(ctx, field) - case "fields": - return ec.fieldContext___Type_fields(ctx, field) - case "interfaces": - return ec.fieldContext___Type_interfaces(ctx, field) - case "possibleTypes": - return ec.fieldContext___Type_possibleTypes(ctx, field) - case "enumValues": - return ec.fieldContext___Type_enumValues(ctx, field) - case "inputFields": - return ec.fieldContext___Type_inputFields(ctx, field) - case "ofType": - return ec.fieldContext___Type_ofType(ctx, field) - case "isOneOf": - return ec.fieldContext___Type_isOneOf(ctx, field) - } - return nil, fmt.Errorf("no field named %q was found under type __Type", field.Name) + return ec.childFields___Type(ctx, field) }, } return fc, nil @@ -12647,17 +11827,20 @@ func (ec *executionContext) ___Schema_mutationType(ctx context.Context, field gr ctx, ec.OperationContext, field, - ec.fieldContext___Schema_mutationType, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext___Schema_mutationType(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.MutationType(), nil }, nil, - ec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType, + func(ctx context.Context, selections ast.SelectionSet, v *introspection.Type) graphql.Marshaler { + return ec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, selections, v) + }, true, false, ) } - func (ec *executionContext) fieldContext___Schema_mutationType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ Object: "__Schema", @@ -12665,31 +11848,7 @@ func (ec *executionContext) fieldContext___Schema_mutationType(_ context.Context IsMethod: true, IsResolver: false, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - switch field.Name { - case "kind": - return ec.fieldContext___Type_kind(ctx, field) - case "name": - return ec.fieldContext___Type_name(ctx, field) - case "description": - return ec.fieldContext___Type_description(ctx, field) - case "specifiedByURL": - return ec.fieldContext___Type_specifiedByURL(ctx, field) - case "fields": - return ec.fieldContext___Type_fields(ctx, field) - case "interfaces": - return ec.fieldContext___Type_interfaces(ctx, field) - case "possibleTypes": - return ec.fieldContext___Type_possibleTypes(ctx, field) - case "enumValues": - return ec.fieldContext___Type_enumValues(ctx, field) - case "inputFields": - return ec.fieldContext___Type_inputFields(ctx, field) - case "ofType": - return ec.fieldContext___Type_ofType(ctx, field) - case "isOneOf": - return ec.fieldContext___Type_isOneOf(ctx, field) - } - return nil, fmt.Errorf("no field named %q was found under type __Type", field.Name) + return ec.childFields___Type(ctx, field) }, } return fc, nil @@ -12700,17 +11859,20 @@ func (ec *executionContext) ___Schema_subscriptionType(ctx context.Context, fiel ctx, ec.OperationContext, field, - ec.fieldContext___Schema_subscriptionType, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext___Schema_subscriptionType(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.SubscriptionType(), nil }, nil, - ec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType, + func(ctx context.Context, selections ast.SelectionSet, v *introspection.Type) graphql.Marshaler { + return ec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, selections, v) + }, true, false, ) } - func (ec *executionContext) fieldContext___Schema_subscriptionType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ Object: "__Schema", @@ -12718,31 +11880,7 @@ func (ec *executionContext) fieldContext___Schema_subscriptionType(_ context.Con IsMethod: true, IsResolver: false, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - switch field.Name { - case "kind": - return ec.fieldContext___Type_kind(ctx, field) - case "name": - return ec.fieldContext___Type_name(ctx, field) - case "description": - return ec.fieldContext___Type_description(ctx, field) - case "specifiedByURL": - return ec.fieldContext___Type_specifiedByURL(ctx, field) - case "fields": - return ec.fieldContext___Type_fields(ctx, field) - case "interfaces": - return ec.fieldContext___Type_interfaces(ctx, field) - case "possibleTypes": - return ec.fieldContext___Type_possibleTypes(ctx, field) - case "enumValues": - return ec.fieldContext___Type_enumValues(ctx, field) - case "inputFields": - return ec.fieldContext___Type_inputFields(ctx, field) - case "ofType": - return ec.fieldContext___Type_ofType(ctx, field) - case "isOneOf": - return ec.fieldContext___Type_isOneOf(ctx, field) - } - return nil, fmt.Errorf("no field named %q was found under type __Type", field.Name) + return ec.childFields___Type(ctx, field) }, } return fc, nil @@ -12753,17 +11891,20 @@ func (ec *executionContext) ___Schema_directives(ctx context.Context, field grap ctx, ec.OperationContext, field, - ec.fieldContext___Schema_directives, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext___Schema_directives(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Directives(), nil }, nil, - ec.marshalN__Directive2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirectiveᚄ, + func(ctx context.Context, selections ast.SelectionSet, v []introspection.Directive) graphql.Marshaler { + return ec.marshalN__Directive2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirectiveᚄ(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext___Schema_directives(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ Object: "__Schema", @@ -12771,19 +11912,7 @@ func (ec *executionContext) fieldContext___Schema_directives(_ context.Context, IsMethod: true, IsResolver: false, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - switch field.Name { - case "name": - return ec.fieldContext___Directive_name(ctx, field) - case "description": - return ec.fieldContext___Directive_description(ctx, field) - case "isRepeatable": - return ec.fieldContext___Directive_isRepeatable(ctx, field) - case "locations": - return ec.fieldContext___Directive_locations(ctx, field) - case "args": - return ec.fieldContext___Directive_args(ctx, field) - } - return nil, fmt.Errorf("no field named %q was found under type __Directive", field.Name) + return ec.childFields___Directive(ctx, field) }, } return fc, nil @@ -12794,28 +11923,22 @@ func (ec *executionContext) ___Type_kind(ctx context.Context, field graphql.Coll ctx, ec.OperationContext, field, - ec.fieldContext___Type_kind, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext___Type_kind(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Kind(), nil }, nil, - ec.marshalN__TypeKind2string, + func(ctx context.Context, selections ast.SelectionSet, v string) graphql.Marshaler { + return ec.marshalN__TypeKind2string(ctx, selections, v) + }, true, true, ) } - func (ec *executionContext) fieldContext___Type_kind(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "__Type", - Field: field, - IsMethod: true, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type __TypeKind does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("__Type", field, true, false, errors.New("field of type __TypeKind does not have child fields")) } func (ec *executionContext) ___Type_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) { @@ -12823,28 +11946,22 @@ func (ec *executionContext) ___Type_name(ctx context.Context, field graphql.Coll ctx, ec.OperationContext, field, - ec.fieldContext___Type_name, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext___Type_name(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Name(), nil }, nil, - ec.marshalOString2ᚖstring, + func(ctx context.Context, selections ast.SelectionSet, v *string) graphql.Marshaler { + return ec.marshalOString2ᚖstring(ctx, selections, v) + }, true, false, ) } - func (ec *executionContext) fieldContext___Type_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "__Type", - Field: field, - IsMethod: true, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type String does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("__Type", field, true, false, errors.New("field of type String does not have child fields")) } func (ec *executionContext) ___Type_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) { @@ -12852,28 +11969,22 @@ func (ec *executionContext) ___Type_description(ctx context.Context, field graph ctx, ec.OperationContext, field, - ec.fieldContext___Type_description, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext___Type_description(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Description(), nil }, nil, - ec.marshalOString2ᚖstring, + func(ctx context.Context, selections ast.SelectionSet, v *string) graphql.Marshaler { + return ec.marshalOString2ᚖstring(ctx, selections, v) + }, true, false, ) } - func (ec *executionContext) fieldContext___Type_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "__Type", - Field: field, - IsMethod: true, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type String does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("__Type", field, true, false, errors.New("field of type String does not have child fields")) } func (ec *executionContext) ___Type_specifiedByURL(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) { @@ -12881,28 +11992,22 @@ func (ec *executionContext) ___Type_specifiedByURL(ctx context.Context, field gr ctx, ec.OperationContext, field, - ec.fieldContext___Type_specifiedByURL, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext___Type_specifiedByURL(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.SpecifiedByURL(), nil }, nil, - ec.marshalOString2ᚖstring, + func(ctx context.Context, selections ast.SelectionSet, v *string) graphql.Marshaler { + return ec.marshalOString2ᚖstring(ctx, selections, v) + }, true, false, ) } - func (ec *executionContext) fieldContext___Type_specifiedByURL(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "__Type", - Field: field, - IsMethod: true, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type String does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("__Type", field, true, false, errors.New("field of type String does not have child fields")) } func (ec *executionContext) ___Type_fields(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) { @@ -12910,18 +12015,21 @@ func (ec *executionContext) ___Type_fields(ctx context.Context, field graphql.Co ctx, ec.OperationContext, field, - ec.fieldContext___Type_fields, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext___Type_fields(ctx, field) + }, func(ctx context.Context) (any, error) { fc := graphql.GetFieldContext(ctx) return obj.Fields(fc.Args["includeDeprecated"].(bool)), nil }, nil, - ec.marshalO__Field2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐFieldᚄ, + func(ctx context.Context, selections ast.SelectionSet, v []introspection.Field) graphql.Marshaler { + return ec.marshalO__Field2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐFieldᚄ(ctx, selections, v) + }, true, false, ) } - func (ec *executionContext) fieldContext___Type_fields(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ Object: "__Type", @@ -12929,21 +12037,7 @@ func (ec *executionContext) fieldContext___Type_fields(ctx context.Context, fiel IsMethod: true, IsResolver: false, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - switch field.Name { - case "name": - return ec.fieldContext___Field_name(ctx, field) - case "description": - return ec.fieldContext___Field_description(ctx, field) - case "args": - return ec.fieldContext___Field_args(ctx, field) - case "type": - return ec.fieldContext___Field_type(ctx, field) - case "isDeprecated": - return ec.fieldContext___Field_isDeprecated(ctx, field) - case "deprecationReason": - return ec.fieldContext___Field_deprecationReason(ctx, field) - } - return nil, fmt.Errorf("no field named %q was found under type __Field", field.Name) + return ec.childFields___Field(ctx, field) }, } defer func() { @@ -12965,17 +12059,20 @@ func (ec *executionContext) ___Type_interfaces(ctx context.Context, field graphq ctx, ec.OperationContext, field, - ec.fieldContext___Type_interfaces, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext___Type_interfaces(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.Interfaces(), nil }, nil, - ec.marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ, + func(ctx context.Context, selections ast.SelectionSet, v []introspection.Type) graphql.Marshaler { + return ec.marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx, selections, v) + }, true, false, ) } - func (ec *executionContext) fieldContext___Type_interfaces(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ Object: "__Type", @@ -12983,31 +12080,7 @@ func (ec *executionContext) fieldContext___Type_interfaces(_ context.Context, fi IsMethod: true, IsResolver: false, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - switch field.Name { - case "kind": - return ec.fieldContext___Type_kind(ctx, field) - case "name": - return ec.fieldContext___Type_name(ctx, field) - case "description": - return ec.fieldContext___Type_description(ctx, field) - case "specifiedByURL": - return ec.fieldContext___Type_specifiedByURL(ctx, field) - case "fields": - return ec.fieldContext___Type_fields(ctx, field) - case "interfaces": - return ec.fieldContext___Type_interfaces(ctx, field) - case "possibleTypes": - return ec.fieldContext___Type_possibleTypes(ctx, field) - case "enumValues": - return ec.fieldContext___Type_enumValues(ctx, field) - case "inputFields": - return ec.fieldContext___Type_inputFields(ctx, field) - case "ofType": - return ec.fieldContext___Type_ofType(ctx, field) - case "isOneOf": - return ec.fieldContext___Type_isOneOf(ctx, field) - } - return nil, fmt.Errorf("no field named %q was found under type __Type", field.Name) + return ec.childFields___Type(ctx, field) }, } return fc, nil @@ -13018,17 +12091,20 @@ func (ec *executionContext) ___Type_possibleTypes(ctx context.Context, field gra ctx, ec.OperationContext, field, - ec.fieldContext___Type_possibleTypes, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext___Type_possibleTypes(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.PossibleTypes(), nil }, nil, - ec.marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ, + func(ctx context.Context, selections ast.SelectionSet, v []introspection.Type) graphql.Marshaler { + return ec.marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx, selections, v) + }, true, false, ) } - func (ec *executionContext) fieldContext___Type_possibleTypes(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ Object: "__Type", @@ -13036,31 +12112,7 @@ func (ec *executionContext) fieldContext___Type_possibleTypes(_ context.Context, IsMethod: true, IsResolver: false, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - switch field.Name { - case "kind": - return ec.fieldContext___Type_kind(ctx, field) - case "name": - return ec.fieldContext___Type_name(ctx, field) - case "description": - return ec.fieldContext___Type_description(ctx, field) - case "specifiedByURL": - return ec.fieldContext___Type_specifiedByURL(ctx, field) - case "fields": - return ec.fieldContext___Type_fields(ctx, field) - case "interfaces": - return ec.fieldContext___Type_interfaces(ctx, field) - case "possibleTypes": - return ec.fieldContext___Type_possibleTypes(ctx, field) - case "enumValues": - return ec.fieldContext___Type_enumValues(ctx, field) - case "inputFields": - return ec.fieldContext___Type_inputFields(ctx, field) - case "ofType": - return ec.fieldContext___Type_ofType(ctx, field) - case "isOneOf": - return ec.fieldContext___Type_isOneOf(ctx, field) - } - return nil, fmt.Errorf("no field named %q was found under type __Type", field.Name) + return ec.childFields___Type(ctx, field) }, } return fc, nil @@ -13071,18 +12123,21 @@ func (ec *executionContext) ___Type_enumValues(ctx context.Context, field graphq ctx, ec.OperationContext, field, - ec.fieldContext___Type_enumValues, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext___Type_enumValues(ctx, field) + }, func(ctx context.Context) (any, error) { fc := graphql.GetFieldContext(ctx) return obj.EnumValues(fc.Args["includeDeprecated"].(bool)), nil }, nil, - ec.marshalO__EnumValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValueᚄ, + func(ctx context.Context, selections ast.SelectionSet, v []introspection.EnumValue) graphql.Marshaler { + return ec.marshalO__EnumValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValueᚄ(ctx, selections, v) + }, true, false, ) } - func (ec *executionContext) fieldContext___Type_enumValues(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ Object: "__Type", @@ -13090,17 +12145,7 @@ func (ec *executionContext) fieldContext___Type_enumValues(ctx context.Context, IsMethod: true, IsResolver: false, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - switch field.Name { - case "name": - return ec.fieldContext___EnumValue_name(ctx, field) - case "description": - return ec.fieldContext___EnumValue_description(ctx, field) - case "isDeprecated": - return ec.fieldContext___EnumValue_isDeprecated(ctx, field) - case "deprecationReason": - return ec.fieldContext___EnumValue_deprecationReason(ctx, field) - } - return nil, fmt.Errorf("no field named %q was found under type __EnumValue", field.Name) + return ec.childFields___EnumValue(ctx, field) }, } defer func() { @@ -13122,17 +12167,20 @@ func (ec *executionContext) ___Type_inputFields(ctx context.Context, field graph ctx, ec.OperationContext, field, - ec.fieldContext___Type_inputFields, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext___Type_inputFields(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.InputFields(), nil }, nil, - ec.marshalO__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ, + func(ctx context.Context, selections ast.SelectionSet, v []introspection.InputValue) graphql.Marshaler { + return ec.marshalO__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx, selections, v) + }, true, false, ) } - func (ec *executionContext) fieldContext___Type_inputFields(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ Object: "__Type", @@ -13140,21 +12188,7 @@ func (ec *executionContext) fieldContext___Type_inputFields(_ context.Context, f IsMethod: true, IsResolver: false, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - switch field.Name { - case "name": - return ec.fieldContext___InputValue_name(ctx, field) - case "description": - return ec.fieldContext___InputValue_description(ctx, field) - case "type": - return ec.fieldContext___InputValue_type(ctx, field) - case "defaultValue": - return ec.fieldContext___InputValue_defaultValue(ctx, field) - case "isDeprecated": - return ec.fieldContext___InputValue_isDeprecated(ctx, field) - case "deprecationReason": - return ec.fieldContext___InputValue_deprecationReason(ctx, field) - } - return nil, fmt.Errorf("no field named %q was found under type __InputValue", field.Name) + return ec.childFields___InputValue(ctx, field) }, } return fc, nil @@ -13165,17 +12199,20 @@ func (ec *executionContext) ___Type_ofType(ctx context.Context, field graphql.Co ctx, ec.OperationContext, field, - ec.fieldContext___Type_ofType, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext___Type_ofType(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.OfType(), nil }, nil, - ec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType, + func(ctx context.Context, selections ast.SelectionSet, v *introspection.Type) graphql.Marshaler { + return ec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, selections, v) + }, true, false, ) } - func (ec *executionContext) fieldContext___Type_ofType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ Object: "__Type", @@ -13183,31 +12220,7 @@ func (ec *executionContext) fieldContext___Type_ofType(_ context.Context, field IsMethod: true, IsResolver: false, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - switch field.Name { - case "kind": - return ec.fieldContext___Type_kind(ctx, field) - case "name": - return ec.fieldContext___Type_name(ctx, field) - case "description": - return ec.fieldContext___Type_description(ctx, field) - case "specifiedByURL": - return ec.fieldContext___Type_specifiedByURL(ctx, field) - case "fields": - return ec.fieldContext___Type_fields(ctx, field) - case "interfaces": - return ec.fieldContext___Type_interfaces(ctx, field) - case "possibleTypes": - return ec.fieldContext___Type_possibleTypes(ctx, field) - case "enumValues": - return ec.fieldContext___Type_enumValues(ctx, field) - case "inputFields": - return ec.fieldContext___Type_inputFields(ctx, field) - case "ofType": - return ec.fieldContext___Type_ofType(ctx, field) - case "isOneOf": - return ec.fieldContext___Type_isOneOf(ctx, field) - } - return nil, fmt.Errorf("no field named %q was found under type __Type", field.Name) + return ec.childFields___Type(ctx, field) }, } return fc, nil @@ -13218,28 +12231,22 @@ func (ec *executionContext) ___Type_isOneOf(ctx context.Context, field graphql.C ctx, ec.OperationContext, field, - ec.fieldContext___Type_isOneOf, + func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return ec.fieldContext___Type_isOneOf(ctx, field) + }, func(ctx context.Context) (any, error) { return obj.IsOneOf(), nil }, nil, - ec.marshalOBoolean2bool, + func(ctx context.Context, selections ast.SelectionSet, v bool) graphql.Marshaler { + return ec.marshalOBoolean2bool(ctx, selections, v) + }, true, false, ) } - func (ec *executionContext) fieldContext___Type_isOneOf(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { - fc = &graphql.FieldContext{ - Object: "__Type", - Field: field, - IsMethod: true, - IsResolver: false, - Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Boolean does not have child fields") - }, - } - return fc, nil + return graphql.NewScalarFieldContext("__Type", field, true, false, errors.New("field of type Boolean does not have child fields")) } // endregion **************************** field.gotpl ***************************** @@ -13829,7 +12836,7 @@ func (ec *executionContext) _Accelerator(ctx context.Context, sel ast.SelectionS return graphql.Null } - atomic.AddInt32(&ec.Deferred, int32(len(deferred))) + atomic.AddInt32(&ec.Deferred, int32(min(len(deferred), math.MaxInt32))) for label, dfs := range deferred { ec.ProcessDeferredGroup(graphql.DeferredGroup{ @@ -13909,7 +12916,7 @@ func (ec *executionContext) _Cluster(ctx context.Context, sel ast.SelectionSet, return graphql.Null } - atomic.AddInt32(&ec.Deferred, int32(len(deferred))) + atomic.AddInt32(&ec.Deferred, int32(min(len(deferred), math.MaxInt32))) for label, dfs := range deferred { ec.ProcessDeferredGroup(graphql.DeferredGroup{ @@ -13960,7 +12967,7 @@ func (ec *executionContext) _ClusterMetricWithName(ctx context.Context, sel ast. return graphql.Null } - atomic.AddInt32(&ec.Deferred, int32(len(deferred))) + atomic.AddInt32(&ec.Deferred, int32(min(len(deferred), math.MaxInt32))) for label, dfs := range deferred { ec.ProcessDeferredGroup(graphql.DeferredGroup{ @@ -14004,7 +13011,7 @@ func (ec *executionContext) _ClusterMetrics(ctx context.Context, sel ast.Selecti return graphql.Null } - atomic.AddInt32(&ec.Deferred, int32(len(deferred))) + atomic.AddInt32(&ec.Deferred, int32(min(len(deferred), math.MaxInt32))) for label, dfs := range deferred { ec.ProcessDeferredGroup(graphql.DeferredGroup{ @@ -14048,7 +13055,7 @@ func (ec *executionContext) _ClusterSupport(ctx context.Context, sel ast.Selecti return graphql.Null } - atomic.AddInt32(&ec.Deferred, int32(len(deferred))) + atomic.AddInt32(&ec.Deferred, int32(min(len(deferred), math.MaxInt32))) for label, dfs := range deferred { ec.ProcessDeferredGroup(graphql.DeferredGroup{ @@ -14092,7 +13099,7 @@ func (ec *executionContext) _Count(ctx context.Context, sel ast.SelectionSet, ob return graphql.Null } - atomic.AddInt32(&ec.Deferred, int32(len(deferred))) + atomic.AddInt32(&ec.Deferred, int32(min(len(deferred), math.MaxInt32))) for label, dfs := range deferred { ec.ProcessDeferredGroup(graphql.DeferredGroup{ @@ -14141,7 +13148,7 @@ func (ec *executionContext) _EnergyFootprintValue(ctx context.Context, sel ast.S return graphql.Null } - atomic.AddInt32(&ec.Deferred, int32(len(deferred))) + atomic.AddInt32(&ec.Deferred, int32(min(len(deferred), math.MaxInt32))) for label, dfs := range deferred { ec.ProcessDeferredGroup(graphql.DeferredGroup{ @@ -14190,7 +13197,7 @@ func (ec *executionContext) _FootprintValue(ctx context.Context, sel ast.Selecti return graphql.Null } - atomic.AddInt32(&ec.Deferred, int32(len(deferred))) + atomic.AddInt32(&ec.Deferred, int32(min(len(deferred), math.MaxInt32))) for label, dfs := range deferred { ec.ProcessDeferredGroup(graphql.DeferredGroup{ @@ -14234,7 +13241,7 @@ func (ec *executionContext) _Footprints(ctx context.Context, sel ast.SelectionSe return graphql.Null } - atomic.AddInt32(&ec.Deferred, int32(len(deferred))) + atomic.AddInt32(&ec.Deferred, int32(min(len(deferred), math.MaxInt32))) for label, dfs := range deferred { ec.ProcessDeferredGroup(graphql.DeferredGroup{ @@ -14290,7 +13297,7 @@ func (ec *executionContext) _GlobalMetricListItem(ctx context.Context, sel ast.S return graphql.Null } - atomic.AddInt32(&ec.Deferred, int32(len(deferred))) + atomic.AddInt32(&ec.Deferred, int32(min(len(deferred), math.MaxInt32))) for label, dfs := range deferred { ec.ProcessDeferredGroup(graphql.DeferredGroup{ @@ -14334,7 +13341,7 @@ func (ec *executionContext) _HistoPoint(ctx context.Context, sel ast.SelectionSe return graphql.Null } - atomic.AddInt32(&ec.Deferred, int32(len(deferred))) + atomic.AddInt32(&ec.Deferred, int32(min(len(deferred), math.MaxInt32))) for label, dfs := range deferred { ec.ProcessDeferredGroup(graphql.DeferredGroup{ @@ -14378,7 +13385,7 @@ func (ec *executionContext) _IntRangeOutput(ctx context.Context, sel ast.Selecti return graphql.Null } - atomic.AddInt32(&ec.Deferred, int32(len(deferred))) + atomic.AddInt32(&ec.Deferred, int32(min(len(deferred), math.MaxInt32))) for label, dfs := range deferred { ec.ProcessDeferredGroup(graphql.DeferredGroup{ @@ -14744,7 +13751,7 @@ func (ec *executionContext) _Job(ctx context.Context, sel ast.SelectionSet, obj return graphql.Null } - atomic.AddInt32(&ec.Deferred, int32(len(deferred))) + atomic.AddInt32(&ec.Deferred, int32(min(len(deferred), math.MaxInt32))) for label, dfs := range deferred { ec.ProcessDeferredGroup(graphql.DeferredGroup{ @@ -14788,7 +13795,7 @@ func (ec *executionContext) _JobLink(ctx context.Context, sel ast.SelectionSet, return graphql.Null } - atomic.AddInt32(&ec.Deferred, int32(len(deferred))) + atomic.AddInt32(&ec.Deferred, int32(min(len(deferred), math.MaxInt32))) for label, dfs := range deferred { ec.ProcessDeferredGroup(graphql.DeferredGroup{ @@ -14831,7 +13838,7 @@ func (ec *executionContext) _JobLinkResultList(ctx context.Context, sel ast.Sele return graphql.Null } - atomic.AddInt32(&ec.Deferred, int32(len(deferred))) + atomic.AddInt32(&ec.Deferred, int32(min(len(deferred), math.MaxInt32))) for label, dfs := range deferred { ec.ProcessDeferredGroup(graphql.DeferredGroup{ @@ -14876,7 +13883,7 @@ func (ec *executionContext) _JobMetric(ctx context.Context, sel ast.SelectionSet return graphql.Null } - atomic.AddInt32(&ec.Deferred, int32(len(deferred))) + atomic.AddInt32(&ec.Deferred, int32(min(len(deferred), math.MaxInt32))) for label, dfs := range deferred { ec.ProcessDeferredGroup(graphql.DeferredGroup{ @@ -14925,7 +13932,7 @@ func (ec *executionContext) _JobMetricWithName(ctx context.Context, sel ast.Sele return graphql.Null } - atomic.AddInt32(&ec.Deferred, int32(len(deferred))) + atomic.AddInt32(&ec.Deferred, int32(min(len(deferred), math.MaxInt32))) for label, dfs := range deferred { ec.ProcessDeferredGroup(graphql.DeferredGroup{ @@ -14972,7 +13979,7 @@ func (ec *executionContext) _JobResultList(ctx context.Context, sel ast.Selectio return graphql.Null } - atomic.AddInt32(&ec.Deferred, int32(len(deferred))) + atomic.AddInt32(&ec.Deferred, int32(min(len(deferred), math.MaxInt32))) for label, dfs := range deferred { ec.ProcessDeferredGroup(graphql.DeferredGroup{ @@ -15050,7 +14057,7 @@ func (ec *executionContext) _JobStats(ctx context.Context, sel ast.SelectionSet, return graphql.Null } - atomic.AddInt32(&ec.Deferred, int32(len(deferred))) + atomic.AddInt32(&ec.Deferred, int32(min(len(deferred), math.MaxInt32))) for label, dfs := range deferred { ec.ProcessDeferredGroup(graphql.DeferredGroup{ @@ -15174,7 +14181,7 @@ func (ec *executionContext) _JobsStatistics(ctx context.Context, sel ast.Selecti return graphql.Null } - atomic.AddInt32(&ec.Deferred, int32(len(deferred))) + atomic.AddInt32(&ec.Deferred, int32(min(len(deferred), math.MaxInt32))) for label, dfs := range deferred { ec.ProcessDeferredGroup(graphql.DeferredGroup{ @@ -15257,7 +14264,7 @@ func (ec *executionContext) _MetricConfig(ctx context.Context, sel ast.Selection return graphql.Null } - atomic.AddInt32(&ec.Deferred, int32(len(deferred))) + atomic.AddInt32(&ec.Deferred, int32(min(len(deferred), math.MaxInt32))) for label, dfs := range deferred { ec.ProcessDeferredGroup(graphql.DeferredGroup{ @@ -15301,7 +14308,7 @@ func (ec *executionContext) _MetricFootprints(ctx context.Context, sel ast.Selec return graphql.Null } - atomic.AddInt32(&ec.Deferred, int32(len(deferred))) + atomic.AddInt32(&ec.Deferred, int32(min(len(deferred), math.MaxInt32))) for label, dfs := range deferred { ec.ProcessDeferredGroup(graphql.DeferredGroup{ @@ -15346,7 +14353,7 @@ func (ec *executionContext) _MetricHistoPoint(ctx context.Context, sel ast.Selec return graphql.Null } - atomic.AddInt32(&ec.Deferred, int32(len(deferred))) + atomic.AddInt32(&ec.Deferred, int32(min(len(deferred), math.MaxInt32))) for label, dfs := range deferred { ec.ProcessDeferredGroup(graphql.DeferredGroup{ @@ -15394,7 +14401,7 @@ func (ec *executionContext) _MetricHistoPoints(ctx context.Context, sel ast.Sele return graphql.Null } - atomic.AddInt32(&ec.Deferred, int32(len(deferred))) + atomic.AddInt32(&ec.Deferred, int32(min(len(deferred), math.MaxInt32))) for label, dfs := range deferred { ec.ProcessDeferredGroup(graphql.DeferredGroup{ @@ -15443,7 +14450,7 @@ func (ec *executionContext) _MetricStatistics(ctx context.Context, sel ast.Selec return graphql.Null } - atomic.AddInt32(&ec.Deferred, int32(len(deferred))) + atomic.AddInt32(&ec.Deferred, int32(min(len(deferred), math.MaxInt32))) for label, dfs := range deferred { ec.ProcessDeferredGroup(graphql.DeferredGroup{ @@ -15520,7 +14527,7 @@ func (ec *executionContext) _MetricValue(ctx context.Context, sel ast.SelectionS return graphql.Null } - atomic.AddInt32(&ec.Deferred, int32(len(deferred))) + atomic.AddInt32(&ec.Deferred, int32(min(len(deferred), math.MaxInt32))) for label, dfs := range deferred { ec.ProcessDeferredGroup(graphql.DeferredGroup{ @@ -15601,7 +14608,7 @@ func (ec *executionContext) _Mutation(ctx context.Context, sel ast.SelectionSet) return graphql.Null } - atomic.AddInt32(&ec.Deferred, int32(len(deferred))) + atomic.AddInt32(&ec.Deferred, int32(min(len(deferred), math.MaxInt32))) for label, dfs := range deferred { ec.ProcessDeferredGroup(graphql.DeferredGroup{ @@ -15645,7 +14652,7 @@ func (ec *executionContext) _NamedStats(ctx context.Context, sel ast.SelectionSe return graphql.Null } - atomic.AddInt32(&ec.Deferred, int32(len(deferred))) + atomic.AddInt32(&ec.Deferred, int32(min(len(deferred), math.MaxInt32))) for label, dfs := range deferred { ec.ProcessDeferredGroup(graphql.DeferredGroup{ @@ -15694,7 +14701,7 @@ func (ec *executionContext) _NamedStatsWithScope(ctx context.Context, sel ast.Se return graphql.Null } - atomic.AddInt32(&ec.Deferred, int32(len(deferred))) + atomic.AddInt32(&ec.Deferred, int32(min(len(deferred), math.MaxInt32))) for label, dfs := range deferred { ec.ProcessDeferredGroup(graphql.DeferredGroup{ @@ -15928,7 +14935,7 @@ func (ec *executionContext) _Node(ctx context.Context, sel ast.SelectionSet, obj return graphql.Null } - atomic.AddInt32(&ec.Deferred, int32(len(deferred))) + atomic.AddInt32(&ec.Deferred, int32(min(len(deferred), math.MaxInt32))) for label, dfs := range deferred { ec.ProcessDeferredGroup(graphql.DeferredGroup{ @@ -15987,7 +14994,7 @@ func (ec *executionContext) _NodeMetrics(ctx context.Context, sel ast.SelectionS return graphql.Null } - atomic.AddInt32(&ec.Deferred, int32(len(deferred))) + atomic.AddInt32(&ec.Deferred, int32(min(len(deferred), math.MaxInt32))) for label, dfs := range deferred { ec.ProcessDeferredGroup(graphql.DeferredGroup{ @@ -16028,7 +15035,7 @@ func (ec *executionContext) _NodeStateResultList(ctx context.Context, sel ast.Se return graphql.Null } - atomic.AddInt32(&ec.Deferred, int32(len(deferred))) + atomic.AddInt32(&ec.Deferred, int32(min(len(deferred), math.MaxInt32))) for label, dfs := range deferred { ec.ProcessDeferredGroup(graphql.DeferredGroup{ @@ -16072,7 +15079,7 @@ func (ec *executionContext) _NodeStates(ctx context.Context, sel ast.SelectionSe return graphql.Null } - atomic.AddInt32(&ec.Deferred, int32(len(deferred))) + atomic.AddInt32(&ec.Deferred, int32(min(len(deferred), math.MaxInt32))) for label, dfs := range deferred { ec.ProcessDeferredGroup(graphql.DeferredGroup{ @@ -16121,7 +15128,7 @@ func (ec *executionContext) _NodeStatesTimed(ctx context.Context, sel ast.Select return graphql.Null } - atomic.AddInt32(&ec.Deferred, int32(len(deferred))) + atomic.AddInt32(&ec.Deferred, int32(min(len(deferred), math.MaxInt32))) for label, dfs := range deferred { ec.ProcessDeferredGroup(graphql.DeferredGroup{ @@ -16170,7 +15177,7 @@ func (ec *executionContext) _NodesResultList(ctx context.Context, sel ast.Select return graphql.Null } - atomic.AddInt32(&ec.Deferred, int32(len(deferred))) + atomic.AddInt32(&ec.Deferred, int32(min(len(deferred), math.MaxInt32))) for label, dfs := range deferred { ec.ProcessDeferredGroup(graphql.DeferredGroup{ @@ -16692,7 +15699,7 @@ func (ec *executionContext) _Query(ctx context.Context, sel ast.SelectionSet) gr return graphql.Null } - atomic.AddInt32(&ec.Deferred, int32(len(deferred))) + atomic.AddInt32(&ec.Deferred, int32(min(len(deferred), math.MaxInt32))) for label, dfs := range deferred { ec.ProcessDeferredGroup(graphql.DeferredGroup{ @@ -16737,7 +15744,7 @@ func (ec *executionContext) _Resource(ctx context.Context, sel ast.SelectionSet, return graphql.Null } - atomic.AddInt32(&ec.Deferred, int32(len(deferred))) + atomic.AddInt32(&ec.Deferred, int32(min(len(deferred), math.MaxInt32))) for label, dfs := range deferred { ec.ProcessDeferredGroup(graphql.DeferredGroup{ @@ -16783,7 +15790,7 @@ func (ec *executionContext) _ScopedStats(ctx context.Context, sel ast.SelectionS return graphql.Null } - atomic.AddInt32(&ec.Deferred, int32(len(deferred))) + atomic.AddInt32(&ec.Deferred, int32(min(len(deferred), math.MaxInt32))) for label, dfs := range deferred { ec.ProcessDeferredGroup(graphql.DeferredGroup{ @@ -16831,7 +15838,7 @@ func (ec *executionContext) _Series(ctx context.Context, sel ast.SelectionSet, o return graphql.Null } - atomic.AddInt32(&ec.Deferred, int32(len(deferred))) + atomic.AddInt32(&ec.Deferred, int32(min(len(deferred), math.MaxInt32))) for label, dfs := range deferred { ec.ProcessDeferredGroup(graphql.DeferredGroup{ @@ -16885,7 +15892,7 @@ func (ec *executionContext) _StatsSeries(ctx context.Context, sel ast.SelectionS return graphql.Null } - atomic.AddInt32(&ec.Deferred, int32(len(deferred))) + atomic.AddInt32(&ec.Deferred, int32(min(len(deferred), math.MaxInt32))) for label, dfs := range deferred { ec.ProcessDeferredGroup(graphql.DeferredGroup{ @@ -17015,7 +16022,7 @@ func (ec *executionContext) _SubCluster(ctx context.Context, sel ast.SelectionSe return graphql.Null } - atomic.AddInt32(&ec.Deferred, int32(len(deferred))) + atomic.AddInt32(&ec.Deferred, int32(min(len(deferred), math.MaxInt32))) for label, dfs := range deferred { ec.ProcessDeferredGroup(graphql.DeferredGroup{ @@ -17064,7 +16071,7 @@ func (ec *executionContext) _SubClusterConfig(ctx context.Context, sel ast.Selec return graphql.Null } - atomic.AddInt32(&ec.Deferred, int32(len(deferred))) + atomic.AddInt32(&ec.Deferred, int32(min(len(deferred), math.MaxInt32))) for label, dfs := range deferred { ec.ProcessDeferredGroup(graphql.DeferredGroup{ @@ -17118,7 +16125,7 @@ func (ec *executionContext) _Tag(ctx context.Context, sel ast.SelectionSet, obj return graphql.Null } - atomic.AddInt32(&ec.Deferred, int32(len(deferred))) + atomic.AddInt32(&ec.Deferred, int32(min(len(deferred), math.MaxInt32))) for label, dfs := range deferred { ec.ProcessDeferredGroup(graphql.DeferredGroup{ @@ -17164,7 +16171,7 @@ func (ec *executionContext) _TimeRangeOutput(ctx context.Context, sel ast.Select return graphql.Null } - atomic.AddInt32(&ec.Deferred, int32(len(deferred))) + atomic.AddInt32(&ec.Deferred, int32(min(len(deferred), math.MaxInt32))) for label, dfs := range deferred { ec.ProcessDeferredGroup(graphql.DeferredGroup{ @@ -17213,7 +16220,7 @@ func (ec *executionContext) _TimeWeights(ctx context.Context, sel ast.SelectionS return graphql.Null } - atomic.AddInt32(&ec.Deferred, int32(len(deferred))) + atomic.AddInt32(&ec.Deferred, int32(min(len(deferred), math.MaxInt32))) for label, dfs := range deferred { ec.ProcessDeferredGroup(graphql.DeferredGroup{ @@ -17259,7 +16266,7 @@ func (ec *executionContext) _Topology(ctx context.Context, sel ast.SelectionSet, return graphql.Null } - atomic.AddInt32(&ec.Deferred, int32(len(deferred))) + atomic.AddInt32(&ec.Deferred, int32(min(len(deferred), math.MaxInt32))) for label, dfs := range deferred { ec.ProcessDeferredGroup(graphql.DeferredGroup{ @@ -17300,7 +16307,7 @@ func (ec *executionContext) _Unit(ctx context.Context, sel ast.SelectionSet, obj return graphql.Null } - atomic.AddInt32(&ec.Deferred, int32(len(deferred))) + atomic.AddInt32(&ec.Deferred, int32(min(len(deferred), math.MaxInt32))) for label, dfs := range deferred { ec.ProcessDeferredGroup(graphql.DeferredGroup{ @@ -17349,7 +16356,7 @@ func (ec *executionContext) _User(ctx context.Context, sel ast.SelectionSet, obj return graphql.Null } - atomic.AddInt32(&ec.Deferred, int32(len(deferred))) + atomic.AddInt32(&ec.Deferred, int32(min(len(deferred), math.MaxInt32))) for label, dfs := range deferred { ec.ProcessDeferredGroup(graphql.DeferredGroup{ @@ -17405,7 +16412,7 @@ func (ec *executionContext) ___Directive(ctx context.Context, sel ast.SelectionS return graphql.Null } - atomic.AddInt32(&ec.Deferred, int32(len(deferred))) + atomic.AddInt32(&ec.Deferred, int32(min(len(deferred), math.MaxInt32))) for label, dfs := range deferred { ec.ProcessDeferredGroup(graphql.DeferredGroup{ @@ -17453,7 +16460,7 @@ func (ec *executionContext) ___EnumValue(ctx context.Context, sel ast.SelectionS return graphql.Null } - atomic.AddInt32(&ec.Deferred, int32(len(deferred))) + atomic.AddInt32(&ec.Deferred, int32(min(len(deferred), math.MaxInt32))) for label, dfs := range deferred { ec.ProcessDeferredGroup(graphql.DeferredGroup{ @@ -17511,7 +16518,7 @@ func (ec *executionContext) ___Field(ctx context.Context, sel ast.SelectionSet, return graphql.Null } - atomic.AddInt32(&ec.Deferred, int32(len(deferred))) + atomic.AddInt32(&ec.Deferred, int32(min(len(deferred), math.MaxInt32))) for label, dfs := range deferred { ec.ProcessDeferredGroup(graphql.DeferredGroup{ @@ -17566,7 +16573,7 @@ func (ec *executionContext) ___InputValue(ctx context.Context, sel ast.Selection return graphql.Null } - atomic.AddInt32(&ec.Deferred, int32(len(deferred))) + atomic.AddInt32(&ec.Deferred, int32(min(len(deferred), math.MaxInt32))) for label, dfs := range deferred { ec.ProcessDeferredGroup(graphql.DeferredGroup{ @@ -17621,7 +16628,7 @@ func (ec *executionContext) ___Schema(ctx context.Context, sel ast.SelectionSet, return graphql.Null } - atomic.AddInt32(&ec.Deferred, int32(len(deferred))) + atomic.AddInt32(&ec.Deferred, int32(min(len(deferred), math.MaxInt32))) for label, dfs := range deferred { ec.ProcessDeferredGroup(graphql.DeferredGroup{ @@ -17680,7 +16687,7 @@ func (ec *executionContext) ___Type(ctx context.Context, sel ast.SelectionSet, o return graphql.Null } - atomic.AddInt32(&ec.Deferred, int32(len(deferred))) + atomic.AddInt32(&ec.Deferred, int32(min(len(deferred), math.MaxInt32))) for label, dfs := range deferred { ec.ProcessDeferredGroup(graphql.DeferredGroup{ diff --git a/internal/graph/schema.resolvers.go b/internal/graph/schema.resolvers.go index 898ea84e..3ef58ad4 100644 --- a/internal/graph/schema.resolvers.go +++ b/internal/graph/schema.resolvers.go @@ -3,7 +3,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.88 +// Code generated by github.com/99designs/gqlgen version v0.17.90 import ( "context" @@ -1072,12 +1072,10 @@ func (r *Resolver) Query() generated.QueryResolver { return &queryResolver{r} } // SubCluster returns generated.SubClusterResolver implementation. func (r *Resolver) SubCluster() generated.SubClusterResolver { return &subClusterResolver{r} } -type ( - clusterResolver struct{ *Resolver } - jobResolver struct{ *Resolver } - metricValueResolver struct{ *Resolver } - mutationResolver struct{ *Resolver } - nodeResolver struct{ *Resolver } - queryResolver struct{ *Resolver } - subClusterResolver struct{ *Resolver } -) +type clusterResolver struct{ *Resolver } +type jobResolver struct{ *Resolver } +type metricValueResolver struct{ *Resolver } +type mutationResolver struct{ *Resolver } +type nodeResolver struct{ *Resolver } +type queryResolver struct{ *Resolver } +type subClusterResolver struct{ *Resolver } From 6cfa5113485de60a3ae55fa3bc63aa6cbdad5c95 Mon Sep 17 00:00:00 2001 From: Jan Eitzinger Date: Thu, 4 Jun 2026 20:19:09 +0200 Subject: [PATCH 57/63] Update release notes Entire-Checkpoint: 14328c112325 --- ReleaseNotes.md | 46 ++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 44 insertions(+), 2 deletions(-) diff --git a/ReleaseNotes.md b/ReleaseNotes.md index 9909879d..3012455b 100644 --- a/ReleaseNotes.md +++ b/ReleaseNotes.md @@ -2,8 +2,8 @@ Supports job archive version 3 and database version 11. -This is a bugfix release of `cc-backend`, the API backend and frontend -implementation of ClusterCockpit. +This is a security and bugfix release of `cc-backend`, the API backend and +frontend implementation of ClusterCockpit. For release specific notes visit the [ClusterCockpit Documentation](https://clusterockpit.org/docs/release/). If you are upgrading from v1.5.1 no database migration is required. If you are upgrading from v1.5.0 you need to do another DB migration. This @@ -17,6 +17,48 @@ This is also the default. ## Changes in 1.5.4 +### Security fixes + +- **JWT HMAC empty-key bypass (critical)**: `jwtSession.go` now refuses to + register when `CROSS_LOGIN_JWT_HS512_KEY` is unset. Previously, an empty HMAC + key allowed unauthenticated admin token forgery because `golang-jwt` verifies + any HS256/HS512 signature against an empty key. +- **SQL injection via metric names (critical)**: Metric names supplied through + GraphQL (`[String!]`) were interpolated raw into `json_extract` SQL expressions. + Names are now validated against `^[a-zA-Z0-9_]+$` in + `jobsMetricStatisticsHistogram` and `buildFloatJSONCondition`. +- **Path traversal via line-protocol tags (critical)**: `cluster` and `host` + tags from the metric line protocol flowed unvalidated into `path.Join` for + checkpoint/WAL file paths, enabling arbitrary file writes outside the + checkpoint root via NATS (unauthenticated) or `POST /api/write`. Path-traversal + sequences are now rejected in `DecodeLine` before the tags become path + components. +- **CORS `AllowCredentials` disabled**: CORS middleware no longer sets + `AllowCredentials: true`, which was incompatible with `AllowedOrigins: ["*"]` + and could enable cross-origin credential theft. +- **HSTS header added**: `Strict-Transport-Security` is now set for all + HTTPS connections. +- **Security response headers**: Added `X-Content-Type-Options: nosniff`, + `X-Frame-Options: DENY`, `Referrer-Policy: same-origin`, and a conservative + `Content-Security-Policy` (blocks `frame-ancestors`, `object-src`, `base-uri`) + to harden against clickjacking and base-tag injection. +- **Stored XSS in job message**: `job.metaData.message` is now rendered as + escaped text (CSS `white-space: pre-wrap`) instead of raw `{@html ...}` in + `Job.root` and `JobFootprint`. +- **SQL injection in tag queries**: The tag-scope `IN` list and manager project + subquery in `CountTags` are now parameterized instead of interpolating + `user.Username` / `user.Projects` values sourced from OIDC/LDAP. +- **GraphQL DoS hardening**: Query cost is bounded with `FixedComplexityLimit` + (5000). Non-positive `items-per-page` and `page` values are rejected with HTTP + 400 to prevent integer underflow into unbounded `LIMIT`/`OFFSET` queries. +- **CSRF defense-in-depth**: State-changing requests with a cross-site + `Sec-Fetch-Site` header are now rejected (fails open for non-browser clients), + complementing the existing `SameSite=Lax` session cookie. +- **NATS API security warning**: A startup warning is now logged when NATS + subscriptions are enabled, reminding operators that the NATS API has no + application-layer authentication and that publish ACLs must be restricted at + the broker. + ### Bug fixes - **Roofline legend placement**: Roofline plot legends now use fixed From 87334972231a1bd6ae99ac73231a3ac8b251a590 Mon Sep 17 00:00:00 2001 From: Jan Eitzinger Date: Fri, 5 Jun 2026 08:39:49 +0200 Subject: [PATCH 58/63] Fix bug that prevents WAL cleanup on shutdown Entire-Checkpoint: 5b79628feea4 --- pkg/metricstore/metricstore.go | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/pkg/metricstore/metricstore.go b/pkg/metricstore/metricstore.go index 845472b2..703c470e 100644 --- a/pkg/metricstore/metricstore.go +++ b/pkg/metricstore/metricstore.go @@ -308,8 +308,14 @@ func Shutdown() { lastCheckpointMu.Unlock() if Keys.Checkpoints.FileFormat == "wal" { - // WAL files are deleted per-host inside ToCheckpointWAL workers. - files, _, err = ms.ToCheckpointWAL(Keys.Checkpoints.RootDir, from.Unix(), time.Now().Unix()) + var successDirs []string + files, successDirs, err = ms.ToCheckpointWAL(Keys.Checkpoints.RootDir, from.Unix(), time.Now().Unix()) + // The final binary snapshot now captures all in-memory data for these + // hosts, making their current.wal redundant. The staging goroutines have + // already exited, so remove the WAL files directly (the channel-based + // RotateWALFiles is no longer safe to call). Without this, current.wal + // files survive shutdown and keep growing across restarts. + RotateWALFilesAfterShutdown(successDirs) } else { files, err = ms.ToCheckpoint(Keys.Checkpoints.RootDir, from.Unix(), time.Now().Unix()) } From 56ae1de01129f6c3f4857e6b6d88bca72d364f3d Mon Sep 17 00:00:00 2001 From: Jan Eitzinger Date: Fri, 5 Jun 2026 09:01:47 +0200 Subject: [PATCH 59/63] Update ReleaseNotes Entire-Checkpoint: 051ff3c0d253 --- ReleaseNotes.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/ReleaseNotes.md b/ReleaseNotes.md index 3012455b..6eea3bf2 100644 --- a/ReleaseNotes.md +++ b/ReleaseNotes.md @@ -71,6 +71,13 @@ This is also the default. filters by exact node hostname (`eq`) instead of substring match (`contains`), avoiding incorrect matches when one hostname is a prefix of another. +- **WAL files not reset on shutdown**: On graceful shutdown the metricstore wrote + a final binary snapshot but never rotated the per-host `current.wal` files (the + `RotateWALFilesAfterShutdown` helper was defined but never called). The stale + WAL files were replayed and then appended to again on the next start, so they + grew without bound across restarts and were only ever reset at the next periodic + checkpoint. `Shutdown` now rotates the WAL files for all successfully + snapshotted hosts. ### Dependencies From 1b72b0b5ad320bc86c3dde9837ade05e7c731d7f Mon Sep 17 00:00:00 2001 From: Jan Eitzinger Date: Fri, 5 Jun 2026 10:16:28 +0200 Subject: [PATCH 60/63] Fix critical/severe issues in init, startup and shutdown - auth: do not abort the server when authentication is disabled. auth.Init is now always called; with disable-authentication it sets up an ephemeral session store (SESSION_KEY not required) and registers no authenticators, so the unconditional auth.GetAuthInstance() callers (server init, api.New()) always get a valid instance. - main: run the graceful-shutdown sequence on the startup-error path. runServer derives a cancelable context and, on a server-start failure, cancels it and waits so the metricstore final checkpoint / WAL rotation, archiver flush and taskmanager shutdown actually run before exit. - server: log the :80 HTTP->HTTPS redirect listener error instead of dropping it. - archiver: guard Shutdown against being called when Start never ran (avoids close(nil) panic / blocking on a nil workerDone). - nats API: stop worker goroutines on shutdown via a stop channel + idempotent Shutdown(); workers and subscription callbacks select on stop and the channels are never closed, so no send-on-closed-channel can occur. Wired into Server.Shutdown after the NATS client is closed. - metricstore: make Shutdown idempotent (nil shutdownFunc, early return) and release shutdownFuncMu before the checkpoint write. Co-Authored-By: Claude Opus 4.8 (1M context) Entire-Checkpoint: 3c179f9caa8f --- cmd/cc-backend/main.go | 46 +++++++++++++++++++++--------- cmd/cc-backend/server.go | 9 +++++- internal/api/nats.go | 44 ++++++++++++++++++++++++---- internal/archiver/archiveWorker.go | 7 +++++ internal/auth/auth.go | 34 ++++++++++++++++------ pkg/metricstore/metricstore.go | 11 +++++-- 6 files changed, 119 insertions(+), 32 deletions(-) diff --git a/cmd/cc-backend/main.go b/cmd/cc-backend/main.go index f8f0a767..b950e473 100644 --- a/cmd/cc-backend/main.go +++ b/cmd/cc-backend/main.go @@ -172,14 +172,20 @@ func handleUserCommands() error { return fmt.Errorf("--add-user and --del-user can only be used if authentication is enabled") } - if !config.Keys.DisableAuthentication { - if cfg := ccconf.GetPackageConfig("auth"); cfg != nil { - auth.Init(&cfg) - } else { - cclog.Warn("Authentication disabled due to missing configuration") - auth.Init(nil) + // Always initialize the auth subsystem so the HTTP server and REST API have a + // valid (non-nil) auth instance, even when authentication is disabled. With + // authentication disabled, Init only sets up an ephemeral session store and + // registers no authenticators (see auth.Init). + if cfg := ccconf.GetPackageConfig("auth"); cfg != nil { + auth.Init(&cfg) + } else { + if !config.Keys.DisableAuthentication { + cclog.Warn("Authentication enabled but no auth configuration found") } + auth.Init(nil) + } + if !config.Keys.DisableAuthentication { // Check for default security keys checkDefaultSecurityKeys() @@ -337,6 +343,12 @@ func initSubsystems() error { } func runServer(ctx context.Context) error { + // Derive a cancelable context so the startup-error path below can trigger the + // same graceful-shutdown sequence as a signal (via the signal handler that + // waits on ctx.Done()). + ctx, cancel := context.WithCancel(ctx) + defer cancel() + var wg sync.WaitGroup // Initialize metric store if configuration is provided @@ -438,26 +450,32 @@ func runServer(ctx context.Context) error { // Wait for either: // 1. An error from server startup // 2. Completion of all goroutines (normal shutdown or crash) + var runErr error select { - case err := <-errChan: + case runErr = <-errChan: // errChan will be closed when waitDone is closed, which happens // when all goroutines complete (either from normal shutdown or error) - if err != nil { - return err - } case <-time.After(100 * time.Millisecond): // Give the server 100ms to start and report any immediate startup errors // After that, just wait for normal shutdown completion select { - case err := <-errChan: - if err != nil { - return err - } + case runErr = <-errChan: case <-waitDone: // Normal shutdown completed } } + if runErr != nil { + // A subsystem failed (e.g. the HTTP server could not bind). Trigger the + // graceful-shutdown path for the subsystems that were already started + // (metricstore checkpoint, archiver flush, taskmanager) by cancelling the + // context the signal handler waits on, then wait for it to finish so we + // don't exit before the final checkpoint is written. + cancel() + <-waitDone + return runErr + } + cclog.Print("Graceful shutdown completed!") return nil } diff --git a/cmd/cc-backend/server.go b/cmd/cc-backend/server.go index f39cd45d..4a9e71b1 100644 --- a/cmd/cc-backend/server.go +++ b/cmd/cc-backend/server.go @@ -415,7 +415,9 @@ func (s *Server) Start(ctx context.Context) error { if !strings.HasSuffix(config.Keys.Addr, ":80") && config.Keys.RedirectHTTPTo != "" { go func() { - http.ListenAndServe(":80", http.RedirectHandler(config.Keys.RedirectHTTPTo, http.StatusMovedPermanently)) + if err := http.ListenAndServe(":80", http.RedirectHandler(config.Keys.RedirectHTTPTo, http.StatusMovedPermanently)); err != nil { + cclog.Errorf("HTTP-to-HTTPS redirect listener on :80 failed: %v", err) + } }() } @@ -460,6 +462,11 @@ func (s *Server) Shutdown(ctx context.Context) { if nc != nil { nc.Close() } + // Stop the NATS API worker goroutines after the client is closed (no more + // subscription callbacks can enqueue once the connection is down). + if s.natsAPIHandle != nil { + s.natsAPIHandle.Shutdown() + } cclog.Infof("Shutdown: NATS closed (%v)", time.Since(natsStart)) httpStart := time.Now() diff --git a/internal/api/nats.go b/internal/api/nats.go index 0c967b83..7de85785 100644 --- a/internal/api/nats.go +++ b/internal/api/nats.go @@ -78,6 +78,12 @@ type NatsAPI struct { jobCh chan natsMessage // nodeCh receives node state messages for processing by worker goroutines. nodeCh chan natsMessage + // stop signals worker goroutines and subscription callbacks to stop. + // Closing it (via Shutdown) makes workers exit and callbacks drop further + // messages instead of blocking; the channels are never closed so in-flight + // callbacks can never send on a closed channel. + stop chan struct{} + stopOnce sync.Once } // NewNatsAPI creates a new NatsAPI instance with channel-based worker pools. @@ -99,6 +105,7 @@ func NewNatsAPI() *NatsAPI { JobRepository: repository.GetJobRepository(), jobCh: make(chan natsMessage, jobConc), nodeCh: make(chan natsMessage, nodeConc), + stop: make(chan struct{}), } // Start worker goroutines @@ -112,17 +119,36 @@ func NewNatsAPI() *NatsAPI { return api } +// Shutdown stops the worker goroutines and tells subscription callbacks to stop +// enqueueing. It is safe to call multiple times. Callers must ensure the NATS +// client is closed first so no new callbacks are invoked. +func (api *NatsAPI) Shutdown() { + api.stopOnce.Do(func() { + close(api.stop) + }) +} + // jobWorker processes job event messages from the job channel. func (api *NatsAPI) jobWorker() { - for msg := range api.jobCh { - api.handleJobEvent(msg.subject, msg.data) + for { + select { + case <-api.stop: + return + case msg := <-api.jobCh: + api.handleJobEvent(msg.subject, msg.data) + } } } // nodeWorker processes node state messages from the node channel. func (api *NatsAPI) nodeWorker() { - for msg := range api.nodeCh { - api.handleNodeState(msg.subject, msg.data) + for { + select { + case <-api.stop: + return + case msg := <-api.nodeCh: + api.handleNodeState(msg.subject, msg.data) + } } } @@ -140,13 +166,19 @@ func (api *NatsAPI) StartSubscriptions() error { s := config.Keys.APISubjects if err := client.Subscribe(s.SubjectJobEvent, func(subject string, data []byte) { - api.jobCh <- natsMessage{subject: subject, data: data} + select { + case api.jobCh <- natsMessage{subject: subject, data: data}: + case <-api.stop: + } }); err != nil { return err } if err := client.Subscribe(s.SubjectNodeState, func(subject string, data []byte) { - api.nodeCh <- natsMessage{subject: subject, data: data} + select { + case api.nodeCh <- natsMessage{subject: subject, data: data}: + case <-api.stop: + } }); err != nil { return err } diff --git a/internal/archiver/archiveWorker.go b/internal/archiver/archiveWorker.go index 0639757d..d97a14f3 100644 --- a/internal/archiver/archiveWorker.go +++ b/internal/archiver/archiveWorker.go @@ -222,6 +222,13 @@ func TriggerArchiving(job *schema.Job) { func Shutdown(timeout time.Duration) error { cclog.Info("Initiating archiver shutdown...") + // Guard against Shutdown being called when Start was never run: closing a nil + // channel and receiving from a nil workerDone would panic/block forever. + if archiveChannel == nil { + cclog.Warn("Archiver shutdown called but archiver was never started") + return nil + } + // Close channel to signal no more jobs will be accepted close(archiveChannel) diff --git a/internal/auth/auth.go b/internal/auth/auth.go index 8d8bc222..4bfd4846 100644 --- a/internal/auth/auth.go +++ b/internal/auth/auth.go @@ -9,6 +9,7 @@ package auth import ( "bytes" "context" + "crypto/rand" "database/sql" "encoding/base64" "encoding/json" @@ -187,20 +188,37 @@ func Init(authCfg *json.RawMessage) { sessKey := os.Getenv("SESSION_KEY") if sessKey == "" { - cclog.Fatal("environment variable 'SESSION_KEY' not set: refusing to start with an ephemeral session key. " + - "Set SESSION_KEY in .env (base64-encoded 32 random bytes); a random key would invalidate all sessions on every restart " + - "and prevent sessions from validating across replicas.") + if !config.Keys.DisableAuthentication { + cclog.Fatal("environment variable 'SESSION_KEY' not set: refusing to start with an ephemeral session key. " + + "Set SESSION_KEY in .env (base64-encoded 32 random bytes); a random key would invalidate all sessions on every restart " + + "and prevent sessions from validating across replicas.") + } + // Authentication is disabled: no user sessions are issued, so an + // ephemeral random key is sufficient and SESSION_KEY is not required. + ephemeralKey := make([]byte, 32) + if _, err := rand.Read(ephemeralKey); err != nil { + cclog.Fatalf("Error while initializing authentication -> generating ephemeral session key failed: %v", err) + } + authInstance.sessionStore = sessions.NewCookieStore(ephemeralKey) + } else { + keyBytes, err := base64.StdEncoding.DecodeString(sessKey) + if err != nil { + cclog.Fatal("Error while initializing authentication -> decoding session key failed") + } + authInstance.sessionStore = sessions.NewCookieStore(keyBytes) } - keyBytes, err := base64.StdEncoding.DecodeString(sessKey) - if err != nil { - cclog.Fatal("Error while initializing authentication -> decoding session key failed") - } - authInstance.sessionStore = sessions.NewCookieStore(keyBytes) if d, err := time.ParseDuration(config.Keys.SessionMaxAge); err == nil { authInstance.SessionMaxAge = d } + // When authentication is disabled no authenticators are required; the + // session store created above is enough for the server to run with a + // valid (non-nil) auth instance. + if config.Keys.DisableAuthentication { + return + } + if authCfg == nil { return } diff --git a/pkg/metricstore/metricstore.go b/pkg/metricstore/metricstore.go index 703c470e..8a73cde9 100644 --- a/pkg/metricstore/metricstore.go +++ b/pkg/metricstore/metricstore.go @@ -275,10 +275,15 @@ func Shutdown() { totalStart := time.Now() shutdownFuncMu.Lock() - defer shutdownFuncMu.Unlock() - if shutdownFunc != nil { - shutdownFunc() + if shutdownFunc == nil { + // Already shut down (or never initialized): nothing to do. This keeps + // Shutdown idempotent so it is safe to call from more than one path. + shutdownFuncMu.Unlock() + return } + shutdownFunc() + shutdownFunc = nil + shutdownFuncMu.Unlock() cclog.Infof("[METRICSTORE]> Background workers cancelled (%v)", time.Since(totalStart)) if Keys.Checkpoints.FileFormat == "wal" { From 01fb4d53f15128c496dc5d192f04b4b7ec67a520 Mon Sep 17 00:00:00 2001 From: Jan Eitzinger Date: Sun, 7 Jun 2026 08:12:25 +0200 Subject: [PATCH 61/63] Fix broken link in README --- README.md | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 80a21a39..b49d115d 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,9 @@ # NOTE -While we do our best to keep the master branch in a usable state, there is no guarantee the master branch works. -Please do not use it for production! +While we do our best to keep the master branch in a usable state, there is no +guarantee the master branch works. Please do not use it for production! -Please have a look at the [Release -Notes](https://github.com/ClusterCockpit/cc-backend/blob/master/ReleaseNotes.md) +Please have a look at the [Release Notes](https://github.com/ClusterCockpit/cc-backend/blob/master/ReleaseNotes.md) for breaking changes! # ClusterCockpit REST and GraphQL API backend From af7528c8b2f3be84a550e441093576f8be49f77b Mon Sep 17 00:00:00 2001 From: Jan Eitzinger Date: Sun, 7 Jun 2026 08:16:10 +0200 Subject: [PATCH 62/63] Update CLAUDE.md Entire-Checkpoint: 306db138cb4c --- CLAUDE.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/CLAUDE.md b/CLAUDE.md index fe6a7aab..658b0bde 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -341,6 +341,21 @@ records, archives) at scale. All code changes must prioritize maximum throughput and minimal latency. Avoid unnecessary allocations, prefer streaming over buffering, and be mindful of lock contention. When in doubt, benchmark. +### Commit Message Convention + +Commits must use conventional commit prefixes so goreleaser can generate the +changelog automatically. Only commits with these prefixes appear in releases: + +| Prefix | Changelog group | +|---------|------------------------| +| `feat:` | New Features | +| `fix:` | Bug fixes | +| `sec:` | Security updates | +| `docs:` | Documentation updates | + +Scoped variants are also recognised, e.g. `feat(api):`, `fix(deps):`. +Commits without one of these prefixes are excluded from the changelog. + ### Change Impact Analysis For any significant change, you MUST: From 9c6075ebb54b31c033e9d98626185749bdb96b18 Mon Sep 17 00:00:00 2001 From: Jan Eitzinger Date: Sun, 7 Jun 2026 08:18:46 +0200 Subject: [PATCH 63/63] Update README to reflect main branch naming --- README.md | 74 +++++++++++++++++++++++++++---------------------------- 1 file changed, 37 insertions(+), 37 deletions(-) diff --git a/README.md b/README.md index b49d115d..86b12034 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,9 @@ # NOTE -While we do our best to keep the master branch in a usable state, there is no -guarantee the master branch works. Please do not use it for production! +While we do our best to keep the main branch in a usable state, there is no +guarantee the main branch works. Please do not use it for production! -Please have a look at the [Release Notes](https://github.com/ClusterCockpit/cc-backend/blob/master/ReleaseNotes.md) +Please have a look at the [Release Notes](https://github.com/ClusterCockpit/cc-backend/blob/main/ReleaseNotes.md) for breaking changes! # ClusterCockpit REST and GraphQL API backend @@ -40,7 +40,7 @@ For real-time integration with HPC systems, the backend can subscribe to state updates, providing an alternative to REST API polling. Completed batch jobs are stored in a file-based job archive according to -[this specification](https://github.com/ClusterCockpit/cc-specifications/tree/master/job-archive). +[this specification](https://github.com/ClusterCockpit/cc-specifications/tree/main/job-archive). The backend supports authentication via local accounts, an external LDAP directory, and JWT tokens. Authorization for APIs is implemented with [JWT](https://jwt.io/) tokens created with public/private key encryption. @@ -242,73 +242,73 @@ The effective configuration is logged at startup for verification. ## Project file structure -- [`.github/`](https://github.com/ClusterCockpit/cc-backend/tree/master/.github) +- [`.github/`](https://github.com/ClusterCockpit/cc-backend/tree/main/.github) GitHub Actions workflows and dependabot configuration for CI/CD. -- [`api/`](https://github.com/ClusterCockpit/cc-backend/tree/master/api) +- [`api/`](https://github.com/ClusterCockpit/cc-backend/tree/main/api) contains the API schema files for the REST and GraphQL APIs. The REST API is documented in the OpenAPI 3.0 format in [./api/swagger.yaml](./api/swagger.yaml). The GraphQL schema is in [./api/schema.graphqls](./api/schema.graphqls). -- [`cmd/cc-backend`](https://github.com/ClusterCockpit/cc-backend/tree/master/cmd/cc-backend) +- [`cmd/cc-backend`](https://github.com/ClusterCockpit/cc-backend/tree/main/cmd/cc-backend) contains the main application entry point and CLI implementation. -- [`configs/`](https://github.com/ClusterCockpit/cc-backend/tree/master/configs) +- [`configs/`](https://github.com/ClusterCockpit/cc-backend/tree/main/configs) contains documentation about configuration and command line options and required environment variables. Sample configuration files are provided. -- [`init/`](https://github.com/ClusterCockpit/cc-backend/tree/master/init) +- [`init/`](https://github.com/ClusterCockpit/cc-backend/tree/main/init) contains an example of setting up systemd for production use. -- [`internal/`](https://github.com/ClusterCockpit/cc-backend/tree/master/internal) +- [`internal/`](https://github.com/ClusterCockpit/cc-backend/tree/main/internal) contains library source code that is not intended for use by others. - - [`api`](https://github.com/ClusterCockpit/cc-backend/tree/master/internal/api) + - [`api`](https://github.com/ClusterCockpit/cc-backend/tree/main/internal/api) REST API handlers and NATS integration - - [`archiver`](https://github.com/ClusterCockpit/cc-backend/tree/master/internal/archiver) + - [`archiver`](https://github.com/ClusterCockpit/cc-backend/tree/main/internal/archiver) Job archiving functionality - - [`auth`](https://github.com/ClusterCockpit/cc-backend/tree/master/internal/auth) + - [`auth`](https://github.com/ClusterCockpit/cc-backend/tree/main/internal/auth) Authentication (local, LDAP, OIDC) and JWT token handling - - [`config`](https://github.com/ClusterCockpit/cc-backend/tree/master/internal/config) + - [`config`](https://github.com/ClusterCockpit/cc-backend/tree/main/internal/config) Configuration management and validation - - [`graph`](https://github.com/ClusterCockpit/cc-backend/tree/master/internal/graph) + - [`graph`](https://github.com/ClusterCockpit/cc-backend/tree/main/internal/graph) GraphQL schema and resolvers - - [`importer`](https://github.com/ClusterCockpit/cc-backend/tree/master/internal/importer) + - [`importer`](https://github.com/ClusterCockpit/cc-backend/tree/main/internal/importer) Job data import and database initialization - - [`metricdispatch`](https://github.com/ClusterCockpit/cc-backend/tree/master/internal/metricdispatch) + - [`metricdispatch`](https://github.com/ClusterCockpit/cc-backend/tree/main/internal/metricdispatch) Dispatches metric data loading to appropriate backends - - [`repository`](https://github.com/ClusterCockpit/cc-backend/tree/master/internal/repository) + - [`repository`](https://github.com/ClusterCockpit/cc-backend/tree/main/internal/repository) Database repository layer for jobs and metadata - - [`routerConfig`](https://github.com/ClusterCockpit/cc-backend/tree/master/internal/routerConfig) + - [`routerConfig`](https://github.com/ClusterCockpit/cc-backend/tree/main/internal/routerConfig) HTTP router configuration and middleware - - [`tagger`](https://github.com/ClusterCockpit/cc-backend/tree/master/internal/tagger) + - [`tagger`](https://github.com/ClusterCockpit/cc-backend/tree/main/internal/tagger) Job classification and application detection - - [`taskmanager`](https://github.com/ClusterCockpit/cc-backend/tree/master/internal/taskmanager) + - [`taskmanager`](https://github.com/ClusterCockpit/cc-backend/tree/main/internal/taskmanager) Background task management and scheduled jobs - - [`metricstoreclient`](https://github.com/ClusterCockpit/cc-backend/tree/master/internal/metricstoreclient) + - [`metricstoreclient`](https://github.com/ClusterCockpit/cc-backend/tree/main/internal/metricstoreclient) Client for cc-metric-store queries -- [`pkg/`](https://github.com/ClusterCockpit/cc-backend/tree/master/pkg) +- [`pkg/`](https://github.com/ClusterCockpit/cc-backend/tree/main/pkg) contains Go packages that can be used by other projects. - - [`archive`](https://github.com/ClusterCockpit/cc-backend/tree/master/pkg/archive) + - [`archive`](https://github.com/ClusterCockpit/cc-backend/tree/main/pkg/archive) Job archive backend implementations (filesystem, S3, SQLite) - - [`metricstore`](https://github.com/ClusterCockpit/cc-backend/tree/master/pkg/metricstore) + - [`metricstore`](https://github.com/ClusterCockpit/cc-backend/tree/main/pkg/metricstore) In-memory metric data store with checkpointing and metric loading -- [`tools/`](https://github.com/ClusterCockpit/cc-backend/tree/master/tools) +- [`tools/`](https://github.com/ClusterCockpit/cc-backend/tree/main/tools) Additional command line helper tools. - - [`archive-manager`](https://github.com/ClusterCockpit/cc-backend/tree/master/tools/archive-manager) + - [`archive-manager`](https://github.com/ClusterCockpit/cc-backend/tree/main/tools/archive-manager) Commands for getting infos about an existing job archive, importing jobs between archive backends, and converting archives between JSON and Parquet formats. - - [`archive-migration`](https://github.com/ClusterCockpit/cc-backend/tree/master/tools/archive-migration) + - [`archive-migration`](https://github.com/ClusterCockpit/cc-backend/tree/main/tools/archive-migration) Tool for migrating job archives between formats. - - [`convert-pem-pubkey`](https://github.com/ClusterCockpit/cc-backend/tree/master/tools/convert-pem-pubkey) + - [`convert-pem-pubkey`](https://github.com/ClusterCockpit/cc-backend/tree/main/tools/convert-pem-pubkey) Tool to convert external pubkey for use in `cc-backend`. - - [`gen-keypair`](https://github.com/ClusterCockpit/cc-backend/tree/master/tools/gen-keypair) + - [`gen-keypair`](https://github.com/ClusterCockpit/cc-backend/tree/main/tools/gen-keypair) contains a small application to generate a compatible JWT keypair. You find documentation on how to use it - [here](https://github.com/ClusterCockpit/cc-backend/blob/master/docs/JWT-Handling.md). -- [`web/`](https://github.com/ClusterCockpit/cc-backend/tree/master/web) - Server-side templates and frontend-related files: - - [`frontend`](https://github.com/ClusterCockpit/cc-backend/tree/master/web/frontend) + [here](https://github.com/ClusterCockpit/cc-backend/blob/main/docs/JWT-Handling.md). + - [`web/`](https://github.com/ClusterCockpit/cc-backend/tree/main/web) + Server-side templates and frontend-related files: + - [`frontend`](https://github.com/ClusterCockpit/cc-backend/tree/main/web/frontend) Svelte components and static assets for the frontend UI - - [`templates`](https://github.com/ClusterCockpit/cc-backend/tree/master/web/templates) + - [`templates`](https://github.com/ClusterCockpit/cc-backend/tree/main/web/templates) Server-side Go templates, including monitoring views -- [`gqlgen.yml`](https://github.com/ClusterCockpit/cc-backend/blob/master/gqlgen.yml) +- [`gqlgen.yml`](https://github.com/ClusterCockpit/cc-backend/blob/main/gqlgen.yml) Configures the behaviour and generation of [gqlgen](https://github.com/99designs/gqlgen). -- [`startDemo.sh`](https://github.com/ClusterCockpit/cc-backend/blob/master/startDemo.sh) +- [`startDemo.sh`](https://github.com/ClusterCockpit/cc-backend/blob/main/startDemo.sh) is a shell script that sets up demo data, and builds and starts `cc-backend`.