Local modifications to ClusterLabs/Anvil by Alteeve
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

156 lines
7.3 KiB

-- This is the database schema for the 'scan-hardware Scan Agent'.
CREATE TABLE scan_hardware (
scan_hardware_uuid uuid primary key,
scan_hardware_host_uuid uuid not null,
scan_hardware_cpu_model text not null,
scan_hardware_cpu_cores numeric not null, -- We don't care about individual sockets / chips
scan_hardware_cpu_threads numeric not null,
scan_hardware_cpu_bugs text not null,
scan_hardware_cpu_flags text not null, --
scan_hardware_ram_total numeric not null, -- This is the sum of the hardware memory module capacity
scan_hardware_memory_total numeric not null, -- This is the amount seen by the OS, minus shared memory, like that allocated to video
scan_hardware_memory_free numeric not null, --
scan_hardware_swap_total numeric not null, --
scan_hardware_swap_free numeric not null, --
scan_hardware_led_id text not null, --
scan_hardware_led_css text not null, --
scan_hardware_led_error text not null, --
modified_date timestamp with time zone not null,
FOREIGN KEY(scan_hardware_host_uuid) REFERENCES hosts(host_uuid)
);
ALTER TABLE scan_hardware OWNER TO admin;
CREATE TABLE history.scan_hardware (
history_id bigserial,
scan_hardware_uuid uuid,
scan_hardware_host_uuid uuid,
scan_hardware_cpu_model text,
scan_hardware_cpu_cores numeric,
scan_hardware_cpu_threads numeric,
scan_hardware_cpu_bugs text,
scan_hardware_cpu_flags text,
scan_hardware_ram_total numeric,
scan_hardware_memory_total numeric,
scan_hardware_memory_free numeric,
scan_hardware_swap_total numeric,
scan_hardware_swap_free numeric,
scan_hardware_led_id text,
scan_hardware_led_css text,
scan_hardware_led_error text,
modified_date timestamp with time zone not null
);
ALTER TABLE history.scan_hardware OWNER TO admin;
CREATE FUNCTION history_scan_hardware() RETURNS trigger
AS $$
DECLARE
history_scan_hardware RECORD;
BEGIN
SELECT INTO history_scan_hardware * FROM scan_hardware WHERE scan_hardware_uuid=new.scan_hardware_uuid;
INSERT INTO history.scan_hardware
(scan_hardware_uuid,
scan_hardware_host_uuid,
scan_hardware_cpu_model,
scan_hardware_cpu_cores,
scan_hardware_cpu_threads,
scan_hardware_cpu_bugs,
scan_hardware_cpu_flags,
scan_hardware_ram_total,
scan_hardware_memory_total,
scan_hardware_memory_free,
scan_hardware_swap_total,
scan_hardware_swap_free,
scan_hardware_led_id,
scan_hardware_led_css,
scan_hardware_led_error,
modified_date)
VALUES
(history_scan_hardware.scan_hardware_uuid,
history_scan_hardware.scan_hardware_host_uuid,
history_scan_hardware.scan_hardware_cpu_model,
history_scan_hardware.scan_hardware_cpu_cores,
history_scan_hardware.scan_hardware_cpu_threads,
history_scan_hardware.scan_hardware_cpu_bugs,
history_scan_hardware.scan_hardware_cpu_flags,
history_scan_hardware.scan_hardware_ram_total,
history_scan_hardware.scan_hardware_memory_total,
history_scan_hardware.scan_hardware_memory_free,
history_scan_hardware.scan_hardware_swap_total,
history_scan_hardware.scan_hardware_swap_free,
history_scan_hardware.scan_hardware_led_id,
history_scan_hardware.scan_hardware_led_css,
history_scan_hardware.scan_hardware_led_error,
history_scan_hardware.modified_date);
RETURN NULL;
END;
$$
LANGUAGE plpgsql;
ALTER FUNCTION history_scan_hardware() OWNER TO admin;
CREATE TRIGGER trigger_scan_hardware
AFTER INSERT OR UPDATE ON scan_hardware
FOR EACH ROW EXECUTE PROCEDURE history_scan_hardware();
CREATE TABLE scan_hardware_ram_modules (
scan_hardware_ram_module_uuid uuid primary key,
scan_hardware_ram_module_host_uuid uuid not null,
scan_hardware_ram_module_locator text not null,
scan_hardware_ram_module_size numeric not null,
scan_hardware_ram_module_manufacturer text not null,
scan_hardware_ram_module_model text not null,
scan_hardware_ram_module_serial_number text not null,
modified_date timestamp with time zone not null,
FOREIGN KEY(scan_hardware_ram_module_host_uuid) REFERENCES hosts(host_uuid)
);
ALTER TABLE scan_hardware_ram_modules OWNER TO admin;
CREATE TABLE history.scan_hardware_ram_modules (
history_id bigserial,
scan_hardware_ram_module_uuid uuid,
scan_hardware_ram_module_host_uuid uuid,
scan_hardware_ram_module_locator text,
scan_hardware_ram_module_size numeric,
scan_hardware_ram_module_manufacturer text,
scan_hardware_ram_module_model text,
scan_hardware_ram_module_serial_number text,
modified_date timestamp with time zone not null
);
ALTER TABLE history.scan_hardware_ram_modules OWNER TO admin;
CREATE FUNCTION history_scan_hardware_ram_modules() RETURNS trigger
AS $$
DECLARE
history_scan_hardware_ram_modules RECORD;
BEGIN
SELECT INTO history_scan_hardware_ram_modules * FROM scan_hardware_ram_modules WHERE scan_hardware_ram_module_uuid=new.scan_hardware_ram_module_uuid;
INSERT INTO history.scan_hardware_ram_modules
(scan_hardware_ram_module_uuid,
scan_hardware_ram_module_host_uuid,
scan_hardware_ram_module_locator,
scan_hardware_ram_module_size,
scan_hardware_ram_module_manufacturer,
scan_hardware_ram_module_model,
scan_hardware_ram_module_serial_number,
modified_date)
VALUES
(history_scan_hardware_ram_modules.scan_hardware_ram_module_uuid,
history_scan_hardware_ram_modules.scan_hardware_ram_module_host_uuid,
history_scan_hardware_ram_modules.scan_hardware_ram_module_locator,
history_scan_hardware_ram_modules.scan_hardware_ram_module_size,
history_scan_hardware_ram_modules.scan_hardware_ram_module_manufacturer,
history_scan_hardware_ram_modules.scan_hardware_ram_module_model,
history_scan_hardware_ram_modules.scan_hardware_ram_module_serial_number,
history_scan_hardware_ram_modules.modified_date);
RETURN NULL;
END;
$$
LANGUAGE plpgsql;
ALTER FUNCTION history_scan_hardware_ram_modules() OWNER TO admin;
CREATE TRIGGER trigger_scan_hardware_ram_modules
AFTER INSERT OR UPDATE ON scan_hardware_ram_modules
FOR EACH ROW EXECUTE PROCEDURE history_scan_hardware_ram_modules();