mirror of
https://github.com/ClusterCockpit/cc-backend
synced 2025-04-04 11:15:55 +02:00
175 lines
5.9 KiB
SQL
175 lines
5.9 KiB
SQL
CREATE TABLE IF NOT EXISTS job (
|
|
id INTEGER AUTO_INCREMENT PRIMARY KEY ,
|
|
job_id BIGINT NOT NULL,
|
|
cluster VARCHAR(255) NOT NULL,
|
|
subcluster VARCHAR(255) NOT NULL,
|
|
start_time BIGINT NOT NULL, -- Unix timestamp
|
|
|
|
user VARCHAR(255) NOT NULL,
|
|
project VARCHAR(255) NOT NULL,
|
|
`partition` VARCHAR(255) NOT NULL,
|
|
array_job_id BIGINT NOT NULL,
|
|
duration INT NOT NULL DEFAULT 0,
|
|
walltime INT NOT NULL DEFAULT 0,
|
|
job_state VARCHAR(255) NOT NULL
|
|
CHECK(job_state IN ('running', 'completed', 'failed', 'cancelled',
|
|
'stopped', 'timeout', 'preempted', 'out_of_memory')),
|
|
meta_data TEXT, -- JSON
|
|
resources TEXT NOT NULL, -- JSON
|
|
|
|
num_nodes INT NOT NULL,
|
|
num_hwthreads INT NOT NULL,
|
|
num_acc INT NOT NULL,
|
|
smt TINYINT NOT NULL DEFAULT 1 CHECK(smt IN (0, 1 )),
|
|
exclusive TINYINT NOT NULL DEFAULT 1 CHECK(exclusive IN (0, 1, 2)),
|
|
monitoring_status TINYINT NOT NULL DEFAULT 1 CHECK(monitoring_status IN (0, 1, 2, 3)),
|
|
|
|
mem_used_max REAL NOT NULL DEFAULT 0.0,
|
|
flops_any_avg REAL NOT NULL DEFAULT 0.0,
|
|
mem_bw_avg REAL NOT NULL DEFAULT 0.0,
|
|
load_avg REAL NOT NULL DEFAULT 0.0,
|
|
net_bw_avg REAL NOT NULL DEFAULT 0.0,
|
|
net_data_vol_total REAL NOT NULL DEFAULT 0.0,
|
|
file_bw_avg REAL NOT NULL DEFAULT 0.0,
|
|
file_data_vol_total REAL NOT NULL DEFAULT 0.0,
|
|
UNIQUE (job_id, cluster, start_time)
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS tag (
|
|
id INTEGER PRIMARY KEY,
|
|
tag_type VARCHAR(255) NOT NULL,
|
|
tag_name VARCHAR(255) NOT NULL,
|
|
UNIQUE (tag_type, tag_name));
|
|
|
|
CREATE TABLE IF NOT EXISTS jobtag (
|
|
job_id INTEGER,
|
|
tag_id INTEGER,
|
|
PRIMARY KEY (job_id, tag_id),
|
|
FOREIGN KEY (job_id) REFERENCES job (id) ON DELETE CASCADE,
|
|
FOREIGN KEY (tag_id) REFERENCES tag (id) ON DELETE CASCADE);
|
|
|
|
CREATE TABLE IF NOT EXISTS user (
|
|
username varchar(255) PRIMARY KEY NOT NULL,
|
|
password varchar(255) DEFAULT NULL,
|
|
ldap tinyint NOT NULL DEFAULT 0, /* col called "ldap" for historic reasons, fills the "AuthSource" */
|
|
name varchar(255) DEFAULT NULL,
|
|
roles varchar(255) NOT NULL DEFAULT "[]",
|
|
email varchar(255) DEFAULT NULL);
|
|
|
|
CREATE TABLE IF NOT EXISTS configuration (
|
|
username varchar(255),
|
|
confkey varchar(255),
|
|
value varchar(255),
|
|
PRIMARY KEY (username, confkey),
|
|
FOREIGN KEY (username) REFERENCES user (username) ON DELETE CASCADE ON UPDATE NO ACTION);
|
|
|
|
|
|
CREATE TABLE IF NOT EXISTS notifications (
|
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
|
message TEXT NOT NULL,
|
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS influxdb_configurations (
|
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
|
type VARCHAR(255) NOT NULL,
|
|
database_name VARCHAR(255) NOT NULL,
|
|
host VARCHAR(255) NOT NULL,
|
|
port INT NOT NULL,
|
|
user VARCHAR(255) NOT NULL,
|
|
password VARCHAR(255) NOT NULL,
|
|
organization VARCHAR(255) NOT NULL,
|
|
ssl_enabled BOOLEAN NOT NULL,
|
|
batch_size INT NOT NULL,
|
|
retry_interval VARCHAR(255) NOT NULL,
|
|
retry_exponential_base INT NOT NULL,
|
|
max_retries INT NOT NULL,
|
|
max_retry_time VARCHAR(255) NOT NULL,
|
|
meta_as_tags TEXT
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS realtime_logs (
|
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
|
log_message TEXT NOT NULL,
|
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS lvm_conf (
|
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
|
username VARCHAR(255) NOT NULL,
|
|
minAvailableSpaceGB FLOAT NOT NULL,
|
|
maxAvailableSpaceGB FLOAT NOT NULL
|
|
);
|
|
|
|
-- linux lvm schemas
|
|
CREATE TABLE IF NOT EXISTS machines (
|
|
machine_id VARCHAR(255) PRIMARY KEY,
|
|
hostname VARCHAR(255) NOT NULL,
|
|
os_version VARCHAR(255) NOT NULL,
|
|
ip_address VARCHAR(255) NOT NULL
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS logical_volumes (
|
|
lv_id INT AUTO_INCREMENT PRIMARY KEY,
|
|
machine_id VARCHAR(255) NOT NULL,
|
|
lv_name VARCHAR(255) NOT NULL,
|
|
vg_name VARCHAR(255) NOT NULL,
|
|
lv_attr VARCHAR(255) NOT NULL,
|
|
lv_size VARCHAR(255) NOT NULL,
|
|
FOREIGN KEY (machine_id) REFERENCES machines(machine_id)
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS volume_groups (
|
|
vg_id INT AUTO_INCREMENT PRIMARY KEY,
|
|
machine_id VARCHAR(255) NOT NULL,
|
|
vg_name VARCHAR(255) NOT NULL,
|
|
pv_count VARCHAR(255) NOT NULL,
|
|
lv_count VARCHAR(255) NOT NULL,
|
|
snap_count VARCHAR(255) NOT NULL,
|
|
vg_attr VARCHAR(255) NOT NULL,
|
|
vg_size VARCHAR(255) NOT NULL,
|
|
vg_free VARCHAR(255) NOT NULL,
|
|
FOREIGN KEY (machine_id) REFERENCES machines(machine_id)
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS physical_volumes (
|
|
pv_id INT AUTO_INCREMENT PRIMARY KEY,
|
|
machine_id VARCHAR(255) NOT NULL,
|
|
pv_name VARCHAR(255) NOT NULL,
|
|
vg_name VARCHAR(255) NOT NULL,
|
|
pv_fmt VARCHAR(255) NOT NULL,
|
|
pv_attr VARCHAR(255) NOT NULL,
|
|
pv_size VARCHAR(255) NOT NULL,
|
|
pv_free VARCHAR(255) NOT NULL,
|
|
FOREIGN KEY (machine_id) REFERENCES machines(machine_id)
|
|
);
|
|
|
|
|
|
CREATE TABLE IF NOT EXISTS lv_storage_issuer (
|
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
|
machine_serial_number VARCHAR(255) NOT NULL,
|
|
hostname VARCHAR(255) NOT NULL,
|
|
username VARCHAR(255) NOT NULL,
|
|
minAvailableSpaceGB FLOAT NOT NULL,
|
|
maxAvailableSpaceGB FLOAT NOT NULL,
|
|
FOREIGN KEY (machine_serial_number) REFERENCES machines(machine_id)
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS machine_conf (
|
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
|
machine_serial_number VARCHAR(255) NOT NULL,
|
|
hostname VARCHAR(255) NOT NULL,
|
|
username VARCHAR(255) NOT NULL,
|
|
passphrase LONGTEXT,
|
|
port_number INT NOT NULL,
|
|
password VARCHAR(255),
|
|
host_key VARCHAR(255),
|
|
folder_path VARCHAR(255) ,
|
|
FOREIGN KEY (machine_serial_number) REFERENCES machines(machine_id)
|
|
);
|
|
|
|
|
|
CREATE TABLE IF NOT EXISTS file_stash_url (
|
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
|
url VARCHAR(255) NOT NULL
|
|
); |