diff --git a/src/frontend/apiserver/cmd/main.go b/src/frontend/apiserver/cmd/main.go index ecb77e7..c830c54 100644 --- a/src/frontend/apiserver/cmd/main.go +++ b/src/frontend/apiserver/cmd/main.go @@ -51,13 +51,6 @@ func main() { store.InitStores() logger.Info("********** Initialize in-memory stores done!") - // Load builtin test data and RBAC from config - if err := store.LoadBuiltinData(); err != nil { - logger.Error("Failed to load builtin data", zap.Error(err)) - os.Exit(1) - } - logger.Info("********** Load builtin data done!") - // Connect to the XCE controller backend for live data. // StartNotificationListener must be called before RegisterToBackend so the // handler is ready before any push events can arrive. diff --git a/src/frontend/apiserver/store/builtin.go b/src/frontend/apiserver/store/builtin.go deleted file mode 100644 index 612cdc3..0000000 --- a/src/frontend/apiserver/store/builtin.go +++ /dev/null @@ -1,195 +0,0 @@ -package store - -import ( - "apiserver/models" - "time" -) - -// LoadBuiltinData populates all stores with test data. -func LoadBuiltinData() error { - LoadBuiltinQueues() - LoadBuiltinHosts() - LoadBuiltinResources() - LoadBuiltinResourceLocations() - LoadBuiltinJobs() - return nil -} - -func LoadBuiltinQueues() { - queues := []models.QueueInfo{ - { - QueueName: "normal", - QueueStatus: 0x00, // OPEN:active - Priority: 30, - Description: "Default queue for normal jobs", - NumPend: 5, - NumRun: 3, - NumDone: 100, - }, - { - QueueName: "priority", - QueueStatus: 0x00, - Priority: 50, - Description: "High priority queue", - NumPend: 2, - NumRun: 5, - NumDone: 50, - }, - { - QueueName: "short", - QueueStatus: 0x00, - Priority: 20, - Description: "Queue for short-running jobs", - NumPend: 10, - NumRun: 8, - NumDone: 200, - }, - } - for _, q := range queues { - Queues.Put(q.QueueName, q) - } -} - -func LoadBuiltinHosts() { - hosts := []models.HostInfo{ - { - HostName: "host1", - HostStatus: 0, // OK - HostModel: "x86_64", - HostType: "linux", - NumCPUs: 16, - NumCores: 8, - NumThreads: 16, - MaxSlot: 16, - MaxMem: 65536, - MaxSwap: 32768, - MaxTmp: 102400, - CPUFactor: 1.0, - }, - { - HostName: "host2", - HostStatus: 0, - HostModel: "x86_64", - HostType: "linux", - NumCPUs: 32, - NumCores: 16, - NumThreads: 32, - MaxSlot: 32, - MaxMem: 131072, - MaxSwap: 65536, - MaxTmp: 204800, - CPUFactor: 2.0, - }, - { - HostName: "host3", - HostStatus: 0, - HostModel: "x86_64", - HostType: "linux", - NumCPUs: 64, - NumCores: 32, - NumThreads: 64, - MaxSlot: 64, - MaxMem: 262144, - MaxSwap: 131072, - MaxTmp: 409600, - CPUFactor: 4.0, - }, - } - for _, h := range hosts { - Hosts.Put(h.HostName, h) - } -} - -func LoadBuiltinResources() { - resources := []models.ResourceDefinitionInfo{ - {ResourceName: "ncpus", Description: "Number of CPUs", ValueType: int(models.NUMERIC), OrderType: int(models.INCR), Flag: models.BUILTIN, Interval: 0}, - {ResourceName: "mem", Description: "Memory in MB", ValueType: int(models.NUMERIC), OrderType: int(models.DECR), Flag: models.BUILTIN | models.CONSUMABLE, Interval: 0}, - {ResourceName: "tmp", Description: "Temp space in MB", ValueType: int(models.NUMERIC), OrderType: int(models.DECR), Flag: models.BUILTIN, Interval: 0}, - {ResourceName: "swp", Description: "Swap space in MB", ValueType: int(models.NUMERIC), OrderType: int(models.DECR), Flag: models.BUILTIN, Interval: 0}, - {ResourceName: "nslots", Description: "Number of slots", ValueType: int(models.NUMERIC), OrderType: int(models.INCR), Flag: models.BUILTIN | models.CONSUMABLE, Interval: 0}, - {ResourceName: "gpu", Description: "GPU devices", ValueType: int(models.NUMERIC), OrderType: int(models.DECR), Flag: models.BUILTIN | models.CONSUMABLE | models.DYNAMIC, Interval: 60}, - {ResourceName: "matlab_lic", Description: "MATLAB network license", ValueType: int(models.NUMERIC), OrderType: int(models.DECR), Flag: models.BUILTIN | models.DYNAMIC, Interval: 60}, - {ResourceName: "vcs_lic", Description: "VCS simulator license", ValueType: int(models.NUMERIC), OrderType: int(models.DECR), Flag: models.BUILTIN | models.DYNAMIC, Interval: 60}, - } - for _, r := range resources { - Resources.Put(r.ResourceName, r) - } -} - -func LoadBuiltinResourceLocations() { - locations := []models.ResourceDistributionInfo{ - // Host-based: each host has its own value - {ResourceName: "ncpus", IsDynamic: false, Location: "host1", NumericValue: 16}, - {ResourceName: "ncpus", IsDynamic: false, Location: "host2", NumericValue: 32}, - {ResourceName: "ncpus", IsDynamic: false, Location: "host3", NumericValue: 64}, - {ResourceName: "mem", IsDynamic: false, Location: "host1", NumericValue: 65536}, - {ResourceName: "mem", IsDynamic: false, Location: "host2", NumericValue: 131072}, - {ResourceName: "mem", IsDynamic: false, Location: "host3", NumericValue: 262144}, - {ResourceName: "swp", IsDynamic: false, Location: "host1", NumericValue: 32768}, - {ResourceName: "swp", IsDynamic: false, Location: "host2", NumericValue: 65536}, - {ResourceName: "swp", IsDynamic: false, Location: "host3", NumericValue: 131072}, - {ResourceName: "tmp", IsDynamic: false, Location: "host1", NumericValue: 102400}, - {ResourceName: "tmp", IsDynamic: false, Location: "host2", NumericValue: 204800}, - {ResourceName: "tmp", IsDynamic: false, Location: "host3", NumericValue: 409600}, - // Global: license server accessible by all hosts (location = "*") - {ResourceName: "matlab_lic", IsDynamic: true, Location: "*", NumericValue: 100}, - // Partial: GPU only on specific hosts - {ResourceName: "gpu", IsDynamic: true, Location: "host2", NumericValue: 4}, - {ResourceName: "gpu", IsDynamic: true, Location: "host3", NumericValue: 8}, - // Partial: license only accessible by some hosts - {ResourceName: "vcs_lic", IsDynamic: true, Location: "lic_group_a", NumericValue: 50}, - } - for _, loc := range locations { - key := loc.ResourceName + ":" + loc.Location - ResourceLocations.Put(key, loc) - } -} - -func LoadBuiltinJobs() { - now := time.Now() - jobs := []models.JobInfo{ - { - Unique_JobID: 1001, - JobID: 1001, - SubmitUser: "user1", - JobName: "test_job_1", - JobStatus: 0x02, // RUN - QueueName: "normal", - Command: "sleep 100", - SubmitTime: now.Add(-1 * time.Hour), - }, - { - Unique_JobID: 1002, - JobID: 1002, - SubmitUser: "user1", - JobName: "test_job_2", - JobStatus: 0x01, // PEND - QueueName: "normal", - Command: "echo hello", - SubmitTime: now.Add(-30 * time.Minute), - }, - { - Unique_JobID: 1003, - JobID: 1003, - SubmitUser: "user2", - JobName: "priority_job", - JobStatus: 0x02, // RUN - QueueName: "priority", - Command: "python train.py", - SubmitTime: now.Add(-2 * time.Hour), - }, - { - Unique_JobID: 1004, - JobID: 1004, - SubmitUser: "user2", - JobName: "done_job", - JobStatus: 0x08, // DONE - QueueName: "short", - Command: "ls -la", - SubmitTime: now.Add(-3 * time.Hour), - }, - } - for _, j := range jobs { - Jobs.Put(uint64(j.Unique_JobID), j) - } -}