mirror of
https://github.com/ClusterCockpit/cc-backend
synced 2025-06-08 00:23:48 +02:00
Add node table schema
This commit is contained in:
parent
eef48ac3a3
commit
4dc0da5099
@ -16,7 +16,7 @@ import (
|
||||
"github.com/golang-migrate/migrate/v4/source/iofs"
|
||||
)
|
||||
|
||||
const Version uint = 9
|
||||
const Version uint = 10
|
||||
|
||||
//go:embed migrations/*
|
||||
var migrationFiles embed.FS
|
||||
|
@ -0,0 +1 @@
|
||||
DROP TABLE IF EXISTS node;
|
17
internal/repository/migrations/sqlite3/10_node-table.up.sql
Normal file
17
internal/repository/migrations/sqlite3/10_node-table.up.sql
Normal file
@ -0,0 +1,17 @@
|
||||
CREATE TABLE "node" (
|
||||
id INTEGER PRIMARY KEY,
|
||||
hostname VARCHAR(255) NOT NULL,
|
||||
cluster VARCHAR(255) NOT NULL,
|
||||
subcluster VARCHAR(255) NOT NULL,
|
||||
node_state VARCHAR(255) NOT NULL
|
||||
CHECK (job_state IN (
|
||||
'allocated', 'reserved', 'idle', 'mixed',
|
||||
'down', 'unknown'
|
||||
)),
|
||||
health_state VARCHAR(255) NOT NULL
|
||||
CHECK (job_state IN (
|
||||
'full', 'partial', 'failed'
|
||||
)),
|
||||
meta_data TEXT, -- JSON
|
||||
UNIQUE (hostname, cluster)
|
||||
);
|
35
pkg/schema/node.go
Normal file
35
pkg/schema/node.go
Normal file
@ -0,0 +1,35 @@
|
||||
// Copyright (C) NHR@FAU, University Erlangen-Nuremberg.
|
||||
// All rights reserved.
|
||||
// Use of this source code is governed by a MIT-style
|
||||
// license that can be found in the LICENSE file.
|
||||
package schema
|
||||
|
||||
type NodeState string
|
||||
|
||||
const (
|
||||
NodeStateAllocated NodeState = "allocated"
|
||||
NodeStateReserved NodeState = "reserved"
|
||||
NodeStateIdle NodeState = "idle"
|
||||
NodeStateMixed NodeState = "mixed"
|
||||
NodeStateDown NodeState = "down"
|
||||
NodeStateUnknown NodeState = "unknown"
|
||||
)
|
||||
|
||||
type MonitoringState string
|
||||
|
||||
const (
|
||||
MonitoringStateFull MonitoringState = "full"
|
||||
MonitoringStatePartial MonitoringState = "partial"
|
||||
MonitoringStateFailed MonitoringState = "failed"
|
||||
)
|
||||
|
||||
type Node struct {
|
||||
ID int64 `json:"id" db:"id"`
|
||||
Hostname string `json:"hostname" db:"hostname" example:"fritz"`
|
||||
Cluster string `json:"cluster" db:"cluster" example:"fritz"`
|
||||
SubCluster string `json:"subCluster" db:"subcluster" example:"main"`
|
||||
NodeState NodeState `json:"nodeState" db:"node_state" example:"completed" enums:"completed,failed,cancelled,stopped,timeout,out_of_memory"`
|
||||
HealthState MonitoringState `json:"healthState" db:"health_state" example:"completed" enums:"completed,failed,cancelled,stopped,timeout,out_of_memory"`
|
||||
RawMetaData []byte `json:"-" db:"meta_data"`
|
||||
MetaData map[string]string `json:"metaData"`
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user