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.

93 lines
5.0 KiB

-- This is the database schema for the 'scan-lvm Scan Agent'.
-- This table stores physical volume information
CREATE TABLE scan_filesystems (
scan_filesystem_uuid uuid primary key,
scan_filesystem_host_uuid uuid not null, -- The host that the file system is mounted on. Note that some FSes, like those from USB, can move between hosts.
scan_filesystem_internal_uuid text not null, -- This comes from the file system's UUID, which is not actually always a UUID.
scan_filesystem_type text not null, -- This is the name of the file system type.
scan_filesystem_kernel_name text not null, -- This is the backing device of the file system.
scan_filesystem_mount_point text not null, -- This is the name of the mount point.
scan_filesystem_transport text not null, -- Optional description of the drive's transport (usb, nvme, sata, sata, md, raid, optical, sdcard, etc - 'unknown')
scan_filesystem_media_type text not null, -- This is set to 'ssd' for solid state, 'platter' for spinning rust, 'network' for network mounts, etc.
scan_filesystem_vendor text not null, -- Optional vendor of the drive the partition is on
scan_filesystem_model text not null, -- Optional model of the drive the partiton is on
scan_filesystem_serial_number text not null, -- Optional serial number of the drive the partition is on
scan_filesystem_description text not null, -- Free form description of the device.
scan_filesystem_size numeric not null, -- The size of the partition, in bytes
scan_filesystem_used numeric not null, -- The used space, in bytes.
modified_date timestamp with time zone not null,
FOREIGN KEY(scan_filesystem_host_uuid) REFERENCES hosts(host_uuid)
);
ALTER TABLE scan_filesystems OWNER TO admin;
CREATE TABLE history.scan_filesystems (
history_id bigserial,
scan_filesystem_uuid uuid,
scan_filesystem_host_uuid uuid,
scan_filesystem_internal_uuid text,
scan_filesystem_type text,
scan_filesystem_kernel_name text,
scan_filesystem_mount_point text,
scan_filesystem_transport text,
scan_filesystem_media_type text,
scan_filesystem_vendor text,
scan_filesystem_model text,
scan_filesystem_serial_number text,
scan_filesystem_description text,
scan_filesystem_size numeric,
scan_filesystem_used numeric,
modified_date timestamp with time zone not null
);
ALTER TABLE history.scan_filesystems OWNER TO admin;
CREATE FUNCTION history_scan_filesystems() RETURNS trigger
AS $$
DECLARE
history_scan_filesystems RECORD;
BEGIN
SELECT INTO history_scan_filesystems * FROM scan_filesystems WHERE scan_filesystem_uuid=new.scan_filesystem_uuid;
INSERT INTO history.scan_filesystems
(scan_filesystem_uuid,
scan_filesystem_host_uuid,
scan_filesystem_internal_uuid,
scan_filesystem_type,
scan_filesystem_kernel_name,
scan_filesystem_mount_point,
scan_filesystem_transport,
scan_filesystem_media_type,
scan_filesystem_vendor,
scan_filesystem_model,
scan_filesystem_serial_number,
scan_filesystem_description,
scan_filesystem_size,
scan_filesystem_used,
modified_date)
VALUES
(history_scan_filesystems.scan_filesystem_uuid,
history_scan_filesystems.scan_filesystem_host_uuid,
history_scan_filesystems.scan_filesystem_internal_uuid,
history_scan_filesystems.scan_filesystem_type,
history_scan_filesystems.scan_filesystem_kernel_name,
history_scan_filesystems.scan_filesystem_mount_point,
history_scan_filesystems.scan_filesystem_transport,
history_scan_filesystems.scan_filesystem_media_type,
history_scan_filesystems.scan_filesystem_vendor,
history_scan_filesystems.scan_filesystem_model,
history_scan_filesystems.scan_filesystem_serial_number,
history_scan_filesystems.scan_filesystem_description,
history_scan_filesystems.scan_filesystem_size,
history_scan_filesystems.scan_filesystem_used,
history_scan_filesystems.modified_date);
RETURN NULL;
END;
$$
LANGUAGE plpgsql;
ALTER FUNCTION history_scan_filesystems() OWNER TO admin;
CREATE TRIGGER trigger_scan_filesystems
AFTER INSERT OR UPDATE ON scan_filesystems
FOR EACH ROW EXECUTE PROCEDURE history_scan_filesystems();