--liquibase formatted sql -- ============================================================================ --changeset michael.hoennig:hs-hosting-asset-TEST-DATA-GENERATOR endDelimiter:--// -- ---------------------------------------------------------------------------- /* Creates a single hs_hosting_asset test record. */ create or replace procedure createHsHostingAssetTestData(givenProjectCaption varchar) language plpgsql as $$ declare relatedProject hs_booking_project; relatedDebitor hs_office.debitor; privateCloudBI hs_booking_item; managedServerBI hs_booking_item; cloudServerBI hs_booking_item; managedWebspaceBI hs_booking_item; debitorNumberSuffix varchar; defaultPrefix varchar; managedServerUuid uuid; managedWebspaceUuid uuid; webUnixSubjectUuid uuid; mboxUnixSubjectUuid uuid; domainSetupUuid uuid; domainMBoxSetupUuid uuid; mariaDbInstanceUuid uuid; mariaDbSubjectUuid uuid; pgSqlInstanceUuid uuid; PgSqlSubjectUuid uuid; begin call base.defineContext('creating hosting-asset test-data', null, 'superuser-alex@hostsharing.net', 'rbac.global#global:ADMIN'); select project.* into relatedProject from hs_booking_project project where project.caption = givenProjectCaption; assert relatedProject.uuid is not null, 'relatedProject for "' || givenProjectCaption || '" must not be null'; select debitor.* into relatedDebitor from hs_office.debitor debitor where debitor.uuid = relatedProject.debitorUuid; assert relatedDebitor.uuid is not null, 'relatedDebitor for "' || givenProjectCaption || '" must not be null'; select item.* into privateCloudBI from hs_booking_item item where item.projectUuid = relatedProject.uuid and item.type = 'PRIVATE_CLOUD'; assert privateCloudBI.uuid is not null, 'relatedPrivateCloudBookingItem for "' || givenProjectCaption|| '" must not be null'; select item.* into managedServerBI from hs_booking_item item where item.projectUuid = relatedProject.uuid and item.type = 'MANAGED_SERVER'; assert managedServerBI.uuid is not null, 'relatedManagedServerBookingItem for "' || givenProjectCaption|| '" must not be null'; select item.* into cloudServerBI from hs_booking_item item where item.parentItemuuid = privateCloudBI.uuid and item.type = 'CLOUD_SERVER'; assert cloudServerBI.uuid is not null, 'relatedCloudServerBookingItem for "' || givenProjectCaption|| '" must not be null'; select item.* into managedWebspaceBI from hs_booking_item item where item.projectUuid = relatedProject.uuid and item.type = 'MANAGED_WEBSPACE'; assert managedWebspaceBI.uuid is not null, 'relatedManagedWebspaceBookingItem for "' || givenProjectCaption|| '" must not be null'; select uuid_generate_v4() into managedServerUuid; select uuid_generate_v4() into managedWebspaceUuid; select uuid_generate_v4() into webUnixSubjectUuid; select uuid_generate_v4() into mboxUnixSubjectUuid; select uuid_generate_v4() into domainSetupUuid; select uuid_generate_v4() into domainMBoxSetupUuid; select uuid_generate_v4() into mariaDbInstanceUuid; select uuid_generate_v4() into mariaDbSubjectUuid; select uuid_generate_v4() into pgSqlInstanceUuid; select uuid_generate_v4() into pgSqlSubjectUuid; debitorNumberSuffix := relatedDebitor.debitorNumberSuffix; defaultPrefix := relatedDebitor.defaultPrefix; insert into hs_hosting_asset (uuid, bookingitemuuid, type, parentAssetUuid, assignedToAssetUuid, identifier, caption, config) values (managedServerUuid, managedServerBI.uuid, 'MANAGED_SERVER', null, null, 'vm10' || debitorNumberSuffix, 'some ManagedServer', '{ "monit_max_cpu_usage": 90, "monit_max_ram_usage": 80, "monit_max_ssd_usage": 70 }'::jsonb), (uuid_generate_v4(), cloudServerBI.uuid, 'CLOUD_SERVER', null, null, 'vm20' || debitorNumberSuffix, 'another CloudServer', '{}'::jsonb), (managedWebspaceUuid, managedWebspaceBI.uuid, 'MANAGED_WEBSPACE', managedServerUuid, null, defaultPrefix || '01', 'some Webspace', '{}'::jsonb), (mariaDbInstanceUuid, null, 'MARIADB_INSTANCE', managedServerUuid, null, 'vm10' || debitorNumberSuffix || '.MariaDB.default', 'some default MariaDB instance','{}'::jsonb), (mariaDbSubjectUuid, null, 'MARIADB_USER', managedWebspaceUuid, mariaDbInstanceUuid, defaultPrefix || '01_web', 'some default MariaDB user', '{ "password": "