mirror of
https://github.com/ClusterCockpit/cc-backend
synced 2026-01-15 09:11:45 +01:00
Remove obsolete cluster config section
This commit is contained in:
@@ -102,12 +102,7 @@ func initConfiguration() error {
|
|||||||
return fmt.Errorf("main configuration must be present")
|
return fmt.Errorf("main configuration must be present")
|
||||||
}
|
}
|
||||||
|
|
||||||
clustercfg := ccconf.GetPackageConfig("clusters")
|
config.Init(cfg)
|
||||||
if clustercfg == nil {
|
|
||||||
return fmt.Errorf("cluster configuration must be present")
|
|
||||||
}
|
|
||||||
|
|
||||||
config.Init(cfg, clustercfg)
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -157,11 +157,7 @@ func setup(t *testing.T) *api.RestAPI {
|
|||||||
|
|
||||||
// Load and check main configuration
|
// Load and check main configuration
|
||||||
if cfg := ccconf.GetPackageConfig("main"); cfg != nil {
|
if cfg := ccconf.GetPackageConfig("main"); cfg != nil {
|
||||||
if clustercfg := ccconf.GetPackageConfig("clusters"); clustercfg != nil {
|
config.Init(cfg)
|
||||||
config.Init(cfg, clustercfg)
|
|
||||||
} else {
|
|
||||||
cclog.Abort("Cluster configuration must be present")
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
cclog.Abort("Main configuration must be present")
|
cclog.Abort("Main configuration must be present")
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -151,11 +151,7 @@ func setupNatsTest(t *testing.T) *NatsAPI {
|
|||||||
|
|
||||||
// Load and check main configuration
|
// Load and check main configuration
|
||||||
if cfg := ccconf.GetPackageConfig("main"); cfg != nil {
|
if cfg := ccconf.GetPackageConfig("main"); cfg != nil {
|
||||||
if clustercfg := ccconf.GetPackageConfig("clusters"); clustercfg != nil {
|
config.Init(cfg)
|
||||||
config.Init(cfg, clustercfg)
|
|
||||||
} else {
|
|
||||||
cclog.Abort("Cluster configuration must be present")
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
cclog.Abort("Main configuration must be present")
|
cclog.Abort("Main configuration must be present")
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -111,14 +111,6 @@ type FilterRanges struct {
|
|||||||
StartTime *TimeRange `json:"startTime"`
|
StartTime *TimeRange `json:"startTime"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type ClusterConfig struct {
|
|
||||||
Name string `json:"name"`
|
|
||||||
FilterRanges *FilterRanges `json:"filterRanges"`
|
|
||||||
MetricDataRepository json.RawMessage `json:"metricDataRepository"`
|
|
||||||
}
|
|
||||||
|
|
||||||
var Clusters []*ClusterConfig
|
|
||||||
|
|
||||||
var Keys ProgramConfig = ProgramConfig{
|
var Keys ProgramConfig = ProgramConfig{
|
||||||
Addr: "localhost:8080",
|
Addr: "localhost:8080",
|
||||||
DisableAuthentication: false,
|
DisableAuthentication: false,
|
||||||
@@ -132,7 +124,7 @@ var Keys ProgramConfig = ProgramConfig{
|
|||||||
ShortRunningJobsDuration: 5 * 60,
|
ShortRunningJobsDuration: 5 * 60,
|
||||||
}
|
}
|
||||||
|
|
||||||
func Init(mainConfig json.RawMessage, clusterConfig json.RawMessage) {
|
func Init(mainConfig json.RawMessage) {
|
||||||
Validate(configSchema, mainConfig)
|
Validate(configSchema, mainConfig)
|
||||||
dec := json.NewDecoder(bytes.NewReader(mainConfig))
|
dec := json.NewDecoder(bytes.NewReader(mainConfig))
|
||||||
dec.DisallowUnknownFields()
|
dec.DisallowUnknownFields()
|
||||||
@@ -140,17 +132,6 @@ func Init(mainConfig json.RawMessage, clusterConfig json.RawMessage) {
|
|||||||
cclog.Abortf("Config Init: Could not decode config file '%s'.\nError: %s\n", mainConfig, err.Error())
|
cclog.Abortf("Config Init: Could not decode config file '%s'.\nError: %s\n", mainConfig, err.Error())
|
||||||
}
|
}
|
||||||
|
|
||||||
Validate(clustersSchema, clusterConfig)
|
|
||||||
dec = json.NewDecoder(bytes.NewReader(clusterConfig))
|
|
||||||
dec.DisallowUnknownFields()
|
|
||||||
if err := dec.Decode(&Clusters); err != nil {
|
|
||||||
cclog.Abortf("Config Init: Could not decode config file '%s'.\nError: %s\n", mainConfig, err.Error())
|
|
||||||
}
|
|
||||||
|
|
||||||
if len(Clusters) < 1 {
|
|
||||||
cclog.Abort("Config Init: At least one cluster required in config. Exited with error.")
|
|
||||||
}
|
|
||||||
|
|
||||||
if Keys.EnableResampling != nil && Keys.EnableResampling.MinimumPoints > 0 {
|
if Keys.EnableResampling != nil && Keys.EnableResampling.MinimumPoints > 0 {
|
||||||
resampler.SetMinimumRequiredPoints(Keys.EnableResampling.MinimumPoints)
|
resampler.SetMinimumRequiredPoints(Keys.EnableResampling.MinimumPoints)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,11 +16,7 @@ func TestInit(t *testing.T) {
|
|||||||
fp := "../../configs/config.json"
|
fp := "../../configs/config.json"
|
||||||
ccconf.Init(fp)
|
ccconf.Init(fp)
|
||||||
if cfg := ccconf.GetPackageConfig("main"); cfg != nil {
|
if cfg := ccconf.GetPackageConfig("main"); cfg != nil {
|
||||||
if clustercfg := ccconf.GetPackageConfig("clusters"); clustercfg != nil {
|
Init(cfg)
|
||||||
Init(cfg, clustercfg)
|
|
||||||
} else {
|
|
||||||
cclog.Abort("Cluster configuration must be present")
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
cclog.Abort("Main configuration must be present")
|
cclog.Abort("Main configuration must be present")
|
||||||
}
|
}
|
||||||
@@ -34,11 +30,7 @@ func TestInitMinimal(t *testing.T) {
|
|||||||
fp := "../../configs/config-demo.json"
|
fp := "../../configs/config-demo.json"
|
||||||
ccconf.Init(fp)
|
ccconf.Init(fp)
|
||||||
if cfg := ccconf.GetPackageConfig("main"); cfg != nil {
|
if cfg := ccconf.GetPackageConfig("main"); cfg != nil {
|
||||||
if clustercfg := ccconf.GetPackageConfig("clusters"); clustercfg != nil {
|
Init(cfg)
|
||||||
Init(cfg, clustercfg)
|
|
||||||
} else {
|
|
||||||
cclog.Abort("Cluster configuration must be present")
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
cclog.Abort("Main configuration must be present")
|
cclog.Abort("Main configuration must be present")
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -138,83 +138,3 @@ var configSchema = `
|
|||||||
},
|
},
|
||||||
"required": ["apiAllowedIPs"]
|
"required": ["apiAllowedIPs"]
|
||||||
}`
|
}`
|
||||||
|
|
||||||
var clustersSchema = `
|
|
||||||
{
|
|
||||||
"type": "array",
|
|
||||||
"items": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"name": {
|
|
||||||
"description": "The name of the cluster.",
|
|
||||||
"type": "string"
|
|
||||||
},
|
|
||||||
"metricDataRepository": {
|
|
||||||
"description": "Type of the metric data repository for this cluster",
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"kind": {
|
|
||||||
"type": "string",
|
|
||||||
"enum": ["influxdb", "prometheus", "cc-metric-store", "cc-metric-store-internal", "test"]
|
|
||||||
},
|
|
||||||
"url": {
|
|
||||||
"type": "string"
|
|
||||||
},
|
|
||||||
"token": {
|
|
||||||
"type": "string"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": ["kind"]
|
|
||||||
},
|
|
||||||
"filterRanges": {
|
|
||||||
"description": "This option controls the slider ranges for the UI controls of numNodes, duration, and startTime.",
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"numNodes": {
|
|
||||||
"description": "UI slider range for number of nodes",
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"from": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"to": {
|
|
||||||
"type": "integer"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": ["from", "to"]
|
|
||||||
},
|
|
||||||
"duration": {
|
|
||||||
"description": "UI slider range for duration",
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"from": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"to": {
|
|
||||||
"type": "integer"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": ["from", "to"]
|
|
||||||
},
|
|
||||||
"startTime": {
|
|
||||||
"description": "UI slider range for start time",
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"from": {
|
|
||||||
"type": "string",
|
|
||||||
"format": "date-time"
|
|
||||||
},
|
|
||||||
"to": {
|
|
||||||
"type": "null"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": ["from", "to"]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": ["numNodes", "duration", "startTime"]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": ["name", "metricDataRepository", "filterRanges"],
|
|
||||||
"minItems": 1
|
|
||||||
}
|
|
||||||
}`
|
|
||||||
|
|||||||
@@ -121,11 +121,7 @@ func setup(t *testing.T) *repository.JobRepository {
|
|||||||
|
|
||||||
// Load and check main configuration
|
// Load and check main configuration
|
||||||
if cfg := ccconf.GetPackageConfig("main"); cfg != nil {
|
if cfg := ccconf.GetPackageConfig("main"); cfg != nil {
|
||||||
if clustercfg := ccconf.GetPackageConfig("clusters"); clustercfg != nil {
|
config.Init(cfg)
|
||||||
config.Init(cfg, clustercfg)
|
|
||||||
} else {
|
|
||||||
t.Fatal("Cluster configuration must be present")
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
t.Fatal("Main configuration must be present")
|
t.Fatal("Main configuration must be present")
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -144,11 +144,7 @@ func nodeTestSetup(t *testing.T) {
|
|||||||
|
|
||||||
// Load and check main configuration
|
// Load and check main configuration
|
||||||
if cfg := ccconf.GetPackageConfig("main"); cfg != nil {
|
if cfg := ccconf.GetPackageConfig("main"); cfg != nil {
|
||||||
if clustercfg := ccconf.GetPackageConfig("clusters"); clustercfg != nil {
|
config.Init(cfg)
|
||||||
config.Init(cfg, clustercfg)
|
|
||||||
} else {
|
|
||||||
cclog.Abort("Cluster configuration must be present")
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
cclog.Abort("Main configuration must be present")
|
cclog.Abort("Main configuration must be present")
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -58,11 +58,7 @@ func setupUserTest(t *testing.T) *UserCfgRepo {
|
|||||||
|
|
||||||
// Load and check main configuration
|
// Load and check main configuration
|
||||||
if cfg := ccconf.GetPackageConfig("main"); cfg != nil {
|
if cfg := ccconf.GetPackageConfig("main"); cfg != nil {
|
||||||
if clustercfg := ccconf.GetPackageConfig("clusters"); clustercfg != nil {
|
config.Init(cfg)
|
||||||
config.Init(cfg, clustercfg)
|
|
||||||
} else {
|
|
||||||
t.Fatal("Cluster configuration must be present")
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
t.Fatal("Main configuration must be present")
|
t.Fatal("Main configuration must be present")
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -434,11 +434,7 @@ func main() {
|
|||||||
|
|
||||||
// Load and check main configuration
|
// Load and check main configuration
|
||||||
if cfg := ccconf.GetPackageConfig("main"); cfg != nil {
|
if cfg := ccconf.GetPackageConfig("main"); cfg != nil {
|
||||||
if clustercfg := ccconf.GetPackageConfig("clusters"); clustercfg != nil {
|
config.Init(cfg)
|
||||||
config.Init(cfg, clustercfg)
|
|
||||||
} else {
|
|
||||||
cclog.Abort("Cluster configuration must be present")
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
cclog.Abort("Main configuration must be present")
|
cclog.Abort("Main configuration must be present")
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -245,7 +245,6 @@ type Page struct {
|
|||||||
User schema.User // Information about the currently logged in user (Full User Info)
|
User schema.User // Information about the currently logged in user (Full User Info)
|
||||||
Roles map[string]schema.Role // Available roles for frontend render checks
|
Roles map[string]schema.Role // Available roles for frontend render checks
|
||||||
Build Build // Latest information about the application
|
Build Build // Latest information about the application
|
||||||
Clusters []config.ClusterConfig // List of all clusters for use in the Header
|
|
||||||
SubClusters map[string][]string // Map per cluster of all subClusters for use in the Header
|
SubClusters map[string][]string // Map per cluster of all subClusters for use in the Header
|
||||||
FilterPresets map[string]any // For pages with the Filter component, this can be used to set initial filters.
|
FilterPresets map[string]any // For pages with the Filter component, this can be used to set initial filters.
|
||||||
Infos map[string]any // For generic use (e.g. username for /monitoring/user/<id>, job id for /monitoring/job/<id>)
|
Infos map[string]any // For generic use (e.g. username for /monitoring/user/<id>, job id for /monitoring/job/<id>)
|
||||||
@@ -260,12 +259,6 @@ func RenderTemplate(rw http.ResponseWriter, file string, page *Page) {
|
|||||||
cclog.Errorf("WEB/WEB > template '%s' not found", file)
|
cclog.Errorf("WEB/WEB > template '%s' not found", file)
|
||||||
}
|
}
|
||||||
|
|
||||||
if page.Clusters == nil {
|
|
||||||
for _, c := range config.Clusters {
|
|
||||||
page.Clusters = append(page.Clusters, config.ClusterConfig{Name: c.Name, FilterRanges: c.FilterRanges, MetricDataRepository: nil})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if page.SubClusters == nil {
|
if page.SubClusters == nil {
|
||||||
page.SubClusters = make(map[string][]string)
|
page.SubClusters = make(map[string][]string)
|
||||||
for _, cluster := range archive.Clusters {
|
for _, cluster := range archive.Clusters {
|
||||||
|
|||||||
Reference in New Issue
Block a user