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.
92 lines
5.0 KiB
92 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();
|
|
|