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"
|
"github.com/golang-migrate/migrate/v4/source/iofs"
|
||||||
)
|
)
|
||||||
|
|
||||||
const Version uint = 9
|
const Version uint = 10
|
||||||
|
|
||||||
//go:embed migrations/*
|
//go:embed migrations/*
|
||||||
var migrationFiles embed.FS
|
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