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
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();
|
|
|