* Created Database->check_for_schema() (not finished) that will check/add a schema for a scan agent.
* Renamed the scan-network skeleton scan agent to scan-hardware and started work on it based on the M2 version. * Updated Database->get_recipients() to take the 'include_deleted' parameter, and changed the default behaviour to only return active records. Signed-off-by: Digimer <digimer@alteeve.ca>main
parent
dc5ec9c264
commit
925664762a
12 changed files with 268 additions and 57 deletions
@ -0,0 +1,155 @@ |
|||||||
|
-- This is the database schema for the 'hardware Scan Agent'. |
||||||
|
|
||||||
|
CREATE TABLE hardware ( |
||||||
|
hardware_uuid uuid primary key, |
||||||
|
hardware_host_uuid uuid not null, |
||||||
|
hardware_cpu_model text not null, |
||||||
|
hardware_cpu_cores numeric not null, -- We don't care about individual sockets / chips |
||||||
|
hardware_cpu_threads numeric not null, |
||||||
|
hardware_cpu_bugs text not null, |
||||||
|
hardware_cpu_flags text not null, -- |
||||||
|
hardware_ram_total numeric not null, -- This is the sum of the hardware memory module capacity |
||||||
|
hardware_memory_total numeric not null, -- This is the amount seen by the OS, minus shared memory, like that allocated to video |
||||||
|
hardware_memory_free numeric not null, -- |
||||||
|
hardware_swap_total numeric not null, -- |
||||||
|
hardware_swap_free numeric not null, -- |
||||||
|
hardware_led_id text not null, -- |
||||||
|
hardware_led_css text not null, -- |
||||||
|
hardware_led_error text not null, -- |
||||||
|
modified_date timestamp with time zone not null, |
||||||
|
|
||||||
|
FOREIGN KEY(hardware_host_uuid) REFERENCES hosts(host_uuid) |
||||||
|
); |
||||||
|
ALTER TABLE hardware OWNER TO admin; |
||||||
|
|
||||||
|
CREATE TABLE history.hardware ( |
||||||
|
history_id bigserial, |
||||||
|
hardware_uuid uuid, |
||||||
|
hardware_host_uuid uuid, |
||||||
|
hardware_cpu_model text, |
||||||
|
hardware_cpu_cores numeric, |
||||||
|
hardware_cpu_threads numeric, |
||||||
|
hardware_cpu_bugs text, |
||||||
|
hardware_cpu_flags text, |
||||||
|
hardware_ram_total numeric, |
||||||
|
hardware_memory_total numeric, |
||||||
|
hardware_memory_free numeric, |
||||||
|
hardware_swap_total numeric, |
||||||
|
hardware_swap_free numeric, |
||||||
|
hardware_led_id text, |
||||||
|
hardware_led_css text, |
||||||
|
hardware_led_error text, |
||||||
|
modified_date timestamp with time zone not null |
||||||
|
); |
||||||
|
ALTER TABLE history.hardware OWNER TO admin; |
||||||
|
|
||||||
|
CREATE FUNCTION history_hardware() RETURNS trigger |
||||||
|
AS $$ |
||||||
|
DECLARE |
||||||
|
history_hardware RECORD; |
||||||
|
BEGIN |
||||||
|
SELECT INTO history_hardware * FROM hardware WHERE hardware_uuid=new.hardware_uuid; |
||||||
|
INSERT INTO history.hardware |
||||||
|
(hardware_uuid, |
||||||
|
hardware_host_uuid, |
||||||
|
hardware_cpu_model, |
||||||
|
hardware_cpu_cores, |
||||||
|
hardware_cpu_threads, |
||||||
|
hardware_cpu_bugs, |
||||||
|
hardware_cpu_flags, |
||||||
|
hardware_ram_total, |
||||||
|
hardware_memory_total, |
||||||
|
hardware_memory_free, |
||||||
|
hardware_swap_total, |
||||||
|
hardware_swap_free, |
||||||
|
hardware_led_id, |
||||||
|
hardware_led_css, |
||||||
|
hardware_led_error, |
||||||
|
modified_date) |
||||||
|
VALUES |
||||||
|
(history_hardware.hardware_uuid, |
||||||
|
history_hardware.hardware_host_uuid, |
||||||
|
history_hardware.hardware_cpu_model, |
||||||
|
history_hardware.hardware_cpu_cores, |
||||||
|
history_hardware.hardware_cpu_threads, |
||||||
|
history_hardware.hardware_cpu_bugs, |
||||||
|
history_hardware.hardware_cpu_flags, |
||||||
|
history_hardware.hardware_ram_total, |
||||||
|
history_hardware.hardware_memory_total, |
||||||
|
history_hardware.hardware_memory_free, |
||||||
|
history_hardware.hardware_swap_total, |
||||||
|
history_hardware.hardware_swap_free, |
||||||
|
history_hardware.hardware_led_id, |
||||||
|
history_hardware.hardware_led_css, |
||||||
|
history_hardware.hardware_led_error, |
||||||
|
history_hardware.modified_date); |
||||||
|
RETURN NULL; |
||||||
|
END; |
||||||
|
$$ |
||||||
|
LANGUAGE plpgsql; |
||||||
|
ALTER FUNCTION history_hardware() OWNER TO admin; |
||||||
|
|
||||||
|
CREATE TRIGGER trigger_hardware |
||||||
|
AFTER INSERT OR UPDATE ON hardware |
||||||
|
FOR EACH ROW EXECUTE PROCEDURE history_hardware(); |
||||||
|
|
||||||
|
CREATE TABLE hardware_ram_modules ( |
||||||
|
hardware_ram_module_uuid uuid primary key, |
||||||
|
hardware_ram_module_host_uuid uuid not null, |
||||||
|
hardware_ram_module_locator text not null, |
||||||
|
hardware_ram_module_size numeric not null, |
||||||
|
hardware_ram_module_manufacturer text not null, |
||||||
|
hardware_ram_module_model text not null, |
||||||
|
hardware_ram_module_serial_number text not null, |
||||||
|
modified_date timestamp with time zone not null, |
||||||
|
|
||||||
|
FOREIGN KEY(hardware_ram_module_host_uuid) REFERENCES hosts(host_uuid) |
||||||
|
); |
||||||
|
ALTER TABLE hardware_ram_modules OWNER TO admin; |
||||||
|
|
||||||
|
CREATE TABLE history.hardware_ram_modules ( |
||||||
|
history_id bigserial, |
||||||
|
hardware_ram_module_uuid uuid, |
||||||
|
hardware_ram_module_host_uuid uuid, |
||||||
|
hardware_ram_module_locator text, |
||||||
|
hardware_ram_module_size numeric, |
||||||
|
hardware_ram_module_manufacturer text, |
||||||
|
hardware_ram_module_model text, |
||||||
|
hardware_ram_module_serial_number text, |
||||||
|
modified_date timestamp with time zone not null |
||||||
|
); |
||||||
|
ALTER TABLE history.hardware_ram_modules OWNER TO admin; |
||||||
|
|
||||||
|
CREATE FUNCTION history_hardware_ram_modules() RETURNS trigger |
||||||
|
AS $$ |
||||||
|
DECLARE |
||||||
|
history_hardware_ram_modules RECORD; |
||||||
|
BEGIN |
||||||
|
SELECT INTO history_hardware_ram_modules * FROM hardware_ram_modules WHERE hardware_ram_module_uuid=new.hardware_ram_module_uuid; |
||||||
|
INSERT INTO history.hardware_ram_modules |
||||||
|
(hardware_ram_module_uuid, |
||||||
|
hardware_ram_module_host_uuid, |
||||||
|
hardware_ram_module_locator, |
||||||
|
hardware_ram_module_size, |
||||||
|
hardware_ram_module_manufacturer, |
||||||
|
hardware_ram_module_model, |
||||||
|
hardware_ram_module_serial_number, |
||||||
|
modified_date) |
||||||
|
VALUES |
||||||
|
(history_hardware_ram_modules.hardware_ram_module_uuid, |
||||||
|
history_hardware_ram_modules.hardware_ram_module_host_uuid, |
||||||
|
history_hardware_ram_modules.hardware_ram_module_locator, |
||||||
|
history_hardware_ram_modules.hardware_ram_module_size, |
||||||
|
history_hardware_ram_modules.hardware_ram_module_manufacturer, |
||||||
|
history_hardware_ram_modules.hardware_ram_module_model, |
||||||
|
history_hardware_ram_modules.hardware_ram_module_serial_number, |
||||||
|
history_hardware_ram_modules.modified_date); |
||||||
|
RETURN NULL; |
||||||
|
END; |
||||||
|
$$ |
||||||
|
LANGUAGE plpgsql; |
||||||
|
ALTER FUNCTION history_hardware_ram_modules() OWNER TO admin; |
||||||
|
|
||||||
|
CREATE TRIGGER trigger_hardware_ram_modules |
||||||
|
AFTER INSERT OR UPDATE ON hardware_ram_modules |
||||||
|
FOR EACH ROW EXECUTE PROCEDURE history_hardware_ram_modules(); |
Loading…
Reference in new issue