diff --git a/cmd/cc-backend/init.go b/cmd/cc-backend/init.go index 19c8dd29..42cf0b5c 100644 --- a/cmd/cc-backend/init.go +++ b/cmd/cc-backend/init.go @@ -12,7 +12,6 @@ import ( "encoding/json" "os" - "github.com/ClusterCockpit/cc-backend/internal/config" "github.com/ClusterCockpit/cc-backend/internal/repository" "github.com/ClusterCockpit/cc-backend/pkg/archive" cclog "github.com/ClusterCockpit/cc-lib/v2/ccLogger" @@ -89,7 +88,7 @@ func initEnv() { cclog.Abortf("Could not create default ./var/job-archive folder with permissions '0o777'. Application initialization failed, exited.\nError: %s\n", err.Error()) } archiveCfg := "{\"kind\": \"file\",\"path\": \"./var/job-archive\"}" - if err := archive.Init(json.RawMessage(archiveCfg), config.Keys.DisableArchive); err != nil { + if err := archive.Init(json.RawMessage(archiveCfg)); err != nil { cclog.Abortf("Could not initialize job-archive, exited.\nError: %s\n", err.Error()) } } diff --git a/cmd/cc-backend/main.go b/cmd/cc-backend/main.go index 1cc4c8cd..fda5a709 100644 --- a/cmd/cc-backend/main.go +++ b/cmd/cc-backend/main.go @@ -274,7 +274,7 @@ func initSubsystems() error { cclog.Debug("Archive configuration not found, using default archive configuration") archiveCfg = json.RawMessage(defaultArchiveConfig) } - if err := archive.Init(archiveCfg, config.Keys.DisableArchive); err != nil { + if err := archive.Init(archiveCfg); err != nil { return fmt.Errorf("initializing archive: %w", err) } diff --git a/internal/api/api_test.go b/internal/api/api_test.go index 025983c1..42d0ae76 100644 --- a/internal/api/api_test.go +++ b/internal/api/api_test.go @@ -154,7 +154,7 @@ func setup(t *testing.T) *api.RestAPI { repository.Connect("sqlite3", dbfilepath) - if err := archive.Init(json.RawMessage(archiveCfg), config.Keys.DisableArchive); err != nil { + if err := archive.Init(json.RawMessage(archiveCfg)); err != nil { t.Fatal(err) } diff --git a/internal/api/nats_test.go b/internal/api/nats_test.go index c6a9bcd9..c2d25ebb 100644 --- a/internal/api/nats_test.go +++ b/internal/api/nats_test.go @@ -148,7 +148,7 @@ func setupNatsTest(t *testing.T) *NatsAPI { repository.Connect("sqlite3", dbfilepath) - if err := archive.Init(json.RawMessage(archiveCfg), config.Keys.DisableArchive); err != nil { + if err := archive.Init(json.RawMessage(archiveCfg)); err != nil { t.Fatal(err) } diff --git a/internal/archiver/archiver.go b/internal/archiver/archiver.go index 4e0b6473..454a2358 100644 --- a/internal/archiver/archiver.go +++ b/internal/archiver/archiver.go @@ -9,7 +9,6 @@ import ( "context" "math" - "github.com/ClusterCockpit/cc-backend/internal/config" "github.com/ClusterCockpit/cc-backend/internal/metricdispatch" "github.com/ClusterCockpit/cc-backend/pkg/archive" cclog "github.com/ClusterCockpit/cc-lib/v2/ccLogger" @@ -94,12 +93,5 @@ func ArchiveJob(job *schema.Job, ctx context.Context) (*schema.Job, error) { } } - // If the file based archive is disabled, - // only return the JobMeta structure as the - // statistics in there are needed. - if config.Keys.DisableArchive { - return job, nil - } - return job, archive.GetHandle().ImportJob(job, &jobData) } diff --git a/internal/config/config.go b/internal/config/config.go index b8eea2ca..afc3aa66 100644 --- a/internal/config/config.go +++ b/internal/config/config.go @@ -43,10 +43,6 @@ type ProgramConfig struct { // Path to SQLite database file DB string `json:"db"` - // Keep all metric data in the metric data repositories, - // do not write to the job-archive. - DisableArchive bool `json:"disable-archive"` - EnableJobTaggers bool `json:"enable-job-taggers"` // Validate json input against schema @@ -117,7 +113,6 @@ var Keys ProgramConfig = ProgramConfig{ EmbedStaticFiles: true, DBDriver: "sqlite3", DB: "./var/job.db", - DisableArchive: false, Validate: false, SessionMaxAge: "168h", StopJobsExceedingWalltime: 0, diff --git a/internal/config/schema.go b/internal/config/schema.go index 39c7a63c..4a943aff 100644 --- a/internal/config/schema.go +++ b/internal/config/schema.go @@ -44,10 +44,6 @@ var configSchema = ` "description": "Path to SQLite database file (e.g., './var/job.db')", "type": "string" }, - "disable-archive": { - "description": "Keep all metric data in the metric data repositories, do not write to the job-archive.", - "type": "boolean" - }, "enable-job-taggers": { "description": "Turn on automatic application and jobclass taggers", "type": "boolean" diff --git a/internal/importer/importer_test.go b/internal/importer/importer_test.go index ebc500b7..ee135b88 100644 --- a/internal/importer/importer_test.go +++ b/internal/importer/importer_test.go @@ -100,7 +100,7 @@ func setup(t *testing.T) *repository.JobRepository { archiveCfg := fmt.Sprintf("{\"kind\": \"file\",\"path\": \"%s\"}", jobarchive) - if err := archive.Init(json.RawMessage(archiveCfg), config.Keys.DisableArchive); err != nil { + if err := archive.Init(json.RawMessage(archiveCfg)); err != nil { t.Fatal(err) } diff --git a/internal/metricdispatch/dataLoader.go b/internal/metricdispatch/dataLoader.go index 8bfebbd6..fc02f7b0 100644 --- a/internal/metricdispatch/dataLoader.go +++ b/internal/metricdispatch/dataLoader.go @@ -43,7 +43,6 @@ import ( "math" "time" - "github.com/ClusterCockpit/cc-backend/internal/config" "github.com/ClusterCockpit/cc-backend/internal/metricstore" "github.com/ClusterCockpit/cc-backend/pkg/archive" cclog "github.com/ClusterCockpit/cc-lib/v2/ccLogger" @@ -95,8 +94,7 @@ func LoadData(job *schema.Job, var err error if job.State == schema.JobStateRunning || - job.MonitoringStatus == schema.MonitoringStatusRunningOrArchiving || - config.Keys.DisableArchive { + job.MonitoringStatus == schema.MonitoringStatusRunningOrArchiving { if scopes == nil { scopes = append(scopes, schema.MetricScopeNode) @@ -234,7 +232,7 @@ func LoadAverages( data [][]schema.Float, ctx context.Context, ) error { - if job.State != schema.JobStateRunning && !config.Keys.DisableArchive { + if job.State != schema.JobStateRunning { return archive.LoadAveragesFromArchive(job, metrics, data) // #166 change also here? } @@ -271,7 +269,7 @@ func LoadScopedJobStats( scopes []schema.MetricScope, ctx context.Context, ) (schema.ScopedJobStats, error) { - if job.State != schema.JobStateRunning && !config.Keys.DisableArchive { + if job.State != schema.JobStateRunning { return archive.LoadScopedStatsFromArchive(job, metrics, scopes) } @@ -293,7 +291,7 @@ func LoadJobStats( metrics []string, ctx context.Context, ) (map[string]schema.MetricStatistics, error) { - if job.State != schema.JobStateRunning && !config.Keys.DisableArchive { + if job.State != schema.JobStateRunning { return archive.LoadStatsFromArchive(job, metrics) } diff --git a/internal/repository/node_test.go b/internal/repository/node_test.go index 990de924..60cc3417 100644 --- a/internal/repository/node_test.go +++ b/internal/repository/node_test.go @@ -141,7 +141,7 @@ func nodeTestSetup(t *testing.T) { Connect("sqlite3", dbfilepath) - if err := archive.Init(json.RawMessage(archiveCfg), config.Keys.DisableArchive); err != nil { + if err := archive.Init(json.RawMessage(archiveCfg)); err != nil { t.Fatal(err) } } diff --git a/pkg/archive/archive.go b/pkg/archive/archive.go index c3032faa..f993f025 100644 --- a/pkg/archive/archive.go +++ b/pkg/archive/archive.go @@ -181,11 +181,10 @@ type JobContainer struct { } var ( - initOnce sync.Once - cache *lrucache.Cache = lrucache.New(128 * 1024 * 1024) - ar ArchiveBackend - useArchive bool - mutex sync.Mutex + initOnce sync.Once + cache *lrucache.Cache = lrucache.New(128 * 1024 * 1024) + ar ArchiveBackend + mutex sync.Mutex ) // Init initializes the archive backend with the provided configuration. @@ -197,12 +196,10 @@ var ( // // The configuration determines which backend is used (file, s3, or sqlite). // Returns an error if initialization fails or version is incompatible. -func Init(rawConfig json.RawMessage, disableArchive bool) error { +func Init(rawConfig json.RawMessage) error { var err error initOnce.Do(func() { - useArchive = !disableArchive - var cfg struct { Kind string `json:"kind"` } @@ -378,7 +375,7 @@ func UpdateMetadata(job *schema.Job, metadata map[string]string) error { mutex.Lock() defer mutex.Unlock() - if job.State == schema.JobStateRunning || !useArchive { + if job.State == schema.JobStateRunning { return nil } @@ -401,7 +398,7 @@ func UpdateTags(job *schema.Job, tags []*schema.Tag) error { mutex.Lock() defer mutex.Unlock() - if job.State == schema.JobStateRunning || !useArchive { + if job.State == schema.JobStateRunning { return nil } diff --git a/pkg/archive/archive_test.go b/pkg/archive/archive_test.go index 595315c3..277f8ac5 100644 --- a/pkg/archive/archive_test.go +++ b/pkg/archive/archive_test.go @@ -23,7 +23,7 @@ func setup(t *testing.T) archive.ArchiveBackend { util.CopyDir("./testdata/archive/", jobarchive) archiveCfg := fmt.Sprintf("{\"kind\": \"file\",\"path\": \"%s\"}", jobarchive) - if err := archive.Init(json.RawMessage(archiveCfg), false); err != nil { + if err := archive.Init(json.RawMessage(archiveCfg)); err != nil { t.Fatal(err) } diff --git a/pkg/archive/clusterConfig_test.go b/pkg/archive/clusterConfig_test.go index 36130175..510c1747 100644 --- a/pkg/archive/clusterConfig_test.go +++ b/pkg/archive/clusterConfig_test.go @@ -12,7 +12,7 @@ import ( ) func TestClusterConfig(t *testing.T) { - if err := archive.Init(json.RawMessage("{\"kind\": \"file\",\"path\": \"testdata/archive\"}"), false); err != nil { + if err := archive.Init(json.RawMessage("{\"kind\": \"file\",\"path\": \"testdata/archive\"}")); err != nil { t.Fatal(err) } diff --git a/tools/archive-manager/main.go b/tools/archive-manager/main.go index fff81256..918fc7c8 100644 --- a/tools/archive-manager/main.go +++ b/tools/archive-manager/main.go @@ -438,7 +438,7 @@ func main() { cclog.Abort("Main configuration must be present") } - if err := archive.Init(json.RawMessage(archiveCfg), false); err != nil { + if err := archive.Init(json.RawMessage(archiveCfg)); err != nil { cclog.Fatal(err) } ar := archive.GetHandle()