aboutsummaryrefslogtreecommitdiffstats
path: root/asdc-controller/src/test/resources
diff options
context:
space:
mode:
authorBenjamin, Max (mb388a) <mb388a@us.att.com>2018-07-30 15:56:09 -0400
committerBenjamin, Max (mb388a) <mb388a@us.att.com>2018-07-31 11:09:25 -0400
commit5a6a6de6f1a26a1897e4917a0df613e25a24eb70 (patch)
tree59a968f27b4b603aacc9d5e7b51fb598aeec5321 /asdc-controller/src/test/resources
parentb6dc38501f3b746426b42d9de4cc883d894149e8 (diff)
Containerization feature of SO
Change-Id: I95381232eeefcd247a66a5cec370a8ce1c288e18 Issue-ID: SO-670 Signed-off-by: Benjamin, Max (mb388a) <mb388a@us.att.com>
Diffstat (limited to 'asdc-controller/src/test/resources')
-rw-r--r--asdc-controller/src/test/resources/ASDC/.gitignore1
-rw-r--r--asdc-controller/src/test/resources/application-test.yaml88
-rw-r--r--asdc-controller/src/test/resources/data.sql64
-rw-r--r--asdc-controller/src/test/resources/logback-test.xml78
-rw-r--r--asdc-controller/src/test/resources/mso-with-NULL.json6
-rw-r--r--asdc-controller/src/test/resources/mso.asdc.clients.properties2
-rw-r--r--asdc-controller/src/test/resources/mso.asdc.json10
-rw-r--r--asdc-controller/src/test/resources/mso.json6
-rw-r--r--asdc-controller/src/test/resources/mso4-with-TLS.json6
-rw-r--r--asdc-controller/src/test/resources/resource-examples/TempNetworkHeat/notification.json21
-rw-r--r--asdc-controller/src/test/resources/resource-examples/TempNetworkHeat/service-AdigVpeTenantOamNetworkIst-csar.csarbin0 -> 29084 bytes
-rw-r--r--asdc-controller/src/test/resources/resource-examples/allottedresource/notif-portm.json36
-rw-r--r--asdc-controller/src/test/resources/resource-examples/allottedresource/service-Service1104-csar.csarbin0 -> 27681 bytes
-rw-r--r--asdc-controller/src/test/resources/resource-examples/moduleTest/base_TEST.env6
-rw-r--r--asdc-controller/src/test/resources/resource-examples/moduleTest/base_TEST.yaml44
-rw-r--r--asdc-controller/src/test/resources/resource-examples/moduleTest/notif-structure.json67
-rw-r--r--asdc-controller/src/test/resources/resource-examples/moduleTest/service-Testalts1-csar.csarbin0 -> 51765 bytes
-rw-r--r--asdc-controller/src/test/resources/resource-examples/moduleTest/testalts0_modules.json25
-rw-r--r--asdc-controller/src/test/resources/resource-examples/multipleModules/Notification_MultipleModules.txt302
-rw-r--r--asdc-controller/src/test/resources/resource-examples/multipleModules/ServiceResponse.json458
-rw-r--r--asdc-controller/src/test/resources/resource-examples/multipleModules/notif-structure.json96
-rw-r--r--asdc-controller/src/test/resources/resource-examples/multipleModules/pxmc_base.env2
-rw-r--r--asdc-controller/src/test/resources/resource-examples/multipleModules/pxmc_base.yaml45
-rw-r--r--asdc-controller/src/test/resources/resource-examples/multipleModules/pxmc_mmn.env18
-rw-r--r--asdc-controller/src/test/resources/resource-examples/multipleModules/pxmc_mmn.yaml152
-rw-r--r--asdc-controller/src/test/resources/resource-examples/multipleModules/pxmc_mmn_volume.env9
-rw-r--r--asdc-controller/src/test/resources/resource-examples/multipleModules/pxmc_mmn_volume.yaml86
-rw-r--r--asdc-controller/src/test/resources/resource-examples/multipleModules/pxmc_vmt.env17
-rw-r--r--asdc-controller/src/test/resources/resource-examples/multipleModules/pxmc_vmt.yaml128
-rw-r--r--asdc-controller/src/test/resources/resource-examples/multipleModules/service-VfZrdm5bpxmc02092017Service-csar.csarbin0 -> 97867 bytes
-rw-r--r--asdc-controller/src/test/resources/resource-examples/multipleModules/testStructure.json217
-rw-r--r--asdc-controller/src/test/resources/resource-examples/multipleModules/user_data_zrdm5bpxmc02mmn001.txt412
-rw-r--r--asdc-controller/src/test/resources/resource-examples/multipleModules/user_data_zrdm5bpxmc02vmt001.txt289
-rw-r--r--asdc-controller/src/test/resources/resource-examples/multipleModules/vfzrdm5bpxmc02092017vf0_modules.json75
-rw-r--r--asdc-controller/src/test/resources/schema.sql1039
35 files changed, 3747 insertions, 58 deletions
diff --git a/asdc-controller/src/test/resources/ASDC/.gitignore b/asdc-controller/src/test/resources/ASDC/.gitignore
new file mode 100644
index 0000000000..e54786bc77
--- /dev/null
+++ b/asdc-controller/src/test/resources/ASDC/.gitignore
@@ -0,0 +1 @@
+/*.csar
diff --git a/asdc-controller/src/test/resources/application-test.yaml b/asdc-controller/src/test/resources/application-test.yaml
new file mode 100644
index 0000000000..99ca630695
--- /dev/null
+++ b/asdc-controller/src/test/resources/application-test.yaml
@@ -0,0 +1,88 @@
+# will be used as entry in DB to say SITE OFF/ON for healthcheck
+
+server-port: 8080
+ssl-enable: false
+
+
+
+spring:
+ datasource:
+ url: jdbc:mariadb://localhost:3307/catalogdb
+ username: root
+ password: password
+ driver-class-name: org.mariadb.jdbc.Driver
+ initialize: true
+ initialization-mode: never
+ jpa:
+ generate-ddl: false
+ show-sql: false
+ hibernate:
+ ddl-auto: none
+ naming-strategy: org.hibernate.cfg.ImprovedNamingStrategy
+ enable-lazy-load-no-trans: true
+ database-platform: org.hibernate.dialect.MySQL5InnoDBDialect
+ security:
+ usercredentials:
+ -
+ username: test
+ password: '$2a$12$Zi3AuYcZoZO/gBQyUtST2.F5N6HqcTtaNci2Et.ufsQhski56srIu'
+ role: Asdc-Client
+
+mariaDB4j:
+ dataDir:
+ port: 3307
+ databaseName: catalogdb
+ databaseName2: requestdb
+
+request:
+ datasource:
+ url: jdbc:mariadb://localhost:3307/requestdb
+ username: root
+ password: password
+ driver-class-name: org.mariadb.jdbc.Driver
+
+
+#Actuator
+management:
+ endpoints:
+ enabled-by-default: false
+ endpoint:
+ info:
+ enabled: true
+
+mso:
+ logPath: logs
+ catalog:
+ db:
+ spring:
+ endpoint: "http://localhost:"
+ db:
+ auth: Basic YnBlbDptc28tZGItMTUwNyE=
+ site-name: siteName
+ asdc-connections:
+ asdc-controller1:
+ user: msopreist
+ consumerGroup: msoasdc-id-local
+ consumerId: msoasdc-id-local
+ environmentName: Pre-IST
+ asdcAddress: localhost:8443
+ password: 658D6E9E0C087547284339181615C358
+ pollingInterval: 30
+ pollingTimeout: 30
+ relevantArtifactTypes: HEAT,HEAT_ENV,HEAT_VOL
+ activateServerTLSAuth: false
+ keyStorePassword:
+ keyStorePath:
+ watchDogTimeout: 1
+ isFilterInEmptyResources: true
+ messageBusAddress: localhost,localhost
+ asdc:
+ config:
+ key: 566B754875657232314F5548556D3665
+ components:
+ count: 3,
+ componentNames: SO,AAI,SDNC
+ scheduling:
+ enabled: false
+ aai:
+ endpoint: http://localhost:${wiremock.server.port}
diff --git a/asdc-controller/src/test/resources/data.sql b/asdc-controller/src/test/resources/data.sql
new file mode 100644
index 0000000000..681ee3bda7
--- /dev/null
+++ b/asdc-controller/src/test/resources/data.sql
@@ -0,0 +1,64 @@
+use catalogdb;
+
+insert into heat_template(artifact_uuid, name, version, description, body, timeout_minutes, artifact_checksum, creation_timestamp) values ('ff874603-4222-11e7-9252-005056850d2e', 'module_mns_zrdm3frwl01exn_01_rgvm_1.yml', '1', 'created from csar', 'heat_template_version: 2013-05-23 description: heat template that creates TEST VNF parameters: TEST_server_name: type: string label: TEST server name description: TEST server name TEST_image_name: type: string label: image name description: TEST image name TEST_flavor_name: type: string label: TEST flavor name description: flavor name of TEST instance TEST_Role_net_name: type: string label: TEST network name description: TEST network name TEST_vnf_id: type: string label: TEST VNF Id description: TEST VNF Id resources:TEST: type: OS::Nova::Server properties: name: { get_param: TEST_server_name } image: { get_param: TEST_image_name } flavor: { get_param: TEST_flavor_name } networks: - port: { get_resource: TEST_port_0} metadata: vnf_id: {get_param: TEST_vnf_id} TEST_port_0: type: OS::Neutron::Port properties: network: { get_param: TEST_Role_net_name }', '60', 'MANUAL RECORD', '2017-01-21 23:26:56');
+
+insert into temp_network_heat_template_lookup(network_resource_model_name, heat_template_artifact_uuid, aic_version_min, aic_version_max) values
+('CONTRAIL30_GNDIRECT', 'ff874603-4222-11e7-9252-005056850d2e', '3', '3'),
+('MSO_Example', 'ff874603-4222-11e7-9252-005056850d2e', '3', '3'),
+('ExtVL', 'ff874603-4222-11e7-9252-005056850d2e', '3', '3'),
+('AIC30_CONTRAIL_BASIC', 'ff874603-4222-11e7-9252-005056850d2e', '3', '3'),
+('CONTRAIL30_BASIC', 'ff874603-4222-11e7-9252-005056850d2e', '3', '3');
+
+insert into network_resource(model_uuid, model_name, model_invariant_uuid, description, heat_template_artifact_uuid, neutron_network_type, model_version, tosca_node_type, aic_version_min, aic_version_max, orchestration_mode, creation_timestamp) values
+('10b36f65-f4e6-4be6-ae49-9596dc1c47fc', 'CONTRAIL30_GNDIRECT', 'ce4ff476-9641-4e60-b4d5-b4abbec1271d', 'Contrail 30 GNDIRECT NW', 'ff874603-4222-11e7-9252-005056850d2e', 'BASIC', '1.0', '', '3.0', '', 'HEAT', '2017-01-17 20:35:05');
+
+insert into network_resource_customization(model_customization_uuid, model_instance_name, network_technology, network_type, network_role, network_scope, creation_timestamp, network_resource_model_uuid) values
+('3bdbb104-476c-483e-9f8b-c095b3d308ac', 'CONTRAIL30_GNDIRECT 9', '', '', '', '', '2017-04-19 14:28:32', '10b36f65-f4e6-4be6-ae49-9596dc1c47fc');
+
+
+
+INSERT INTO temp_network_heat_template_lookup(NETWORK_RESOURCE_MODEL_NAME, HEAT_TEMPLATE_ARTIFACT_UUID, AIC_VERSION_MIN, AIC_VERSION_MAX) VALUES
+('TENANT_OAM_NETWORK', 'ff874603-4222-11e7-9252-005056850d2e', '3.0', NULL);
+INSERT INTO temp_network_heat_template_lookup(NETWORK_RESOURCE_MODEL_NAME, HEAT_TEMPLATE_ARTIFACT_UUID, AIC_VERSION_MIN, AIC_VERSION_MAX) VALUES
+('SRIOV_PROVIDER_NETWORK', 'ff874603-4222-11e7-9252-005056850d2e', '3.0', NULL);
+
+
+--------START Request DB INSERTS --------
+insert into requestdb.watchdog_distributionid_status(DISTRIBUTION_ID, DISTRIBUTION_ID_STATUS) values
+('watchdogTestStatusSuccess', 'SUCCESS'),
+('watchdogTestStatusFailure', 'FAILURE'),
+('watchdogTestStatusTimeout', 'TIMEOUT'),
+('watchdogTestStatusIncomplete', 'INCOMPLETE'),
+('watchdogTestStatusException', 'EXCEPTION'),
+('watchdogTestStatusNull', 'NULL'),
+('testStatusSuccessTosca', 'SUCCESS'),
+('testStatusFailureTosca', 'FAILURE'),
+('testStatusTimeoutTosca', 'TIMEOUT'),
+('testStatusIncompleteTosca', 'INCOMPLETE'),
+('testStatusExceptionTosca', 'EXCEPTION'),
+('testStatusNullTosca', 'NULL');
+
+--WatchdogDistrubutionTest
+insert into requestdb.watchdog_per_component_distribution_status(DISTRIBUTION_ID, COMPONENT_NAME, COMPONENT_DISTRIBUTION_STATUS) values
+('watchdogTestStatusSuccess', 'SO', 'COMPONENT_DONE_OK'),
+('watchdogTestStatusSuccess', 'AAI', 'COMPONENT_DONE_OK'),
+('watchdogTestStatusSuccess', 'SDNC', 'COMPONENT_DONE_OK'),
+('watchdogTestStatusFailure', 'SO', 'COMPONENT_DONE_ERROR'),
+('watchdogTestStatusFailure', 'AAI', 'COMPONENT_DONE_ERROR'),
+('watchdogTestStatusFailure', 'SDNC', 'COMPONENT_DONE_ERROR'),
+('watchdogTestStatusException', 'SO', 'COMPONENT_MALFORMED'),
+('watchdogTestStatusException', 'AAI', 'COMPONENT_MALFORMED'),
+('watchdogTestStatusException', 'SDNC', 'COMPONENT_MALFORMED'),
+('testStatusSuccessTosca', 'SO', 'COMPONENT_DONE_OK'),
+('testStatusSuccessTosca', 'AAI', 'COMPONENT_DONE_OK'),
+('testStatusSuccessTosca', 'SDNC', 'COMPONENT_DONE_OK'),
+('testStatusFailureTosca', 'SO', 'COMPONENT_DONE_ERROR'),
+('testStatusFailureTosca', 'AAI', 'COMPONENT_DONE_ERROR'),
+('testStatusFailureTosca', 'SDNC', 'COMPONENT_DONE_ERROR'),
+('testStatusExceptionTosca', 'SO', 'COMPONENT_MALFORMED'),
+('testStatusExceptionTosca', 'AAI', 'COMPONENT_MALFORMED'),
+('testStatusExceptionTosca', 'SDNC', 'COMPONENT_MALFORMED');
+
+insert into requestdb.watchdog_service_mod_ver_id_lookup(DISTRIBUTION_ID, SERVICE_MODEL_VERSION_ID) values
+('watchdogTestStatusSuccess', '5df8b6de-2083-11e7-93ae-92361f002671'),
+('watchdogTestStatusNull', '00000000-0000-0000-0000-000000000000');
diff --git a/asdc-controller/src/test/resources/logback-test.xml b/asdc-controller/src/test/resources/logback-test.xml
index a23395fe1b..d74de50d60 100644
--- a/asdc-controller/src/test/resources/logback-test.xml
+++ b/asdc-controller/src/test/resources/logback-test.xml
@@ -1,47 +1,39 @@
-<!--
- ============LICENSE_START=======================================================
- ECOMP MSO
- ================================================================================
- Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
- ================================================================================
- 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.
- ============LICENSE_END=========================================================
- -->
-
-<configuration >
-
- <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
- <encoder>
- <pattern>%d{MM/dd-HH:mm:ss.SSS}|%X{RequestId}|%X{ServiceInstanceId}|%thread|%X{ServiceName}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}||%X{ServerIPAddress}|%X{ServerFQDN}|%X{RemoteHost}||%X{Timer}|%msg%n</pattern>
- </encoder>
- </appender>
-
-
- <logger name="com.att.eelf.audit" level="info" additivity="false">
- <appender-ref ref="STDOUT" />
- </logger>
-
- <logger name="com.att.eelf.metrics" level="info" additivity="false">
+<configuration>
+
+
+
+ <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+ <encoder>
+ <pattern>%d{HH:mm:ss.SSS} [%thread] |%X{RequestId}| %-5level
+ %logger{1024} - %msg%n
+ </pattern>
+ </encoder>
+ </appender>
+
+ <logger name="com.att.ecomp.audit" level="info" additivity="false">
+ <appender-ref ref="STDOUT" />
+ </logger>
+
+ <logger name="com.att.eelf.metrics" level="info" additivity="false">
<appender-ref ref="STDOUT" />
- </logger>
+ </logger>
- <logger name="com.att.eelf.error" level="trace" additivity="false">
- <appender-ref ref="STDOUT" />
- </logger>
+ <logger name="com.att.eelf.error" level="WARN" additivity="false">
+ <appender-ref ref="STDOUT" />
+ </logger>
+
+ <logger name="org.onap" level="${so.log.level:-DEBUG}" additivity="false">
+ <appender-ref ref="STDOUT" />
+ </logger>
+
+
+ <logger name="ch.vorburger" level="WARN" additivity="false">
+ <appender-ref ref="STDOUT" />
+ </logger>
+
+ <root level="WARN">
+ <appender-ref ref="STDOUT" />
+ </root>
- <root level="info">
- <appender-ref ref="STDOUT" />
- </root>
-
-</configuration>
+</configuration> \ No newline at end of file
diff --git a/asdc-controller/src/test/resources/mso-with-NULL.json b/asdc-controller/src/test/resources/mso-with-NULL.json
index df215e691e..aeb740f31c 100644
--- a/asdc-controller/src/test/resources/mso-with-NULL.json
+++ b/asdc-controller/src/test/resources/mso-with-NULL.json
@@ -9,9 +9,9 @@
"password": "1c551b8b5ab91fcd5a0907b11c304199",
"watchDogTimeout": "300",
"messageBusAddress": [
- "uebsb91sfdc.it.att.com",
- "uebsb92sfdc.it.att.com",
- "uebsb93sfdc.it.att.com"
+ "localhost",
+ "localhost",
+ "localhost"
],
"pollingInterval":10,
"pollingTimeout":30
diff --git a/asdc-controller/src/test/resources/mso.asdc.clients.properties b/asdc-controller/src/test/resources/mso.asdc.clients.properties
index e434dca366..05c4c0d8da 100644
--- a/asdc-controller/src/test/resources/mso.asdc.clients.properties
+++ b/asdc-controller/src/test/resources/mso.asdc.clients.properties
@@ -1,3 +1,3 @@
# This is a chef generated properties file! Manual updates will be overridden next chef-client run, ensure desired changes are in mso-config chef cookbook or chef env file.
# tenant isolation
-aai.endpoint=http://localhost:28090
+aai.endpoint=http://localhost:8089
diff --git a/asdc-controller/src/test/resources/mso.asdc.json b/asdc-controller/src/test/resources/mso.asdc.json
index cbc18e8f31..2112f8e890 100644
--- a/asdc-controller/src/test/resources/mso.asdc.json
+++ b/asdc-controller/src/test/resources/mso.asdc.json
@@ -1,5 +1,5 @@
-
-{
- "components.count": 2
-}
-
+
+{
+ "components.count": 2
+}
+
diff --git a/asdc-controller/src/test/resources/mso.json b/asdc-controller/src/test/resources/mso.json
index 6b6b98c7da..6d3f7a3233 100644
--- a/asdc-controller/src/test/resources/mso.json
+++ b/asdc-controller/src/test/resources/mso.json
@@ -9,9 +9,9 @@
"password": "1c551b8b5ab91fcd5a0907b11c304199",
"watchDogTimeout": "300",
"messageBusAddress": [
- "uebsb91sfdc.it.att.com",
- "uebsb92sfdc.it.att.com",
- "uebsb93sfdc.it.att.com"
+ "localhost",
+ "localhost",
+ "localhost"
],
"pollingInterval":10,
"pollingTimeout":30
diff --git a/asdc-controller/src/test/resources/mso4-with-TLS.json b/asdc-controller/src/test/resources/mso4-with-TLS.json
index 825ad5b42a..e1b32b7d4a 100644
--- a/asdc-controller/src/test/resources/mso4-with-TLS.json
+++ b/asdc-controller/src/test/resources/mso4-with-TLS.json
@@ -12,9 +12,9 @@
"activateServerTLSAuth": true,
"watchDogTimeout": "300",
"messageBusAddress": [
- "uebsb91sfdc.it.att.com",
- "uebsb92sfdc.it.att.com",
- "uebsb93sfdc.it.att.com"
+ "localhost",
+ "localhost",
+ "localhost"
],
"keyStorePassword":"1c551b8b5ab91fcd5a0907b11c304199",
"keyStorePath": "/test"
diff --git a/asdc-controller/src/test/resources/resource-examples/TempNetworkHeat/notification.json b/asdc-controller/src/test/resources/resource-examples/TempNetworkHeat/notification.json
new file mode 100644
index 0000000000..68bdd25f67
--- /dev/null
+++ b/asdc-controller/src/test/resources/resource-examples/TempNetworkHeat/notification.json
@@ -0,0 +1,21 @@
+{
+ "distributionID": "e0d3c4b3-bae6-42cd-808c-385bb2ccf6de",
+ "resources": [],
+ "serviceArtifacts": [
+ {
+ "artifactChecksum": "MjI4ZmU3MGM1ZWM5MGQ4YjJkZDczMGUzZDMxN2M4NjY=",
+ "artifactDescription": "TOSCA definition package of the asset",
+ "artifactName": "service-AdigVpeTenantOamNetworkIst-csar.csar",
+ "artifactTimeout": "0",
+ "artifactType": "TOSCA_CSAR",
+ "artifactURL": "service-AdigVpeTenantOamNetworkIst-csar.csar",
+ "artifactUUID": "a218128c-4751-49d0-a74b-f502860033e5",
+ "artifactVersion": "2"
+ }
+ ],
+ "serviceDescription": "ADIG vPE Tenant OAM Network_IST",
+ "serviceInvariantUUID": "f905cea1-3a41-4233-b2d2-be453751b871",
+ "serviceName": "ADIG vPE Tenant OAM Network_IST",
+ "serviceUUID": "0bfd24c7-de9d-4297-8cb5-6f9d4a6c20d8",
+ "serviceVersion": "2.0"
+} \ No newline at end of file
diff --git a/asdc-controller/src/test/resources/resource-examples/TempNetworkHeat/service-AdigVpeTenantOamNetworkIst-csar.csar b/asdc-controller/src/test/resources/resource-examples/TempNetworkHeat/service-AdigVpeTenantOamNetworkIst-csar.csar
new file mode 100644
index 0000000000..2828043a91
--- /dev/null
+++ b/asdc-controller/src/test/resources/resource-examples/TempNetworkHeat/service-AdigVpeTenantOamNetworkIst-csar.csar
Binary files differ
diff --git a/asdc-controller/src/test/resources/resource-examples/allottedresource/notif-portm.json b/asdc-controller/src/test/resources/resource-examples/allottedresource/notif-portm.json
new file mode 100644
index 0000000000..fd8ac7be02
--- /dev/null
+++ b/asdc-controller/src/test/resources/resource-examples/allottedresource/notif-portm.json
@@ -0,0 +1,36 @@
+{
+ "serviceName": "service1104",
+ "serviceInvariantUUID": "ebcef23d-2ca3-474f-9381-3a15709538f5",
+ "serviceUUID": "9825d984-dfb0-4d2a-b5bd-3abcf477c4dc",
+ "serviceVersion": "1.0",
+ "serviceArtifacts":
+ [{
+ "artifactName": "service-Service1104-csar.csar",
+ "artifactType": "TOSCA_CSAR",
+ "artifactURL": "service-Service1104-csar.csar",
+ "artifactChecksum": "ZDc1MTcxMzk4ODk4N2U5MzMxOTgwMzYzZTI0MTg5Y2U\u003d",
+ "artifactDescription": "TOSCA representation of the asset",
+ "artifactTimeout": 0,
+ "artifactUUID": "123456-35a8-467f-b440-d0f6226b3516",
+ "artifactVersion": "5.0"
+ }],
+ "resources":
+ [
+ {
+ "resourceInstanceName": "testALTS 0",
+ "resourceInvariantUUID": "51c7fb99-642a-4c02-8d8d-e206fc170b6d",
+ "resourceCustomizationUUID": "364a5635-f63b-45f3-9c3d-14993d996e35",
+ "resourceName": "resourceName-1",
+ "resourceType": "VF",
+ "resourceUUID": "a81db5a3-7c23-4376-8c42-ec610aaea135",
+ "resourceVersion": "2.0",
+ "category": "Allotted Resource",
+ "subcategory": "Common Network Resources",
+ "artifacts":
+ []
+ }
+
+ ],
+ "serviceDescription": "sdfsf",
+ "distributionID": "35120a87-1f82-4276-9735-f6de5a244d65"
+} \ No newline at end of file
diff --git a/asdc-controller/src/test/resources/resource-examples/allottedresource/service-Service1104-csar.csar b/asdc-controller/src/test/resources/resource-examples/allottedresource/service-Service1104-csar.csar
new file mode 100644
index 0000000000..c8a447644c
--- /dev/null
+++ b/asdc-controller/src/test/resources/resource-examples/allottedresource/service-Service1104-csar.csar
Binary files differ
diff --git a/asdc-controller/src/test/resources/resource-examples/moduleTest/base_TEST.env b/asdc-controller/src/test/resources/resource-examples/moduleTest/base_TEST.env
new file mode 100644
index 0000000000..c72f90646e
--- /dev/null
+++ b/asdc-controller/src/test/resources/resource-examples/moduleTest/base_TEST.env
@@ -0,0 +1,6 @@
+parameters:
+ TEST_Role_net_name:
+ TEST_flavor_name:
+ TEST_image_name:
+ TEST_server_name:
+ TEST_vnf_id:
diff --git a/asdc-controller/src/test/resources/resource-examples/moduleTest/base_TEST.yaml b/asdc-controller/src/test/resources/resource-examples/moduleTest/base_TEST.yaml
new file mode 100644
index 0000000000..84f757ccba
--- /dev/null
+++ b/asdc-controller/src/test/resources/resource-examples/moduleTest/base_TEST.yaml
@@ -0,0 +1,44 @@
+heat_template_version: 2013-05-23
+
+description: heat template that creates TEST VNF
+
+parameters:
+ TEST_server_name:
+ type: string
+ label: TEST server name
+ description: TEST server name
+ TEST_image_name:
+ type: string
+ label: image name
+ description: TEST image name
+ TEST_flavor_name:
+ type: string
+ label: TEST flavor name
+ description: flavor name of TEST instance
+
+ TEST_Role_net_name:
+ type: string
+ label: TEST network name
+ description: TEST network name
+ TEST_vnf_id:
+ type: string
+ label: TEST VNF Id
+ description: TEST VNF Id
+
+resources:
+
+ TEST:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: TEST_server_name }
+ image: { get_param: TEST_image_name }
+ flavor: { get_param: TEST_flavor_name }
+ networks:
+ - port: { get_resource: TEST_port_0}
+ metadata:
+ vnf_id: {get_param: TEST_vnf_id}
+
+ TEST_port_0:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: TEST_Role_net_name }
diff --git a/asdc-controller/src/test/resources/resource-examples/moduleTest/notif-structure.json b/asdc-controller/src/test/resources/resource-examples/moduleTest/notif-structure.json
new file mode 100644
index 0000000000..b2f11c43eb
--- /dev/null
+++ b/asdc-controller/src/test/resources/resource-examples/moduleTest/notif-structure.json
@@ -0,0 +1,67 @@
+{
+ "serviceName": "testALTS1",
+ "serviceInvariantUUID": "155006dc-f0b4-4d6d-b217-72c75e819cdb",
+ "serviceUUID": "3e56620a-1566-4268-8629-58aae07df9e5",
+ "serviceVersion": "2.0",
+ "serviceArtifacts":
+ [{
+ "artifactName": "service-Testalts1-csar.csar",
+ "artifactType": "TOSCA_CSAR",
+ "artifactURL": "service-Testalts1-csar.csar",
+ "artifactChecksum": "NTdjNDdiMTU5YjVkNzQxYjNkZWQ2N2M5YTdiYjQ3MGI=",
+ "artifactDescription": "TOSCA representation of the asset",
+ "artifactTimeout": 0,
+ "artifactUUID": "9e2c10dc-a3a6-4799-b0a9-a128fbf7a9b1",
+ "artifactVersion": "2.0"
+ }],
+ "resources":
+ [
+ {
+ "resourceInstanceName": "testALTS 0",
+ "resourceInvariantUUID": "51c7fb99-642a-4c02-8d8d-e206fc170b6d",
+ "resourceCustomizationUUID": "364a5635-f63b-45f3-9c3d-14993d996e35",
+ "resourceName": "resourceName-1",
+ "resourceType": "VF",
+ "resourceUUID": "a81db5a3-7c23-4376-8c42-ec610aaea135",
+ "resourceVersion": "2.0",
+ "category": "Network L4+",
+ "subcategory": "Common Network Resources",
+ "artifacts":
+ [
+ {
+ "artifactChecksum": "ZGY5NzliMTI4NDA4NGYyOWIyYTA4N2NmYzZiYWU5MmM=",
+ "artifactDescription": "Auto-generated VF Modules information artifact",
+ "artifactName": "testalts0_modules.json",
+ "artifactType": "VF_MODULES_METADATA",
+ "artifactURL": "testalts0_modules.json",
+ "artifactUUID": "68be0190-fb74-408e-81db-d90a5e3aecb5",
+ "artifactTimeout": 0,
+ "artifactVersion": "2.0"
+ },
+ {
+ "artifactChecksum": "MDJlOTUwMDY0YzU3YjRjZTM0ZmZmYTM5NTE5ZThkNDI=",
+ "artifactDescription": "created from csar",
+ "artifactName": "base_TEST.yaml",
+ "artifactTimeout": 120,
+ "artifactType": "HEAT",
+ "artifactURL": "base_TEST.yaml",
+ "artifactUUID": "d7c1d4ca-3fdc-4880-86dc-90ca724fbcd7",
+ "artifactVersion": "2.0",
+ "generatedArtifact": "57f6520b-fa65-4544-90de-95c8190c2e6c"
+ },
+ {
+ "artifactChecksum": "YWQ2MmE0Y2NjNGE4YmJlOTk0YmZhYmIxYTc1YWZkY2M=",
+ "artifactDescription": "Auto-generated HEAT Environment deployment artifact",
+ "artifactName": "base_TEST.env",
+ "artifactTimeout": 0,
+ "artifactType": "HEAT_ENV",
+ "artifactURL": "base_TEST.env",
+ "artifactUUID": "57f6520b-fa65-4544-90de-95c8190c2e6c",
+ "artifactVersion": "1.0"
+ }
+ ]
+ }
+ ],
+ "serviceDescription": "ALTS service",
+ "distributionID": "03f016c8-7d8e-412b-901d-e96c7c66459b"
+} \ No newline at end of file
diff --git a/asdc-controller/src/test/resources/resource-examples/moduleTest/service-Testalts1-csar.csar b/asdc-controller/src/test/resources/resource-examples/moduleTest/service-Testalts1-csar.csar
new file mode 100644
index 0000000000..3d29ab8cec
--- /dev/null
+++ b/asdc-controller/src/test/resources/resource-examples/moduleTest/service-Testalts1-csar.csar
Binary files differ
diff --git a/asdc-controller/src/test/resources/resource-examples/moduleTest/testalts0_modules.json b/asdc-controller/src/test/resources/resource-examples/moduleTest/testalts0_modules.json
new file mode 100644
index 0000000000..4dfb97dbc8
--- /dev/null
+++ b/asdc-controller/src/test/resources/resource-examples/moduleTest/testalts0_modules.json
@@ -0,0 +1,25 @@
+[
+ {
+ "vfModuleModelName": "Testalts..base_TEST..module-0",
+ "vfModuleModelInvariantUUID": "2cec5cc9-9b83-46ff-948e-1c0bd726d1ce",
+ "vfModuleModelVersion": "2",
+ "vfModuleModelUUID": "a3253fe9-2877-489d-9a41-dd3f38d4b4c1",
+ "vfModuleModelCustomizationUUID": "2d1c5862-7555-48d9-8aa9-1a34b5b70f6a",
+ "isBase": true,
+ "artifacts": [
+ "d7c1d4ca-3fdc-4880-86dc-90ca724fbcd7",
+ "57f6520b-fa65-4544-90de-95c8190c2e6c"
+ ],
+ "properties": {
+ "min_vf_module_instances": "1",
+ "vf_module_label": "base_TEST",
+ "max_vf_module_instances": "1",
+ "vfc_list": "",
+ "vf_module_description": "",
+ "vf_module_type": "Base",
+ "availability_zone_count": "",
+ "volume_group": "false",
+ "initial_count": "1"
+ }
+ }
+]
diff --git a/asdc-controller/src/test/resources/resource-examples/multipleModules/Notification_MultipleModules.txt b/asdc-controller/src/test/resources/resource-examples/multipleModules/Notification_MultipleModules.txt
new file mode 100644
index 0000000000..5b6d9e4eaf
--- /dev/null
+++ b/asdc-controller/src/test/resources/resource-examples/multipleModules/Notification_MultipleModules.txt
@@ -0,0 +1,302 @@
+DistributionID:a2872f55-8628-4486-8548-7b132c9a47db
+ServiceName:Vf zrdm5bpxmc02092017-Service
+ServiceVersion:1.0
+ServiceUUID:bad955c3-29b2-4a27-932e-28e942cc6480
+ServiceInvariantUUID:b16a9398-ffa3-4041-b78c-2956b8ad9c7b
+ServiceDescription:Demo
+
+
+
+Service Artifacts List:
+{
+Service Artifacts Info:
+ArtifactName:service-VfZrdm5bpxmc02092017Service-csar.csar
+ArtifactVersion:1
+ArtifactType:TOSCA_CSAR
+ArtifactDescription:TOSCA definition package of the asset
+ArtifactTimeout:0
+ArtifactURL:service-VfZrdm5bpxmc02092017Service-csar.csar
+ArtifactUUID:396cfd49-0f4b-4fec-9f33-0fd7e90d5a22
+ArtifactChecksum:MWQ3Y2FmMWExNDQyYWI2N2YwNjEwZGUzN2IzMzI3NjE=
+GeneratedArtifact:{NULL
+}
+RelatedArtifacts:{
+}
+
+
+
+}
+
+Resource Instances List:
+{
+Resource Instance Info:
+ResourceInstanceName:Vf zrdm5bpxmc02092017-VF 0
+ResourceCustomizationUUID:96c23a4a-6887-4b2c-9cce-1e4ea35eaade
+ResourceInvariantUUID:23122c9b-dd7f-483f-bf0a-e069303db2f7
+ResourceName:Vf zrdm5bpxmc02092017-VF
+ResourceType:VF
+ResourceUUID:14ba5d1e-3862-407c-a236-1cbaebccce77
+ResourceVersion:1.0
+Category:Generic
+SubCategory:Network Elements
+Resource Artifacts List:
+{
+Service Artifacts Info:
+ArtifactName:pxmc_mmn_volume.env
+ArtifactVersion:2
+ArtifactType:HEAT_ENV
+ArtifactDescription:Auto-generated HEAT Environment deployment artifact
+ArtifactTimeout:0
+ArtifactURL:/sdc/v1/catalog/services/VfZrdm5bpxmc02092017Service/1.0/resourceInstances/vfzrdm5bpxmc02092017vf0/artifacts/pxmc_mmn_volume.env
+ArtifactUUID:c1ae6284-48d9-4437-a195-b2cf2ba23070
+ArtifactChecksum:NmEyZjc1Y2UwZDMwYjFhNGRlMTMzN2JhNzdiMThjMGU=
+GeneratedArtifact:{NULL
+}
+RelatedArtifacts:{
+}
+,
+Service Artifacts Info:
+ArtifactName:pxmc_base.env
+ArtifactVersion:2
+ArtifactType:HEAT_ENV
+ArtifactDescription:Auto-generated HEAT Environment deployment artifact
+ArtifactTimeout:0
+ArtifactURL:/sdc/v1/catalog/services/VfZrdm5bpxmc02092017Service/1.0/resourceInstances/vfzrdm5bpxmc02092017vf0/artifacts/pxmc_base.env
+ArtifactUUID:6dd99c31-c52e-4c45-b99b-d223c877a296
+ArtifactChecksum:OGM2MWIzZTA2OTc5YjQwNTM1NGVhODA0YTFkNzM4ZTg=
+GeneratedArtifact:{NULL
+}
+RelatedArtifacts:{
+}
+
+
+,
+Service Artifacts Info:
+ArtifactName:vfzrdm5bpxmc02092017vf0_modules.json
+ArtifactVersion:1
+ArtifactType:VF_MODULES_METADATA
+ArtifactDescription:Auto-generated VF Modules information artifact
+ArtifactTimeout:0
+ArtifactURL:/sdc/v1/catalog/services/VfZrdm5bpxmc02092017Service/1.0/resourceInstances/vfzrdm5bpxmc02092017vf0/artifacts/vfzrdm5bpxmc02092017vf0_modules.json
+ArtifactUUID:e3b82cd6-485e-4d56-8d2c-17ccf6a59533
+ArtifactChecksum:MjY0NzcxMjJkZGI4YzQ1MDU2NjhkNWYyM2IwNmYzYmU=
+GeneratedArtifact:{NULL
+}
+RelatedArtifacts:{
+}
+
+
+,
+Service Artifacts Info:
+ArtifactName:pxmc_vmt.yaml
+ArtifactVersion:1
+ArtifactType:HEAT
+ArtifactDescription:created from csar
+ArtifactTimeout:120
+ArtifactURL:/sdc/v1/catalog/services/VfZrdm5bpxmc02092017Service/1.0/resourceInstances/vfzrdm5bpxmc02092017vf0/artifacts/pxmc_vmt.yaml
+ArtifactUUID:ad12ab80-5419-4346-a5d7-dac2fc15575f
+ArtifactChecksum:ODE0YTRiYzc2YzkxOTliZjJhNjc0M2RhMWU4M2VlZmE=
+GeneratedArtifact:{Service Artifacts Info:
+ArtifactName:pxmc_vmt.env
+ArtifactVersion:2
+ArtifactType:HEAT_ENV
+ArtifactDescription:Auto-generated HEAT Environment deployment artifact
+ArtifactTimeout:0
+ArtifactURL:/sdc/v1/catalog/services/VfZrdm5bpxmc02092017Service/1.0/resourceInstances/vfzrdm5bpxmc02092017vf0/artifacts/pxmc_vmt.env
+ArtifactUUID:bc1640f1-69f0-4760-8fc3-3318ec2ff129
+ArtifactChecksum:MjdkYzY5ZGU0ZTlkZDlhNzI2ZGVhMjk1ODVhZTg1NTY=
+GeneratedArtifact:{NULL
+}
+RelatedArtifacts:{
+}
+}
+RelatedArtifacts:{
+Service Artifacts Info:
+ArtifactName:user_data_zrdm5bpxmc02vmt001.txt
+ArtifactVersion:1
+ArtifactType:HEAT_ARTIFACT
+ArtifactDescription:created from csar
+ArtifactTimeout:0
+ArtifactURL:/sdc/v1/catalog/services/VfZrdm5bpxmc02092017Service/1.0/resourceInstances/vfzrdm5bpxmc02092017vf0/artifacts/user_data_zrdm5bpxmc02vmt001.txt
+ArtifactUUID:53acdabe-689f-45e5-8578-f1514d3529da
+ArtifactChecksum:MzJmZjgyZWYwOTBjMTg5M2ExNWZhMmMwNzc1NWY1YjQ=
+GeneratedArtifact:{NULL
+}
+RelatedArtifacts:{
+}
+
+
+
+}
+
+
+,
+Service Artifacts Info:
+ArtifactName:pxmc_mmn.yaml
+ArtifactVersion:1
+ArtifactType:HEAT
+ArtifactDescription:created from csar
+ArtifactTimeout:120
+ArtifactURL:/sdc/v1/catalog/services/VfZrdm5bpxmc02092017Service/1.0/resourceInstances/vfzrdm5bpxmc02092017vf0/artifacts/pxmc_mmn.yaml
+ArtifactUUID:b8bca13b-811f-44ab-9d27-45b842c664d8
+ArtifactChecksum:YmNiYTU5YTM4ODVhYTlhODc5NGMwNWZkZjI5MTRmNTE=
+GeneratedArtifact:{Service Artifacts Info:
+ArtifactName:pxmc_mmn.env
+ArtifactVersion:2
+ArtifactType:HEAT_ENV
+ArtifactDescription:Auto-generated HEAT Environment deployment artifact
+ArtifactTimeout:0
+ArtifactURL:/sdc/v1/catalog/services/VfZrdm5bpxmc02092017Service/1.0/resourceInstances/vfzrdm5bpxmc02092017vf0/artifacts/pxmc_mmn.env
+ArtifactUUID:e88ce0b9-1496-4d03-ab1d-6d8d79bfc737
+ArtifactChecksum:ZGI1NzI2Y2FmYjFhOTM2ZDYwNzg1YWRhZjBmMTk2OTQ=
+GeneratedArtifact:{NULL
+}
+RelatedArtifacts:{
+}
+}
+RelatedArtifacts:{
+Service Artifacts Info:
+ArtifactName:user_data_zrdm5bpxmc02mmn001.txt
+ArtifactVersion:1
+ArtifactType:HEAT_ARTIFACT
+ArtifactDescription:created from csar
+ArtifactTimeout:0
+ArtifactURL:/sdc/v1/catalog/services/VfZrdm5bpxmc02092017Service/1.0/resourceInstances/vfzrdm5bpxmc02092017vf0/artifacts/user_data_zrdm5bpxmc02mmn001.txt
+ArtifactUUID:5bc62c72-5f7a-40bc-a167-1a4fed9afdef
+ArtifactChecksum:OTMxMjk5Mzc1YmIxMzRlYmRlZWJhMjg0MWQ4YTI1NWU=
+GeneratedArtifact:{NULL
+}
+RelatedArtifacts:{
+}
+
+
+
+}
+
+
+,
+Service Artifacts Info:
+ArtifactName:pxmc_mmn.env
+ArtifactVersion:2
+ArtifactType:HEAT_ENV
+ArtifactDescription:Auto-generated HEAT Environment deployment artifact
+ArtifactTimeout:0
+ArtifactURL:/sdc/v1/catalog/services/VfZrdm5bpxmc02092017Service/1.0/resourceInstances/vfzrdm5bpxmc02092017vf0/artifacts/pxmc_mmn.env
+ArtifactUUID:e88ce0b9-1496-4d03-ab1d-6d8d79bfc737
+ArtifactChecksum:ZGI1NzI2Y2FmYjFhOTM2ZDYwNzg1YWRhZjBmMTk2OTQ=
+GeneratedArtifact:{NULL
+}
+RelatedArtifacts:{
+}
+
+
+,
+Service Artifacts Info:
+ArtifactName:pxmc_vmt.env
+ArtifactVersion:2
+ArtifactType:HEAT_ENV
+ArtifactDescription:Auto-generated HEAT Environment deployment artifact
+ArtifactTimeout:0
+ArtifactURL:/sdc/v1/catalog/services/VfZrdm5bpxmc02092017Service/1.0/resourceInstances/vfzrdm5bpxmc02092017vf0/artifacts/pxmc_vmt.env
+ArtifactUUID:bc1640f1-69f0-4760-8fc3-3318ec2ff129
+ArtifactChecksum:MjdkYzY5ZGU0ZTlkZDlhNzI2ZGVhMjk1ODVhZTg1NTY=
+GeneratedArtifact:{NULL
+}
+RelatedArtifacts:{
+}
+,
+Service Artifacts Info:
+ArtifactName:user_data_zrdm5bpxmc02mmn001.txt
+ArtifactVersion:1
+ArtifactType:HEAT_ARTIFACT
+ArtifactDescription:created from csar
+ArtifactTimeout:0
+ArtifactURL:/sdc/v1/catalog/services/VfZrdm5bpxmc02092017Service/1.0/resourceInstances/vfzrdm5bpxmc02092017vf0/artifacts/user_data_zrdm5bpxmc02mmn001.txt
+ArtifactUUID:5bc62c72-5f7a-40bc-a167-1a4fed9afdef
+ArtifactChecksum:OTMxMjk5Mzc1YmIxMzRlYmRlZWJhMjg0MWQ4YTI1NWU=
+GeneratedArtifact:{NULL
+}
+RelatedArtifacts:{
+}
+
+
+,
+Service Artifacts Info:
+ArtifactName:pxmc_base.yaml
+ArtifactVersion:1
+ArtifactType:HEAT
+ArtifactDescription:created from csar
+ArtifactTimeout:120
+ArtifactURL:/sdc/v1/catalog/services/VfZrdm5bpxmc02092017Service/1.0/resourceInstances/vfzrdm5bpxmc02092017vf0/artifacts/pxmc_base.yaml
+ArtifactUUID:7e7f7356-11bd-4f2f-bbbc-5c10954e3189
+ArtifactChecksum:YThkNGFhZjAwNmM4NzMzODc0YzNhYTUxOTljNGQwNmM=
+GeneratedArtifact:{Service Artifacts Info:
+ArtifactName:pxmc_base.env
+ArtifactVersion:2
+ArtifactType:HEAT_ENV
+ArtifactDescription:Auto-generated HEAT Environment deployment artifact
+ArtifactTimeout:0
+ArtifactURL:/sdc/v1/catalog/services/VfZrdm5bpxmc02092017Service/1.0/resourceInstances/vfzrdm5bpxmc02092017vf0/artifacts/pxmc_base.env
+ArtifactUUID:6dd99c31-c52e-4c45-b99b-d223c877a296
+ArtifactChecksum:OGM2MWIzZTA2OTc5YjQwNTM1NGVhODA0YTFkNzM4ZTg=
+GeneratedArtifact:{NULL
+}
+RelatedArtifacts:{
+}
+
+
+}
+RelatedArtifacts:{
+}
+,
+Service Artifacts Info:
+ArtifactName:user_data_zrdm5bpxmc02vmt001.txt
+ArtifactVersion:1
+ArtifactType:HEAT_ARTIFACT
+ArtifactDescription:created from csar
+ArtifactTimeout:0
+ArtifactURL:/sdc/v1/catalog/services/VfZrdm5bpxmc02092017Service/1.0/resourceInstances/vfzrdm5bpxmc02092017vf0/artifacts/user_data_zrdm5bpxmc02vmt001.txt
+ArtifactUUID:53acdabe-689f-45e5-8578-f1514d3529da
+ArtifactChecksum:MzJmZjgyZWYwOTBjMTg5M2ExNWZhMmMwNzc1NWY1YjQ=
+GeneratedArtifact:{NULL
+}
+RelatedArtifacts:{
+}
+
+
+,
+Service Artifacts Info:
+ArtifactName:pxmc_mmn_volume.yaml
+ArtifactVersion:2
+ArtifactType:HEAT_VOL
+ArtifactDescription:created from csar
+ArtifactTimeout:120
+ArtifactURL:/sdc/v1/catalog/services/VfZrdm5bpxmc02092017Service/1.0/resourceInstances/vfzrdm5bpxmc02092017vf0/artifacts/pxmc_mmn_volume.yaml
+ArtifactUUID:2f372a02-df1b-46ca-b81e-822e3f406965
+ArtifactChecksum:MzA5MGY5ODQ0NDY5MDhiMDM3YjFlNGIwNzJkNjFhOTI=
+GeneratedArtifact:{Service Artifacts Info:
+ArtifactName:pxmc_mmn_volume.env
+ArtifactVersion:2
+ArtifactType:HEAT_ENV
+ArtifactDescription:Auto-generated HEAT Environment deployment artifact
+ArtifactTimeout:0
+ArtifactURL:/sdc/v1/catalog/services/VfZrdm5bpxmc02092017Service/1.0/resourceInstances/vfzrdm5bpxmc02092017vf0/artifacts/pxmc_mmn_volume.env
+ArtifactUUID:c1ae6284-48d9-4437-a195-b2cf2ba23070
+ArtifactChecksum:NmEyZjc1Y2UwZDMwYjFhNGRlMTMzN2JhNzdiMThjMGU=
+GeneratedArtifact:{NULL
+}
+RelatedArtifacts:{
+}
+
+
+}
+RelatedArtifacts:{
+}
+
+
+
+}
+
+
+
+}
diff --git a/asdc-controller/src/test/resources/resource-examples/multipleModules/ServiceResponse.json b/asdc-controller/src/test/resources/resource-examples/multipleModules/ServiceResponse.json
new file mode 100644
index 0000000000..37b7987f46
--- /dev/null
+++ b/asdc-controller/src/test/resources/resource-examples/multipleModules/ServiceResponse.json
@@ -0,0 +1,458 @@
+{
+ "modelName": "Vf zrdm5bpxmc02092017-Service",
+ "description": "Demo",
+ "modelUUID": "bad955c3-29b2-4a27-932e-28e942cc6480",
+ "modelInvariantUUID": "b16a9398-ffa3-4041-b78c-2956b8ad9c7b",
+ "serviceType": "",
+ "serviceRole": "",
+ "environmentContext": "General_Revenue-Bearing",
+ "networkCustomizations": [],
+ "vnfCustomizations": [
+ {
+ "modelCustomizationUuid": "96c23a4a-6887-4b2c-9cce-1e4ea35eaade",
+ "modelInstanceName": "Vf zrdm5bpxmc02092017-VF 0",
+ "multiStageDesign": "false",
+ "vnfResources": {
+ "modelUuid": "d326f424-2312-4dd6-b7fe-364fadbd1ef5",
+ "modelInvariantUuid": "23122c9b-dd7f-483f-bf0a-e069303db2f7",
+ "modelName": "Vf zrdm5bpxmc02092017-VF",
+ "toscaNodeType": "org.openecomp.resource.vf.VfZrdm5bpxmc02092017Vf",
+ "description": "Demo",
+ "orchestrationMode": "HEAT",
+ "modelVersion": "1.0",
+ "modelInvariantId": "23122c9b-dd7f-483f-bf0a-e069303db2f7"
+ },
+ "vfModuleCustomizations": [
+ {
+ "modelCustomizationUuid": "074c64d0-7e13-4bcc-8bdb-ea922331102d",
+ "label": "pxmc_base",
+ "minInstances": 1,
+ "maxInstances": 1,
+ "initialCount": 1,
+ "heatEnvironment": {
+ "artifactUuid": "6dd99c31-c52e-4c45-b99b-d223c877a296",
+ "name": "pxmc_base.env",
+ "description": "Auto-generated HEAT Environment deployment artifact",
+ "environment": "parameters:\n vnf_name: \n",
+ "artifactChecksum": "OGM2MWIzZTA2OTc5YjQwNTM1NGVhODA0YTFkNzM4ZTg=",
+ "version": "2"
+ },
+ "vfModule": {
+ "modelUUID": "eb5de6fb-9ecf-4009-b922-fae3a9ae7d46",
+ "modelInvariantUUID": "f7a867f2-596b-4f4a-a128-421e825a6190",
+ "modelName": "VfZrdm5bpxmc02092017Vf..pxmc_base..module-0",
+ "modelVersion": "1",
+ "isBase": 1,
+ "moduleHeatTemplate": {
+ "artifactUuid": "7e7f7356-11bd-4f2f-bbbc-5c10954e3189",
+ "templateName": "pxmc_base.yaml",
+ "templateBody": "heat_template_version: 2015-04-30\n\nparameters:\n\n## GLOBAL//Basic Parameters\n vnf_name:\n type: string\n description: Unique name for this VF instance\n# For manual spinups, value must be in the ENV file. Must be removed from ENV before uploading to ASDC\n\nresources:\n\n## MSP RSG//Resource:SecurityGroup\n sec_grp_msp_0:\n type: OS::Neutron::SecurityGroup\n properties:\n description: Security Group for PXMC\n name:\n str_replace:\n template: VF_NAME_sec_grp_msp\n params:\n VF_NAME: { get_param: vnf_name }\n rules:\n - {\"direction\": \"egress\", \"remote_ip_prefix\": \"0.0.0.0/0\", \"protocol\": \"tcp\", \"ethertype\": \"IPv4\", \"port_range_max\": 65535, \"port_range_min\": 0}\n - {\"direction\": \"egress\", \"remote_ip_prefix\": \"0.0.0.0/0\", \"protocol\": \"udp\", \"ethertype\": \"IPv4\", \"port_range_max\": 65535, \"port_range_min\": 0}\n - {\"direction\": \"egress\", \"remote_ip_prefix\": \"0.0.0.0/0\", \"protocol\": \"132\", \"ethertype\": \"IPv4\", \"port_range_max\": 65535, \"port_range_min\": 0}\n - {\"direction\": \"egress\", \"remote_ip_prefix\": \"0.0.0.0/0\", \"protocol\": \"icmp\", \"ethertype\": \"IPv4\"}\n - {\"direction\": \"egress\", \"remote_ip_prefix\": \"::/0\", \"protocol\": \"tcp\", \"ethertype\": \"IPv6\", \"port_range_max\": 65535, \"port_range_min\": 0}\n - {\"direction\": \"egress\", \"remote_ip_prefix\": \"::/0\", \"protocol\": \"udp\", \"ethertype\": \"IPv6\", \"port_range_max\": 65535, \"port_range_min\": 0}\n - {\"direction\": \"egress\", \"remote_ip_prefix\": \"::/0\", \"protocol\": \"132\", \"ethertype\": \"IPv6\", \"port_range_max\": 65535, \"port_range_min\": 0}\n - {\"direction\": \"egress\", \"remote_ip_prefix\": \"::/0\", \"protocol\": \"58\", \"ethertype\": \"IPv6\"}\n - {\"direction\": \"ingress\", \"remote_ip_prefix\": \"0.0.0.0/0\", \"protocol\": \"tcp\", \"ethertype\": \"IPv4\", \"port_range_max\": 65535, \"port_range_min\": 0}\n - {\"direction\": \"ingress\", \"remote_ip_prefix\": \"0.0.0.0/0\", \"protocol\": \"udp\", \"ethertype\": \"IPv4\", \"port_range_max\": 65535, \"port_range_min\": 0}\n - {\"direction\": \"ingress\", \"remote_ip_prefix\": \"0.0.0.0/0\", \"protocol\": \"132\", \"ethertype\": \"IPv4\", \"port_range_max\": 65535, \"port_range_min\": 0}\n - {\"direction\": \"ingress\", \"remote_ip_prefix\": \"0.0.0.0/0\", \"protocol\": \"icmp\", \"ethertype\": \"IPv4\"}\n - {\"direction\": \"ingress\", \"remote_ip_prefix\": \"::/0\", \"protocol\": \"tcp\", \"ethertype\": \"IPv6\", \"port_range_max\": 65535, \"port_range_min\": 0}\n - {\"direction\": \"ingress\", \"remote_ip_prefix\": \"::/0\", \"protocol\": \"udp\", \"ethertype\": \"IPv6\", \"port_range_max\": 65535, \"port_range_min\": 0}\n - {\"direction\": \"ingress\", \"remote_ip_prefix\": \"::/0\", \"protocol\": \"132\", \"ethertype\": \"IPv6\", \"port_range_max\": 65535, \"port_range_min\": 0}\n - {\"direction\": \"ingress\", \"remote_ip_prefix\": \"::/0\", \"protocol\": \"58\", \"ethertype\": \"IPv6\"}\n\noutputs:\n\n sec_grp_msp_id:\n description: uuid of the security group\n value: {get_resource: sec_grp_msp_0 }\n",
+ "timeoutMinutes": 120,
+ "version": "1",
+ "description": "created from csar",
+ "artifactChecksum": "YThkNGFhZjAwNmM4NzMzODc0YzNhYTUxOTljNGQwNmM=",
+ "parameters": [
+ {
+ "heatTemplateArtifactUuid": "7e7f7356-11bd-4f2f-bbbc-5c10954e3189",
+ "paramName": "vnf_name",
+ "required": true,
+ "paramType": "string"
+ }
+ ],
+ "childTemplates": [],
+ "heatTemplate": "heat_template_version: 2015-04-30\n\nparameters:\n\n## GLOBAL//Basic Parameters\n vnf_name:\n type: string\n description: Unique name for this VF instance\n# For manual spinups, value must be in the ENV file. Must be removed from ENV before uploading to ASDC\n\nresources:\n\n## MSP RSG//Resource:SecurityGroup\n sec_grp_msp_0:\n type: OS::Neutron::SecurityGroup\n properties:\n description: Security Group for PXMC\n name:\n str_replace:\n template: VF_NAME_sec_grp_msp\n params:\n VF_NAME: { get_param: vnf_name }\n rules:\n - {\"direction\": \"egress\", \"remote_ip_prefix\": \"0.0.0.0/0\", \"protocol\": \"tcp\", \"ethertype\": \"IPv4\", \"port_range_max\": 65535, \"port_range_min\": 0}\n - {\"direction\": \"egress\", \"remote_ip_prefix\": \"0.0.0.0/0\", \"protocol\": \"udp\", \"ethertype\": \"IPv4\", \"port_range_max\": 65535, \"port_range_min\": 0}\n - {\"direction\": \"egress\", \"remote_ip_prefix\": \"0.0.0.0/0\", \"protocol\": \"132\", \"ethertype\": \"IPv4\", \"port_range_max\": 65535, \"port_range_min\": 0}\n - {\"direction\": \"egress\", \"remote_ip_prefix\": \"0.0.0.0/0\", \"protocol\": \"icmp\", \"ethertype\": \"IPv4\"}\n - {\"direction\": \"egress\", \"remote_ip_prefix\": \"::/0\", \"protocol\": \"tcp\", \"ethertype\": \"IPv6\", \"port_range_max\": 65535, \"port_range_min\": 0}\n - {\"direction\": \"egress\", \"remote_ip_prefix\": \"::/0\", \"protocol\": \"udp\", \"ethertype\": \"IPv6\", \"port_range_max\": 65535, \"port_range_min\": 0}\n - {\"direction\": \"egress\", \"remote_ip_prefix\": \"::/0\", \"protocol\": \"132\", \"ethertype\": \"IPv6\", \"port_range_max\": 65535, \"port_range_min\": 0}\n - {\"direction\": \"egress\", \"remote_ip_prefix\": \"::/0\", \"protocol\": \"58\", \"ethertype\": \"IPv6\"}\n - {\"direction\": \"ingress\", \"remote_ip_prefix\": \"0.0.0.0/0\", \"protocol\": \"tcp\", \"ethertype\": \"IPv4\", \"port_range_max\": 65535, \"port_range_min\": 0}\n - {\"direction\": \"ingress\", \"remote_ip_prefix\": \"0.0.0.0/0\", \"protocol\": \"udp\", \"ethertype\": \"IPv4\", \"port_range_max\": 65535, \"port_range_min\": 0}\n - {\"direction\": \"ingress\", \"remote_ip_prefix\": \"0.0.0.0/0\", \"protocol\": \"132\", \"ethertype\": \"IPv4\", \"port_range_max\": 65535, \"port_range_min\": 0}\n - {\"direction\": \"ingress\", \"remote_ip_prefix\": \"0.0.0.0/0\", \"protocol\": \"icmp\", \"ethertype\": \"IPv4\"}\n - {\"direction\": \"ingress\", \"remote_ip_prefix\": \"::/0\", \"protocol\": \"tcp\", \"ethertype\": \"IPv6\", \"port_range_max\": 65535, \"port_range_min\": 0}\n - {\"direction\": \"ingress\", \"remote_ip_prefix\": \"::/0\", \"protocol\": \"udp\", \"ethertype\": \"IPv6\", \"port_range_max\": 65535, \"port_range_min\": 0}\n - {\"direction\": \"ingress\", \"remote_ip_prefix\": \"::/0\", \"protocol\": \"132\", \"ethertype\": \"IPv6\", \"port_range_max\": 65535, \"port_range_min\": 0}\n - {\"direction\": \"ingress\", \"remote_ip_prefix\": \"::/0\", \"protocol\": \"58\", \"ethertype\": \"IPv6\"}\n\noutputs:\n\n sec_grp_msp_id:\n description: uuid of the security group\n value: {get_resource: sec_grp_msp_0 }\n"
+ },
+ "heatFiles": [],
+ "vnfResources": {
+ "modelUuid": "d326f424-2312-4dd6-b7fe-364fadbd1ef5",
+ "modelInvariantUuid": "23122c9b-dd7f-483f-bf0a-e069303db2f7",
+ "modelName": "Vf zrdm5bpxmc02092017-VF",
+ "toscaNodeType": "org.openecomp.resource.vf.VfZrdm5bpxmc02092017Vf",
+ "description": "Demo",
+ "orchestrationMode": "HEAT",
+ "modelVersion": "1.0",
+ "modelInvariantId": "23122c9b-dd7f-483f-bf0a-e069303db2f7"
+ },
+ "modelInvariantUuid": "f7a867f2-596b-4f4a-a128-421e825a6190",
+ "base": true
+ }
+ },
+ {
+ "modelCustomizationUuid": "5336a98e-0966-4e59-b6e6-c8162804a024",
+ "label": "pxmc_vmt",
+ "minInstances": 0,
+ "initialCount": 0,
+ "heatEnvironment": {
+ "artifactUuid": "bc1640f1-69f0-4760-8fc3-3318ec2ff129",
+ "name": "pxmc_vmt.env",
+ "description": "Auto-generated HEAT Environment deployment artifact",
+ "environment": "parameters:\n cinder_delete_on_termination_false: \n cinder_delete_on_termination_true: \n oam_protected_net_name: \n sec_grp_msp_id: \n vf_module_id: \n vmt_block_device_names: \n vmt_flavor_name: \n vmt_name_0: \n vmt_oam_protected_ip_0: \n vmt_volume_image_name_0: \n vmt_volume_image_name_1: \n vmt_volume_name_0: \n vmt_volume_name_1: \n vmt_volume_size_0: \n vmt_volume_size_1: \n vnf_id: \n",
+ "artifactChecksum": "MjdkYzY5ZGU0ZTlkZDlhNzI2ZGVhMjk1ODVhZTg1NTY=",
+ "version": "2"
+ },
+ "vfModule": {
+ "modelUUID": "4d4423e2-17e8-455a-b9ae-7e4ab71b9cdc",
+ "modelInvariantUUID": "1e099992-6222-41a9-acde-5a8abb690775",
+ "modelName": "VfZrdm5bpxmc02092017Vf..pxmc_vmt..module-1",
+ "modelVersion": "1",
+ "isBase": 0,
+ "moduleHeatTemplate": {
+ "artifactUuid": "ad12ab80-5419-4346-a5d7-dac2fc15575f",
+ "templateName": "pxmc_vmt.yaml",
+ "templateBody": "heat_template_version: 2015-04-30\n\ndescription: HOT creates Nimbus MSP VMT stack under MobiSupport Tenant\n\nparameters:\n vmt_name_0:\n type: string\n label: MSP VMT server names\n description: name of the MSP VMT instances\n# vmt_image_name:\n# type: string\n# label: MSP VMT image name\n# description: MSP VMT image name\n vmt_flavor_name:\n type: string\n label: MSP VMT flavor name\n description: MSP VMT flavor name\n# availability_zone_0:\n# type: string\n# label: MSP VMT availability zones\n# description: MSP VMT availability zones\n sec_grp_msp_id:\n type: string\n label: security group id\n description: the id of security group\n vmt_oam_protected_ip_0:\n type: string\n label: MSP VMT OAM IP Addresses\n description: MSP VMT OAM IP Addresses\n oam_protected_net_name:\n type: string\n label: MSP VMT OAM net name\n description: MSP VMT OAM net name\n vmt_block_device_names:\n type: comma_delimited_list\n label: MSP VMT Block Device Names\n description: MSP VMT Block Device Names\n vmt_volume_name_0:\n type: string\n label: Mobisupport MSP VMT Cinder Volume names\n description: Mobisupport MSP VMT Cinder Volume names\n vmt_volume_name_1:\n type: string\n label: Mobisupport MSP VMT Cinder Volume names\n description: Mobisupport MSP VMT Cinder Volume names\n vmt_volume_size_0:\n type: number\n label: Mobisupport MSP VMT Cinder Volume sizes\n description: Mobisupport MSP VMT Cinder Volume sizes\n vmt_volume_size_1:\n type: number\n label: Mobisupport MSP VMT Cinder Volume sizes\n description: Mobisupport MSP VMT Cinder Volume sizes\n vmt_volume_image_name_0:\n type: string\n label: Mobisupport MSP VMT VDA Cinder Volume image name\n description: Mobisupport MSP VMT VDA Cinder Volume image name\n vmt_volume_image_name_1:\n type: string\n label: Mobisupport MSP VMT VDB Cinder Volume image name\n description: Mobisupport MSP VMT VDB Cinder Volume image name\n cinder_delete_on_termination_true:\n type: boolean\n description: delete cinder volume upon instances termination\n cinder_delete_on_termination_false:\n type: boolean\n description: keep cinder volume upon instances termination\n vnf_id:\n type: string\n label: MSP VMT VNF ID\n description: MSP VMT VNF ID\n vf_module_id:\n type: string\n description: Unique ID for this VF Module instance\n\nresources:\n################ Cinder Volumes ##############################\n vmt_volume_0:\n type: OS::Cinder::Volume\n properties:\n name: {get_param: vmt_volume_name_0}\n size: {get_param: vmt_volume_size_0}\n image: {get_param: vmt_volume_image_name_0}\n\n vmt_volume_1:\n type: OS::Cinder::Volume\n properties:\n name: {get_param: vmt_volume_name_1}\n size: {get_param: vmt_volume_size_1}\n image: {get_param: vmt_volume_image_name_1}\n\n################ Ports ##############################\n vmt_oam_protected_0_port:\n type: OS::Neutron::Port\n properties:\n network: {get_param: oam_protected_net_name}\n fixed_ips: [{\"ip_address\": {get_param: vmt_oam_protected_ip_0}}]\n security_groups: [{get_param: sec_grp_msp_id}]\n replacement_policy: AUTO\n\n################### Servers #########################\n vmt_zrdm5bpxmc02vmt_0:\n type: OS::Nova::Server\n properties:\n name: {get_param: vmt_name_0}\n# image: {get_param: vmt_image_name}\n flavor: {get_param: vmt_flavor_name}\n# availability_zone: {get_param: availability_zone_0}\n block_device_mapping_v2: \n - device_name: {get_param: [vmt_block_device_names, 0]}\n volume_id: {get_resource: vmt_volume_0}\n delete_on_termination: {get_param: cinder_delete_on_termination_true}\n boot_index: 0\n - device_name: {get_param: [vmt_block_device_names, 1]}\n volume_id: {get_resource: vmt_volume_1}\n delete_on_termination: {get_param: cinder_delete_on_termination_true}\n boot_index: -1\n networks:\n - port: {get_resource: vmt_oam_protected_0_port}\n config_drive: \"True\"\n user_data_format: RAW\n user_data:\n get_file: user_data_zrdm5bpxmc02vmt001.txt\n\n metadata:\n vnf_id: {get_param: vnf_id}\n vf_module_id {get_param: vf_module_id}\n \"evacuation_policy\": \"Evacuation\"\n",
+ "timeoutMinutes": 120,
+ "version": "1",
+ "description": "created from csar",
+ "artifactChecksum": "ODE0YTRiYzc2YzkxOTliZjJhNjc0M2RhMWU4M2VlZmE=",
+ "parameters": [
+ {
+ "heatTemplateArtifactUuid": "ad12ab80-5419-4346-a5d7-dac2fc15575f",
+ "paramName": "vmt_name_0",
+ "required": true,
+ "paramType": "string"
+ },
+ {
+ "heatTemplateArtifactUuid": "ad12ab80-5419-4346-a5d7-dac2fc15575f",
+ "paramName": "vf_module_id",
+ "required": true,
+ "paramType": "string"
+ },
+ {
+ "heatTemplateArtifactUuid": "ad12ab80-5419-4346-a5d7-dac2fc15575f",
+ "paramName": "sec_grp_msp_id",
+ "required": true,
+ "paramType": "string"
+ },
+ {
+ "heatTemplateArtifactUuid": "ad12ab80-5419-4346-a5d7-dac2fc15575f",
+ "paramName": "vmt_volume_name_1",
+ "required": true,
+ "paramType": "string"
+ },
+ {
+ "heatTemplateArtifactUuid": "ad12ab80-5419-4346-a5d7-dac2fc15575f",
+ "paramName": "vmt_volume_name_0",
+ "required": true,
+ "paramType": "string"
+ },
+ {
+ "heatTemplateArtifactUuid": "ad12ab80-5419-4346-a5d7-dac2fc15575f",
+ "paramName": "vmt_block_device_names",
+ "required": true,
+ "paramType": "comma_delimited_list"
+ },
+ {
+ "heatTemplateArtifactUuid": "ad12ab80-5419-4346-a5d7-dac2fc15575f",
+ "paramName": "vmt_flavor_name",
+ "required": true,
+ "paramType": "string"
+ },
+ {
+ "heatTemplateArtifactUuid": "ad12ab80-5419-4346-a5d7-dac2fc15575f",
+ "paramName": "vnf_id",
+ "required": true,
+ "paramType": "string"
+ },
+ {
+ "heatTemplateArtifactUuid": "ad12ab80-5419-4346-a5d7-dac2fc15575f",
+ "paramName": "oam_protected_net_name",
+ "required": true,
+ "paramType": "string"
+ },
+ {
+ "heatTemplateArtifactUuid": "ad12ab80-5419-4346-a5d7-dac2fc15575f",
+ "paramName": "vmt_volume_image_name_1",
+ "required": true,
+ "paramType": "string"
+ },
+ {
+ "heatTemplateArtifactUuid": "ad12ab80-5419-4346-a5d7-dac2fc15575f",
+ "paramName": "vmt_volume_image_name_0",
+ "required": true,
+ "paramType": "string"
+ },
+ {
+ "heatTemplateArtifactUuid": "ad12ab80-5419-4346-a5d7-dac2fc15575f",
+ "paramName": "vmt_oam_protected_ip_0",
+ "required": true,
+ "paramType": "string"
+ },
+ {
+ "heatTemplateArtifactUuid": "ad12ab80-5419-4346-a5d7-dac2fc15575f",
+ "paramName": "vmt_volume_size_0",
+ "required": true,
+ "paramType": "number"
+ },
+ {
+ "heatTemplateArtifactUuid": "ad12ab80-5419-4346-a5d7-dac2fc15575f",
+ "paramName": "cinder_delete_on_termination_false",
+ "required": true,
+ "paramType": "boolean"
+ },
+ {
+ "heatTemplateArtifactUuid": "ad12ab80-5419-4346-a5d7-dac2fc15575f",
+ "paramName": "vmt_volume_size_1",
+ "required": true,
+ "paramType": "number"
+ },
+ {
+ "heatTemplateArtifactUuid": "ad12ab80-5419-4346-a5d7-dac2fc15575f",
+ "paramName": "cinder_delete_on_termination_true",
+ "required": true,
+ "paramType": "boolean"
+ }
+ ],
+ "childTemplates": [],
+ "heatTemplate": "heat_template_version: 2015-04-30\n\ndescription: HOT creates Nimbus MSP VMT stack under MobiSupport Tenant\n\nparameters:\n vmt_name_0:\n type: string\n label: MSP VMT server names\n description: name of the MSP VMT instances\n# vmt_image_name:\n# type: string\n# label: MSP VMT image name\n# description: MSP VMT image name\n vmt_flavor_name:\n type: string\n label: MSP VMT flavor name\n description: MSP VMT flavor name\n# availability_zone_0:\n# type: string\n# label: MSP VMT availability zones\n# description: MSP VMT availability zones\n sec_grp_msp_id:\n type: string\n label: security group id\n description: the id of security group\n vmt_oam_protected_ip_0:\n type: string\n label: MSP VMT OAM IP Addresses\n description: MSP VMT OAM IP Addresses\n oam_protected_net_name:\n type: string\n label: MSP VMT OAM net name\n description: MSP VMT OAM net name\n vmt_block_device_names:\n type: comma_delimited_list\n label: MSP VMT Block Device Names\n description: MSP VMT Block Device Names\n vmt_volume_name_0:\n type: string\n label: Mobisupport MSP VMT Cinder Volume names\n description: Mobisupport MSP VMT Cinder Volume names\n vmt_volume_name_1:\n type: string\n label: Mobisupport MSP VMT Cinder Volume names\n description: Mobisupport MSP VMT Cinder Volume names\n vmt_volume_size_0:\n type: number\n label: Mobisupport MSP VMT Cinder Volume sizes\n description: Mobisupport MSP VMT Cinder Volume sizes\n vmt_volume_size_1:\n type: number\n label: Mobisupport MSP VMT Cinder Volume sizes\n description: Mobisupport MSP VMT Cinder Volume sizes\n vmt_volume_image_name_0:\n type: string\n label: Mobisupport MSP VMT VDA Cinder Volume image name\n description: Mobisupport MSP VMT VDA Cinder Volume image name\n vmt_volume_image_name_1:\n type: string\n label: Mobisupport MSP VMT VDB Cinder Volume image name\n description: Mobisupport MSP VMT VDB Cinder Volume image name\n cinder_delete_on_termination_true:\n type: boolean\n description: delete cinder volume upon instances termination\n cinder_delete_on_termination_false:\n type: boolean\n description: keep cinder volume upon instances termination\n vnf_id:\n type: string\n label: MSP VMT VNF ID\n description: MSP VMT VNF ID\n vf_module_id:\n type: string\n description: Unique ID for this VF Module instance\n\nresources:\n################ Cinder Volumes ##############################\n vmt_volume_0:\n type: OS::Cinder::Volume\n properties:\n name: {get_param: vmt_volume_name_0}\n size: {get_param: vmt_volume_size_0}\n image: {get_param: vmt_volume_image_name_0}\n\n vmt_volume_1:\n type: OS::Cinder::Volume\n properties:\n name: {get_param: vmt_volume_name_1}\n size: {get_param: vmt_volume_size_1}\n image: {get_param: vmt_volume_image_name_1}\n\n################ Ports ##############################\n vmt_oam_protected_0_port:\n type: OS::Neutron::Port\n properties:\n network: {get_param: oam_protected_net_name}\n fixed_ips: [{\"ip_address\": {get_param: vmt_oam_protected_ip_0}}]\n security_groups: [{get_param: sec_grp_msp_id}]\n replacement_policy: AUTO\n\n################### Servers #########################\n vmt_zrdm5bpxmc02vmt_0:\n type: OS::Nova::Server\n properties:\n name: {get_param: vmt_name_0}\n# image: {get_param: vmt_image_name}\n flavor: {get_param: vmt_flavor_name}\n# availability_zone: {get_param: availability_zone_0}\n block_device_mapping_v2: \n - device_name: {get_param: [vmt_block_device_names, 0]}\n volume_id: {get_resource: vmt_volume_0}\n delete_on_termination: {get_param: cinder_delete_on_termination_true}\n boot_index: 0\n - device_name: {get_param: [vmt_block_device_names, 1]}\n volume_id: {get_resource: vmt_volume_1}\n delete_on_termination: {get_param: cinder_delete_on_termination_true}\n boot_index: -1\n networks:\n - port: {get_resource: vmt_oam_protected_0_port}\n config_drive: \"True\"\n user_data_format: RAW\n user_data:\n get_file: user_data_zrdm5bpxmc02vmt001.txt\n\n metadata:\n vnf_id: {get_param: vnf_id}\n vf_module_id {get_param: vf_module_id}\n \"evacuation_policy\": \"Evacuation\"\n"
+ },
+ "heatFiles": [],
+ "vnfResources": {
+ "modelUuid": "d326f424-2312-4dd6-b7fe-364fadbd1ef5",
+ "modelInvariantUuid": "23122c9b-dd7f-483f-bf0a-e069303db2f7",
+ "modelName": "Vf zrdm5bpxmc02092017-VF",
+ "toscaNodeType": "org.openecomp.resource.vf.VfZrdm5bpxmc02092017Vf",
+ "description": "Demo",
+ "orchestrationMode": "HEAT",
+ "modelVersion": "1.0",
+ "modelInvariantId": "23122c9b-dd7f-483f-bf0a-e069303db2f7"
+ },
+ "modelInvariantUuid": "1e099992-6222-41a9-acde-5a8abb690775",
+ "base": false
+ }
+ },
+ {
+ "modelCustomizationUuid": "e38906fa-717c-49b0-b391-e6ec12b50c4a",
+ "label": "pxmc_mmn",
+ "minInstances": 0,
+ "initialCount": 0,
+ "heatEnvironment": {
+ "artifactUuid": "e88ce0b9-1496-4d03-ab1d-6d8d79bfc737",
+ "name": "pxmc_mmn.env",
+ "description": "Auto-generated HEAT Environment deployment artifact",
+ "environment": "parameters:\n cinder_delete_on_termination_false: \n cinder_delete_on_termination_true: \n mmn_arch_volume_id_2: \n mmn_backup_volume_id_3: \n mmn_block_device_names: \n mmn_data_volume_id_1: \n mmn_flavor_name: \n mmn_misc_volume_id_4: \n mmn_name_0: \n mmn_oam_protected_ip_0: \n mmn_volume_image_name_0: \n mmn_volume_name_0: \n mmn_volume_size_0: \n oam_protected_net_name: \n sec_grp_msp_id: \n vf_module_id: \n vnf_id: \n",
+ "artifactChecksum": "ZGI1NzI2Y2FmYjFhOTM2ZDYwNzg1YWRhZjBmMTk2OTQ=",
+ "version": "2"
+ },
+ "vfModule": {
+ "modelUUID": "a8cb1182-9b6d-46f8-b06b-ded4fe69e10d",
+ "modelInvariantUUID": "8e53c069-b2f0-437a-9c00-21cbc5c8f081",
+ "modelName": "VfZrdm5bpxmc02092017Vf..pxmc_mmn..module-2",
+ "modelVersion": "1",
+ "isBase": 0,
+ "volumeHeatTemplate": {
+ "artifactUuid": "2f372a02-df1b-46ca-b81e-822e3f406965",
+ "templateName": "pxmc_mmn_volume.yaml",
+ "templateBody": "heat_template_version: 2015-04-30\n\ndescription: HOT creates MSP MMN Cinder Volumes under MobiSupport Tenant\n\nparameters:\n mmn_volume_name_1:\n type: string\n label: Mobisupport MSP MMN Cinder Volume names\n description: Mobisupport MSP MMN Cinder Volume names\n\n mmn_volume_name_2:\n type: string\n label: Mobisupport MSP MMN Cinder Volume names\n description: Mobisupport MSP MMN Cinder Volume names\n\n mmn_volume_name_3:\n type: string\n label: Mobisupport MSP MMN Cinder Volume names\n description: Mobisupport MSP MMN Cinder Volume names\n\n mmn_volume_name_4:\n type: string\n label: Mobisupport MSP MMN Cinder Volume names\n description: Mobisupport MSP MMN Cinder Volume names\n\n mmn_volume_size_1:\n type: number\n label: Mobisupport MSP MMN Cinder Volume sizes\n description: Mobisupport MSP MMN Cinder Volume sizes\n\n mmn_volume_size_2:\n type: number\n label: Mobisupport MSP MMN Cinder Volume sizes\n description: Mobisupport MSP MMN Cinder Volume sizes\n\n mmn_volume_size_3:\n type: number\n label: Mobisupport MSP MMN Cinder Volume sizes\n description: Mobisupport MSP MMN Cinder Volume sizes\n\n mmn_volume_size_4:\n type: number\n label: Mobisupport MSP MMN Cinder Volume sizes\n description: Mobisupport MSP MMN Cinder Volume sizes\n\nresources:\n mmn_data_volume_1:\n type: OS::Cinder::Volume\n properties:\n name: {get_param: mmn_volume_name_1}\n size: {get_param: mmn_volume_size_1}\n \n mmn_arch_volume_2:\n type: OS::Cinder::Volume\n properties:\n name: {get_param: mmn_volume_name_2}\n size: {get_param: mmn_volume_size_2}\n \n mmn_backup_volume_3:\n type: OS::Cinder::Volume\n properties:\n name: {get_param: mmn_volume_name_3}\n size: {get_param: mmn_volume_size_3}\n \n mmn_misc_volume_4:\n type: OS::Cinder::Volume\n properties:\n name: {get_param: mmn_volume_name_4}\n size: {get_param: mmn_volume_size_4}\n\noutputs:\n mmn_data_volume_id_1:\n description: msp mmn data volume 1\n value: {get_resource: mmn_data_volume_1}\n \n mmn_arch_volume_id_2:\n description: msp mn arch volume 2\n value: {get_resource: mmn_arch_volume_2}\n \n mmn_backup_volume_id_3:\n description: msp mn backup volume 3\n value: {get_resource: mmn_backup_volume_3}\n \n mmn_misc_volume_id_4:\n description: msp mn volume 4\n value: {get_resource: mmn_misc_volume_4}\n",
+ "timeoutMinutes": 120,
+ "version": "2",
+ "description": "created from csar",
+ "artifactChecksum": "MzA5MGY5ODQ0NDY5MDhiMDM3YjFlNGIwNzJkNjFhOTI=",
+ "parameters": [
+ {
+ "heatTemplateArtifactUuid": "2f372a02-df1b-46ca-b81e-822e3f406965",
+ "paramName": "mmn_volume_name_2",
+ "required": true,
+ "paramType": "string"
+ },
+ {
+ "heatTemplateArtifactUuid": "2f372a02-df1b-46ca-b81e-822e3f406965",
+ "paramName": "mmn_volume_size_2",
+ "required": true,
+ "paramType": "number"
+ },
+ {
+ "heatTemplateArtifactUuid": "2f372a02-df1b-46ca-b81e-822e3f406965",
+ "paramName": "mmn_volume_name_1",
+ "required": true,
+ "paramType": "string"
+ },
+ {
+ "heatTemplateArtifactUuid": "2f372a02-df1b-46ca-b81e-822e3f406965",
+ "paramName": "mmn_volume_size_1",
+ "required": true,
+ "paramType": "number"
+ },
+ {
+ "heatTemplateArtifactUuid": "2f372a02-df1b-46ca-b81e-822e3f406965",
+ "paramName": "mmn_volume_name_4",
+ "required": true,
+ "paramType": "string"
+ },
+ {
+ "heatTemplateArtifactUuid": "2f372a02-df1b-46ca-b81e-822e3f406965",
+ "paramName": "mmn_volume_name_3",
+ "required": true,
+ "paramType": "string"
+ },
+ {
+ "heatTemplateArtifactUuid": "2f372a02-df1b-46ca-b81e-822e3f406965",
+ "paramName": "mmn_volume_size_4",
+ "required": true,
+ "paramType": "number"
+ },
+ {
+ "heatTemplateArtifactUuid": "2f372a02-df1b-46ca-b81e-822e3f406965",
+ "paramName": "mmn_volume_size_3",
+ "required": true,
+ "paramType": "number"
+ }
+ ],
+ "childTemplates": [],
+ "heatTemplate": "heat_template_version: 2015-04-30\n\ndescription: HOT creates MSP MMN Cinder Volumes under MobiSupport Tenant\n\nparameters:\n mmn_volume_name_1:\n type: string\n label: Mobisupport MSP MMN Cinder Volume names\n description: Mobisupport MSP MMN Cinder Volume names\n\n mmn_volume_name_2:\n type: string\n label: Mobisupport MSP MMN Cinder Volume names\n description: Mobisupport MSP MMN Cinder Volume names\n\n mmn_volume_name_3:\n type: string\n label: Mobisupport MSP MMN Cinder Volume names\n description: Mobisupport MSP MMN Cinder Volume names\n\n mmn_volume_name_4:\n type: string\n label: Mobisupport MSP MMN Cinder Volume names\n description: Mobisupport MSP MMN Cinder Volume names\n\n mmn_volume_size_1:\n type: number\n label: Mobisupport MSP MMN Cinder Volume sizes\n description: Mobisupport MSP MMN Cinder Volume sizes\n\n mmn_volume_size_2:\n type: number\n label: Mobisupport MSP MMN Cinder Volume sizes\n description: Mobisupport MSP MMN Cinder Volume sizes\n\n mmn_volume_size_3:\n type: number\n label: Mobisupport MSP MMN Cinder Volume sizes\n description: Mobisupport MSP MMN Cinder Volume sizes\n\n mmn_volume_size_4:\n type: number\n label: Mobisupport MSP MMN Cinder Volume sizes\n description: Mobisupport MSP MMN Cinder Volume sizes\n\nresources:\n mmn_data_volume_1:\n type: OS::Cinder::Volume\n properties:\n name: {get_param: mmn_volume_name_1}\n size: {get_param: mmn_volume_size_1}\n \n mmn_arch_volume_2:\n type: OS::Cinder::Volume\n properties:\n name: {get_param: mmn_volume_name_2}\n size: {get_param: mmn_volume_size_2}\n \n mmn_backup_volume_3:\n type: OS::Cinder::Volume\n properties:\n name: {get_param: mmn_volume_name_3}\n size: {get_param: mmn_volume_size_3}\n \n mmn_misc_volume_4:\n type: OS::Cinder::Volume\n properties:\n name: {get_param: mmn_volume_name_4}\n size: {get_param: mmn_volume_size_4}\n\noutputs:\n mmn_data_volume_id_1:\n description: msp mmn data volume 1\n value: {get_resource: mmn_data_volume_1}\n \n mmn_arch_volume_id_2:\n description: msp mn arch volume 2\n value: {get_resource: mmn_arch_volume_2}\n \n mmn_backup_volume_id_3:\n description: msp mn backup volume 3\n value: {get_resource: mmn_backup_volume_3}\n \n mmn_misc_volume_id_4:\n description: msp mn volume 4\n value: {get_resource: mmn_misc_volume_4}\n"
+ },
+ "moduleHeatTemplate": {
+ "artifactUuid": "b8bca13b-811f-44ab-9d27-45b842c664d8",
+ "templateName": "pxmc_mmn.yaml",
+ "templateBody": "heat_template_version: 2015-04-30\n\ndescription: HOT creates Nimbus vMSP MMN stack.\n\nparameters:\n mmn_name_0:\n type: string\n label: MSP MMN server names\n description: name of the MSP MMN instances\n mmn_flavor_name:\n type: string\n label: MSP MMN flavor name\n description: MSP MMN flavor name\n# mmn_image_name:\n# type: string\n# label: MSP MMN image name\n# description: MSP MMN image name\n# availability_zone_0:\n# type: string\n# label: MSP MMN availability zones\n# description: MSP MMN availability zones\n sec_grp_msp_id:\n type: string\n label: security group id\n description: the id of security group\n mmn_oam_protected_ip_0:\n type: string\n label: MSP MMN OAM IP Addresses\n description: MSP MMN OAM IP Addresses\n oam_protected_net_name:\n type: string\n label: MSP MMN OAM net name\n description: MSP MMN OAM net name\n mmn_volume_name_0:\n type: string\n label: Mobisupport MSP MMN Cinder Volume names\n description: Mobisupport MSP MMN Cinder Volume names\n mmn_volume_size_0:\n type: number\n label: Mobisupport MSP MMN Cinder Volume sizes\n description: Mobisupport MSP MMN Cinder Volume sizes\n mmn_volume_image_name_0:\n type: string\n label: Mobisupport MSP MMN Cinder Volume image name\n description: Mobisupport MSP MMN Cinder Volume image name\n mmn_data_volume_id_1:\n type: string\n label: MSP MMN Volume id 1\n description: MSP MMN Volume id 1\n mmn_arch_volume_id_2:\n type: string\n label: MSP MMN Volume id 2\n description: MSP MMN Volume id 2\n mmn_backup_volume_id_3:\n type: string\n label: MSP MMN Volume id 3\n description: MSP MMN Volume id 3\n mmn_misc_volume_id_4:\n type: string\n label: MSP MMN Volume id 4\n description: MSP MMN Volume id 4\n mmn_block_device_names:\n type: comma_delimited_list\n label: MSP MMN Block Device Names\n description: MSP MMN Block Device Names\n cinder_delete_on_termination_true:\n type: boolean\n description: delete cinder volume upon instances termination\n cinder_delete_on_termination_false:\n type: boolean\n description: keep cinder volume upon instances termination\n vnf_id:\n type: string\n label: MSP MMN VNF ID\n description: MSP MMN VNF ID\n vf_module_id:\n type: string\n description: Unique ID for this VF module instance\n\nresources:\n################ Cinder Volume ########################\n mmn_volume_0:\n type: OS::Cinder::Volume\n properties:\n name: {get_param: mmn_volume_name_0}\n size: {get_param: mmn_volume_size_0}\n image: {get_param: mmn_volume_image_name_0}\n\n################ Server ##############################\n mmn_zrdm5bpxmc02mmn_0:\n type: OS::Nova::Server\n properties:\n name: {get_param: mmn_name_0}\n# image: {get_param: mmn_image_name}\n flavor: {get_param: mmn_flavor_name}\n# availability_zone: {get_param: availability_zone_0}\n block_device_mapping_v2:\n - device_name: { get_param: [mmn_block_device_names, 0] }\n volume_id: { get_resource: mmn_volume_0 }\n delete_on_termination: {get_param: cinder_delete_on_termination_true}\n networks:\n - port: { get_resource: mmn_oam_protected_0_port }\n config_drive: \"True\"\n user_data_format: RAW\n user_data:\n get_file: user_data_zrdm5bpxmc02mmn001.txt\n metadata:\n vnf_id: {get_param: vnf_id}\n vf_module_id {get_param: vf_module_id}\n \"evacuation_policy\": \"Evacuation\"\n\n################ Ports ##############################\n mmn_oam_protected_0_port:\n type: OS::Neutron::Port\n properties:\n network: {get_param: oam_protected_net_name}\n fixed_ips: [{\"ip_address\": {get_param: mmn_oam_protected_ip_0}}]\n security_groups: [{ get_param: sec_grp_msp_id }]\n replacement_policy: AUTO\n\n################ Volume Attachment ##############################\n volume_attachment_vdb:\n type: OS::Cinder::VolumeAttachment\n depends_on: mmn_zrdm5bpxmc02mmn_0\n properties:\n volume_id: { get_param: mmn_data_volume_id_1 }\n instance_uuid: { get_resource: mmn_zrdm5bpxmc02mmn_0}\n mountpoint: /dev/vdb\n\n volume_attachment_vdc:\n type: OS::Cinder::VolumeAttachment\n depends_on: volume_attachment_vdb\n properties:\n volume_id: { get_param: mmn_arch_volume_id_2 }\n instance_uuid: { get_resource: mmn_zrdm5bpxmc02mmn_0}\n mountpoint: /dev/vdc\n\n volume_attachment_vdd:\n type: OS::Cinder::VolumeAttachment\n depends_on: volume_attachment_vdc\n properties:\n volume_id: { get_param: mmn_backup_volume_id_3 }\n instance_uuid: { get_resource: mmn_zrdm5bpxmc02mmn_0}\n mountpoint: /dev/vdd\n\n volume_attachment_vde:\n type: OS::Cinder::VolumeAttachment\n depends_on: volume_attachment_vdd\n properties:\n volume_id: { get_param: mmn_misc_volume_id_4 }\n instance_uuid: { get_resource: mmn_zrdm5bpxmc02mmn_0}\n mountpoint: /dev/vde\n",
+ "timeoutMinutes": 120,
+ "version": "1",
+ "description": "created from csar",
+ "artifactChecksum": "YmNiYTU5YTM4ODVhYTlhODc5NGMwNWZkZjI5MTRmNTE=",
+ "parameters": [
+ {
+ "heatTemplateArtifactUuid": "b8bca13b-811f-44ab-9d27-45b842c664d8",
+ "paramName": "vnf_id",
+ "required": true,
+ "paramType": "string"
+ },
+ {
+ "heatTemplateArtifactUuid": "b8bca13b-811f-44ab-9d27-45b842c664d8",
+ "paramName": "mmn_block_device_names",
+ "required": true,
+ "paramType": "comma_delimited_list"
+ },
+ {
+ "heatTemplateArtifactUuid": "b8bca13b-811f-44ab-9d27-45b842c664d8",
+ "paramName": "mmn_name_0",
+ "required": true,
+ "paramType": "string"
+ },
+ {
+ "heatTemplateArtifactUuid": "b8bca13b-811f-44ab-9d27-45b842c664d8",
+ "paramName": "mmn_arch_volume_id_2",
+ "required": true,
+ "paramType": "string"
+ },
+ {
+ "heatTemplateArtifactUuid": "b8bca13b-811f-44ab-9d27-45b842c664d8",
+ "paramName": "mmn_volume_image_name_0",
+ "required": true,
+ "paramType": "string"
+ },
+ {
+ "heatTemplateArtifactUuid": "b8bca13b-811f-44ab-9d27-45b842c664d8",
+ "paramName": "cinder_delete_on_termination_false",
+ "required": true,
+ "paramType": "boolean"
+ },
+ {
+ "heatTemplateArtifactUuid": "b8bca13b-811f-44ab-9d27-45b842c664d8",
+ "paramName": "mmn_oam_protected_ip_0",
+ "required": true,
+ "paramType": "string"
+ },
+ {
+ "heatTemplateArtifactUuid": "b8bca13b-811f-44ab-9d27-45b842c664d8",
+ "paramName": "mmn_data_volume_id_1",
+ "required": true,
+ "paramType": "string"
+ },
+ {
+ "heatTemplateArtifactUuid": "b8bca13b-811f-44ab-9d27-45b842c664d8",
+ "paramName": "mmn_backup_volume_id_3",
+ "required": true,
+ "paramType": "string"
+ },
+ {
+ "heatTemplateArtifactUuid": "b8bca13b-811f-44ab-9d27-45b842c664d8",
+ "paramName": "vf_module_id",
+ "required": true,
+ "paramType": "string"
+ },
+ {
+ "heatTemplateArtifactUuid": "b8bca13b-811f-44ab-9d27-45b842c664d8",
+ "paramName": "sec_grp_msp_id",
+ "required": true,
+ "paramType": "string"
+ },
+ {
+ "heatTemplateArtifactUuid": "b8bca13b-811f-44ab-9d27-45b842c664d8",
+ "paramName": "mmn_volume_size_0",
+ "required": true,
+ "paramType": "number"
+ },
+ {
+ "heatTemplateArtifactUuid": "b8bca13b-811f-44ab-9d27-45b842c664d8",
+ "paramName": "cinder_delete_on_termination_true",
+ "required": true,
+ "paramType": "boolean"
+ },
+ {
+ "heatTemplateArtifactUuid": "b8bca13b-811f-44ab-9d27-45b842c664d8",
+ "paramName": "mmn_volume_name_0",
+ "required": true,
+ "paramType": "string"
+ },
+ {
+ "heatTemplateArtifactUuid": "b8bca13b-811f-44ab-9d27-45b842c664d8",
+ "paramName": "oam_protected_net_name",
+ "required": true,
+ "paramType": "string"
+ },
+ {
+ "heatTemplateArtifactUuid": "b8bca13b-811f-44ab-9d27-45b842c664d8",
+ "paramName": "mmn_misc_volume_id_4",
+ "required": true,
+ "paramType": "string"
+ },
+ {
+ "heatTemplateArtifactUuid": "b8bca13b-811f-44ab-9d27-45b842c664d8",
+ "paramName": "mmn_flavor_name",
+ "required": true,
+ "paramType": "string"
+ }
+ ],
+ "childTemplates": [],
+ "heatTemplate": "heat_template_version: 2015-04-30\n\ndescription: HOT creates Nimbus vMSP MMN stack.\n\nparameters:\n mmn_name_0:\n type: string\n label: MSP MMN server names\n description: name of the MSP MMN instances\n mmn_flavor_name:\n type: string\n label: MSP MMN flavor name\n description: MSP MMN flavor name\n# mmn_image_name:\n# type: string\n# label: MSP MMN image name\n# description: MSP MMN image name\n# availability_zone_0:\n# type: string\n# label: MSP MMN availability zones\n# description: MSP MMN availability zones\n sec_grp_msp_id:\n type: string\n label: security group id\n description: the id of security group\n mmn_oam_protected_ip_0:\n type: string\n label: MSP MMN OAM IP Addresses\n description: MSP MMN OAM IP Addresses\n oam_protected_net_name:\n type: string\n label: MSP MMN OAM net name\n description: MSP MMN OAM net name\n mmn_volume_name_0:\n type: string\n label: Mobisupport MSP MMN Cinder Volume names\n description: Mobisupport MSP MMN Cinder Volume names\n mmn_volume_size_0:\n type: number\n label: Mobisupport MSP MMN Cinder Volume sizes\n description: Mobisupport MSP MMN Cinder Volume sizes\n mmn_volume_image_name_0:\n type: string\n label: Mobisupport MSP MMN Cinder Volume image name\n description: Mobisupport MSP MMN Cinder Volume image name\n mmn_data_volume_id_1:\n type: string\n label: MSP MMN Volume id 1\n description: MSP MMN Volume id 1\n mmn_arch_volume_id_2:\n type: string\n label: MSP MMN Volume id 2\n description: MSP MMN Volume id 2\n mmn_backup_volume_id_3:\n type: string\n label: MSP MMN Volume id 3\n description: MSP MMN Volume id 3\n mmn_misc_volume_id_4:\n type: string\n label: MSP MMN Volume id 4\n description: MSP MMN Volume id 4\n mmn_block_device_names:\n type: comma_delimited_list\n label: MSP MMN Block Device Names\n description: MSP MMN Block Device Names\n cinder_delete_on_termination_true:\n type: boolean\n description: delete cinder volume upon instances termination\n cinder_delete_on_termination_false:\n type: boolean\n description: keep cinder volume upon instances termination\n vnf_id:\n type: string\n label: MSP MMN VNF ID\n description: MSP MMN VNF ID\n vf_module_id:\n type: string\n description: Unique ID for this VF module instance\n\nresources:\n################ Cinder Volume ########################\n mmn_volume_0:\n type: OS::Cinder::Volume\n properties:\n name: {get_param: mmn_volume_name_0}\n size: {get_param: mmn_volume_size_0}\n image: {get_param: mmn_volume_image_name_0}\n\n################ Server ##############################\n mmn_zrdm5bpxmc02mmn_0:\n type: OS::Nova::Server\n properties:\n name: {get_param: mmn_name_0}\n# image: {get_param: mmn_image_name}\n flavor: {get_param: mmn_flavor_name}\n# availability_zone: {get_param: availability_zone_0}\n block_device_mapping_v2:\n - device_name: { get_param: [mmn_block_device_names, 0] }\n volume_id: { get_resource: mmn_volume_0 }\n delete_on_termination: {get_param: cinder_delete_on_termination_true}\n networks:\n - port: { get_resource: mmn_oam_protected_0_port }\n config_drive: \"True\"\n user_data_format: RAW\n user_data:\n get_file: user_data_zrdm5bpxmc02mmn001.txt\n metadata:\n vnf_id: {get_param: vnf_id}\n vf_module_id {get_param: vf_module_id}\n \"evacuation_policy\": \"Evacuation\"\n\n################ Ports ##############################\n mmn_oam_protected_0_port:\n type: OS::Neutron::Port\n properties:\n network: {get_param: oam_protected_net_name}\n fixed_ips: [{\"ip_address\": {get_param: mmn_oam_protected_ip_0}}]\n security_groups: [{ get_param: sec_grp_msp_id }]\n replacement_policy: AUTO\n\n################ Volume Attachment ##############################\n volume_attachment_vdb:\n type: OS::Cinder::VolumeAttachment\n depends_on: mmn_zrdm5bpxmc02mmn_0\n properties:\n volume_id: { get_param: mmn_data_volume_id_1 }\n instance_uuid: { get_resource: mmn_zrdm5bpxmc02mmn_0}\n mountpoint: /dev/vdb\n\n volume_attachment_vdc:\n type: OS::Cinder::VolumeAttachment\n depends_on: volume_attachment_vdb\n properties:\n volume_id: { get_param: mmn_arch_volume_id_2 }\n instance_uuid: { get_resource: mmn_zrdm5bpxmc02mmn_0}\n mountpoint: /dev/vdc\n\n volume_attachment_vdd:\n type: OS::Cinder::VolumeAttachment\n depends_on: volume_attachment_vdc\n properties:\n volume_id: { get_param: mmn_backup_volume_id_3 }\n instance_uuid: { get_resource: mmn_zrdm5bpxmc02mmn_0}\n mountpoint: /dev/vdd\n\n volume_attachment_vde:\n type: OS::Cinder::VolumeAttachment\n depends_on: volume_attachment_vdd\n properties:\n volume_id: { get_param: mmn_misc_volume_id_4 }\n instance_uuid: { get_resource: mmn_zrdm5bpxmc02mmn_0}\n mountpoint: /dev/vde\n"
+ },
+ "heatFiles": [],
+ "vnfResources": {
+ "modelUuid": "d326f424-2312-4dd6-b7fe-364fadbd1ef5",
+ "modelInvariantUuid": "23122c9b-dd7f-483f-bf0a-e069303db2f7",
+ "modelName": "Vf zrdm5bpxmc02092017-VF",
+ "toscaNodeType": "org.openecomp.resource.vf.VfZrdm5bpxmc02092017Vf",
+ "description": "Demo",
+ "orchestrationMode": "HEAT",
+ "modelVersion": "1.0",
+ "modelInvariantId": "23122c9b-dd7f-483f-bf0a-e069303db2f7"
+ },
+ "modelInvariantUuid": "8e53c069-b2f0-437a-9c00-21cbc5c8f081",
+ "base": false
+ }
+ }
+ ],
+ "vnfResource": {
+ "modelUuid": "d326f424-2312-4dd6-b7fe-364fadbd1ef5",
+ "modelInvariantUuid": "23122c9b-dd7f-483f-bf0a-e069303db2f7",
+ "modelName": "Vf zrdm5bpxmc02092017-VF",
+ "toscaNodeType": "org.openecomp.resource.vf.VfZrdm5bpxmc02092017Vf",
+ "description": "Demo",
+ "orchestrationMode": "HEAT",
+ "modelVersion": "1.0",
+ "modelInvariantId": "23122c9b-dd7f-483f-bf0a-e069303db2f7"
+ }
+ }
+ ],
+ "allotedCustomizations": [],
+ "recipes": {
+
+ },
+ "csar": {
+ "artifactUUID": "396cfd49-0f4b-4fec-9f33-0fd7e90d5a22",
+ "name": "service-VfZrdm5bpxmc02092017Service-csar.csar",
+ "artifactChecksum": "MWQ3Y2FmMWExNDQyYWI2N2YwNjEwZGUzN2IzMzI3NjE=",
+ "url": "service-VfZrdm5bpxmc02092017Service-csar.csar",
+ "description": "TOSCA definition package of the asset",
+ "version": "1"
+ }
+}
diff --git a/asdc-controller/src/test/resources/resource-examples/multipleModules/notif-structure.json b/asdc-controller/src/test/resources/resource-examples/multipleModules/notif-structure.json
new file mode 100644
index 0000000000..3a7b361f89
--- /dev/null
+++ b/asdc-controller/src/test/resources/resource-examples/multipleModules/notif-structure.json
@@ -0,0 +1,96 @@
+{
+ "serviceName": "Vf zrdm5bpxmc02092017-Service",
+ "serviceInvariantUUID": "b16a9398-ffa3-4041-b78c-2956b8ad9c7b",
+ "serviceUUID": "bad955c3-29b2-4a27-932e-28e942cc6480",
+ "serviceVersion": "1.0",
+ "serviceArtifacts":
+ [{
+ "artifactName": "service-VfZrdm5bpxmc02092017Service-csar.csar",
+ "artifactType": "TOSCA_CSAR",
+ "artifactURL": "service-VfZrdm5bpxmc02092017Service-csar.csar",
+ "artifactChecksum": "MWQ3Y2FmMWExNDQyYWI2N2YwNjEwZGUzN2IzMzI3NjE=",
+ "artifactDescription": "TOSCA definition package of the asset",
+ "artifactTimeout": 0,
+ "artifactUUID": "396cfd49-0f4b-4fec-9f33-0fd7e90d5a22",
+ "artifactVersion": "1"
+ }],
+ "resources":
+ [
+ {
+ "resourceInstanceName": "Vf zrdm5bpxmc02092017-VF 0",
+ "resourceInvariantUUID": "23122c9b-dd7f-483f-bf0a-e069303db2f7",
+ "resourceCustomizationUUID": "96c23a4a-6887-4b2c-9cce-1e4ea35eaade",
+ "resourceName": "Vf zrdm5bpxmc02092017-VF",
+ "resourceType": "VF",
+ "resourceUUID": "14ba5d1e-3862-407c-a236-1cbaebccce77",
+ "resourceVersion": "1.0",
+ "category": "Generic",
+ "subcategory": "Network Elements",
+ "artifacts":
+ [
+ {
+ "artifactChecksum": "NmEyZjc1Y2UwZDMwYjFhNGRlMTMzN2JhNzdiMThjMGU=",
+ "artifactDescription": "Auto-generated HEAT Environment deployment artifact",
+ "artifactName": "pxmc_mmn_volume.env",
+ "artifactType": "HEAT_ENV",
+ "artifactURL": "pxmc_mmn_volume.env",
+ "artifactUUID": "c1ae6284-48d9-4437-a195-b2cf2ba23070",
+ "artifactTimeout": 0,
+ "artifactVersion": "2"
+ },
+ {
+ "artifactChecksum": "OGM2MWIzZTA2OTc5YjQwNTM1NGVhODA0YTFkNzM4ZTg==",
+ "artifactDescription": "Auto-generated HEAT Environment deployment artifact",
+ "artifactName": "pxmc_base.env",
+ "artifactTimeout": 0,
+ "artifactType": "HEAT_ENV",
+ "artifactURL": "pxmc_base.env",
+ "artifactUUID": "6dd99c31-c52e-4c45-b99b-d223c877a296",
+ "artifactVersion": "2.0"
+ },
+ {
+ "artifactChecksum": "MzJmZjgyZWYwOTBjMTg5M2ExNWZhMmMwNzc1NWY1YjQ=",
+ "artifactDescription": "created from csar",
+ "artifactName": "user_data_zrdm5bpxmc02vmt001.txt",
+ "artifactTimeout": 0,
+ "artifactType": "HEAT_ARTIFACT",
+ "artifactURL": "user_data_zrdm5bpxmc02vmt001.txt",
+ "artifactUUID": "53acdabe-689f-45e5-8578-f1514d3529da",
+ "artifactVersion": "1"
+ },
+ {
+ "artifactChecksum": "MjY0NzcxMjJkZGI4YzQ1MDU2NjhkNWYyM2IwNmYzYmU=",
+ "artifactDescription": "Auto-generated VF Modules information artifact",
+ "artifactName": "vfzrdm5bpxmc02092017vf0_modules.json",
+ "artifactTimeout": 0,
+ "artifactType": "VF_MODULES_METADATA",
+ "artifactURL": "vfzrdm5bpxmc02092017vf0_modules.json",
+ "artifactUUID": "e3b82cd6-485e-4d56-8d2c-17ccf6a59533",
+ "artifactVersion": "1"
+ },
+ {
+ "artifactChecksum": "YWQ2MmE0Y2NjNGE4YmJlOTk0YmZhYmIxYTc1YWZkY2M=",
+ "artifactDescription": "Auto-generated HEAT Environment deployment artifact",
+ "artifactName": "base_TEST.env",
+ "artifactTimeout": 0,
+ "artifactType": "HEAT_ENV",
+ "artifactURL": "base_TEST.env",
+ "artifactUUID": "57f6520b-fa65-4544-90de-95c8190c2e6c",
+ "artifactVersion": "1.0"
+ },
+ {
+ "artifactChecksum": "YWQ2MmE0Y2NjNGE4YmJlOTk0YmZhYmIxYTc1YWZkY2M=",
+ "artifactDescription": "Auto-generated HEAT Environment deployment artifact",
+ "artifactName": "base_TEST.env",
+ "artifactTimeout": 0,
+ "artifactType": "HEAT_ENV",
+ "artifactURL": "base_TEST.env",
+ "artifactUUID": "57f6520b-fa65-4544-90de-95c8190c2e6c",
+ "artifactVersion": "1.0"
+ }
+ ]
+ }
+ ],
+ "serviceDescription": "Demo",
+ "distributionID": "a2872f55-8628-4486-8548-7b132c9a47db"
+} \ No newline at end of file
diff --git a/asdc-controller/src/test/resources/resource-examples/multipleModules/pxmc_base.env b/asdc-controller/src/test/resources/resource-examples/multipleModules/pxmc_base.env
new file mode 100644
index 0000000000..42d736ef59
--- /dev/null
+++ b/asdc-controller/src/test/resources/resource-examples/multipleModules/pxmc_base.env
@@ -0,0 +1,2 @@
+parameters:
+ vnf_name:
diff --git a/asdc-controller/src/test/resources/resource-examples/multipleModules/pxmc_base.yaml b/asdc-controller/src/test/resources/resource-examples/multipleModules/pxmc_base.yaml
new file mode 100644
index 0000000000..3e98047ffd
--- /dev/null
+++ b/asdc-controller/src/test/resources/resource-examples/multipleModules/pxmc_base.yaml
@@ -0,0 +1,45 @@
+heat_template_version: 2015-04-30
+
+parameters:
+
+## GLOBAL//Basic Parameters
+ vnf_name:
+ type: string
+ description: Unique name for this VF instance
+# For manual spinups, value must be in the ENV file. Must be removed from ENV before uploading to ASDC
+
+resources:
+
+## MSP RSG//Resource:SecurityGroup
+ sec_grp_msp_0:
+ type: OS::Neutron::SecurityGroup
+ properties:
+ description: Security Group for PXMC
+ name:
+ str_replace:
+ template: VF_NAME_sec_grp_msp
+ params:
+ VF_NAME: { get_param: vnf_name }
+ rules:
+ - {"direction": "egress", "remote_ip_prefix": "0.0.0.0/0", "protocol": "tcp", "ethertype": "IPv4", "port_range_max": 65535, "port_range_min": 0}
+ - {"direction": "egress", "remote_ip_prefix": "0.0.0.0/0", "protocol": "udp", "ethertype": "IPv4", "port_range_max": 65535, "port_range_min": 0}
+ - {"direction": "egress", "remote_ip_prefix": "0.0.0.0/0", "protocol": "132", "ethertype": "IPv4", "port_range_max": 65535, "port_range_min": 0}
+ - {"direction": "egress", "remote_ip_prefix": "0.0.0.0/0", "protocol": "icmp", "ethertype": "IPv4"}
+ - {"direction": "egress", "remote_ip_prefix": "::/0", "protocol": "tcp", "ethertype": "IPv6", "port_range_max": 65535, "port_range_min": 0}
+ - {"direction": "egress", "remote_ip_prefix": "::/0", "protocol": "udp", "ethertype": "IPv6", "port_range_max": 65535, "port_range_min": 0}
+ - {"direction": "egress", "remote_ip_prefix": "::/0", "protocol": "132", "ethertype": "IPv6", "port_range_max": 65535, "port_range_min": 0}
+ - {"direction": "egress", "remote_ip_prefix": "::/0", "protocol": "58", "ethertype": "IPv6"}
+ - {"direction": "ingress", "remote_ip_prefix": "0.0.0.0/0", "protocol": "tcp", "ethertype": "IPv4", "port_range_max": 65535, "port_range_min": 0}
+ - {"direction": "ingress", "remote_ip_prefix": "0.0.0.0/0", "protocol": "udp", "ethertype": "IPv4", "port_range_max": 65535, "port_range_min": 0}
+ - {"direction": "ingress", "remote_ip_prefix": "0.0.0.0/0", "protocol": "132", "ethertype": "IPv4", "port_range_max": 65535, "port_range_min": 0}
+ - {"direction": "ingress", "remote_ip_prefix": "0.0.0.0/0", "protocol": "icmp", "ethertype": "IPv4"}
+ - {"direction": "ingress", "remote_ip_prefix": "::/0", "protocol": "tcp", "ethertype": "IPv6", "port_range_max": 65535, "port_range_min": 0}
+ - {"direction": "ingress", "remote_ip_prefix": "::/0", "protocol": "udp", "ethertype": "IPv6", "port_range_max": 65535, "port_range_min": 0}
+ - {"direction": "ingress", "remote_ip_prefix": "::/0", "protocol": "132", "ethertype": "IPv6", "port_range_max": 65535, "port_range_min": 0}
+ - {"direction": "ingress", "remote_ip_prefix": "::/0", "protocol": "58", "ethertype": "IPv6"}
+
+outputs:
+
+ sec_grp_msp_id:
+ description: uuid of the security group
+ value: {get_resource: sec_grp_msp_0 }
diff --git a/asdc-controller/src/test/resources/resource-examples/multipleModules/pxmc_mmn.env b/asdc-controller/src/test/resources/resource-examples/multipleModules/pxmc_mmn.env
new file mode 100644
index 0000000000..42599e6034
--- /dev/null
+++ b/asdc-controller/src/test/resources/resource-examples/multipleModules/pxmc_mmn.env
@@ -0,0 +1,18 @@
+parameters:
+ cinder_delete_on_termination_false:
+ cinder_delete_on_termination_true:
+ mmn_arch_volume_id_2:
+ mmn_backup_volume_id_3:
+ mmn_block_device_names:
+ mmn_data_volume_id_1:
+ mmn_flavor_name:
+ mmn_misc_volume_id_4:
+ mmn_name_0:
+ mmn_oam_protected_ip_0:
+ mmn_volume_image_name_0:
+ mmn_volume_name_0:
+ mmn_volume_size_0:
+ oam_protected_net_name:
+ sec_grp_msp_id:
+ vf_module_id:
+ vnf_id:
diff --git a/asdc-controller/src/test/resources/resource-examples/multipleModules/pxmc_mmn.yaml b/asdc-controller/src/test/resources/resource-examples/multipleModules/pxmc_mmn.yaml
new file mode 100644
index 0000000000..d1b0ce883b
--- /dev/null
+++ b/asdc-controller/src/test/resources/resource-examples/multipleModules/pxmc_mmn.yaml
@@ -0,0 +1,152 @@
+heat_template_version: 2015-04-30
+
+description: HOT creates Nimbus vMSP MMN stack.
+
+parameters:
+ mmn_name_0:
+ type: string
+ label: MSP MMN server names
+ description: name of the MSP MMN instances
+ mmn_flavor_name:
+ type: string
+ label: MSP MMN flavor name
+ description: MSP MMN flavor name
+# mmn_image_name:
+# type: string
+# label: MSP MMN image name
+# description: MSP MMN image name
+# availability_zone_0:
+# type: string
+# label: MSP MMN availability zones
+# description: MSP MMN availability zones
+ sec_grp_msp_id:
+ type: string
+ label: security group id
+ description: the id of security group
+ mmn_oam_protected_ip_0:
+ type: string
+ label: MSP MMN OAM IP Addresses
+ description: MSP MMN OAM IP Addresses
+ oam_protected_net_name:
+ type: string
+ label: MSP MMN OAM net name
+ description: MSP MMN OAM net name
+ mmn_volume_name_0:
+ type: string
+ label: Mobisupport MSP MMN Cinder Volume names
+ description: Mobisupport MSP MMN Cinder Volume names
+ mmn_volume_size_0:
+ type: number
+ label: Mobisupport MSP MMN Cinder Volume sizes
+ description: Mobisupport MSP MMN Cinder Volume sizes
+ mmn_volume_image_name_0:
+ type: string
+ label: Mobisupport MSP MMN Cinder Volume image name
+ description: Mobisupport MSP MMN Cinder Volume image name
+ mmn_data_volume_id_1:
+ type: string
+ label: MSP MMN Volume id 1
+ description: MSP MMN Volume id 1
+ mmn_arch_volume_id_2:
+ type: string
+ label: MSP MMN Volume id 2
+ description: MSP MMN Volume id 2
+ mmn_backup_volume_id_3:
+ type: string
+ label: MSP MMN Volume id 3
+ description: MSP MMN Volume id 3
+ mmn_misc_volume_id_4:
+ type: string
+ label: MSP MMN Volume id 4
+ description: MSP MMN Volume id 4
+ mmn_block_device_names:
+ type: comma_delimited_list
+ label: MSP MMN Block Device Names
+ description: MSP MMN Block Device Names
+ cinder_delete_on_termination_true:
+ type: boolean
+ description: delete cinder volume upon instances termination
+ cinder_delete_on_termination_false:
+ type: boolean
+ description: keep cinder volume upon instances termination
+ vnf_id:
+ type: string
+ label: MSP MMN VNF ID
+ description: MSP MMN VNF ID
+ vf_module_id:
+ type: string
+ description: Unique ID for this VF module instance
+
+resources:
+################ Cinder Volume ########################
+ mmn_volume_0:
+ type: OS::Cinder::Volume
+ properties:
+ name: {get_param: mmn_volume_name_0}
+ size: {get_param: mmn_volume_size_0}
+ image: {get_param: mmn_volume_image_name_0}
+
+################ Server ##############################
+ mmn_zrdm5bpxmc02mmn_0:
+ type: OS::Nova::Server
+ properties:
+ name: {get_param: mmn_name_0}
+# image: {get_param: mmn_image_name}
+ flavor: {get_param: mmn_flavor_name}
+# availability_zone: {get_param: availability_zone_0}
+ block_device_mapping_v2:
+ - device_name: { get_param: [mmn_block_device_names, 0] }
+ volume_id: { get_resource: mmn_volume_0 }
+ delete_on_termination: {get_param: cinder_delete_on_termination_true}
+ networks:
+ - port: { get_resource: mmn_oam_protected_0_port }
+ config_drive: "True"
+ user_data_format: RAW
+ user_data:
+ get_file: user_data_zrdm5bpxmc02mmn001.txt
+ metadata:
+ vnf_id: {get_param: vnf_id}
+ vf_module_id {get_param: vf_module_id}
+ "evacuation_policy": "Evacuation"
+
+################ Ports ##############################
+ mmn_oam_protected_0_port:
+ type: OS::Neutron::Port
+ properties:
+ network: {get_param: oam_protected_net_name}
+ fixed_ips: [{"ip_address": {get_param: mmn_oam_protected_ip_0}}]
+ security_groups: [{ get_param: sec_grp_msp_id }]
+ replacement_policy: AUTO
+
+################ Volume Attachment ##############################
+ volume_attachment_vdb:
+ type: OS::Cinder::VolumeAttachment
+ depends_on: mmn_zrdm5bpxmc02mmn_0
+ properties:
+ volume_id: { get_param: mmn_data_volume_id_1 }
+ instance_uuid: { get_resource: mmn_zrdm5bpxmc02mmn_0}
+ mountpoint: /dev/vdb
+
+ volume_attachment_vdc:
+ type: OS::Cinder::VolumeAttachment
+ depends_on: volume_attachment_vdb
+ properties:
+ volume_id: { get_param: mmn_arch_volume_id_2 }
+ instance_uuid: { get_resource: mmn_zrdm5bpxmc02mmn_0}
+ mountpoint: /dev/vdc
+
+ volume_attachment_vdd:
+ type: OS::Cinder::VolumeAttachment
+ depends_on: volume_attachment_vdc
+ properties:
+ volume_id: { get_param: mmn_backup_volume_id_3 }
+ instance_uuid: { get_resource: mmn_zrdm5bpxmc02mmn_0}
+ mountpoint: /dev/vdd
+
+ volume_attachment_vde:
+ type: OS::Cinder::VolumeAttachment
+ depends_on: volume_attachment_vdd
+ properties:
+ volume_id: { get_param: mmn_misc_volume_id_4 }
+ instance_uuid: { get_resource: mmn_zrdm5bpxmc02mmn_0}
+ mountpoint: /dev/vde
diff --git a/asdc-controller/src/test/resources/resource-examples/multipleModules/pxmc_mmn_volume.env b/asdc-controller/src/test/resources/resource-examples/multipleModules/pxmc_mmn_volume.env
new file mode 100644
index 0000000000..d5f16289b1
--- /dev/null
+++ b/asdc-controller/src/test/resources/resource-examples/multipleModules/pxmc_mmn_volume.env
@@ -0,0 +1,9 @@
+parameters:
+ mmn_volume_name_1: "data-mn-v-vdb"
+ mmn_volume_name_2: "arch-mn-v-vdc"
+ mmn_volume_name_3: "backup-mn-v-vdd"
+ mmn_volume_name_4: "misc-mn-v-vde"
+ mmn_volume_size_1: 20
+ mmn_volume_size_2: 20
+ mmn_volume_size_3: 50
+ mmn_volume_size_4: 20
diff --git a/asdc-controller/src/test/resources/resource-examples/multipleModules/pxmc_mmn_volume.yaml b/asdc-controller/src/test/resources/resource-examples/multipleModules/pxmc_mmn_volume.yaml
new file mode 100644
index 0000000000..debb8a96db
--- /dev/null
+++ b/asdc-controller/src/test/resources/resource-examples/multipleModules/pxmc_mmn_volume.yaml
@@ -0,0 +1,86 @@
+heat_template_version: 2015-04-30
+
+description: HOT creates MSP MMN Cinder Volumes under MobiSupport Tenant
+
+parameters:
+ mmn_volume_name_1:
+ type: string
+ label: Mobisupport MSP MMN Cinder Volume names
+ description: Mobisupport MSP MMN Cinder Volume names
+
+ mmn_volume_name_2:
+ type: string
+ label: Mobisupport MSP MMN Cinder Volume names
+ description: Mobisupport MSP MMN Cinder Volume names
+
+ mmn_volume_name_3:
+ type: string
+ label: Mobisupport MSP MMN Cinder Volume names
+ description: Mobisupport MSP MMN Cinder Volume names
+
+ mmn_volume_name_4:
+ type: string
+ label: Mobisupport MSP MMN Cinder Volume names
+ description: Mobisupport MSP MMN Cinder Volume names
+
+ mmn_volume_size_1:
+ type: number
+ label: Mobisupport MSP MMN Cinder Volume sizes
+ description: Mobisupport MSP MMN Cinder Volume sizes
+
+ mmn_volume_size_2:
+ type: number
+ label: Mobisupport MSP MMN Cinder Volume sizes
+ description: Mobisupport MSP MMN Cinder Volume sizes
+
+ mmn_volume_size_3:
+ type: number
+ label: Mobisupport MSP MMN Cinder Volume sizes
+ description: Mobisupport MSP MMN Cinder Volume sizes
+
+ mmn_volume_size_4:
+ type: number
+ label: Mobisupport MSP MMN Cinder Volume sizes
+ description: Mobisupport MSP MMN Cinder Volume sizes
+
+resources:
+ mmn_data_volume_1:
+ type: OS::Cinder::Volume
+ properties:
+ name: {get_param: mmn_volume_name_1}
+ size: {get_param: mmn_volume_size_1}
+
+ mmn_arch_volume_2:
+ type: OS::Cinder::Volume
+ properties:
+ name: {get_param: mmn_volume_name_2}
+ size: {get_param: mmn_volume_size_2}
+
+ mmn_backup_volume_3:
+ type: OS::Cinder::Volume
+ properties:
+ name: {get_param: mmn_volume_name_3}
+ size: {get_param: mmn_volume_size_3}
+
+ mmn_misc_volume_4:
+ type: OS::Cinder::Volume
+ properties:
+ name: {get_param: mmn_volume_name_4}
+ size: {get_param: mmn_volume_size_4}
+
+outputs:
+ mmn_data_volume_id_1:
+ description: msp mmn data volume 1
+ value: {get_resource: mmn_data_volume_1}
+
+ mmn_arch_volume_id_2:
+ description: msp mn arch volume 2
+ value: {get_resource: mmn_arch_volume_2}
+
+ mmn_backup_volume_id_3:
+ description: msp mn backup volume 3
+ value: {get_resource: mmn_backup_volume_3}
+
+ mmn_misc_volume_id_4:
+ description: msp mn volume 4
+ value: {get_resource: mmn_misc_volume_4}
diff --git a/asdc-controller/src/test/resources/resource-examples/multipleModules/pxmc_vmt.env b/asdc-controller/src/test/resources/resource-examples/multipleModules/pxmc_vmt.env
new file mode 100644
index 0000000000..0f0e6daac0
--- /dev/null
+++ b/asdc-controller/src/test/resources/resource-examples/multipleModules/pxmc_vmt.env
@@ -0,0 +1,17 @@
+parameters:
+ cinder_delete_on_termination_false:
+ cinder_delete_on_termination_true:
+ oam_protected_net_name:
+ sec_grp_msp_id:
+ vf_module_id:
+ vmt_block_device_names:
+ vmt_flavor_name:
+ vmt_name_0:
+ vmt_oam_protected_ip_0:
+ vmt_volume_image_name_0:
+ vmt_volume_image_name_1:
+ vmt_volume_name_0:
+ vmt_volume_name_1:
+ vmt_volume_size_0:
+ vmt_volume_size_1:
+ vnf_id:
diff --git a/asdc-controller/src/test/resources/resource-examples/multipleModules/pxmc_vmt.yaml b/asdc-controller/src/test/resources/resource-examples/multipleModules/pxmc_vmt.yaml
new file mode 100644
index 0000000000..2e04c6130e
--- /dev/null
+++ b/asdc-controller/src/test/resources/resource-examples/multipleModules/pxmc_vmt.yaml
@@ -0,0 +1,128 @@
+heat_template_version: 2015-04-30
+
+description: HOT creates Nimbus MSP VMT stack under MobiSupport Tenant
+
+parameters:
+ vmt_name_0:
+ type: string
+ label: MSP VMT server names
+ description: name of the MSP VMT instances
+# vmt_image_name:
+# type: string
+# label: MSP VMT image name
+# description: MSP VMT image name
+ vmt_flavor_name:
+ type: string
+ label: MSP VMT flavor name
+ description: MSP VMT flavor name
+# availability_zone_0:
+# type: string
+# label: MSP VMT availability zones
+# description: MSP VMT availability zones
+ sec_grp_msp_id:
+ type: string
+ label: security group id
+ description: the id of security group
+ vmt_oam_protected_ip_0:
+ type: string
+ label: MSP VMT OAM IP Addresses
+ description: MSP VMT OAM IP Addresses
+ oam_protected_net_name:
+ type: string
+ label: MSP VMT OAM net name
+ description: MSP VMT OAM net name
+ vmt_block_device_names:
+ type: comma_delimited_list
+ label: MSP VMT Block Device Names
+ description: MSP VMT Block Device Names
+ vmt_volume_name_0:
+ type: string
+ label: Mobisupport MSP VMT Cinder Volume names
+ description: Mobisupport MSP VMT Cinder Volume names
+ vmt_volume_name_1:
+ type: string
+ label: Mobisupport MSP VMT Cinder Volume names
+ description: Mobisupport MSP VMT Cinder Volume names
+ vmt_volume_size_0:
+ type: number
+ label: Mobisupport MSP VMT Cinder Volume sizes
+ description: Mobisupport MSP VMT Cinder Volume sizes
+ vmt_volume_size_1:
+ type: number
+ label: Mobisupport MSP VMT Cinder Volume sizes
+ description: Mobisupport MSP VMT Cinder Volume sizes
+ vmt_volume_image_name_0:
+ type: string
+ label: Mobisupport MSP VMT VDA Cinder Volume image name
+ description: Mobisupport MSP VMT VDA Cinder Volume image name
+ vmt_volume_image_name_1:
+ type: string
+ label: Mobisupport MSP VMT VDB Cinder Volume image name
+ description: Mobisupport MSP VMT VDB Cinder Volume image name
+ cinder_delete_on_termination_true:
+ type: boolean
+ description: delete cinder volume upon instances termination
+ cinder_delete_on_termination_false:
+ type: boolean
+ description: keep cinder volume upon instances termination
+ vnf_id:
+ type: string
+ label: MSP VMT VNF ID
+ description: MSP VMT VNF ID
+ vf_module_id:
+ type: string
+ description: Unique ID for this VF Module instance
+
+resources:
+################ Cinder Volumes ##############################
+ vmt_volume_0:
+ type: OS::Cinder::Volume
+ properties:
+ name: {get_param: vmt_volume_name_0}
+ size: {get_param: vmt_volume_size_0}
+ image: {get_param: vmt_volume_image_name_0}
+
+ vmt_volume_1:
+ type: OS::Cinder::Volume
+ properties:
+ name: {get_param: vmt_volume_name_1}
+ size: {get_param: vmt_volume_size_1}
+ image: {get_param: vmt_volume_image_name_1}
+
+################ Ports ##############################
+ vmt_oam_protected_0_port:
+ type: OS::Neutron::Port
+ properties:
+ network: {get_param: oam_protected_net_name}
+ fixed_ips: [{"ip_address": {get_param: vmt_oam_protected_ip_0}}]
+ security_groups: [{get_param: sec_grp_msp_id}]
+ replacement_policy: AUTO
+
+################### Servers #########################
+ vmt_zrdm5bpxmc02vmt_0:
+ type: OS::Nova::Server
+ properties:
+ name: {get_param: vmt_name_0}
+# image: {get_param: vmt_image_name}
+ flavor: {get_param: vmt_flavor_name}
+# availability_zone: {get_param: availability_zone_0}
+ block_device_mapping_v2:
+ - device_name: {get_param: [vmt_block_device_names, 0]}
+ volume_id: {get_resource: vmt_volume_0}
+ delete_on_termination: {get_param: cinder_delete_on_termination_true}
+ boot_index: 0
+ - device_name: {get_param: [vmt_block_device_names, 1]}
+ volume_id: {get_resource: vmt_volume_1}
+ delete_on_termination: {get_param: cinder_delete_on_termination_true}
+ boot_index: -1
+ networks:
+ - port: {get_resource: vmt_oam_protected_0_port}
+ config_drive: "True"
+ user_data_format: RAW
+ user_data:
+ get_file: user_data_zrdm5bpxmc02vmt001.txt
+
+ metadata:
+ vnf_id: {get_param: vnf_id}
+ vf_module_id {get_param: vf_module_id}
+ "evacuation_policy": "Evacuation"
diff --git a/asdc-controller/src/test/resources/resource-examples/multipleModules/service-VfZrdm5bpxmc02092017Service-csar.csar b/asdc-controller/src/test/resources/resource-examples/multipleModules/service-VfZrdm5bpxmc02092017Service-csar.csar
new file mode 100644
index 0000000000..69b1c23404
--- /dev/null
+++ b/asdc-controller/src/test/resources/resource-examples/multipleModules/service-VfZrdm5bpxmc02092017Service-csar.csar
Binary files differ
diff --git a/asdc-controller/src/test/resources/resource-examples/multipleModules/testStructure.json b/asdc-controller/src/test/resources/resource-examples/multipleModules/testStructure.json
new file mode 100644
index 0000000000..0dd1193e67
--- /dev/null
+++ b/asdc-controller/src/test/resources/resource-examples/multipleModules/testStructure.json
@@ -0,0 +1,217 @@
+{
+ "distributionID": "a2872f55-8628-4486-8548-7b132c9a47db",
+ "serviceName": "Vf zrdm5bpxmc02092017-Service",
+ "serviceVersion": "1.0",
+ "serviceUUID": "bad955c3-29b2-4a27-932e-28e942cc6480",
+ "serviceInvariantUUID": "b16a9398-ffa3-4041-b78c-2956b8ad9c7b",
+ "serviceDescription": "Demo",
+ "serviceArtifacts": [
+ {
+ "artifactName": "service-VfZrdm5bpxmc02092017Service-csar.csar",
+ "artifactVersion": "1",
+ "artifactType": "TOSCA_CSAR",
+ "artifactDescription": "TOSCA definition package of the asset",
+ "artifactTimeout": "0",
+ "artifactURL": "service-VfZrdm5bpxmc02092017Service-csar.csar",
+ "artifactUUID": "396cfd49-0f4b-4fec-9f33-0fd7e90d5a22",
+ "artifactChecksum": "MWQ3Y2FmMWExNDQyYWI2N2YwNjEwZGUzN2IzMzI3NjE="
+ }
+ ],
+ "resources": [
+ {
+ "resourceInstanceName": "Vf zrdm5bpxmc02092017-VF 0",
+ "resourceCustomizationUUID": "96c23a4a-6887-4b2c-9cce-1e4ea35eaade",
+ "resourceInvariantUUID": "23122c9b-dd7f-483f-bf0a-e069303db2f7",
+ "resourceName": "Vf zrdm5bpxmc02092017-VF",
+ "resourceType": "VF",
+ "resourceUUID": "14ba5d1e-3862-407c-a236-1cbaebccce77",
+ "resourceVersion": "1.0",
+ "category": "Generic",
+ "subCategory": "Network Elements",
+ "artifacts": [
+ {
+ "artifactName": "pxmc_mmn_volume.env",
+ "artifactVersion": "2",
+ "artifactType": "HEAT_ENV",
+ "artifactDescription": "Auto-generated HEAT Environment deployment artifact",
+ "artifactTimeout": "0",
+ "artifactURL": "pxmc_mmn_volume.env",
+ "artifactUUID": "c1ae6284-48d9-4437-a195-b2cf2ba23070",
+ "artifactChecksum": "NmEyZjc1Y2UwZDMwYjFhNGRlMTMzN2JhNzdiMThjMGU="
+ },
+ {
+ "artifactName": "pxmc_base.env",
+ "artifactVersion": "2",
+ "artifactType": "HEAT_ENV",
+ "artifactDescription": "Auto-generated HEAT Environment deployment artifact",
+ "artifactTimeout": "0",
+ "artifactURL": "pxmc_base.env",
+ "artifactUUID": "6dd99c31-c52e-4c45-b99b-d223c877a296",
+ "artifactChecksum": "OGM2MWIzZTA2OTc5YjQwNTM1NGVhODA0YTFkNzM4ZTg="
+ },
+ {
+ "artifactName": "vfzrdm5bpxmc02092017vf0_modules.json",
+ "artifactVersion": "1",
+ "artifactType": "VF_MODULES_METADATA",
+ "artifactDescription": "Auto-generated VF Modules information artifact",
+ "artifactTimeout": "0",
+ "artifactURL": "vfzrdm5bpxmc02092017vf0_modules.json",
+ "artifactUUID": "e3b82cd6-485e-4d56-8d2c-17ccf6a59533",
+ "artifactChecksum": "MjY0NzcxMjJkZGI4YzQ1MDU2NjhkNWYyM2IwNmYzYmU="
+ },
+ {
+ "artifactName": "pxmc_vmt.yaml",
+ "artifactVersion": "1",
+ "artifactType": "HEAT",
+ "artifactDescription": "created from csar",
+ "artifactTimeout": "120",
+ "artifactURL": "pxmc_vmt.yaml",
+ "artifactUUID": "ad12ab80-5419-4346-a5d7-dac2fc15575f",
+ "artifactChecksum": "ODE0YTRiYzc2YzkxOTliZjJhNjc0M2RhMWU4M2VlZmE=",
+ "generatedArtifact": {
+ "artifactInfo": {
+ "artifactName": "pxmc_vmt.env",
+ "artifactVersion": "2",
+ "artifactType": "HEAT_ENV",
+ "artifactDescription": "Auto-generated HEAT Environment deployment artifact",
+ "artifactTimeout": "0",
+ "artifactURL": "pxmc_vmt.env",
+ "artifactUUID": "bc1640f1-69f0-4760-8fc3-3318ec2ff129",
+ "artifactChecksum": "MjdkYzY5ZGU0ZTlkZDlhNzI2ZGVhMjk1ODVhZTg1NTY="
+ }
+ },
+ "relatedArtifacts": [{
+ "artifactInfo": {
+ "artifactName": "user_data_zrdm5bpxmc02vmt001.txt",
+ "artifactVersion": "1",
+ "artifactType": "HEAT_ARTIFACT",
+ "artifactDescription": "created from csar",
+ "artifactTimeout": "0",
+ "artifactURL": "user_data_zrdm5bpxmc02vmt001.txt",
+ "artifactUUID": "53acdabe-689f-45e5-8578-f1514d3529da",
+ "artifactChecksum": "MzJmZjgyZWYwOTBjMTg5M2ExNWZhMmMwNzc1NWY1YjQ="
+ }
+ }]
+ },
+ {
+ "artifactName": "pxmc_mmn.yaml",
+ "artifactVersion": "1",
+ "artifactType": "HEAT",
+ "artifactDescription": "created from csar",
+ "artifactTimeout": "120",
+ "artifactURL": "pxmc_mmn.yaml",
+ "artifactUUID": "b8bca13b-811f-44ab-9d27-45b842c664d8",
+ "artifactChecksum": "YmNiYTU5YTM4ODVhYTlhODc5NGMwNWZkZjI5MTRmNTE=",
+ "generatedArtifact": {
+ "artifactInfo": {
+ "artifactName": "pxmc_mmn.env",
+ "artifactVersion": "2",
+ "artifactType": "HEAT_ENV",
+ "artifactDescription": "Auto-generated HEAT Environment deployment artifact",
+ "artifactTimeout": "0",
+ "artifactURL": "pxmc_mmn.env",
+ "artifactUUID": "e88ce0b9-1496-4d03-ab1d-6d8d79bfc737",
+ "artifactChecksum": "ZGI1NzI2Y2FmYjFhOTM2ZDYwNzg1YWRhZjBmMTk2OTQ="
+ }
+ },
+ "relatedArtifacts": [{
+ "artifactInfo": {
+ "artifactName": "user_data_zrdm5bpxmc02mmn001.txt",
+ "artifactVersion": "1",
+ "artifactType": "HEAT_ARTIFACT",
+ "artifactDescription": "created from csar",
+ "artifactTimeout": "0",
+ "artifactURL": "user_data_zrdm5bpxmc02mmn001.txt",
+ "artifactUUID": "5bc62c72-5f7a-40bc-a167-1a4fed9afdef",
+ "artifactChecksum": "OTMxMjk5Mzc1YmIxMzRlYmRlZWJhMjg0MWQ4YTI1NWU="
+ }
+ }]
+ },
+ {
+ "artifactName": "pxmc_mmn.env",
+ "artifactVersion": "2",
+ "artifactType": "HEAT_ENV",
+ "artifactDescription": "Auto-generated HEAT Environment deployment artifact",
+ "artifactTimeout": "0",
+ "artifactURL": "pxmc_mmn.env",
+ "artifactUUID": "e88ce0b9-1496-4d03-ab1d-6d8d79bfc737",
+ "artifactChecksum": "ZGI1NzI2Y2FmYjFhOTM2ZDYwNzg1YWRhZjBmMTk2OTQ="
+ },
+ {
+ "artifactName": "pxmc_vmt.env",
+ "artifactVersion": "2",
+ "artifactType": "HEAT_ENV",
+ "artifactDescription": "Auto-generated HEAT Environment deployment artifact",
+ "artifactTimeout": "0",
+ "artifactURL": "pxmc_vmt.env",
+ "artifactUUID": "bc1640f1-69f0-4760-8fc3-3318ec2ff129",
+ "artifactChecksum": "MjdkYzY5ZGU0ZTlkZDlhNzI2ZGVhMjk1ODVhZTg1NTY="
+ },
+ {
+ "artifactName": "user_data_zrdm5bpxmc02mmn001.txt",
+ "artifactVersion": "1",
+ "artifactType": "HEAT_ARTIFACT",
+ "artifactDescription": "created from csar",
+ "artifactTimeout": "0",
+ "artifactURL": "user_data_zrdm5bpxmc02mmn001.txt",
+ "artifactUUID": "5bc62c72-5f7a-40bc-a167-1a4fed9afdef",
+ "artifactChecksum": "OTMxMjk5Mzc1YmIxMzRlYmRlZWJhMjg0MWQ4YTI1NWU="
+ },
+ {
+ "artifactName": "pxmc_base.yaml",
+ "artifactVersion": "1",
+ "artifactType": "HEAT",
+ "artifactDescription": "created from csar",
+ "artifactTimeout": "120",
+ "artifactURL": "pxmc_base.yaml",
+ "artifactUUID": "7e7f7356-11bd-4f2f-bbbc-5c10954e3189",
+ "artifactChecksum": "YThkNGFhZjAwNmM4NzMzODc0YzNhYTUxOTljNGQwNmM=",
+ "generatedArtifact": {
+ "artifactInfo": {
+ "artifactName": "pxmc_base.env",
+ "artifactVersion": "2",
+ "artifactType": "HEAT_ENV",
+ "artifactDescription": "Auto-generated HEAT Environment deployment artifact",
+ "artifactTimeout": "0",
+ "artifactURL": "pxmc_base.env",
+ "artifactUUID": "6dd99c31-c52e-4c45-b99b-d223c877a296",
+ "artifactChecksum": "OGM2MWIzZTA2OTc5YjQwNTM1NGVhODA0YTFkNzM4ZTg="
+ }
+ }
+ },
+ {
+ "artifactName": "user_data_zrdm5bpxmc02vmt001.txt",
+ "artifactVersion": "1",
+ "artifactType": "HEAT_ARTIFACT",
+ "artifactDescription": "created from csar",
+ "artifactTimeout": "0",
+ "artifactURL": "user_data_zrdm5bpxmc02vmt001.txt",
+ "artifactUUID": "53acdabe-689f-45e5-8578-f1514d3529da",
+ "artifactChecksum": "MzJmZjgyZWYwOTBjMTg5M2ExNWZhMmMwNzc1NWY1YjQ="
+ },
+ {
+ "artifactName": "pxmc_mmn_volume.yaml",
+ "artifactVersion": "2",
+ "artifactType": "HEAT_VOL",
+ "artifactDescription": "created from csar",
+ "artifactTimeout": "120",
+ "artifactURL": "pxmc_mmn_volume.yaml",
+ "artifactUUID": "2f372a02-df1b-46ca-b81e-822e3f406965",
+ "artifactChecksum": "MzA5MGY5ODQ0NDY5MDhiMDM3YjFlNGIwNzJkNjFhOTI=",
+ "generatedArtifact": {
+ "artifactInfo": {
+ "artifactName": "pxmc_mmn_volume.env",
+ "artifactVersion": "2",
+ "artifactType": "HEAT_ENV",
+ "artifactDescription": "Auto-generated HEAT Environment deployment artifact",
+ "artifactTimeout": "0",
+ "artifactURL": "pxmc_mmn_volume.env",
+ "artifactUUID": "c1ae6284-48d9-4437-a195-b2cf2ba23070",
+ "artifactChecksum": "NmEyZjc1Y2UwZDMwYjFhNGRlMTMzN2JhNzdiMThjMGU="
+ }
+ }
+ }
+ ]
+ }
+ ]
+}
diff --git a/asdc-controller/src/test/resources/resource-examples/multipleModules/user_data_zrdm5bpxmc02mmn001.txt b/asdc-controller/src/test/resources/resource-examples/multipleModules/user_data_zrdm5bpxmc02mmn001.txt
new file mode 100644
index 0000000000..93a8ab9ae3
--- /dev/null
+++ b/asdc-controller/src/test/resources/resource-examples/multipleModules/user_data_zrdm5bpxmc02mmn001.txt
@@ -0,0 +1,412 @@
+#cloud-config
+# \hbrief cloud-init main template for MSP config
+# \hversion 0.0.11
+# \hdate 2016-05-09
+# \brief cloud-init template for MSP config
+# \version 0.2.57
+# \date 2016-09-19
+# Configuration created for MSP SLES_12 MMN
+
+chpasswd:
+ list: |
+ root:Ericsson
+ miepadm:miep1234
+
+ expire: False
+
+users:
+
+bootcmd:
+
+ - [ sh, -xc, "echo \"#################################################################\" > /etc/issue.ci" ]
+ - [ sh, -xc, "echo \"# #\" >> /etc/issue.ci" ]
+ - [ sh, -xc, "echo \"# * * * Cloud-init configuration is in progress * * * #\" >> /etc/issue.ci" ]
+ - [ sh, -xc, "echo \"# #\" >> /etc/issue.ci" ]
+ - [ sh, -xc, "echo \"# The system will reboot shortly and then be accessible #\" >> /etc/issue.ci" ]
+ - [ sh, -xc, "echo \"# #\" >> /etc/issue.ci" ]
+ - [ sh, -xc, "echo \"#################################################################\" >> /etc/issue.ci" ]
+ - [ sh, -xc, "if [ -f /etc/issue.orig ]; then cp /etc/issue.orig /etc/issue; fi" ]
+ - [ sh, -xc, "if [ ! -f /etc/issue.orig ]; then cp /etc/issue /etc/issue.orig; cp /etc/issue.ci /etc/issue; fi" ]
+ - [ sh, -xc, "/bin/sed -i 's/^DHCLIENT_SET_DEFAULT_ROUTE=\"yes\".*/DHCLIENT_SET_DEFAULT_ROUTE=\"no\"/' /etc/sysconfig/network/dhcp" ]
+ - [ sh, -xc, "/bin/sed -i 's/^NETCONFIG_DNS_POLICY=.*/NETCONFIG_DNS_POLICY=\"STATIC\"/' /etc/sysconfig/network/config" ]
+
+runcmd:
+ - [ sh, -xc, "chage -M 99999 root;rm -f /etc/shadow-" ]
+ - [ sh, -xc, "chage -M 99999 miepadm;rm -f /etc/shadow-" ]
+ - [ sh, -xc, "sed -i 's/^GRUB_TIMEOUT.*/GRUB_TIMEOUT=0/' /etc/default/grub" ]
+ - [ sh, -xc, "echo GRUB_FORCE_HIDDEN_MENU=true >> /etc/default/grub" ]
+ - [ sh, -xc, "/usr/sbin/grub2-mkconfig -o /boot/grub2/grub.cfg" ]
+ - [ sh, -xc, "sed -i 's/^.*:.*/admin:6041A28W2rLq6/' /opt/miep/tools/lighttpd/lighttpd_auth.properties" ]
+ - [ sh, -xc, "sed -i 's/^.*=.*/admin=709e17d2a62751a051fa2072f0976334/' /opt/miep/register/conf/auth.properties" ]
+ - [ sh, -xc, "sed -i 's/kernel\\.unknown_nmi_panic.*//' /etc/sysctl.conf" ]
+ - [ sh, -xc, "sed -i 's/kernel\\.panic_on_unrecovered_nmi.*//' /etc/sysctl.conf" ]
+ - [ sh, -xc, "echo \" kernel.unknown_nmi_panic=1\n kernel.panic_on_unrecovered_nmi=1\n\n\" >> /etc/sysctl.conf" ]
+ - [ sh, -xc, "sed -i 's/^\\(IRQBALANCE_ARGS=\\).*$/\\1\"--hintpolicy ignore\"/' /etc/sysconfig/irqbalance" ]
+ - [ sh, -xc, "sed -i 's/^ListenAddress.*/ListenAddress 107.112.138.70/' /etc/ssh/sshd_config" ]
+ - [ sh, -xc, "sed -i 's/^ClientAliveCountMax.*/ClientAliveCountMax '0'/g' /etc/ssh/sshd_config" ]
+ - [ sh, -xc, "sed -i 's/^PermitRootLogin.*/PermitRootLogin 'no'/g' /etc/ssh/sshd_config" ]
+ - [ sh, -xc, "sed -i 's/^#UseDNS.*/UseDNS 'no'/g' /etc/ssh/sshd_config" ]
+ - [ sh, -xc, "echo auth optional pam_faildelay.so delay=5000000 >> /etc/pam.d/sshd" ]
+ - [ sh, -xc, "echo trap2sink 127.0.0.1 >> /etc/snmp/snmpd.conf" ]
+ - [ sh, -xc, "sed -i 's/^agentaddress.*/agentaddress 107.112.138.70/' /etc/snmp/snmpd.conf" ]
+ - [ sh, -xc, "sed -i 's/^ IP=.*/ IP=\"107.112.138.70\"/' /opt/miep/snmp/tools/agentmonitor.sh" ]
+ - [ sh, -xc, "sed -i 's/^ SNMPCOMMUNITY=.*/ SNMPCOMMUNITY=\"SNOS-PE\"/' /opt/miep/snmp/tools/agentmonitor.sh" ]
+ - [ sh, -xc, "sed -i 's/^ IP=.*/ IP=\"107.112.138.70\"/' /opt/miep/snmp/tools/agentmonitor_sle12.sh" ]
+ - [ sh, -xc, "sed -i 's/^ SNMPCOMMUNITY=.*/ SNMPCOMMUNITY=\"SNOS-PE\"/' /opt/miep/snmp/tools/agentmonitor_sle12.sh" ]
+ - [ sh, -xc, "/sbin/yast2 dns edit nameserver1=155.165.194.100" ]
+ - [ sh, -xc, "/usr/sbin/wicked ifdown all; /usr/sbin/wicked ifup --timeout 60 eth0; /usr/sbin/wicked ifup --timeout 60 all" ]
+ - [ sh, -xc, "mkdir -p /opt/miep/tools" ]
+ - [ sh, -xc, "wget --directory-prefix=/opt/miep/tools http://107.112.138.71/miit/zrdm5bpxtc02/custom-files/zrdm5bpxtc02/AttMspCust.tgz" ]
+ - [ sh, -xc, "export TERM=vt220 ; yast keyboard set layout=english-us" ]
+ - [ sh, -xc, "sed -i 's/YPSAddress.*/YPSAddress\"\tvalue=\"https:\\/\\/yps.ericsson.net\\/YPServer\" \\/>/' /opt/miep/etc/license/SentinelCloudRuntime.properties" ]
+
+ - [ sh, -xc, "umask 027 ; /opt/miep/tools/mnsetup/initmn.sh firstinstall 2>&1 | tee /opt/miep/tools/mnsetup/firstinstall.log" ]
+ - [ sh, -xc, "chown root:root /opt/miep/tools/AttMspCust.tgz" ]
+ - [ sh, -xc, "chmod 440 /opt/miep/tools/AttMspCust.tgz" ]
+ - [ sh, -xc, "mkdir -p /opt/miep/tools/AttMspCust" ]
+ - [ sh, -xc, "chown root:root /opt/miep/tools/AttMspCust" ]
+ - [ sh, -xc, "tar xfz /opt/miep/tools/AttMspCust.tgz -C /opt/miep/tools/AttMspCust" ]
+ - [ sh, -xc, "/opt/miep/tools/AttMspCust/CloudInit/cloudCron.sh 107.112.138.71" ]
+ - [ sh, -xc, "mkdir -p /opt/miep/etc/certs/manifest/ca/" ]
+ - [ sh, -xc, "chown -R miepadm:miepgrp /opt/miep/etc/certs/manifest/" ]
+ - [ sh, -xc, "mkdir -p /opt/miep/etc/certs/origin_server_ssl/server_cert" ]
+ - [ sh, -xc, "chown -R miepadm:miepgrp /opt/miep/etc/certs/origin_server_ssl/server_cert" ]
+ - [ sh, -xc, "sed -i 's/KexAlgorithms/#KexAlgorithms/g' /etc/ssh/sshd_config" ]
+ - [ sh, -xc, "wget --directory-prefix=/opt/miep/tools/AttMspCust/CloudInit/msacerts -e robots=off -r -l1 --no-parent -R '*html*' http://107.112.138.71/miit/zrdm5bpxtc02/custom-files/zrdm5bpxtc02/msacerts" ]
+ - [ sh, -xc, "mv /opt/miep/tools/AttMspCust/CloudInit/msacerts/107.112.138.71/miit/zrdm5bpxtc02/custom-files/zrdm5bpxtc02/msacerts/* /opt/miep/tools/AttMspCust/CloudInit/msacerts/" ]
+ - [ sh, -xc, "mv /opt/miep/tools/AttMspCust/CloudInit/msacerts/keystore* /opt/miep/tools/AttMspCust/CloudInit/msacerts/.keystore_`hostname`_gno" ]
+ - [ sh, -xc, "rm -rf /opt/miep/tools/AttMspCust/CloudInit/msacerts/107.112.138.71" ]
+ - [ sh, -xc, "sed -i 's/PASS_MAX_DAYS 60/PASS_MAX_DAYS 99999/' /etc/login.defs" ]
+ - [ sh, -xc, "sleep 61s" ]
+ - [ sh, -xc, "mkdir -p /usr/java/default/bin/ && ln -s /usr/bin/java /usr/java/default/bin/" ]
+
+timezone: 'PST8PDT'
+
+write_files:
+ - content: |
+ H4sIANk1vFkAA41Sy27bMBC88ysW8TViKaWNC92MAkV9KOIi+QFKWllE+RBIyo9+fZeW7DqxDHR10c4OZ3aXXEDnQgxwjrdOBWiVRmgw1F5VGECCHUyFHlx7YltpMIsuk03jMQS2gPdhZN8ruyUd5yF2CG/fNp/WGwhDFY4houEA6whkZEhNH28EhoANyAiVcxGiMvgI+w4tWAfJGwL6HXpqzCP4wVoy4zciLxaCkVrD6BkeqZXzbLW0UOHooyyVZZOGkzciD8mvebi2TU6vRxvloWQL+l9vstW4CIDvg9bZr0Fq1Spssh/TsgBeO+fjJadzLC+WXNCXT07a1VKn7V7ybcoYOYQeayU1Oe2eYVo6BlaW+exJ1e+esytwyl1fyfo3Yy0KUZbiimaRbNr2Cja1DLH32KpDKhTJ6lSgfVpHL2NCiwvq3RDpSib86YKfXhdLU2QzAS+rn2msz7A6jzXLo3WJJc/zgudPX/lSAPzxjflS9QdTi8IYK0TO97Lf7rlxFd1w3zmLnAabY85hmZPmHn5PeWS8b+2D+M7E/2xtZM5ht639w+8pjwzG/gJrL8X/3wMAAA==
+ path: /etc/hosts
+ owner: root:root
+ permissions: '0644'
+ encoding: 'gzip+base64'
+ - content: |
+ ################################################################################
+ ## /etc/ntp.conf
+ ##
+ ## Sample NTP configuration file.
+ ## See package 'ntp-doc' for documentation, Mini-HOWTO and FAQ.
+ ## Copyright (c) 1998 S.u.S.E. GmbH Fuerth, Germany.
+ ##
+ ## Author: Michael Andres, <ma@suse.de>
+ ## Michael Skibbe, <mskibbe@suse.de>
+ ##
+ ################################################################################
+
+ ##
+ ## Radio and modem clocks by convention have addresses in the
+ ## form 127.127.t.u, where t is the clock type and u is a unit
+ ## number in the range 0-3.
+ ##
+ ## Most of these clocks require support in the form of a
+ ## serial port or special bus peripheral. The particular
+ ## device is normally specified by adding a soft link
+ ## /dev/device-u to the particular hardware device involved,
+ ## where u correspond to the unit number above.
+ ##
+ ## Generic DCF77 clock on serial port (Conrad DCF77)
+ ## Address: 127.127.8.u
+ ## Serial Port: /dev/refclock-u
+ ##
+ ## (create soft link /dev/refclock-0 to the particular ttyS?)
+ ##
+ # server 127.127.8.0 mode 5 prefer
+ server 135.144.38.211 prefer
+ server 155.165.201.253 prefer
+
+ ##
+ ## Undisciplined Local Clock. This is a fake driver intended for backup
+ ## and when no outside source of synchronized time is available.
+ ##
+ server 127.127.1.0 # local clock (LCL)
+ fudge 127.127.1.0 stratum 10 # LCL is unsynchronized
+
+ ##
+ ## Add external Servers using
+ ## # rcntp addserver <yourserver>
+ ##
+
+ ##
+ ## Miscellaneous stuff
+ ##
+
+ driftfile /var/lib/ntp/drift/ntp.drift # path for drift file
+
+ logfile /var/log/ntp # alternate log file
+ # logconfig =syncstatus + sysevents
+ # logconfig =all
+
+ # statsdir /tmp/ # directory for statistics files
+ # filegen peerstats file peerstats type day enable
+ # filegen loopstats file loopstats type day enable
+ # filegen clockstats file clockstats type day enable
+
+ #
+ # Authentication stuff
+ #
+ keys /etc/ntp.keys # path for keys file
+ trustedkey 1 # define trusted keys
+ requestkey 1 # key (7) for accessing server variables
+ controlkey 1
+
+ # by default act only as a basic NTP client
+ restrict default kod nomodify notrap nopeer noquery
+ restrict -6 default kod nomodify notrap nopeer noquery
+ #
+ # allow NTP messages only from the loopback
+ restrict 127.0.0.1
+ restrict ::1
+ path: /etc/ntp.conf
+ owner: root:root
+ permissions: '0644'
+ - content: |
+ # default <OAM GW> - -
+ default 107.112.136.1 - -
+ path: /etc/sysconfig/network/routes
+ owner: root:root
+ permissions: '0644'
+ - content: |
+ <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+ <trapDestCfg xmlns="http://www.ericsson.com/esa">
+ <managerDefinition snmpVersion="v2c" active="yes">
+ <ip>107.239.72.10</ip>
+ <port>162</port>
+ <securityName>v1v2ReadWriteSecName</securityName>
+ <securityLevel>noAuthNoPriv</securityLevel>
+ </managerDefinition>
+ <managerDefinition snmpVersion="v2c" active="yes">
+ <ip>135.207.171.152</ip>
+ <port>162</port>
+ <securityName>v1v2ReadWriteSecName</securityName>
+ <securityLevel>noAuthNoPriv</securityLevel>
+ </managerDefinition>
+ </trapDestCfg>
+ path: /opt/miep/tools/AttMspCust/CloudInit/trapDestCfg.xml
+ owner: root:root
+ permissions: '0755'
+ - content: |
+ [
+ {
+ "networkname": "OAM"
+ },
+ {
+ "networkname": "Internal"
+ },
+ {
+ "networkname": "Access"
+ },
+ {
+ "networkname": "dmz_untrust"
+ },
+ {
+ "networkname": "dmz_trust"
+ },
+ {
+ "networkname": "dmz_trust1"
+ },
+ {
+ "networkname": "dmz_untrust1"
+ },
+ {
+ "networkname": "Internet"
+ },
+ {
+ "networkname": "ControlPlaneSig"
+ },
+ {
+ "networkname": "AccessIngress"
+ },
+ {
+ "networkname": "InternetIngress"
+ }
+ ]
+ path: /opt/miep/init/networknames.json
+ owner: miepadm:miepgrp
+ permissions: '0644'
+ - content: |
+ BOOTPROTO='static'
+ IPADDR='107.112.138.70'
+ BROADCAST='107.112.143.255'
+ NETMASK='255.255.248.0'
+ NETWORK='107.112.136.0'
+ STARTMODE='onboot'
+ DEVICE='eth0'
+ USERCONTROL='no'
+ NAME='OAM'
+ DEFROUTE='yes'
+ CHECK_DUPLICATE_IP='yes'
+ SEND_GRATUITOUS_ARP='yes'
+ path: /etc/sysconfig/network/ifcfg-eth0
+ owner: root:root
+ permissions: '0644'
+ - content: |
+ path: /etc/udev/rules.d/10-local.rules
+ encoding: b64
+ owner: root:root
+ permissions: '0640'
+ - content: |
+ #
+ # VERSION: <Auto generated by 1.0.2.3>
+ #
+ # This file contains the variable definitions to pull RMS Input Files from the PCRF.
+
+ # The PCRF_PRIMARY variable specifies the Primary IP the MSP should use to connect to the PCRF.
+
+ PCRF_PRIMARY=107.122.136.120
+
+ # The PCRF_SECONDARY variable specifies the Secondary IP the MSP should use to connect to the PCRF.
+
+ PCRF_SECONDARY=107.122.136.121
+
+ # The PCRF_USER variable specifies the user value to use when performing the secure ftp transfer.
+
+ PCRF_USER=msp
+
+ # The PCRF_PASS variable specifies the password value to use when performing the secure ftp transfer.
+
+ PCRF_PASS=@TTmsp123
+
+ # The PCRF_DIR variable specifies the directory on the PCRF server where the RMS Input Files are located.
+ # This is the directory the secure ftp transfer will change to before pulling the RPM Input File.
+
+ PCRF_DIR=/home/msp/downloads
+
+ # The PCRF_PROMPT variable specifies the sftp prompt string that MSP can expect the PCRF server to
+ # display as a prompt when remotely connecting to the PCRF server using sftp.
+
+ PCRF_PROMPT=sftp>
+ MSA_GROUP_NAME=
+ path: /appl/rms/cfg/pcrf.cfg
+ owner: root:root
+ permissions: '0755'
+ - content: |
+ #
+ # reserved values
+ #
+ 255 local
+ 254 main
+ 253 default
+ 0 unspec
+ #
+ # local
+ #
+ #1 inr.ruhep
+ path: /etc/iproute2/rt_tables
+ owner: root:root
+ permissions: '0644'
+ - content: |
+ ### /etc/resolv.conf file autogenerated by netconfig!
+ #
+ # Before you change this file manually, consider to define the
+ # static DNS configuration using the following variables in the
+ # /etc/sysconfig/network/config file:
+ # NETCONFIG_DNS_STATIC_SEARCHLIST
+ # NETCONFIG_DNS_STATIC_SERVERS
+ # NETCONFIG_DNS_FORWARDER
+ # or disable DNS configuration updates via netconfig by setting:
+ # NETCONFIG_DNS_POLICY=''
+ #
+ # See also the netconfig(8) manual page and other documentation.
+ #
+ # Note: Manual change of this file disables netconfig too, but
+ # may get lost when this file contains comments or empty lines
+ # only, the netconfig settings are same with settings in this
+ # file and in case of a "netconfig update -f" call.
+ #
+ ### Please remove (at least) this line when you modify the file!
+ nameserver 155.165.194.100
+ nameserver 155.165.201.100
+ search wapgw.mobilephone.net
+ options attempts:1
+ options timeout:6
+ path: /etc/resolv.conf
+ owner: root:root
+ permissions: '0644'
+ - content: |
+ MN_OAM_IPADDR=107.112.138.70
+ SNMP_IPADDR=107.239.72.10
+ SNMP_PORT=162
+ MN_SERVER_GROUPNAME=rdm5b
+ STORAGE_TYPE=CINDER
+ SUPPORT_LANG_LIST={"en":"English"}
+ AUTOSTART=Y
+ AUTODBPATCH=Y
+ PRODUCT=MSP
+ MN_TO_OTHER_NODE_NETWORK=OAM
+ path: /opt/miep/tools/mnsetup/init.properties
+ owner: root:root
+ permissions: '0640'
+ - content: |
+ CAE_PASSWORD=wapwap12
+ MSA_PASSWORD=wapwap12
+ CAPLOG_PASSWORD=wapwap12
+ TRACELOG_PASSWORD=wapwap12
+ path: /opt/miep/tools/mnsetup/init.properties.sec
+ owner: root:root
+ permissions: '0640'
+ - content: |
+ 107.112.138.59 zrdm5bpxtc02adm001 zrdm5bpxtc02adm001-oam
+ path: /var/tmp/adm_hosts
+ owner: root:root
+ permissions: '0644'
+ - content: WwogewogICJwYXJlbnQiIDogInJkbTViIiwKICAiZ3JvdXBzIiA6IFsKICAgewogICAgImdyb3VwbmFtZSIgOiAienJkbTVicHh0YzAyIiwKICAgICJkaXNwbGF5bmFtZSIgOiAienJkbTVicHh0YzAyIiwKICAgICJkZXNjcmlwdGlvbiIgOiAienJkbTVicHh0YzAyIgogICB9CiAgXQogfSwKIHsKICAicGFyZW50IiA6ICJ6cmRtNWJweHRjMDIiLAogICJncm91cHMiIDogWwogICB7CiAgICAiZ3JvdXBuYW1lIiA6ICJ6cmRtNWJweHRjMDItVFMiLAogICAgImRpc3BsYXluYW1lIiA6ICJ6cmRtNWJweHRjMDItVFMiLAogICAgImRlc2NyaXB0aW9uIiA6ICJ6cmRtNWJweHRjMDItVFMiCiAgIH0KICBdCiB9Cl0K
+ path: /opt/miep/msaapp/apps/clusteradmin/clusters.json
+ encoding: b64
+ owner: msausr:msagrp
+ permissions: '0640'
+ - content: |
+ . /opt/miep/tools/AttMspCust/CloudInit/helpers.sh
+ cd /opt/miep/tools/msa
+ ./msaconfigctrl.sh -g zrdm5bpxtc02 -m cast set apsLicenseCustomerId '946935'
+ ./msaconfigctrl.sh -g zrdm5bpxtc02 -m cast set apsLicenseUserId 'AT&T_Customer_Test_Lab2_vMSP_Nimbus'
+ ./msaconfigctrl.sh -g zrdm5bpxtc02 -m cast set prsPrefixLookupTable '2606:ae00:af00::/41=64'
+ ./msaconfigctrl.sh -g zrdm5bpxtc02 -m cast set prsDiamRealm 'zrdm5bpxtc02.msp.sd'
+ ./msaconfigctrl.sh -g zrdm5bpxtc02 -m cast set htsHttpClientIpRangesBlacklist '172.26.14.0/25,172.26.17.0/24,107.103.114.0/25,107.103.113.0/25,107.103.112.160/29,107.103.121.0/24,107.103.122.0/24,fd00:2600:2600:100::/64,2606:ae00:b800:3441::/64,2606:ae00:b800:3442::/64'
+ ./msaconfigctrl.sh -g zrdm5bpxtc02 -m cast set attLdapPool_host '172.21.196.7'
+ ./msaconfigctrl.sh -g zrdm5bpxtc02 -m cast set attLdapPool_user 'cn=virNimbusV2L,ou=Users,ou=Administration,o=Cingular'
+ ./msaconfigctrl.sh -g zrdm5bpxtc02 -m cast set attLdapPool_pwd 'MSPLab'
+ ./msaconfigctrl.sh -g zrdm5bpxtc02 -m cast set attLdapPool_secondhost '155.165.172.23'
+ ./msaconfigctrl.sh -g zrdm5bpxtc02 -m cast set attLdapPool_seconduser 'cn=virNimbusV2L,ou=Users,ou=Administration,o=Cingular'
+ ./msaconfigctrl.sh -g zrdm5bpxtc02 -m cast set attLdapPool_secondpwd 'MSPLab'
+ ./msaconfigctrl.sh -g zrdm5bpxtc02 -m cast set idfMspIpAddr ''
+ ./msaconfigctrl.sh -g zrdm5bpxtc02-TS -m cast set prsDiamMessageTimeout 16000
+ ./msaconfigctrl.sh -g zrdm5bpxtc02-TS -m cast set prsDiamSlowPeerAlarmLimit 16000
+ ./msaconfigctrl.sh -g zrdm5bpxtc02-TS -m cast set prsDiameterServerListenerAddressList '0.0.0.0:3868'
+ ./msaconfigctrl.sh -g zrdm5bpxtc02-TS -m cast set ltmi.keyServerUpdateHostList 'zrdm5bpxtc02mts001,zrdm5bpxtc02mts002'
+ ./msaconfigctrl.sh -g zrdm5bpxtc02-TS -m cast set omsNsIntrusionDetection 1
+ ./msaconfigctrl.sh -g zrdm5bpxtc02-TS -m cast set telGroup1FTPTargetServerName zrdm5bpxtc02adm001.wapgw.mobilephone.net
+ $SU -s $BASH - postgres -c "psql -d msa -c \"set search_path = msa,msp; update msp.virtualgateway set externalnodeip='172.26.39.6' where servergrpid= '0' and vgindex= 'VG011'\""
+ $SU -s $BASH - postgres -c "psql -d msa -c \"set search_path = msa,msp; update msp.virtualgateway set servingdestaddrranges='172.26.39.6/32' where servergrpid= '0' and vgindex= 'VG011'\""
+ $SU -s $BASH - postgres -c "psql -d msa -c \"set search_path = msa,msp; update msp.virtualgateway set externalnodeip='fc00:a:a::700' where servergrpid= '0' and vgindex= 'VG013'\""
+ $SU -s $BASH - postgres -c "psql -d msa -c \"set search_path = msa,msp; update msp.virtualgateway set servingdestaddrranges='fc00:a:a::700/128' where servergrpid= '0' and vgindex= 'VG013'\""
+ path: /opt/miep/tools/AttMspCust/CloudInit/install_msa_zone.sh
+ owner: root:root
+ permissions: '0755'
+ - content: |
+ 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
+ path: /opt/miep/etc/license/Cloud_Entitlement.combine
+ owner: msausr:msagrp
+ permissions: '0755'
+ encoding: 'gzip+base64'
+ - content: |
+ *.* @135.207.171.57:1538
+ *.* @155.165.162.48:1532
+ path: /etc/rsyslog.d/remote.conf
+ owner: root:root
+ permissions: '0600'
+
+scripts_per_once:
+
+power_state:
+ mode: reboot
+ message: Server will reboot now
+ timeout: 5
diff --git a/asdc-controller/src/test/resources/resource-examples/multipleModules/user_data_zrdm5bpxmc02vmt001.txt b/asdc-controller/src/test/resources/resource-examples/multipleModules/user_data_zrdm5bpxmc02vmt001.txt
new file mode 100644
index 0000000000..4c8f7c06ea
--- /dev/null
+++ b/asdc-controller/src/test/resources/resource-examples/multipleModules/user_data_zrdm5bpxmc02vmt001.txt
@@ -0,0 +1,289 @@
+#cloud-config
+# \hbrief cloud-init main template for MSP config
+# \hversion 0.0.11
+# \hdate 2016-05-09
+# \brief cloud-init template for MSP config
+# \version 0.2.57
+# \date 2016-09-19
+# Configuration created for MSP SLES_12 VMT
+
+chpasswd:
+ list: |
+ root:Ericsson
+ miepadm:miep1234
+
+ expire: False
+
+users:
+
+bootcmd:
+
+ - [ sh, -xc, "echo \"#################################################################\" > /etc/issue.ci" ]
+ - [ sh, -xc, "echo \"# #\" >> /etc/issue.ci" ]
+ - [ sh, -xc, "echo \"# * * * Cloud-init configuration is in progress * * * #\" >> /etc/issue.ci" ]
+ - [ sh, -xc, "echo \"# #\" >> /etc/issue.ci" ]
+ - [ sh, -xc, "echo \"# The system will reboot shortly and then be accessible #\" >> /etc/issue.ci" ]
+ - [ sh, -xc, "echo \"# #\" >> /etc/issue.ci" ]
+ - [ sh, -xc, "echo \"#################################################################\" >> /etc/issue.ci" ]
+ - [ sh, -xc, "if [ -f /etc/issue.orig ]; then cp /etc/issue.orig /etc/issue; fi" ]
+ - [ sh, -xc, "if [ ! -f /etc/issue.orig ]; then cp /etc/issue /etc/issue.orig; cp /etc/issue.ci /etc/issue; fi" ]
+ - [ sh, -xc, "/bin/sed -i 's/^DHCLIENT_SET_DEFAULT_ROUTE=\"yes\".*/DHCLIENT_SET_DEFAULT_ROUTE=\"no\"/' /etc/sysconfig/network/dhcp" ]
+ - [ sh, -xc, "/bin/sed -i 's/^NETCONFIG_DNS_POLICY=.*/NETCONFIG_DNS_POLICY=\"STATIC\"/' /etc/sysconfig/network/config" ]
+
+runcmd:
+ - [ sh, -xc, "chage -M 99999 root;rm -f /etc/shadow-" ]
+ - [ sh, -xc, "chage -M 99999 miepadm;rm -f /etc/shadow-" ]
+ - [ sh, -xc, "sed -i 's/^ListenAddress.*/ListenAddress 107.112.138.71/' /etc/ssh/sshd_config" ]
+ - [ sh, -xc, "sed -i 's/^ClientAliveCountMax.*/ClientAliveCountMax 300/g' /etc/ssh/sshd_config" ]
+ - [ sh, -xc, "sed -i 's/^ClientAliveInterval.*/ClientAliveInterval 10/g' /etc/ssh/sshd_config" ]
+ - [ sh, -xc, "sed -i '/PermitRootLogin/d' /etc/ssh/sshd_config" ]
+ - [ sh, -xc, "echo 'PermitRootLogin yes' >> /etc/ssh/sshd_config" ]
+ - [ sh, -xc, "sed -i '/KexAlgorithms/s/^/# /' /etc/ssh/sshd_config" ]
+ - [ sh, -xc, "mkdir /opt/miep/tools/miit/www/sles" ]
+ - [ sh, -xc, "rm -f /etc/sysconfig/network/ifcfg-eth1" ]
+ - [ sh, -xc, "mkdir /shared_nfs_datastore" ]
+ - [ sh, -xc, "mount -t ext4 /dev/vdb /shared_nfs_datastore" ]
+ - [ sh, -xc, "mkdir -p /shared_nfs_datastore/miit" ]
+ - [ sh, -xc, "cp -pr /opt/miep/tools/miit/* /shared_nfs_datastore/miit" ]
+ - [ sh, -xc, "rm -rf /opt/miep/tools/miit" ]
+ - [ sh, -xc, "rm -f /etc/udev/rules.d/70-persistent-net.rules" ]
+ - [ sh, -xc, "ln -s /shared_nfs_datastore/miit /opt/miep/tools/miit" ]
+ - [ sh, -xc, "chown -R miepadm:miepgrp /shared_nfs_datastore/miit" ]
+ - [ sh, -xc, "chown -R miepadm:miepgrp /opt/miep/tools/miit" ]
+ - [ sh, -xc, "mkdir -p /opt/miep/tools/miit/www/sles" ]
+ - [ sh, -xc, "mount -o loop /shared_nfs_datastore/SLE-12-SP1-Server-DVD-x86_64-GM-DVD1.iso /opt/miep/tools/miit/www/sles" ]
+ - [ sh, -xc, "/usr/bin/zypper ar /opt/miep/tools/miit/www/sles nfsrpms" ]
+ - [ sh, -xc, "/usr/bin/zypper lr" ]
+ - [ sh, -xc, "/usr/bin/zypper --non-interactive install -y nfs-kernel-server" ]
+ - [ sh, -xc, "/usr/bin/zypper --non-interactive install -y expect" ]
+ - [ sh, -xc, "/usr/bin/zypper --non-interactive install -y dos2unix" ]
+ - [ sh, -xc, "echo '//shared_nfs_datastore 107.112.136.0/21(rw,no_root_squash,sync,subtree_check)' >> /etc/exports" ]
+ - [ sh, -xc, "echo '/dev/vdb /shared_nfs_datastore ext4 acl 1 1' >> /etc/fstab" ]
+ - [ sh, -xc, "echo '@reboot /var/tmp/hostnamefix.sh > /var/tmp/hostnamefix.log' | /usr/bin/crontab -u root -" ]
+ - [ sh, -xc, "systemctl enable nfsserver.service" ]
+ - [ sh, -xc, "systemctl enable rpcbind.service" ]
+ - [ sh, -xc, "systemctl enable apache2.service" ]
+ - [ sh, -xc, "chkconfig mount_sles on" ]
+ - [ sh, -xc, "resize2fs /dev/vdb 200G" ]
+ - [ sh, -xc, "sed -i 's/PASS_MAX_DAYS 60/PASS_MAX_DAYS 99999/' /etc/login.defs" ]
+ - [ sh, -xc, "sleep 61s" ]
+ - [ sh, -xc, "su - miepadm -c \"ssh-keygen -t rsa -q -N '' -f ~/.ssh/id_rsa\"" ]
+
+timezone: 'PST8PDT'
+
+write_files:
+ - content: |
+ H4sIANk1vFkAA41Sy27bMBC88ysW8TViKaWNC92MAkV9KOIi+QFKWllE+RBIyo9+fZeW7DqxDHR10c4OZ3aXXEDnQgxwjrdOBWiVRmgw1F5VGECCHUyFHlx7YltpMIsuk03jMQS2gPdhZN8ruyUd5yF2CG/fNp/WGwhDFY4houEA6whkZEhNH28EhoANyAiVcxGiMvgI+w4tWAfJGwL6HXpqzCP4wVoy4zciLxaCkVrD6BkeqZXzbLW0UOHooyyVZZOGkzciD8mvebi2TU6vRxvloWQL+l9vstW4CIDvg9bZr0Fq1Spssh/TsgBeO+fjJadzLC+WXNCXT07a1VKn7V7ybcoYOYQeayU1Oe2eYVo6BlaW+exJ1e+esytwyl1fyfo3Yy0KUZbiimaRbNr2Cja1DLH32KpDKhTJ6lSgfVpHL2NCiwvq3RDpSib86YKfXhdLU2QzAS+rn2msz7A6jzXLo3WJJc/zgudPX/lSAPzxjflS9QdTi8IYK0TO97Lf7rlxFd1w3zmLnAabY85hmZPmHn5PeWS8b+2D+M7E/2xtZM5ht639w+8pjwzG/gJrL8X/3wMAAA==
+ path: /etc/hosts
+ owner: root:root
+ permissions: '0644'
+ encoding: 'gzip+base64'
+ - content: |
+ ################################################################################
+ ## /etc/ntp.conf
+ ##
+ ## Sample NTP configuration file.
+ ## See package 'ntp-doc' for documentation, Mini-HOWTO and FAQ.
+ ## Copyright (c) 1998 S.u.S.E. GmbH Fuerth, Germany.
+ ##
+ ## Author: Michael Andres, <ma@suse.de>
+ ## Michael Skibbe, <mskibbe@suse.de>
+ ##
+ ################################################################################
+
+ ##
+ ## Radio and modem clocks by convention have addresses in the
+ ## form 127.127.t.u, where t is the clock type and u is a unit
+ ## number in the range 0-3.
+ ##
+ ## Most of these clocks require support in the form of a
+ ## serial port or special bus peripheral. The particular
+ ## device is normally specified by adding a soft link
+ ## /dev/device-u to the particular hardware device involved,
+ ## where u correspond to the unit number above.
+ ##
+ ## Generic DCF77 clock on serial port (Conrad DCF77)
+ ## Address: 127.127.8.u
+ ## Serial Port: /dev/refclock-u
+ ##
+ ## (create soft link /dev/refclock-0 to the particular ttyS?)
+ ##
+ # server 127.127.8.0 mode 5 prefer
+ server 135.144.38.211 prefer
+ server 155.165.201.253 prefer
+
+ ##
+ ## Undisciplined Local Clock. This is a fake driver intended for backup
+ ## and when no outside source of synchronized time is available.
+ ##
+ server 127.127.1.0 # local clock (LCL)
+ fudge 127.127.1.0 stratum 10 # LCL is unsynchronized
+
+ ##
+ ## Add external Servers using
+ ## # rcntp addserver <yourserver>
+ ##
+
+ ##
+ ## Miscellaneous stuff
+ ##
+
+ driftfile /var/lib/ntp/drift/ntp.drift # path for drift file
+
+ logfile /var/log/ntp # alternate log file
+ # logconfig =syncstatus + sysevents
+ # logconfig =all
+
+ # statsdir /tmp/ # directory for statistics files
+ # filegen peerstats file peerstats type day enable
+ # filegen loopstats file loopstats type day enable
+ # filegen clockstats file clockstats type day enable
+
+ #
+ # Authentication stuff
+ #
+ keys /etc/ntp.keys # path for keys file
+ trustedkey 1 # define trusted keys
+ requestkey 1 # key (7) for accessing server variables
+ controlkey 1
+
+ # by default act only as a basic NTP client
+ restrict default kod nomodify notrap nopeer noquery
+ restrict -6 default kod nomodify notrap nopeer noquery
+ #
+ # allow NTP messages only from the loopback
+ restrict 127.0.0.1
+ restrict ::1
+ path: /etc/ntp.conf
+ owner: root:root
+ permissions: '0640'
+ - content: |
+ default 107.112.136.1 - -
+ path: /etc/sysconfig/network/routes
+ owner: root:root
+ permissions: '0644'
+ - content: |
+ <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+ <trapDestCfg xmlns="http://www.ericsson.com/esa">
+ <managerDefinition snmpVersion="v2c" active="yes">
+ <ip>107.239.72.10</ip>
+ <port>162</port>
+ <securityName>v1v2ReadWriteSecName</securityName>
+ <securityLevel>noAuthNoPriv</securityLevel>
+ </managerDefinition>
+ <managerDefinition snmpVersion="v2c" active="yes">
+ <ip>135.207.171.152</ip>
+ <port>162</port>
+ <securityName>v1v2ReadWriteSecName</securityName>
+ <securityLevel>noAuthNoPriv</securityLevel>
+ </managerDefinition>
+ </trapDestCfg>
+ path: /opt/miep/tools/AttMspCust/CloudInit/trapDestCfg.xml
+ owner: root:root
+ permissions: '0755'
+ - content: |
+ BOOTPROTO='static'
+ IPADDR='107.112.138.71'
+ BROADCAST='107.112.143.255'
+ NETMASK='255.255.248.0'
+ NETWORK='107.112.136.0'
+ STARTMODE='onboot'
+ DEVICE='eth0'
+ USERCONTROL='no'
+ NAME='OAM'
+ DEFROUTE='yes'
+ CHECK_DUPLICATE_IP='yes'
+ SEND_GRATUITOUS_ARP='yes'
+ path: /etc/sysconfig/network/ifcfg-eth0
+ owner: root:root
+ permissions: '0644'
+ - content: |
+ path: /etc/udev/rules.d/10-local.rules
+ encoding: b64
+ owner: root:root
+ permissions: '0640'
+ - content: |
+ #!/bin/bash
+ ### BEGIN INIT INFO
+ # Provides: mount_sles
+ # Required-Start: network
+ # Required-Stop: network
+ # Should-Start:
+ # Should-Stop:
+ # Default-Start: 3 5
+ # Default-Stop: 0 1 2 6
+ # Short-Description: Mount SLES iso file
+ ### END INIT INFO
+ echo Mount SLES ISO image
+ mount -o loop /shared_nfs_datastore/SLE-12-SP1-Server-DVD-x86_64-GM-DVD1.iso /opt/miep/tools/miit/www/sles
+ path: /etc/init.d/mount_sles
+ owner: root:root
+ permissions: '0755'
+ - content: |
+ grep -qs preserve_hostname /etc/cloud/cloud.cfg
+ if [ $? -eq 0 ] ; then
+ sed -i 's/preserve_hostname: .*/preserve_hostname: true/' /etc/cloud/cloud.cfg
+ fi
+
+ /bin/hostname | grep -qs novalocal
+ if [ $? -eq 0 ] ; then
+ newHostname=$(/bin/hostname | sed -e 's/.novalocal//')
+ hostnamectl set-hostname $newHostname
+ fi
+ /usr/bin/crontab -u root -l | grep -v hostnamefix.sh | /usr/bin/crontab -u root -
+ path: /var/tmp/hostnamefix.sh
+ owner: root:root
+ permissions: '0755'
+ - content: |
+ ### /etc/resolv.conf file autogenerated by netconfig!
+ #
+ # Before you change this file manually, consider to define the
+ # static DNS configuration using the following variables in the
+ # /etc/sysconfig/network/config file:
+ # NETCONFIG_DNS_STATIC_SEARCHLIST
+ # NETCONFIG_DNS_STATIC_SERVERS
+ # NETCONFIG_DNS_FORWARDER
+ # or disable DNS configuration updates via netconfig by setting:
+ # NETCONFIG_DNS_POLICY=''
+ #
+ # See also the netconfig(8) manual page and other documentation.
+ #
+ # Note: Manual change of this file disables netconfig too, but
+ # may get lost when this file contains comments or empty lines
+ # only, the netconfig settings are same with settings in this
+ # file and in case of a "netconfig update -f" call.
+ #
+ ### Please remove (at least) this line when you modify the file!
+ nameserver 155.165.194.100
+ nameserver 155.165.201.100
+ search wapgw.mobilephone.net
+ options attempts:1
+ options timeout:6
+ path: /etc/resolv.conf
+ owner: root:root
+ permissions: '0644'
+ - content: |
+ *.* @135.207.171.57:1538
+ *.* @155.165.162.48:1532
+ path: /etc/rsyslog.d/remote.conf
+ owner: root:root
+ permissions: '0600'
+ - content: |
+ H4sIANjbQlkAA5WUUW/aMBSF3/0rjqKgtEyUlodNYmonSulaCQqCqnsYE0kTByyCHcWGjAH/fU5CWqJB1PEC5J6c+/n42qTb/37/2O1cG1I5aindGXXnE9tzFIX1qbKoeJV1rfJQ6VVGln0RiKlBCHVnwmMyDJz12TnZpP9R0/qxsswr0xpzC8ieGqmT3YR5ZeDmBuZm329HdoRkLdtJyzejvTGMavJJa4xP4YsIK+8VujxPK5ojZX25u722PR+12XYa0TARbZ14DmsTRowrmJ93VlaRMyei3oT7cqKhHKlERG1CmI+fML+hxiku8QtfoWaUEwAFnLw54AkquaVAfzOppEFoIGki14qJZH9oOU5jZ9mnzTNPONxLKOAEgXB1gB4SYwj/LQMwCTPvaID4jByJr+oe5vd0P4LPAirXUtFFdR9jKtGlAnYgRHh5IkfjWJDj+oIxNa7HcTyuS93DsHE62gJpEetUvGWv5NITIVTDSLhUSozSeSsu3JeSRivm6m3b/wDPntEI2YDul91yFVvRJpz0G2e6q96Z848vtDMc9ofNA3u9h56I+fE1FmTLMFtdyjwctG8fn+7egaPQfWV6ZEpxoyXnehI0b8nMH+PN3UtpD0QF1tag1X7oNN5ZndDRhcbHWf8PNrcvhT0Q5bBlZ+el9wy9D5IJns9OQQ8jUYx+5KLE19bHFnURKn0uaFjvjQZfLq4mz/1+d1TFFtmFFO9f2OKfK8IgO5DCDUnIX5FnXVGsBQAA
+ path: /opt/miep/tools/miit/vmtTools/statusCheck.sh
+ owner: miepadm:miepgrp
+ permissions: '0755'
+ encoding: 'gzip+base64'
+ - content: |
+ H4sIAKm9hFkAA9VWbW/aMBD+3PyKUxSUrVPiUama1CmdEOsLEqxodPvSVmAlBqwmcRQfUKj632c7EKCMDrVVtX6AxM69PM/d2XfNi7N27fI8sInIkCScZQSFiKV65UjGCV7qlW31eczaFIdKcExzgklGHMmRpTRhtpUzOYoxsFNxkuciV/JMUp5KpHFMkYs0sPs0lkrSAt6HK/BmYDtVG27gK+CQpRYAsHAowNZGOwxHGfySdMCOfFLu+HIIVwunN3BVQ2x12uFIYkbDWyV8Y4MxdMcRqhYw5VGvFyqBU11ddodCogxKGm6x4RobzYuz00bzJLDLz57UGLxeRJGB+6mSVKLK1KucV1qVjtvzYzEovJ90aqXy79alp9ZPKlnQ52thOXijsFAjV1/KBc4BFGgsS3uNuMxiOv3w0bo3a/AUh2t0narjXqcuQLFrG3a9I9AJPT4G575ZFNUDMa86FA/Ww6pJVR3brO5gcxlhbdaaibQIhDEJyW3Ec/Ay+GtFTyaTZeESHSSReLq45XL7+ZokkTRkOUpLBTJUEDbOCnE2wv4CdzrVMtO2fBzM5kXkfAMvZfB5pYpWQq8KbBNBJJhMXdQlok5AUZIQRi9ApvgjzeFu3J+9Gj/wSVud0EbK8flUuYRUIFAY05hHBqT2qjgvLjGmr7B5DKxtadz3dZ5fpVJ2YQJ2q1MD49IY2szYOnqYp3ALdp4iy0Na/W/xPw0/FwJD+i7B37KpQpSz/XeJ3lnvnc/nsCv0xw53KnuFfigmKXg/QWOjUXKkn4N8l56glRMRaeUvh4c7KRgqtlNAsSGABZott1JHaULRzEORZDFDFsGE4xDYfHoyPXpPPR5PUZiP9FX1b3NyFIZMyv4ojqdFWED3SmWwsWLQdEyrZPDInaFiPK4NJOr3otawuMOJMqQcl/1aDUvd+sWP08YZHByTiI1JqtAXfmFvOQrNCfB0oGctEKnWBMWbSgYTytH3i4En3Mz3sqGQeixGkcGBOc2+M4n1/sC/S+LXoLbkolkWrVB1QjVPd8OyW4NqaPN4d/UXFX49yz0x7kAZhR5SHoNX3Sra07I668XfW54I1TXX5rLHVWf9AdB7+rd1DAAA
+ path: /opt/miep/tools/miit/vmtTools/siteSetup.sh
+ owner: miepadm:miepgrp
+ permissions: '0755'
+ encoding: 'gzip+base64'
+
+scripts_per_once:
+
+power_state:
+ mode: reboot
+ message: Server will reboot now
+ timeout: 5
diff --git a/asdc-controller/src/test/resources/resource-examples/multipleModules/vfzrdm5bpxmc02092017vf0_modules.json b/asdc-controller/src/test/resources/resource-examples/multipleModules/vfzrdm5bpxmc02092017vf0_modules.json
new file mode 100644
index 0000000000..c8a8508190
--- /dev/null
+++ b/asdc-controller/src/test/resources/resource-examples/multipleModules/vfzrdm5bpxmc02092017vf0_modules.json
@@ -0,0 +1,75 @@
+[
+ {
+ "vfModuleModelName": "VfZrdm5bpxmc02092017Vf..pxmc_base..module-0",
+ "vfModuleModelInvariantUUID": "f7a867f2-596b-4f4a-a128-421e825a6190",
+ "vfModuleModelVersion": "1",
+ "vfModuleModelUUID": "eb5de6fb-9ecf-4009-b922-fae3a9ae7d46",
+ "vfModuleModelCustomizationUUID": "074c64d0-7e13-4bcc-8bdb-ea922331102d",
+ "isBase": true,
+ "artifacts": [
+ "7e7f7356-11bd-4f2f-bbbc-5c10954e3189",
+ "6dd99c31-c52e-4c45-b99b-d223c877a296"
+ ],
+ "properties": {
+ "min_vf_module_instances": "1",
+ "vf_module_label": "pxmc_base",
+ "max_vf_module_instances": "1",
+ "vfc_list": "",
+ "vf_module_description": "",
+ "vf_module_type": "Base",
+ "availability_zone_count": "",
+ "volume_group": "false",
+ "initial_count": "1"
+ }
+ },
+ {
+ "vfModuleModelName": "VfZrdm5bpxmc02092017Vf..pxmc_vmt..module-1",
+ "vfModuleModelInvariantUUID": "1e099992-6222-41a9-acde-5a8abb690775",
+ "vfModuleModelVersion": "1",
+ "vfModuleModelUUID": "4d4423e2-17e8-455a-b9ae-7e4ab71b9cdc",
+ "vfModuleModelCustomizationUUID": "5336a98e-0966-4e59-b6e6-c8162804a024",
+ "isBase": false,
+ "artifacts": [
+ "ad12ab80-5419-4346-a5d7-dac2fc15575f",
+ "53acdabe-689f-45e5-8578-f1514d3529da",
+ "bc1640f1-69f0-4760-8fc3-3318ec2ff129"
+ ],
+ "properties": {
+ "min_vf_module_instances": "0",
+ "vf_module_label": "pxmc_vmt",
+ "max_vf_module_instances": "",
+ "vfc_list": "",
+ "vf_module_description": "",
+ "vf_module_type": "Expansion",
+ "availability_zone_count": "",
+ "volume_group": "false",
+ "initial_count": "0"
+ }
+ },
+ {
+ "vfModuleModelName": "VfZrdm5bpxmc02092017Vf..pxmc_mmn..module-2",
+ "vfModuleModelInvariantUUID": "8e53c069-b2f0-437a-9c00-21cbc5c8f081",
+ "vfModuleModelVersion": "1",
+ "vfModuleModelUUID": "a8cb1182-9b6d-46f8-b06b-ded4fe69e10d",
+ "vfModuleModelCustomizationUUID": "e38906fa-717c-49b0-b391-e6ec12b50c4a",
+ "isBase": false,
+ "artifacts": [
+ "2f372a02-df1b-46ca-b81e-822e3f406965",
+ "5bc62c72-5f7a-40bc-a167-1a4fed9afdef",
+ "b8bca13b-811f-44ab-9d27-45b842c664d8",
+ "c1ae6284-48d9-4437-a195-b2cf2ba23070",
+ "e88ce0b9-1496-4d03-ab1d-6d8d79bfc737"
+ ],
+ "properties": {
+ "min_vf_module_instances": "0",
+ "vf_module_label": "pxmc_mmn",
+ "max_vf_module_instances": "",
+ "vfc_list": "",
+ "vf_module_description": "",
+ "vf_module_type": "Expansion",
+ "availability_zone_count": "",
+ "volume_group": "true",
+ "initial_count": "0"
+ }
+ }
+] \ No newline at end of file
diff --git a/asdc-controller/src/test/resources/schema.sql b/asdc-controller/src/test/resources/schema.sql
new file mode 100644
index 0000000000..f8f32b7005
--- /dev/null
+++ b/asdc-controller/src/test/resources/schema.sql
@@ -0,0 +1,1039 @@
+
+--------START Catalog DB SCHEMA --------
+use catalogdb;
+
+create table `allotted_resource` (
+ `model_uuid` varchar(200) not null,
+ `model_invariant_uuid` varchar(200) not null,
+ `model_version` varchar(20) not null,
+ `model_name` varchar(200) not null,
+ `tosca_node_type` varchar(200) default null,
+ `subcategory` varchar(200) default null,
+ `description` varchar(1200) default null,
+ `creation_timestamp` datetime not null default current_timestamp,
+ primary key (`model_uuid`)
+) engine=innodb default charset=latin1;
+
+
+
+
+create table `allotted_resource_customization` (
+ `model_customization_uuid` varchar(200) not null,
+ `model_instance_name` varchar(200) not null,
+ `providing_service_model_uuid` varchar(200) default null,
+ `providing_service_model_invariant_uuid` varchar(200) default null,
+ `providing_service_model_name` varchar(200) default null,
+ `target_network_role` varchar(200) default 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,
+ `min_instances` int(11) default null,
+ `max_instances` int(11) default null,
+ `ar_model_uuid` varchar(200) not null,
+ `creation_timestamp` datetime not null default current_timestamp,
+ primary key (`model_customization_uuid`),
+ key `fk_allotted_resource_customization__allotted_resource1_idx` (`ar_model_uuid`),
+ constraint `fk_allotted_resource_customization__allotted_resource1` foreign key (`ar_model_uuid`) references `allotted_resource` (`model_uuid`) on delete cascade on update cascade
+) engine=innodb default charset=latin1;
+
+
+
+
+create table `heat_environment` (
+ `artifact_uuid` varchar(200) not null,
+ `name` varchar(100) not null,
+ `version` varchar(20) not null,
+ `description` varchar(1200) default null,
+ `body` longtext not null,
+ `artifact_checksum` varchar(200) not null default 'manual record',
+ `creation_timestamp` datetime not null default current_timestamp,
+ primary key (`artifact_uuid`)
+) engine=innodb default charset=latin1;
+
+
+
+create table `heat_files` (
+ `artifact_uuid` varchar(200) not null,
+ `name` varchar(200) not null,
+ `version` varchar(20) not null,
+ `description` varchar(1200) default null,
+ `body` longtext not null,
+ `artifact_checksum` varchar(200) not null default 'manual record',
+ `creation_timestamp` datetime not null default current_timestamp,
+ primary key (`artifact_uuid`)
+) engine=innodb default charset=latin1;
+
+
+
+
+create table `heat_template` (
+ `artifact_uuid` varchar(200) not null,
+ `name` varchar(200) not null,
+ `version` varchar(20) not null,
+ `description` varchar(1200) default null,
+ `body` longtext not null,
+ `timeout_minutes` int(11) default null,
+ `artifact_checksum` varchar(200) not null default 'manual record',
+ `creation_timestamp` datetime not null default current_timestamp,
+ primary key (`artifact_uuid`)
+) engine=innodb default charset=latin1;
+
+
+
+create table `heat_nested_template` (
+ `parent_heat_template_uuid` varchar(200) not null,
+ `child_heat_template_uuid` varchar(200) not null,
+ `provider_resource_file` varchar(100) default null,
+ primary key (`parent_heat_template_uuid`,`child_heat_template_uuid`),
+ key `fk_heat_nested_template__heat_template2_idx` (`child_heat_template_uuid`),
+ constraint `fk_heat_nested_template__child_heat_temp_uuid__heat_template1` foreign key (`child_heat_template_uuid`) references `heat_template` (`artifact_uuid`) on delete cascade on update cascade,
+ constraint `fk_heat_nested_template__parent_heat_temp_uuid__heat_template1` foreign key (`parent_heat_template_uuid`) references `heat_template` (`artifact_uuid`) on delete cascade on update cascade
+) engine=innodb default charset=latin1;
+
+
+
+
+create table `heat_template_params` (
+ `heat_template_artifact_uuid` varchar(200) not null,
+ `param_name` varchar(100) not null,
+ `is_required` bit(1) not null,
+ `param_type` varchar(20) default null,
+ `param_alias` varchar(45) default null,
+ primary key (`heat_template_artifact_uuid`,`param_name`),
+ constraint `fk_heat_template_params__heat_template1` foreign key (`heat_template_artifact_uuid`) references `heat_template` (`artifact_uuid`) on delete cascade on update cascade
+) engine=innodb default charset=latin1;
+
+
+
+create table `network_recipe` (
+ `id` int(11) not null auto_increment,
+ `model_name` varchar(20) not null,
+ `action` varchar(50) not null,
+ `description` varchar(1200) default null,
+ `orchestration_uri` varchar(256) not null,
+ `network_param_xsd` varchar(2048) default null,
+ `recipe_timeout` int(11) default null,
+ `service_type` varchar(45) default null,
+ `creation_timestamp` datetime not null default current_timestamp,
+ `version_str` varchar(20) not null,
+ primary key (`id`),
+ unique key `uk_rl4f296i0p8lyokxveaiwkayi` (`model_name`,`action`,`version_str`)
+) engine=innodb auto_increment=178 default charset=latin1;
+
+
+
+
+create table `temp_network_heat_template_lookup` (
+ `network_resource_model_name` varchar(200) not null,
+ `heat_template_artifact_uuid` varchar(200) not null,
+ `aic_version_min` varchar(20) not null,
+ `aic_version_max` varchar(20) default null,
+ primary key (`network_resource_model_name`),
+ key `fk_temp_network_heat_template_lookup__heat_template1_idx` (`heat_template_artifact_uuid`),
+ constraint `fk_temp_network_heat_template_lookup__heat_template1` foreign key (`heat_template_artifact_uuid`) references `heat_template` (`artifact_uuid`) on delete no action on update cascade
+) engine=innodb default charset=latin1;
+
+
+
+create table `network_resource` (
+ `model_uuid` varchar(200) not null,
+ `model_name` varchar(200) not null,
+ `model_invariant_uuid` varchar(200) default null,
+ `description` varchar(1200) default null,
+ `heat_template_artifact_uuid` varchar(200) not null,
+ `neutron_network_type` varchar(20) default null,
+ `model_version` varchar(20) default null,
+ `tosca_node_type` varchar(200) default null,
+ `aic_version_min` varchar(20) not null,
+ `aic_version_max` varchar(20) default null,
+ `orchestration_mode` varchar(20) default 'heat',
+ `resource_category` varchar(20) default null,
+ `resource_sub_category` varchar(20) default null,
+ `creation_timestamp` datetime not null default current_timestamp,
+ primary key (`model_uuid`),
+ key `fk_network_resource__temp_network_heat_template_lookup1_idx` (`model_name`),
+ key `fk_network_resource__heat_template1_idx` (`heat_template_artifact_uuid`),
+ constraint `fk_network_resource__heat_template1` foreign key (`heat_template_artifact_uuid`) references `heat_template` (`artifact_uuid`) on delete no action on update cascade,
+ constraint `fk_network_resource__temp_network_heat_template_lookup__mod_nm1` foreign key (`model_name`) references `temp_network_heat_template_lookup` (`network_resource_model_name`) on delete no action on update no action
+) engine=innodb default charset=latin1;
+
+
+
+
+
+create table `network_resource_customization` (
+ `model_customization_uuid` varchar(200) not null,
+ `model_instance_name` varchar(200) not null,
+ `network_technology` varchar(45) default null,
+ `network_type` varchar(45) default null,
+ `network_role` varchar(200) default null,
+ `network_scope` varchar(45) default null,
+ `creation_timestamp` datetime not null default current_timestamp,
+ `network_resource_model_uuid` varchar(200) not null,
+ primary key (`model_customization_uuid`),
+ key `fk_network_resource_customization__network_resource1_idx` (`network_resource_model_uuid`),
+ constraint `fk_network_resource_customization__network_resource1` foreign key (`network_resource_model_uuid`) references `network_resource` (`model_uuid`) on delete cascade on update cascade
+) engine=innodb default charset=latin1;
+
+
+
+
+
+create table `tosca_csar` (
+ `artifact_uuid` varchar(200) not null,
+ `name` varchar(200) not null,
+ `version` varchar(20) not null,
+ `description` varchar(1200) default null,
+ `artifact_checksum` varchar(200) not null,
+ `url` varchar(200) not null,
+ `creation_timestamp` datetime not null default current_timestamp,
+ primary key (`artifact_uuid`)
+) engine=innodb default charset=latin1;
+
+
+
+
+create table `service` (
+ `model_uuid` varchar(200) not null,
+ `model_name` varchar(200) not null,
+ `model_invariant_uuid` varchar(200) not null,
+ `model_version` varchar(20) not null,
+ `description` varchar(1200) default null,
+ `creation_timestamp` datetime not null default current_timestamp,
+ `tosca_csar_artifact_uuid` varchar(200) default null,
+ `service_type` varchar(200) default null,
+ `service_role` varchar(200) default null,
+ `environment_context` varchar(200) default null,
+ `workload_context` varchar(200) default null,
+ `service_category` varchar(200) default null,
+ primary key (`model_uuid`),
+ key `fk_service__tosca_csar1_idx` (`tosca_csar_artifact_uuid`),
+ constraint `fk_service__tosca_csar1` foreign key (`tosca_csar_artifact_uuid`) references `tosca_csar` (`artifact_uuid`) on delete cascade on update cascade
+) engine=innodb default charset=latin1;
+
+
+
+create table `service_recipe` (
+ `id` int(11) not null auto_increment,
+ `action` varchar(50) not null,
+ `version_str` varchar(20) default null,
+ `description` varchar(1200) default null,
+ `orchestration_uri` varchar(256) not null,
+ `service_param_xsd` varchar(2048) default null,
+ `recipe_timeout` int(11) default null,
+ `service_timeout_interim` int(11) default null,
+ `creation_timestamp` datetime not null default current_timestamp,
+ `service_model_uuid` varchar(200) not null,
+ primary key (`id`),
+ unique key `uk_7fav5dkux2v8g9d2i5ymudlgc` (`service_model_uuid`,`action`),
+ key `fk_service_recipe__service1_idx` (`service_model_uuid`),
+ constraint `fk_service_recipe__service1` foreign key (`service_model_uuid`) references `service` (`model_uuid`) on delete cascade on update cascade
+) engine=innodb auto_increment=86 default charset=latin1;
+
+
+
+create table `vnf_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,
+ `aic_version_min` varchar(20) default null,
+ `aic_version_max` varchar(20) default 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,
+ `heat_template_artifact_uuid` varchar(200) default null,
+ primary key (`model_uuid`),
+ key `fk_vnf_resource__heat_template1` (`heat_template_artifact_uuid`),
+ constraint `fk_vnf_resource__heat_template1` foreign key (`heat_template_artifact_uuid`) references `heat_template` (`artifact_uuid`) on delete cascade on update cascade
+) engine=innodb default charset=latin1;
+
+
+
+
+create table `vf_module` (
+ `model_uuid` varchar(200) not null,
+ `model_invariant_uuid` varchar(200) default null,
+ `model_version` varchar(20) not null,
+ `model_name` varchar(200) not null,
+ `description` varchar(1200) default null,
+ `is_base` int(11) not null,
+ `heat_template_artifact_uuid` varchar(200) default null,
+ `vol_heat_template_artifact_uuid` varchar(200) default null,
+ `creation_timestamp` datetime not null default current_timestamp,
+ `vnf_resource_model_uuid` varchar(200) not null,
+ primary key (`model_uuid`,`vnf_resource_model_uuid`),
+ key `fk_vf_module__vnf_resource1_idx` (`vnf_resource_model_uuid`),
+ key `fk_vf_module__heat_template_art_uuid__heat_template1_idx` (`heat_template_artifact_uuid`),
+ key `fk_vf_module__vol_heat_template_art_uuid__heat_template2_idx` (`vol_heat_template_artifact_uuid`),
+ constraint `fk_vf_module__heat_template_art_uuid__heat_template1` foreign key (`heat_template_artifact_uuid`) references `heat_template` (`artifact_uuid`) on delete cascade on update cascade,
+ constraint `fk_vf_module__vnf_resource1` foreign key (`vnf_resource_model_uuid`) references `vnf_resource` (`model_uuid`) on delete cascade on update cascade,
+ constraint `fk_vf_module__vol_heat_template_art_uuid__heat_template2` foreign key (`vol_heat_template_artifact_uuid`) references `heat_template` (`artifact_uuid`) on delete cascade on update cascade
+) engine=innodb default charset=latin1;
+
+
+
+/*!40101 set @saved_cs_client = @@character_set_client */;
+/*!40101 set character_set_client = utf8 */;
+create table `vf_module_customization` (
+ `model_customization_uuid` varchar(200) not null,
+ `label` varchar(200) default null,
+ `initial_count` int(11) default '0',
+ `min_instances` int(11) default '0',
+ `max_instances` int(11) default null,
+ `availability_zone_count` int(11) default null,
+ `heat_environment_artifact_uuid` varchar(200) default null,
+ `vol_environment_artifact_uuid` varchar(200) default null,
+ `creation_timestamp` datetime not null default current_timestamp,
+ `vf_module_model_uuid` varchar(200) not null,
+ primary key (`model_customization_uuid`),
+ key `fk_vf_module_customization__vf_module1_idx` (`vf_module_model_uuid`),
+ key `fk_vf_module_customization__heat_env__heat_environment1_idx` (`heat_environment_artifact_uuid`),
+ key `fk_vf_module_customization__vol_env__heat_environment2_idx` (`vol_environment_artifact_uuid`),
+ constraint `fk_vf_module_customization__heat_env__heat_environment1` foreign key (`heat_environment_artifact_uuid`) references `heat_environment` (`artifact_uuid`) on delete cascade on update cascade,
+ constraint `fk_vf_module_customization__vf_module1` foreign key (`vf_module_model_uuid`) references `vf_module` (`model_uuid`) on delete cascade on update cascade,
+ constraint `fk_vf_module_customization__vol_env__heat_environment2` foreign key (`vol_environment_artifact_uuid`) references `heat_environment` (`artifact_uuid`) on delete cascade on update cascade
+) engine=innodb default charset=latin1;
+/*!40101 set character_set_client = @saved_cs_client */;
+
+--
+-- table structure for table `vf_module_to_heat_files`
+--
+
+
+/*!40101 set @saved_cs_client = @@character_set_client */;
+/*!40101 set character_set_client = utf8 */;
+create table `vf_module_to_heat_files` (
+ `vf_module_model_uuid` varchar(200) not null,
+ `heat_files_artifact_uuid` varchar(200) not null,
+ primary key (`vf_module_model_uuid`,`heat_files_artifact_uuid`),
+ key `fk_vf_module_to_heat_files__heat_files__artifact_uuid1_idx` (`heat_files_artifact_uuid`),
+ constraint `fk_vf_module_to_heat_files__heat_files__artifact_uuid1` foreign key (`heat_files_artifact_uuid`) references `heat_files` (`artifact_uuid`) on delete cascade on update cascade,
+ constraint `fk_vf_module_to_heat_files__vf_module__model_uuid1` foreign key (`vf_module_model_uuid`) references `vf_module` (`model_uuid`) on delete cascade on update cascade
+) engine=innodb default charset=latin1 comment='il fait ce qu''il dit';
+/*!40101 set character_set_client = @saved_cs_client */;
+
+--
+-- table structure for table `vnf_components`
+--
+
+
+/*!40101 set @saved_cs_client = @@character_set_client */;
+/*!40101 set character_set_client = utf8 */;
+create table `vnf_components` (
+ `vnf_id` int(11) not null,
+ `component_type` varchar(20) not null,
+ `heat_template_id` int(11) default null,
+ `heat_environment_id` int(11) default null,
+ `creation_timestamp` datetime not null default current_timestamp,
+ primary key (`vnf_id`,`component_type`)
+) engine=innodb default charset=latin1;
+/*!40101 set character_set_client = @saved_cs_client */;
+
+--
+-- table structure for table `vnf_components_recipe`
+--
+
+
+
+create table `vnf_components_recipe` (
+ `id` int(11) not null auto_increment,
+ `vnf_type` varchar(200) default null,
+ `vnf_component_type` varchar(45) not null,
+ `action` varchar(50) not null,
+ `service_type` varchar(45) default null,
+ `version` varchar(20) not null,
+ `description` varchar(1200) default null,
+ `orchestration_uri` varchar(256) not null,
+ `vnf_component_param_xsd` varchar(2048) default null,
+ `recipe_timeout` int(11) default null,
+ `creation_timestamp` datetime default current_timestamp,
+ `vf_module_model_uuid` varchar(200) default null,
+ primary key (`id`),
+ unique key `uk_4dpdwddaaclhc11wxsb7h59ma` (`vf_module_model_uuid`,`vnf_component_type`,`action`,`version`)
+) engine=innodb auto_increment=26 default charset=latin1;
+
+
+
+
+create table `vnf_recipe` (
+ `id` int(11) not null auto_increment,
+ `vnf_type` varchar(200) default null,
+ `action` varchar(50) not null,
+ `service_type` varchar(45) default null,
+ `version_str` varchar(20) not null,
+ `description` varchar(1200) default null,
+ `orchestration_uri` varchar(256) not null,
+ `vnf_param_xsd` varchar(2048) default null,
+ `recipe_timeout` int(11) default null,
+ `creation_timestamp` datetime default current_timestamp,
+ `vf_module_id` varchar(100) default null,
+ primary key (`id`),
+ unique key `uk_f3tvqau498vrifq3cr8qnigkr` (`vf_module_id`,`action`,`version_str`)
+) engine=innodb auto_increment=10006 default charset=latin1;
+
+
+
+
+
+
+
+
+create table `vnf_resource_customization` (
+ `model_customization_uuid` varchar(200) not null,
+ `model_instance_name` varchar(200) not null,
+ `min_instances` int(11) default null,
+ `max_instances` int(11) default null,
+ `availability_zone_max_count` int(11) default 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,
+ `vnf_resource_model_uuid` varchar(200) not null,
+ `multi_stage_design` 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
+) engine=innodb default charset=latin1;
+
+
+
+
+create table `vnf_res_custom_to_vf_module_custom` (
+ `vnf_resource_cust_model_customization_uuid` varchar(200) not null,
+ `vf_module_cust_model_customization_uuid` varchar(200) not null,
+ `creation_timestamp` datetime not null default current_timestamp,
+ primary key (`vnf_resource_cust_model_customization_uuid`,`vf_module_cust_model_customization_uuid`),
+ key `fk_vnf_res_custom_to_vf_module_custom__vf_module_customizat_idx` (`vf_module_cust_model_customization_uuid`),
+ constraint `fk_vnf_res_custom_to_vf_module_custom__vf_module_customization1` foreign key (`vf_module_cust_model_customization_uuid`) references `vf_module_customization` (`model_customization_uuid`) on delete cascade on update cascade,
+ constraint `fk_vnf_res_custom_to_vf_module_custom__vnf_resource_customiza1` foreign key (`vnf_resource_cust_model_customization_uuid`) references `vnf_resource_customization` (`model_customization_uuid`) on delete cascade on update cascade
+) engine=innodb default charset=latin1;
+
+
+create table if not exists external_service_to_internal_model_mapping (
+id int(11) not null auto_increment,
+service_name varchar(200) not null,
+product_flavor varchar(200) null,
+subscription_service_type varchar(200) not null,
+service_model_uuid varchar(200) not null,
+primary key (id),
+unique index uk_external_service_to_internal_model_mapping
+(service_name asc, product_flavor asc, service_model_uuid asc));
+
+create table if not exists `collection_resource` (
+ model_uuid varchar(200) not null,
+ model_name varchar(200) not null,
+ model_invariant_uuid varchar(200) not null,
+ model_version varchar(20) not null,
+ tosca_node_type varchar(200) not null,
+ description varchar(200),
+ creation_timestamp datetime not null default current_timestamp,
+ primary key (`model_uuid`)
+)engine=innodb default charset=latin1;
+
+create table if not exists `collection_resource_customization` (
+ model_customization_uuid varchar(200) not null,
+ model_instance_name varchar(200) not null,
+ role varchar(200) NULL,
+ object_type varchar(200) not null,
+ function varchar(200) NULL,
+ collection_resource_type varchar(200) NULL,
+ creation_timestamp datetime not null default current_timestamp,
+ cr_model_uuid varchar(200) not null,
+ primary key (`model_customization_uuid`)
+)engine=innodb default charset=latin1;
+
+create table if not exists `instance_group` (
+ model_uuid varchar(200) not null,
+ model_name varchar(200) not null,
+ model_invariant_uuid varchar(200) not null,
+ model_version varchar(20) not null,
+ tosca_node_type varchar(200) NULL,
+ role varchar(200) not null,
+ object_type varchar(200) not null,
+ creation_timestamp datetime not null default current_timestamp,
+ cr_model_uuid varchar(200) NULL,
+ instance_group_type varchar(200) not null,
+ primary key (`model_uuid`)
+)engine=innodb default charset=latin1;
+
+create table if not exists `collection_resource_instance_group_customization` (
+ `collection_resource_customization_model_uuid` varchar(200) not null,
+ `instance_group_model_uuid` varchar(200) not null,
+ `function` varchar(200) null,
+ `description` varchar(1200) null,
+ `subinterface_network_quantity` int(11) null,
+ `creation_timestamp` datetime not null default current_timestamp,
+ primary key (`collection_resource_customization_model_uuid`, `instance_group_model_uuid`),
+ index `fk_collection_resource_instance_group_customization__instan_idx` (`instance_group_model_uuid` asc),
+ constraint `fk_collection_resource_instance_group_customization__collecti1`
+ foreign key (`collection_resource_customization_model_uuid`)
+ references `collection_resource_customization` (`model_customization_uuid`)
+ on delete cascade
+ on update cascade,
+ constraint `fk_collection_resource_instance_group_customization__instance1`
+ foreign key (`instance_group_model_uuid`)
+ references `instance_group` (`model_uuid`)
+ on delete cascade
+ on update cascade)
+engine = innodb
+default character set = latin1;
+
+create table if not exists `vnfc_instance_group_customization` (
+ `vnf_resource_customization_model_uuid` varchar(200) not null,
+ `instance_group_model_uuid` varchar(200) not null,
+ `function` varchar(200) null,
+ `description` varchar(1200) null,
+ `creation_timestamp` datetime not null default current_timestamp,
+ primary key (`vnf_resource_customization_model_uuid`, `instance_group_model_uuid`),
+ index `fk_vnfc_instance_group_customization__instance_group1_idx` (`instance_group_model_uuid` asc),
+ constraint `fk_vnfc_instance_group_customization__vnf_resource_customizat1`
+ foreign key (`vnf_resource_customization_model_uuid`)
+ references `vnf_resource_customization` (`model_customization_uuid`)
+ on delete cascade
+ on update cascade,
+ constraint `fk_vnfc_instance_group_customization__instance_group1`
+ foreign key (`instance_group_model_uuid`)
+ references `instance_group` (`model_uuid`)
+ on delete cascade
+ on update cascade)
+engine = innodb
+default character set = latin1;
+
+ create table if not exists `configuration`
+ ( `model_uuid` varchar(200) not null,
+ `model_invariant_uuid` varchar(200) not null,
+ `model_version` varchar(20) not null,
+ `model_name` varchar(200) not null,
+ `tosca_node_type` varchar(200) not null,
+ `description` varchar(1200) null,
+ `creation_timestamp` datetime not null default current_timestamp,
+ primary key (`model_uuid`))
+ engine = innodb auto_increment = 20654
+ default character set = latin1;
+
+ create table if not exists `service_proxy` (
+ `model_uuid` varchar(200) not null,
+ `model_invariant_uuid` varchar(200) not null,
+ `model_version` varchar(20) not null,
+ `model_name` varchar(200) not null,
+ `description` varchar(1200) null,
+ `creation_timestamp` datetime not null default current_timestamp,
+ primary key (`model_uuid`))
+ engine = innodb auto_increment = 20654
+ default character set = latin1;
+
+create table if not exists `service_proxy_customization` (
+`model_customization_uuid` varchar(200) not null,
+`model_instance_name` varchar(200) not null,
+`tosca_node_type` varchar(200) not null,
+`source_service_model_uuid` varchar(200) not null,
+`creation_timestamp` datetime not null default current_timestamp,
+`service_proxy_model_uuid` varchar(200) not null,
+primary key (`model_customization_uuid`),
+index `fk_service_proxy_customization__service_proxy1_idx` (`service_proxy_model_uuid` asc),
+index `fk_service_proxy_customization__service1_idx` (`source_service_model_uuid` asc),
+constraint`fk_spr_customization__service_proxy_resource1`
+foreign key (`service_proxy_model_uuid`) references `service_proxy` (`model_uuid`)
+on delete cascade on update cascade,
+constraint `fk_service_proxy_resource_customization__service1`
+foreign key (`source_service_model_uuid`) references `service`
+(`model_uuid`) on delete cascade on update cascade)
+engine = innodb
+auto_increment = 20654
+default character set = latin1;
+
+create table if not exists `configuration_customization` (
+`model_customization_uuid` varchar(200) not null,
+`model_instance_name` varchar(200) not null,
+`configuration_type` varchar(200) null,
+`configuration_role` varchar(200) null,
+`configuration_function` varchar(200) null,
+`creation_timestamp` datetime not null default current_timestamp,
+`configuration_model_uuid` varchar(200) not null,
+`service_proxy_customization_model_customization_uuid` varchar(200) null,
+`configuration_customization_model_customization_uuid` varchar(200) null,
+primary key (`model_customization_uuid`),
+index `fk_configuration_customization__configuration_idx` (`configuration_model_uuid` asc),
+index `fk_configuration_customization__service_proxy_customization_idx`
+(`service_proxy_customization_model_customization_uuid` asc),
+index `fk_configuration_customization__configuration_customization_idx`
+(`configuration_customization_model_customization_uuid` asc),
+constraint `fk_configuration_resource_customization__configuration_resour1`
+foreign key (`configuration_model_uuid`) references `configuration` (`model_uuid`)
+on delete cascade on update cascade,
+constraint `fk_configuration_customization__service_proxy_customization1` foreign
+key (`service_proxy_customization_model_customization_uuid`) references
+`service_proxy_customization` (`model_customization_uuid`)
+on delete cascade on update cascade, constraint
+`fk_configuration_customization__configuration_customization1` foreign
+key (`configuration_customization_model_customization_uuid`) references
+`configuration_customization` (`model_customization_uuid`)
+on delete cascade on update cascade)
+engine = innodb
+auto_increment =20654
+default character set = latin1;
+
+
+create table `service_proxy_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;
+
+
+create table `configuration_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;
+
+
+create table if not exists `collection_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;
+
+
+create table `network_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;
+
+create table `vnf_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;
+
+create table `allotted_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;
+
+
+
+
+create table ar_recipe (
+ ID INT(11) not null auto_increment,
+ MODEL_NAME VARCHAR(200) NOT NULL,
+ `ACTION` VARCHAR(200) NOT NULL,
+ VERSION_STR VARCHAR(200) NOT NULL,
+ SERVICE_TYPE VARCHAR(200),
+ DESCRIPTION VARCHAR(200),
+ ORCHESTRATION_URI VARCHAR(200) NOT NULL,
+ AR_PARAM_XSD VARCHAR(200),
+ RECIPE_TIMEOUT INT(10),
+ CREATION_TIMESTAMP DATETIME NOT NULL default current_timestamp,
+ primary key (ID),
+ unique key `uk_ar_recipe` (`model_name`,`action`,`version_str`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+
+alter table collection_resource_customization
+add foreign key ( cr_model_uuid)
+references collection_resource(model_uuid)
+on delete cascade;
+
+alter table vnf_resource_customization
+add column
+instance_group_model_uuid varchar(200);
+
+alter table network_resource_customization
+add column
+instance_group_model_uuid varchar(200);
+
+
+alter table network_resource_customization
+add foreign key ( instance_group_model_uuid)
+references instance_group(model_uuid)
+on delete cascade;
+
+alter table collection_resource_customization_to_service
+add foreign key (service_model_uuid)
+references service(model_uuid)
+on delete cascade;
+
+alter table allotted_resource_customization_to_service
+add foreign key (service_model_uuid)
+references service(model_uuid)
+on delete cascade;
+
+
+alter table vnf_resource_customization_to_service
+add foreign key (service_model_uuid)
+references service(model_uuid)
+on delete cascade;
+
+
+alter table network_resource_customization_to_service
+add foreign key (service_model_uuid)
+references service(model_uuid)
+on delete cascade;
+
+
+alter table network_resource_customization_to_service
+add foreign key (resource_model_customization_uuid)
+references network_resource_customization(model_customization_uuid)
+on delete cascade;
+
+alter table vnf_resource_customization_to_service
+add foreign key (resource_model_customization_uuid)
+references vnf_resource_customization(model_customization_uuid)
+on delete cascade;
+
+alter table allotted_resource_customization_to_service
+add foreign key (resource_model_customization_uuid)
+references allotted_resource_customization(model_customization_uuid)
+on delete cascade;
+
+alter table collection_resource_customization_to_service
+add foreign key (resource_model_customization_uuid)
+references collection_resource_customization(model_customization_uuid)
+on delete cascade;
+
+
+create table if not exists `collection_network_resource_customization` (
+`model_customization_uuid` varchar(200) not null,
+`model_instance_name` varchar(200) not null,
+`network_technology` varchar(45) null,
+`network_type` varchar(45) null,
+`network_role` varchar(200) null,
+`network_scope` varchar(45) null,
+`creation_timestamp` datetime not null default current_timestamp,
+`network_resource_model_uuid` varchar(200) not null, `instance_group_model_uuid` varchar(200) null,
+`crc_model_customization_uuid` varchar(200) not null, primary key
+(`model_customization_uuid`, `crc_model_customization_uuid`),
+index `fk_collection_net_resource_customization__network_resource1_idx`
+(`network_resource_model_uuid` asc), index
+`fk_collection_net_resource_customization__instance_group1_idx`
+(`instance_group_model_uuid` asc), index
+`fk_col_net_res_customization__collection_res_customization_idx`
+(`crc_model_customization_uuid` asc), constraint
+`fk_collection_net_resource_customization__network_resource10` foreign
+key (`network_resource_model_uuid`) references
+`network_resource` (`model_uuid`) on delete cascade on
+update cascade, constraint
+`fk_collection_net_resource_customization__instance_group10` foreign key
+(`instance_group_model_uuid`) references `instance_group`
+(`model_uuid`) on delete cascade on update cascade, constraint
+`fk_collection_network_resource_customization__collection_reso1` foreign
+key (`crc_model_customization_uuid`) references
+`collection_resource_customization`
+(`model_customization_uuid`) on delete cascade on update cascade) engine
+= innodb default character set = latin1;
+
+CREATE TABLE IF NOT EXISTS `rainy_day_handler_macro` (
+`id` INT(11) NOT NULL AUTO_INCREMENT,
+`FLOW_NAME` VARCHAR(200) NOT NULL,
+`SERVICE_TYPE` VARCHAR(200) NOT NULL,
+`VNF_TYPE` VARCHAR(200) NOT NULL,
+`ERROR_CODE` VARCHAR(200) NOT NULL,
+`WORK_STEP` VARCHAR(200) NOT NULL,
+`POLICY` VARCHAR(200) NOT NULL,
+PRIMARY KEY (`id`))
+ENGINE = InnoDB
+DEFAULT CHARACTER SET = latin1;
+
+CREATE TABLE IF NOT EXISTS `northbound_request_ref_lookup` (
+`id` INT(11) NOT NULL AUTO_INCREMENT,
+`REQUEST_SCOPE` VARCHAR(200) NOT NULL,
+`ACTION` VARCHAR(200) NOT NULL,
+`MACRO_ACTION` VARCHAR(200) NOT NULL,
+`IS_ALACARTE` TINYINT(1) NOT NULL DEFAULT 0,
+`IS_TOPLEVELFLOW` TINYINT(1) NOT NULL DEFAULT 0,
+`MIN_API_VERSION` DOUBLE NOT NULL,
+`MAX_API_VERSION` DOUBLE NULL,
+PRIMARY KEY (`id`),
+UNIQUE INDEX `UK_northbound_request_ref_lookup` (`MIN_API_VERSION` ASC, `REQUEST_SCOPE` ASC, `ACTION` ASC, `IS_ALACARTE` ASC))
+ENGINE = InnoDB
+DEFAULT CHARACTER SET = latin1;
+
+CREATE TABLE IF NOT EXISTS `orchestration_flow_reference` (
+`id` INT(11) NOT NULL AUTO_INCREMENT,
+`COMPOSITE_ACTION` VARCHAR(200) NOT NULL,
+`SEQ_NO` INT(11) NOT NULL,
+`FLOW_NAME` VARCHAR(200) NOT NULL,
+`FLOW_VERSION` DOUBLE NOT NULL,
+`NB_REQ_REF_LOOKUP_ID` INT(11) NOT NULL,
+PRIMARY KEY (`id`),
+INDEX `fk_orchestration_flow_reference__northbound_req_ref_look_idx` (`NB_REQ_REF_LOOKUP_ID` ASC),
+UNIQUE INDEX `UK_orchestration_flow_reference` (`COMPOSITE_ACTION` ASC, `FLOW_NAME` ASC, `SEQ_NO` ASC, `NB_REQ_REF_LOOKUP_ID` ASC),
+CONSTRAINT `fk_orchestration_flow_reference__northbound_request_ref_look1`
+FOREIGN KEY (`NB_REQ_REF_LOOKUP_ID`) REFERENCES `northbound_request_ref_lookup` (`id`)
+ON DELETE CASCADE ON UPDATE CASCADE)
+ENGINE = InnoDB DEFAULT CHARACTER SET = latin1;
+
+--------START Request DB SCHEMA --------
+CREATE DATABASE requestdb;
+USE requestdb;
+
+
+CREATE TABLE `active_requests` (
+ `REQUEST_ID` varchar(45) NOT NULL,
+ `CLIENT_REQUEST_ID` varchar(45) DEFAULT NULL,
+ `SERVICE_INSTANCE_ID` varchar(50) NOT NULL,
+ `SUBSCRIBER_NAME` varchar(200) DEFAULT NULL,
+ `REQUEST_URI` varchar(255) DEFAULT NULL,
+ `SERVICE_TYPE` varchar(65) NOT NULL,
+ `REQUEST_ACTION` varchar(45) NOT NULL,
+ `NOTIFICATION_URL` varchar(255) DEFAULT NULL,
+ `REQUEST_ID_IN_PROGRESS` varchar(45) DEFAULT NULL,
+ `START_TIME` datetime DEFAULT NULL,
+ `MODIFY_TIME` datetime DEFAULT NULL,
+ `COMPLETION_TIME` datetime DEFAULT NULL,
+ `RESPONSE_CODE` varchar(20) DEFAULT NULL,
+ `RESPONSE_BODY` longtext,
+ `STATUS` varchar(25) DEFAULT NULL,
+ `SERVICE_REQUEST_TIMEOUT` datetime DEFAULT NULL,
+ `FINAL_ERROR_CODE` varchar(20) DEFAULT NULL,
+ `FINAL_ERROR_MESSAGE` varchar(2000) DEFAULT NULL,
+ `ORDER_NUMBER` varchar(45) DEFAULT NULL,
+ `SOURCE` varchar(20) DEFAULT NULL,
+ `RESPONSE_STATUS` varchar(25) DEFAULT NULL,
+ `ORDER_VERSION` varchar(20) DEFAULT NULL,
+ `LAST_MODIFIED_BY` varchar(20) DEFAULT NULL,
+ `MOCARS_TICKET_NUM` varchar(200) DEFAULT NULL,
+ `REQUEST_BODY` longtext,
+ `REQUEST_SUB_ACTION` varchar(45) DEFAULT NULL,
+ `SDNC_CALLBACK_BPEL_URL` varchar(255) DEFAULT NULL,
+ `FEATURE_TYPE` varchar(255) DEFAULT NULL,
+ `FEATURE_INSTANCE_ID` varchar(255) DEFAULT NULL,
+ `REQUEST_TYPE` varchar(255) DEFAULT NULL,
+ `INTERIM_COMPLETION_TIME` datetime DEFAULT NULL,
+ `INTERIM_STAGE_COMPLETION` int(11) DEFAULT NULL,
+ `SERVICE_NAME_VERSION_ID` varchar(50) DEFAULT NULL,
+ `GLOBAL_SUBSCRIBER_ID` varchar(255) DEFAULT NULL,
+ `SERVICE_ID` varchar(50) DEFAULT NULL,
+ `SERVICE_VERSION` varchar(10) DEFAULT NULL,
+ `CORRELATOR` varchar(50) DEFAULT NULL,
+ PRIMARY KEY (`REQUEST_ID`),
+ UNIQUE KEY `UK_f0hdk7xbw5mb2trnxx0fvlh3x` (`CLIENT_REQUEST_ID`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+
+CREATE TABLE `infra_active_requests` (
+ `REQUEST_ID` varchar(45) NOT NULL,
+ `CLIENT_REQUEST_ID` varchar(45) DEFAULT NULL,
+ `ACTION` varchar(45) DEFAULT NULL,
+ `REQUEST_STATUS` varchar(20) DEFAULT NULL,
+ `STATUS_MESSAGE` longtext DEFAULT NULL,
+ `PROGRESS` bigint(20) DEFAULT NULL,
+ `START_TIME` datetime DEFAULT NULL,
+ `END_TIME` datetime DEFAULT NULL,
+ `SOURCE` varchar(45) DEFAULT NULL,
+ `VNF_ID` varchar(45) DEFAULT NULL,
+ `VNF_NAME` varchar(80) DEFAULT NULL,
+ `VNF_TYPE` varchar(200) DEFAULT NULL,
+ `SERVICE_TYPE` varchar(45) DEFAULT NULL,
+ `AIC_NODE_CLLI` varchar(11) DEFAULT NULL,
+ `TENANT_ID` varchar(45) DEFAULT NULL,
+ `PROV_STATUS` varchar(20) DEFAULT NULL,
+ `VNF_PARAMS` longtext,
+ `VNF_OUTPUTS` longtext,
+ `REQUEST_BODY` longtext,
+ `RESPONSE_BODY` longtext,
+ `LAST_MODIFIED_BY` varchar(100) DEFAULT NULL,
+ `MODIFY_TIME` datetime DEFAULT NULL,
+ `REQUEST_TYPE` varchar(20) DEFAULT NULL,
+ `VOLUME_GROUP_ID` varchar(45) DEFAULT NULL,
+ `VOLUME_GROUP_NAME` varchar(45) DEFAULT NULL,
+ `VF_MODULE_ID` varchar(45) DEFAULT NULL,
+ `VF_MODULE_NAME` varchar(200) DEFAULT NULL,
+ `VF_MODULE_MODEL_NAME` varchar(200) DEFAULT NULL,
+ `AAI_SERVICE_ID` varchar(50) DEFAULT NULL,
+ `AIC_CLOUD_REGION` varchar(11) DEFAULT NULL,
+ `CALLBACK_URL` varchar(200) DEFAULT NULL,
+ `CORRELATOR` varchar(80) DEFAULT NULL,
+ `NETWORK_ID` varchar(45) DEFAULT NULL,
+ `NETWORK_NAME` varchar(80) DEFAULT NULL,
+ `NETWORK_TYPE` varchar(80) DEFAULT NULL,
+ `REQUEST_SCOPE` varchar(20) NOT NULL DEFAULT 'unknown',
+ `REQUEST_ACTION` varchar(45) NOT NULL DEFAULT 'unknown',
+ `SERVICE_INSTANCE_ID` varchar(45) DEFAULT NULL,
+ `SERVICE_INSTANCE_NAME` varchar(80) DEFAULT NULL,
+ `REQUESTOR_ID` varchar(50) DEFAULT NULL,
+ `CONFIGURATION_ID` varchar(45) DEFAULT NULL,
+ `CONFIGURATION_NAME` varchar(200) DEFAULT NULL,
+ `OPERATIONAL_ENV_ID` varchar(45) DEFAULT NULL,
+ `OPERATIONAL_ENV_NAME` varchar(200) DEFAULT NULL,
+ PRIMARY KEY (`REQUEST_ID`),
+ UNIQUE KEY `UK_bhu6w8p7wvur4pin0gjw2d5ak` (`CLIENT_REQUEST_ID`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+
+CREATE TABLE `archived_infra_requests` (
+ `REQUEST_ID` varchar(45) NOT NULL,
+ `CLIENT_REQUEST_ID` varchar(45) DEFAULT NULL,
+ `ACTION` varchar(45) DEFAULT NULL,
+ `REQUEST_STATUS` varchar(20) DEFAULT NULL,
+ `STATUS_MESSAGE` longtext DEFAULT NULL,
+ `PROGRESS` bigint(20) DEFAULT NULL,
+ `START_TIME` datetime DEFAULT NULL,
+ `END_TIME` datetime DEFAULT NULL,
+ `SOURCE` varchar(45) DEFAULT NULL,
+ `VNF_ID` varchar(45) DEFAULT NULL,
+ `VNF_NAME` varchar(80) DEFAULT NULL,
+ `VNF_TYPE` varchar(200) DEFAULT NULL,
+ `SERVICE_TYPE` varchar(45) DEFAULT NULL,
+ `AIC_NODE_CLLI` varchar(11) DEFAULT NULL,
+ `TENANT_ID` varchar(45) DEFAULT NULL,
+ `PROV_STATUS` varchar(20) DEFAULT NULL,
+ `VNF_PARAMS` longtext,
+ `VNF_OUTPUTS` longtext,
+ `REQUEST_BODY` longtext,
+ `RESPONSE_BODY` longtext,
+ `LAST_MODIFIED_BY` varchar(100) DEFAULT NULL,
+ `MODIFY_TIME` datetime DEFAULT NULL,
+ `REQUEST_TYPE` varchar(20) DEFAULT NULL,
+ `VOLUME_GROUP_ID` varchar(45) DEFAULT NULL,
+ `VOLUME_GROUP_NAME` varchar(45) DEFAULT NULL,
+ `VF_MODULE_ID` varchar(45) DEFAULT NULL,
+ `VF_MODULE_NAME` varchar(200) DEFAULT NULL,
+ `VF_MODULE_MODEL_NAME` varchar(200) DEFAULT NULL,
+ `AAI_SERVICE_ID` varchar(50) DEFAULT NULL,
+ `AIC_CLOUD_REGION` varchar(11) DEFAULT NULL,
+ `CALLBACK_URL` varchar(200) DEFAULT NULL,
+ `CORRELATOR` varchar(80) DEFAULT NULL,
+ `NETWORK_ID` varchar(45) DEFAULT NULL,
+ `NETWORK_NAME` varchar(80) DEFAULT NULL,
+ `NETWORK_TYPE` varchar(80) DEFAULT NULL,
+ `REQUEST_SCOPE` varchar(20) NOT NULL DEFAULT 'unknown',
+ `REQUEST_ACTION` varchar(45) NOT NULL DEFAULT 'unknown',
+ `SERVICE_INSTANCE_ID` varchar(45) DEFAULT NULL,
+ `SERVICE_INSTANCE_NAME` varchar(80) DEFAULT NULL,
+ `REQUESTOR_ID` varchar(50) DEFAULT NULL,
+ `CONFIGURATION_ID` varchar(45) DEFAULT NULL,
+ `CONFIGURATION_NAME` varchar(200) DEFAULT NULL,
+ `OPERATIONAL_ENV_ID` varchar(45) DEFAULT NULL,
+ `OPERATIONAL_ENV_NAME` varchar(200) DEFAULT NULL,
+ PRIMARY KEY (`REQUEST_ID`),
+ UNIQUE KEY `UK_bhu6w8p7wvur4pin0gjw2d72h` (`CLIENT_REQUEST_ID`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+
+CREATE TABLE `site_status` (
+ `SITE_NAME` varchar(255) NOT NULL,
+ `STATUS` bit(1) DEFAULT NULL,
+ `CREATION_TIMESTAMP` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
+ PRIMARY KEY (`SITE_NAME`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+
+CREATE TABLE `watchdog_distributionid_status` (
+ `DISTRIBUTION_ID` varchar(45) NOT NULL,
+ `DISTRIBUTION_ID_STATUS` varchar(45) DEFAULT NULL,
+ `CREATE_TIME` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ `MODIFY_TIME` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
+ PRIMARY KEY (`DISTRIBUTION_ID`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+
+CREATE TABLE `watchdog_per_component_distribution_status` (
+ `DISTRIBUTION_ID` varchar(45) NOT NULL,
+ `COMPONENT_NAME` varchar(45) NOT NULL,
+ `COMPONENT_DISTRIBUTION_STATUS` varchar(45) DEFAULT NULL,
+ `CREATE_TIME` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ `MODIFY_TIME` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
+ PRIMARY KEY (`DISTRIBUTION_ID`,`COMPONENT_NAME`),
+ CONSTRAINT `fk_watchdog_component_distribution_status_watchdog_distributi1` FOREIGN KEY (`DISTRIBUTION_ID`) REFERENCES `watchdog_distributionid_status` (`DISTRIBUTION_ID`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+
+CREATE TABLE `watchdog_service_mod_ver_id_lookup` (
+ `DISTRIBUTION_ID` varchar(45) NOT NULL,
+ `SERVICE_MODEL_VERSION_ID` varchar(45) NOT NULL,
+ `CREATE_TIME` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ `MODIFY_TIME` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ PRIMARY KEY (`DISTRIBUTION_ID`,`SERVICE_MODEL_VERSION_ID`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+
+CREATE TABLE `activate_operational_env_service_model_distribution_status` (
+ `OPERATIONAL_ENV_ID` varchar(45) NOT NULL,
+ `SERVICE_MODEL_VERSION_ID` varchar(45) NOT NULL,
+ `REQUEST_ID` varchar(45) NOT NULL,
+ `SERVICE_MOD_VER_FINAL_DISTR_STATUS` varchar(45) DEFAULT NULL,
+ `RECOVERY_ACTION` varchar(30) DEFAULT NULL,
+ `RETRY_COUNT_LEFT` int(11) DEFAULT NULL,
+ `WORKLOAD_CONTEXT` varchar(80) NOT NULL,
+ `CREATE_TIME` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ `MODIFY_TIME` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
+ PRIMARY KEY (`OPERATIONAL_ENV_ID`,`SERVICE_MODEL_VERSION_ID`,`REQUEST_ID`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+
+CREATE TABLE `activate_operational_env_per_distributionid_status` (
+ `DISTRIBUTION_ID` varchar(45) NOT NULL,
+ `DISTRIBUTION_ID_STATUS` varchar(45) DEFAULT NULL,
+ `DISTRIBUTION_ID_ERROR_REASON` varchar(250) DEFAULT NULL,
+ `CREATE_TIME` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ `MODIFY_TIME` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
+ `OPERATIONAL_ENV_ID` varchar(45) NOT NULL,
+ `SERVICE_MODEL_VERSION_ID` varchar(45) NOT NULL,
+ `REQUEST_ID` varchar(45) NOT NULL,
+ PRIMARY KEY (`DISTRIBUTION_ID`),
+ KEY `fk_activate_op_env_per_distributionid_status__aoesmds1_idx` (`OPERATIONAL_ENV_ID`,`SERVICE_MODEL_VERSION_ID`,`REQUEST_ID`),
+ CONSTRAINT `fk_activate_op_env_per_distributionid_status__aoesmds1` FOREIGN KEY (`OPERATIONAL_ENV_ID`, `SERVICE_MODEL_VERSION_ID`, `REQUEST_ID`) REFERENCES `activate_operational_env_service_model_distribution_status` (`OPERATIONAL_ENV_ID`, `SERVICE_MODEL_VERSION_ID`, `REQUEST_ID`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+
+create table operation_status (
+ SERVICE_ID varchar(255) not null,
+ OPERATION_ID varchar(255) not null,
+ SERVICE_NAME varchar(255),
+ OPERATION_TYPE varchar(255),
+ USER_ID varchar(255),
+ RESULT varchar(255),
+ OPERATION_CONTENT varchar(255),
+ PROGRESS varchar(255),
+ REASON varchar(255),
+ OPERATE_AT datetime NOT NULL,
+ FINISHED_AT datetime NOT NULL,
+ primary key (SERVICE_ID,OPERATION_ID)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+
+create table resource_operation_status (
+ SERVICE_ID varchar(255) not null,
+ OPERATION_ID varchar(255) not null,
+ RESOURCE_TEMPLATE_UUID varchar(255) not null,
+ OPER_TYPE varchar(255),
+ RESOURCE_INSTANCE_ID varchar(255),
+ JOB_ID varchar(255),
+ STATUS varchar(255),
+ PROGRESS varchar(255),
+ ERROR_CODE varchar(255) ,
+ STATUS_DESCRIPOTION varchar(255) ,
+ primary key (SERVICE_ID,OPERATION_ID,RESOURCE_TEMPLATE_UUID)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+
+create table if not exists model_recipe (
+ `ID` INT(11) NOT NULL AUTO_INCREMENT,
+ `MODEL_ID` INT(11),
+ `ACTION` VARCHAR(40),
+ `SCHEMA_VERSION` VARCHAR(40),
+ `DESCRIPTION` VARCHAR(40),
+ `ORCHESTRATION_URI` VARCHAR(20),
+ `MODEL_PARAM_XSD` VARCHAR(20),
+ `RECIPE_TIMEOUT` INT(11),
+ `CREATION_TIMESTAMP` datetime not null default current_timestamp,
+ PRIMARY KEY (`ID`),
+ CONSTRAINT uk1_model_recipe UNIQUE (`MODEL_ID`, `ACTION`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+
+create table if not exists model (
+ `ID` INT(11) NOT NULL AUTO_INCREMENT,
+ `MODEL_CUSTOMIZATION_ID` VARCHAR(40),
+ `MODEL_CUSTOMIZATION_NAME` VARCHAR(40),
+ `MODEL_INVARIANT_ID` VARCHAR(40),
+ `MODEL_NAME` VARCHAR(40),
+ `MODEL_TYPE` VARCHAR(20),
+ `MODEL_VERSION` VARCHAR(20),
+ `MODEL_VERSION_ID` VARCHAR(40),
+ `CREATION_TIMESTAMP` datetime not null default current_timestamp,
+ `RECIPE` INT(11),
+ PRIMARY KEY (`ID`),
+ CONSTRAINT uk1_model UNIQUE (`MODEL_TYPE`, `MODEL_VERSION_ID`),
+ FOREIGN KEY (`RECIPE`) REFERENCES `model_recipe` (`MODEL_ID`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+
+ALTER TABLE `catalogdb`.`vnf_recipe`
+CHANGE COLUMN `VNF_TYPE` `NF_ROLE` VARCHAR(200) NULL DEFAULT NULL ; \ No newline at end of file