From 53bb2f2c36358c9d60bfc2ed0a6de0a63f04c08f Mon Sep 17 00:00:00 2001 From: eeginux Date: Sat, 9 Mar 2019 00:57:00 +0000 Subject: DB Schema Change for SO Catalog Support PNF and VNF with CDS Meta data Add new table for PNF resource/resource customization add support for blueprint name/version https://jira.onap.org/browse/SO-1606 Issue-ID: SO-1606 Change-Id: I6b8a438be1139859d1902197816dbb8cbcfc095f Signed-off-by: eeginux --- .../java/org/onap/so/db/catalog/ServiceTest.java | 89 ++++++++++++++-------- .../repository/PnfCustomizationRepositoryTest.java | 62 +++++++++++++++ .../data/repository/PnfResourceRepositoryTest.java | 50 ++++++++++++ .../repository/VnfCustomizationRepositoryTest.java | 78 +++++++++++++++++++ mso-catalog-db/src/test/resources/data.sql | 17 ++++- mso-catalog-db/src/test/resources/schema.sql | 40 ++++++++++ 6 files changed, 300 insertions(+), 36 deletions(-) create mode 100644 mso-catalog-db/src/test/java/org/onap/so/db/catalog/data/repository/PnfCustomizationRepositoryTest.java create mode 100644 mso-catalog-db/src/test/java/org/onap/so/db/catalog/data/repository/PnfResourceRepositoryTest.java create mode 100644 mso-catalog-db/src/test/java/org/onap/so/db/catalog/data/repository/VnfCustomizationRepositoryTest.java (limited to 'mso-catalog-db/src/test') diff --git a/mso-catalog-db/src/test/java/org/onap/so/db/catalog/ServiceTest.java b/mso-catalog-db/src/test/java/org/onap/so/db/catalog/ServiceTest.java index ffa56a9ce3..7028d9161c 100644 --- a/mso-catalog-db/src/test/java/org/onap/so/db/catalog/ServiceTest.java +++ b/mso-catalog-db/src/test/java/org/onap/so/db/catalog/ServiceTest.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -21,11 +21,14 @@ package org.onap.so.db.catalog; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; import java.util.List; import org.junit.Test; import org.junit.runner.RunWith; +import org.onap.so.db.catalog.beans.PnfResource; +import org.onap.so.db.catalog.beans.PnfResourceCustomization; import org.onap.so.db.catalog.beans.Service; import org.onap.so.db.catalog.data.repository.ServiceRepository; import org.springframework.beans.factory.annotation.Autowired; @@ -37,42 +40,62 @@ import org.springframework.test.context.junit4.SpringRunner; @SpringBootTest(classes = TestApplication.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) @ActiveProfiles("test") public class ServiceTest { - @Autowired - private ServiceRepository serviceRepo; - @Test - public void Find_LatestService_Test() { - Service latestVersionService = serviceRepo.findFirstByModelNameOrderByModelVersionDesc("MSOTADevInfra_vSAMP10a_Service"); - assertEquals("5df8b6de-2083-11e7-93ae-92361f002675",latestVersionService.getModelUUID()); - } + @Autowired + private ServiceRepository serviceRepo; + @Test + public void Find_LatestService_Test() { + Service latestVersionService = serviceRepo + .findFirstByModelNameOrderByModelVersionDesc("MSOTADevInfra_vSAMP10a_Service"); + assertEquals("5df8b6de-2083-11e7-93ae-92361f002675", latestVersionService.getModelUUID()); + } - @Test - public void Find_LatestService_Test_2() { - Service latestVersionService = serviceRepo.findByModelNameOrderByModelVersionDesc("MSOTADevInfra_vSAMP10a_Service"); - assertEquals("5df8b6de-2083-11e7-93ae-92361f002675",latestVersionService.getModelUUID()); - } + @Test + public void Find_LatestService_Test_2() { + Service latestVersionService = serviceRepo + .findByModelNameOrderByModelVersionDesc("MSOTADevInfra_vSAMP10a_Service"); + assertEquals("5df8b6de-2083-11e7-93ae-92361f002675", latestVersionService.getModelUUID()); + } - @Test - public void Find_LatestService_Test_Invariant_UUID() { - List latestVersionService = serviceRepo.findByModelInvariantUUIDOrderByModelVersionDesc("9647dfc4-2083-11e7-93ae-92361f002671"); - assertEquals("5df8b6de-2083-11e7-93ae-92361f002675",latestVersionService.get(0).getModelUUID()); - assertEquals("5df8b6de-2083-11e7-93ae-92361f002674",latestVersionService.get(1).getModelUUID()); - assertEquals("5df8b6de-2083-11e7-93ae-92361f002673",latestVersionService.get(2).getModelUUID()); - assertEquals("5df8b6de-2083-11e7-93ae-92361f002672",latestVersionService.get(3).getModelUUID()); - assertEquals("5df8b6de-2083-11e7-93ae-92361f002671",latestVersionService.get(4).getModelUUID()); - } + @Test + public void Find_LatestService_Test_Invariant_UUID() { + List latestVersionService = serviceRepo + .findByModelInvariantUUIDOrderByModelVersionDesc("9647dfc4-2083-11e7-93ae-92361f002671"); + assertEquals("5df8b6de-2083-11e7-93ae-92361f002675", latestVersionService.get(0).getModelUUID()); + assertEquals("5df8b6de-2083-11e7-93ae-92361f002674", latestVersionService.get(1).getModelUUID()); + assertEquals("5df8b6de-2083-11e7-93ae-92361f002673", latestVersionService.get(2).getModelUUID()); + assertEquals("5df8b6de-2083-11e7-93ae-92361f002672", latestVersionService.get(3).getModelUUID()); + assertEquals("5df8b6de-2083-11e7-93ae-92361f002671", latestVersionService.get(4).getModelUUID()); + } - @Test - public void Find_LatestService_Test_4() { - Service latestVersionService = serviceRepo.findOneByModelUUIDOrderByModelVersionDesc("5df8b6de-2083-11e7-93ae-92361f002671"); - assertEquals("5df8b6de-2083-11e7-93ae-92361f002671",latestVersionService.getModelUUID()); - } + @Test + public void Find_LatestService_Test_4() { + Service latestVersionService = serviceRepo + .findOneByModelUUIDOrderByModelVersionDesc("5df8b6de-2083-11e7-93ae-92361f002671"); + assertEquals("5df8b6de-2083-11e7-93ae-92361f002671", latestVersionService.getModelUUID()); + } - @Test - public void Find_LatestService_Test_5() { - Service latestVersionService = serviceRepo.findFirstByModelInvariantUUIDOrderByModelVersionDesc("9647dfc4-2083-11e7-93ae-92361f002671"); - assertEquals("5df8b6de-2083-11e7-93ae-92361f002675",latestVersionService.getModelUUID()); - } + @Test + public void Find_LatestService_Test_5() { + Service latestVersionService = serviceRepo + .findFirstByModelInvariantUUIDOrderByModelVersionDesc("9647dfc4-2083-11e7-93ae-92361f002671"); + assertEquals("5df8b6de-2083-11e7-93ae-92361f002675", latestVersionService.getModelUUID()); + } + + + @Test + public void findByModelNameOrderByModelVersionDesc_ValidModelName_ExpectedOutput() { + Service latestVersionService = serviceRepo.findByModelNameOrderByModelVersionDesc("PNF_routing_service"); + assertEquals("5df8b6de-2083-11e7-93ae-92361f002676", latestVersionService.getModelUUID()); + } + + @Test + public void findByModelInvariantUUIDOrderByModelVersionDesc_ValidInvariantUuid_ExpectedOutput() { + List services = serviceRepo + .findByModelInvariantUUIDOrderByModelVersionDesc("9647dfc4-2083-11e7-93ae-92361f002676"); + assertEquals("One PNF service found", 1, services.size()); + assertEquals("5df8b6de-2083-11e7-93ae-92361f002676", services.get(0).getModelUUID()); + } } diff --git a/mso-catalog-db/src/test/java/org/onap/so/db/catalog/data/repository/PnfCustomizationRepositoryTest.java b/mso-catalog-db/src/test/java/org/onap/so/db/catalog/data/repository/PnfCustomizationRepositoryTest.java new file mode 100644 index 0000000000..c5e95fcfbc --- /dev/null +++ b/mso-catalog-db/src/test/java/org/onap/so/db/catalog/data/repository/PnfCustomizationRepositoryTest.java @@ -0,0 +1,62 @@ +/* + * ============LICENSE_START======================================================= + * Copyright (C) 2019 Nordix Foundation. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * SPDX-License-Identifier: Apache-2.0 + * ============LICENSE_END========================================================= + */ + +package org.onap.so.db.catalog.data.repository; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; + +import org.junit.Test; +import org.onap.so.db.catalog.BaseTest; +import org.onap.so.db.catalog.beans.PnfResource; +import org.onap.so.db.catalog.beans.PnfResourceCustomization; +import org.onap.so.db.catalog.exceptions.NoEntityFoundException; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.util.CollectionUtils; + +import java.util.List; + +public class PnfCustomizationRepositoryTest extends BaseTest { + + @Autowired + private PnfCustomizationRepository pnfCustomizationRepository; + + @Test + public void findById_ValidUuid_ExpectedOutput() throws Exception { + PnfResourceCustomization pnfResourceCustomization = pnfCustomizationRepository + .findById("68dc9a92-214c-11e7-93ae-92361f002680") + .orElseThrow(() -> new NoEntityFoundException("Cannot Find Operation")); + checkPnfResourceCustomization(pnfResourceCustomization); + } + + private void checkPnfResourceCustomization(PnfResourceCustomization pnfResourceCustomization) { + assertEquals("modelInstanceName", "PNF routing", pnfResourceCustomization.getModelInstanceName()); + assertEquals("blueprintName", "test_configuration_restconf", pnfResourceCustomization.getBlueprintName()); + assertEquals("blueprintVersion", "1.0.0", pnfResourceCustomization.getBlueprintVersion()); + PnfResource pnfResource = pnfResourceCustomization.getPnfResources(); + assertNotNull(pnfResource); + + assertEquals("PNFResource modelUUID", "ff2ae348-214a-11e7-93ae-92361f002680", pnfResource.getModelUUID()); + assertEquals("PNFResource modelInvariantUUID", "2fff5b20-214b-11e7-93ae-92361f002680", + pnfResource.getModelInvariantUUID()); + assertEquals("PNFResource modelVersion", "1.0", pnfResource.getModelVersion()); + assertEquals("PNFResource orchestration mode", "", pnfResource.getOrchestrationMode()); + } +} diff --git a/mso-catalog-db/src/test/java/org/onap/so/db/catalog/data/repository/PnfResourceRepositoryTest.java b/mso-catalog-db/src/test/java/org/onap/so/db/catalog/data/repository/PnfResourceRepositoryTest.java new file mode 100644 index 0000000000..4dde3b25df --- /dev/null +++ b/mso-catalog-db/src/test/java/org/onap/so/db/catalog/data/repository/PnfResourceRepositoryTest.java @@ -0,0 +1,50 @@ +/* + * ============LICENSE_START======================================================= + * Copyright (C) 2019 Nordix Foundation. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * SPDX-License-Identifier: Apache-2.0 + * ============LICENSE_END========================================================= + */ + +package org.onap.so.db.catalog.data.repository; + +import static org.junit.Assert.assertEquals; + +import org.junit.Test; +import org.onap.so.db.catalog.BaseTest; +import org.onap.so.db.catalog.beans.PnfResource; +import org.onap.so.db.catalog.exceptions.NoEntityFoundException; +import org.springframework.beans.factory.annotation.Autowired; + +public class PnfResourceRepositoryTest extends BaseTest { + + @Autowired + private PnfResourceRepository pnfResourceRepository; + + @Test + public void findResourceById_validUuid_expectedOutput() throws Exception { + + PnfResource pnfResource = pnfResourceRepository.findById("ff2ae348-214a-11e7-93ae-92361f002680") + .orElseThrow(() -> new NoEntityFoundException("Cannot Find Entity")); + checkPnfResource(pnfResource); + } + + private void checkPnfResource(PnfResource pnfResource) { + assertEquals("PNFResource modelUUID", "ff2ae348-214a-11e7-93ae-92361f002680", pnfResource.getModelUUID()); + assertEquals("PNFResource modelInvariantUUID", "2fff5b20-214b-11e7-93ae-92361f002680", + pnfResource.getModelInvariantUUID()); + assertEquals("PNFResource modelVersion", "1.0", pnfResource.getModelVersion()); + assertEquals("PNFResource orchestration mode", "", pnfResource.getOrchestrationMode()); + } +} \ No newline at end of file diff --git a/mso-catalog-db/src/test/java/org/onap/so/db/catalog/data/repository/VnfCustomizationRepositoryTest.java b/mso-catalog-db/src/test/java/org/onap/so/db/catalog/data/repository/VnfCustomizationRepositoryTest.java new file mode 100644 index 0000000000..8e2e1e0446 --- /dev/null +++ b/mso-catalog-db/src/test/java/org/onap/so/db/catalog/data/repository/VnfCustomizationRepositoryTest.java @@ -0,0 +1,78 @@ +/* + * ============LICENSE_START======================================================= + * Copyright (C) 2019 Nordix Foundation. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * SPDX-License-Identifier: Apache-2.0 + * ============LICENSE_END========================================================= + */ + +package org.onap.so.db.catalog.data.repository; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; + +import org.junit.Test; +import org.onap.so.db.catalog.BaseTest; +import org.onap.so.db.catalog.beans.VnfResource; +import org.onap.so.db.catalog.beans.VnfResourceCustomization; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.util.CollectionUtils; + +import java.util.List; + + +public class VnfCustomizationRepositoryTest extends BaseTest { + + @Autowired + private VnfCustomizationRepository vnfCustomizationRepository; + + @Test + public void findByModelCustomizationUUID_ValidUuid_ExpectedOutput() throws Exception { + List vnfCustomizationList = vnfCustomizationRepository + .findByModelCustomizationUUID("68dc9a92-214c-11e7-93ae-92361f002671"); + assertFalse(CollectionUtils.isEmpty(vnfCustomizationList)); + assertEquals("output contains one entity", 1, vnfCustomizationList.size()); + + checkVnfResourceCustomization(vnfCustomizationList.get(0)); + } + + @Test + public void findOneByModelCustomizationUUID_ValidUuid_ExpectedOutput() throws Exception { + VnfResourceCustomization vnfResourceCustomization = vnfCustomizationRepository + .findOneByModelCustomizationUUID("68dc9a92-214c-11e7-93ae-92361f002671"); + checkVnfResourceCustomization(vnfResourceCustomization); + } + + @Test + public void findByModelInstanceNameAndVnfResources_ValidNameAndUuid_ExpectedOutput() throws Exception { + VnfResourceCustomization vnfResourceCustomization = vnfCustomizationRepository + .findByModelInstanceNameAndVnfResources("vSAMP10a 1", "ff2ae348-214a-11e7-93ae-92361f002671"); + checkVnfResourceCustomization(vnfResourceCustomization); + } + + private void checkVnfResourceCustomization(VnfResourceCustomization vnfResourceCustomization) { + assertEquals("modelInstanceName", "vSAMP10a 1", vnfResourceCustomization.getModelInstanceName()); + assertEquals("blueprintName", "test_configuration_restconf", vnfResourceCustomization.getBlueprintName()); + assertEquals("blueprintVersion", "1.0.0", vnfResourceCustomization.getBlueprintVersion()); + VnfResource vnfResource = vnfResourceCustomization.getVnfResources(); + assertNotNull(vnfResource); + + assertEquals("VNFResource modelUUID", "ff2ae348-214a-11e7-93ae-92361f002671", vnfResource.getModelUUID()); + assertEquals("VNFResource modelInvariantUUID", "2fff5b20-214b-11e7-93ae-92361f002671", + vnfResource.getModelInvariantUUID()); + assertEquals("VNFResource modelVersion", "1.0", vnfResource.getModelVersion()); + assertEquals("VNFResource orchestration mode", "HEAT", vnfResource.getOrchestrationMode()); + } +} diff --git a/mso-catalog-db/src/test/resources/data.sql b/mso-catalog-db/src/test/resources/data.sql index 14834ea963..a59137d023 100644 --- a/mso-catalog-db/src/test/resources/data.sql +++ b/mso-catalog-db/src/test/resources/data.sql @@ -44,9 +44,8 @@ insert into heat_environment(artifact_uuid, name, version, description, body, ar insert into vnf_resource(orchestration_mode, description, creation_timestamp, model_uuid, aic_version_min, aic_version_max, model_invariant_uuid, model_version, model_name, tosca_node_type, heat_template_artifact_uuid) values ('HEAT', '1607 vSAMP10a - inherent network', '2017-04-14 21:46:28', 'ff2ae348-214a-11e7-93ae-92361f002671', '', '', '2fff5b20-214b-11e7-93ae-92361f002671', '1.0', 'vSAMP10a', 'VF', null); -insert into vnf_resource_customization(model_customization_uuid, model_instance_name, min_instances, max_instances, availability_zone_max_count, nf_type, nf_role, nf_function, nf_naming_code, creation_timestamp, vnf_resource_model_uuid, multi_stage_design) values -('68dc9a92-214c-11e7-93ae-92361f002671', 'vSAMP10a 1', '0', '0', '0', 'vSAMP', 'vSAMP', 'vSAMP', 'vSAMP', '2017-05-26 15:08:24', 'ff2ae348-214a-11e7-93ae-92361f002671', null); - +insert into vnf_resource_customization(model_customization_uuid, model_instance_name, min_instances, max_instances, availability_zone_max_count, nf_type, nf_role, nf_function, nf_naming_code, creation_timestamp, vnf_resource_model_uuid, multi_stage_design, cds_blueprint_name, cds_blueprint_version) values +('68dc9a92-214c-11e7-93ae-92361f002671', 'vSAMP10a 1', '0', '0', '0', 'vSAMP', 'vSAMP', 'vSAMP', 'vSAMP', '2017-05-26 15:08:24', 'ff2ae348-214a-11e7-93ae-92361f002671', null, "test_configuration_restconf", "1.0.0"); insert into vf_module(model_uuid, model_invariant_uuid, model_version, model_name, description, is_base, heat_template_artifact_uuid, vol_heat_template_artifact_uuid, creation_timestamp, vnf_resource_model_uuid) values @@ -759,3 +758,15 @@ VALUES ( '1', 'testPolicyName', '2018-07-17 14:05:08', 'c59a41ca-9b3b-11e8-98d0-529269fb1459'); + +insert into service(model_uuid, model_name, model_invariant_uuid, model_version, description, creation_timestamp, tosca_csar_artifact_uuid, service_type, service_role, environment_context, workload_context) values +('5df8b6de-2083-11e7-93ae-92361f002676', 'PNF_routing_service', '9647dfc4-2083-11e7-93ae-92361f002676', '1.0', 'PNF service', '2019-03-08 12:00:29', null, 'NA', 'NA', 'Luna', 'Oxygen'); + +insert into pnf_resource(orchestration_mode, description, creation_timestamp, model_uuid, model_invariant_uuid, model_version, model_name, tosca_node_type) values +('', 'PNF routing', '2019-03-08 12:00:28', 'ff2ae348-214a-11e7-93ae-92361f002680', '2fff5b20-214b-11e7-93ae-92361f002680', '1.0', 'PNF resource', null); + +insert into pnf_resource_customization(model_customization_uuid, model_instance_name, nf_type, nf_role, nf_function, nf_naming_code, creation_timestamp, pnf_resource_model_uuid, multi_stage_design, cds_blueprint_name, cds_blueprint_version) values +('68dc9a92-214c-11e7-93ae-92361f002680', 'PNF routing', 'routing', 'routing', 'routing', 'routing', '2019-03-08 12:00:29', 'ff2ae348-214a-11e7-93ae-92361f002680', null, "test_configuration_restconf", "1.0.0"); + +insert into pnf_resource_customization_to_service(service_model_uuid, resource_model_customization_uuid) values +('5df8b6de-2083-11e7-93ae-92361f002676', '68dc9a92-214c-11e7-93ae-92361f002680'); \ No newline at end of file diff --git a/mso-catalog-db/src/test/resources/schema.sql b/mso-catalog-db/src/test/resources/schema.sql index d20a9adb7e..6bd9baee80 100644 --- a/mso-catalog-db/src/test/resources/schema.sql +++ b/mso-catalog-db/src/test/resources/schema.sql @@ -437,6 +437,8 @@ create table `vnf_resource_customization` ( `vnf_resource_model_uuid` varchar(200) not null, `multi_stage_design` varchar(20) default null, `resource_input` varchar(20000) default null, + `cds_blueprint_name` varchar(200) default null, + `cds_blueprint_version` varchar(20) default null, primary key (`model_customization_uuid`), key `fk_vnf_resource_customization__vnf_resource1_idx` (`vnf_resource_model_uuid`), constraint `fk_vnf_resource_customization__vnf_resource1` foreign key (`vnf_resource_model_uuid`) references `vnf_resource` (`model_uuid`) on delete cascade on update cascade @@ -946,3 +948,41 @@ CREATE TABLE IF NOT EXISTS vnf_vfmodule_cvnfc_configuration_customization ( REFERENCES `vnf_resource_customization` (`MODEL_CUSTOMIZATION_UUID`) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE=INNODB AUTO_INCREMENT=20654 DEFAULT CHARACTER SET=LATIN1; + +CREATE TABLE IF NOT EXISTS `pnf_resource` ( + `ORCHESTRATION_MODE` varchar(20) NOT NULL DEFAULT 'HEAT', + `DESCRIPTION` varchar(1200) DEFAULT NULL, + `CREATION_TIMESTAMP` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, + `MODEL_UUID` varchar(200) NOT NULL, + `MODEL_INVARIANT_UUID` varchar(200) DEFAULT NULL, + `MODEL_VERSION` varchar(20) NOT NULL, + `MODEL_NAME` varchar(200) DEFAULT NULL, + `TOSCA_NODE_TYPE` varchar(200) DEFAULT NULL, + `RESOURCE_CATEGORY` varchar(200) DEFAULT NULL, + `RESOURCE_SUB_CATEGORY` varchar(200) DEFAULT NULL, + PRIMARY KEY (`MODEL_UUID`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; + +CREATE TABLE IF NOT EXISTS `pnf_resource_customization` ( + `MODEL_CUSTOMIZATION_UUID` varchar(200) NOT NULL, + `MODEL_INSTANCE_NAME` varchar(200) NOT NULL, + `NF_TYPE` varchar(200) DEFAULT NULL, + `NF_ROLE` varchar(200) DEFAULT NULL, + `NF_FUNCTION` varchar(200) DEFAULT NULL, + `NF_NAMING_CODE` varchar(200) DEFAULT NULL, + `CREATION_TIMESTAMP` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, + `PNF_RESOURCE_MODEL_UUID` varchar(200) NOT NULL, + `MULTI_STAGE_DESIGN` varchar(20) DEFAULT NULL, + `RESOURCE_INPUT` varchar(2000) DEFAULT NULL, + `CDS_BLUEPRINT_NAME` varchar(200) DEFAULT NULL, + `CDS_BLUEPRINT_VERSION` varchar(20) DEFAULT NULL, + PRIMARY KEY (`MODEL_CUSTOMIZATION_UUID`), + KEY `fk_pnf_resource_customization__pnf_resource1_idx` (`PNF_RESOURCE_MODEL_UUID`), + CONSTRAINT `fk_pnf_resource_customization__pnf_resource1` FOREIGN KEY (`PNF_RESOURCE_MODEL_UUID`) REFERENCES `pnf_resource` (`MODEL_UUID`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=latin1; + +CREATE TABLE IF NOT EXISTS `pnf_resource_customization_to_service` ( + `SERVICE_MODEL_UUID` varchar(200) NOT NULL, + `RESOURCE_MODEL_CUSTOMIZATION_UUID` varchar(200) NOT NULL, + PRIMARY KEY (`SERVICE_MODEL_UUID`,`RESOURCE_MODEL_CUSTOMIZATION_UUID`) +)ENGINE=InnoDB DEFAULT CHARSET=latin1; \ No newline at end of file -- cgit 1.2.3-korg