summaryrefslogtreecommitdiffstats
path: root/asdc-controller/src/test
diff options
context:
space:
mode:
Diffstat (limited to 'asdc-controller/src/test')
-rw-r--r--asdc-controller/src/test/java/org/onap/asdc/activity/DeployActivitySpecsITTest.java39
-rw-r--r--asdc-controller/src/test/java/org/onap/asdc/activity/DeployActivitySpecsTest.java5
-rw-r--r--asdc-controller/src/test/java/org/onap/so/asdc/TestApplication.java2
-rw-r--r--asdc-controller/src/test/java/org/onap/so/asdc/client/ASDCControllerITTest.java160
-rw-r--r--asdc-controller/src/test/java/org/onap/so/asdc/client/test/rest/ASDCRestInterfaceTest.java102
-rw-r--r--asdc-controller/src/test/java/org/onap/so/asdc/installer/heat/ToscaResourceInputTest.java75
-rw-r--r--asdc-controller/src/test/java/org/onap/so/asdc/installer/heat/ToscaResourceInstallerTest.java239
-rw-r--r--asdc-controller/src/test/resources/download/service-Svc140-VF-csar.csarbin35636 -> 0 bytes
-rw-r--r--asdc-controller/src/test/resources/download/service-Testservice140-csar.csarbin35457 -> 0 bytes
-rw-r--r--asdc-controller/src/test/resources/download/service-pnfservice.csarbin0 -> 27525 bytes
-rw-r--r--asdc-controller/src/test/resources/download/service-vnfservice.csarbin0 -> 27602 bytes
-rw-r--r--asdc-controller/src/test/resources/resource-examples/ccvpn/demo-ccvpn-notification.json47
-rw-r--r--asdc-controller/src/test/resources/resource-examples/ccvpn/service-Ccvpnservice-csar.csarbin0 -> 55786 bytes
-rw-r--r--asdc-controller/src/test/resources/resource-examples/public-ns/demo-public-ns-notification.json173
-rw-r--r--asdc-controller/src/test/resources/resource-examples/public-ns/service-Publicns-csar.csarbin0 -> 95725 bytes
-rw-r--r--asdc-controller/src/test/resources/resource-examples/public-ns/service-Publicns-template.yml1186
-rw-r--r--asdc-controller/src/test/resources/resource-examples/public-ns/vcpe0/ar1000v.env10
-rw-r--r--asdc-controller/src/test/resources/resource-examples/public-ns/vcpe0/ar1000v.yaml103
-rw-r--r--asdc-controller/src/test/resources/resource-examples/public-ns/vcpe0/vcpe0_modules.json25
-rw-r--r--asdc-controller/src/test/resources/resource-examples/public-ns/vcpe0/vendor-license-model.xml1
-rw-r--r--asdc-controller/src/test/resources/resource-examples/public-ns/vcpe0/vf-license-model.xml1
-rw-r--r--asdc-controller/src/test/resources/resource-examples/public-ns/vgw0/gateway.env9
-rw-r--r--asdc-controller/src/test/resources/resource-examples/public-ns/vgw0/gateway.yaml109
-rw-r--r--asdc-controller/src/test/resources/resource-examples/public-ns/vgw0/vendor-license-model.xml1
-rw-r--r--asdc-controller/src/test/resources/resource-examples/public-ns/vgw0/vf-license-model.xml1
-rw-r--r--asdc-controller/src/test/resources/resource-examples/public-ns/vgw0/vgw0_modules.json25
-rw-r--r--asdc-controller/src/test/resources/resource-examples/vcpe-rescust/base_vcpe_vgw.env27
-rw-r--r--asdc-controller/src/test/resources/resource-examples/vcpe-rescust/base_vcpe_vgw.yaml243
-rw-r--r--asdc-controller/src/test/resources/resource-examples/vcpe-rescust/demo-vcpe-rescust-notification.json108
-rw-r--r--asdc-controller/src/test/resources/resource-examples/vcpe-rescust/service-Vcperescust201910012364-csar.csarbin0 -> 84583 bytes
-rw-r--r--asdc-controller/src/test/resources/resource-examples/vcpe-rescust/service-Vcperescust201910012364-template.yml822
-rw-r--r--asdc-controller/src/test/resources/resource-examples/vcpe-rescust/vcpe_vgwbf175ab04fa20_modules.json25
-rw-r--r--asdc-controller/src/test/resources/resource-examples/vcpe-rescust/vendor-license-model.xml1
-rw-r--r--asdc-controller/src/test/resources/resource-examples/vcpe-rescust/vf-license-model.xml1
-rw-r--r--asdc-controller/src/test/resources/schema.sql32
35 files changed, 3446 insertions, 126 deletions
diff --git a/asdc-controller/src/test/java/org/onap/asdc/activity/DeployActivitySpecsITTest.java b/asdc-controller/src/test/java/org/onap/asdc/activity/DeployActivitySpecsITTest.java
index 81977da278..75ab089719 100644
--- a/asdc-controller/src/test/java/org/onap/asdc/activity/DeployActivitySpecsITTest.java
+++ b/asdc-controller/src/test/java/org/onap/asdc/activity/DeployActivitySpecsITTest.java
@@ -22,11 +22,16 @@ package org.onap.asdc.activity;
import static com.github.tomakehurst.wiremock.client.WireMock.aResponse;
import static com.github.tomakehurst.wiremock.client.WireMock.post;
import static com.github.tomakehurst.wiremock.client.WireMock.put;
+import static com.github.tomakehurst.wiremock.client.WireMock.putRequestedFor;
+import static com.github.tomakehurst.wiremock.client.WireMock.urlEqualTo;
import static com.github.tomakehurst.wiremock.client.WireMock.urlPathMatching;
+import static com.github.tomakehurst.wiremock.client.WireMock.verify;
import static org.junit.Assert.assertTrue;
import static org.mockito.Mockito.when;
import org.junit.Test;
+import org.mockito.InjectMocks;
import org.mockito.Mock;
+import org.mockito.Spy;
import org.onap.so.asdc.BaseTest;
import org.onap.so.asdc.activity.DeployActivitySpecs;
import org.onap.so.asdc.activity.beans.ActivitySpecCreateResponse;
@@ -47,6 +52,10 @@ public class DeployActivitySpecsITTest extends BaseTest {
@Autowired
private DeployActivitySpecs deployActivitySpecs;
+ @InjectMocks
+ @Spy
+ DeployActivitySpecs deployActivitySpecsM;
+
@Test
public void deployActivitySpecsIT_Test() throws Exception {
ActivitySpecCreateResponse activitySpecCreateResponse = new ActivitySpecCreateResponse();
@@ -73,4 +82,34 @@ public class DeployActivitySpecsITTest extends BaseTest {
deployActivitySpecs.deployActivities();
assertTrue(activitySpecCreateResponse.getId().equals("testActivityId"));
}
+
+ @Test
+ public void deployActivitySpecsIT_SDCEndpointDown_Test() throws Exception {
+ ActivitySpecCreateResponse activitySpecCreateResponse = new ActivitySpecCreateResponse();
+ activitySpecCreateResponse.setId("testActivityId");
+ HttpHeaders headers = new HttpHeaders();
+ headers.set("Accept", MediaType.APPLICATION_JSON);
+ headers.set("Content-Type", MediaType.APPLICATION_JSON);
+
+ ObjectMapper mapper = new ObjectMapper();
+ String body = mapper.writeValueAsString(activitySpecCreateResponse);
+
+ wireMockServer.stubFor(post(urlPathMatching("/v1.0/activity-spec"))
+ .willReturn(aResponse().withHeader("Content-Type", "application/json")
+ .withStatus(org.springframework.http.HttpStatus.OK.value()).withBody(body)));
+
+ when(env.getProperty("mso.asdc.config.activity.endpoint")).thenReturn("http://localhost:8090");
+
+ String urlPath = "/v1.0/activity-spec/testActivityId/versions/latest/actions";
+
+ wireMockServer.stubFor(
+ put(urlPathMatching(urlPath)).willReturn(aResponse().withHeader("Content-Type", "application/json")
+ .withStatus(org.springframework.http.HttpStatus.OK.value())));
+
+ String host = "http://localhost:8090";
+ when(deployActivitySpecsM.checkHttpServerUp(host)).thenReturn(false);
+ deployActivitySpecsM.deployActivities();
+ verify(0, putRequestedFor(urlEqualTo(urlPath)));
+ }
+
}
diff --git a/asdc-controller/src/test/java/org/onap/asdc/activity/DeployActivitySpecsTest.java b/asdc-controller/src/test/java/org/onap/asdc/activity/DeployActivitySpecsTest.java
index aae5e5dc53..6d88ab6630 100644
--- a/asdc-controller/src/test/java/org/onap/asdc/activity/DeployActivitySpecsTest.java
+++ b/asdc-controller/src/test/java/org/onap/asdc/activity/DeployActivitySpecsTest.java
@@ -30,6 +30,7 @@ import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.Mockito;
+import org.mockito.Spy;
import org.mockito.junit.MockitoJUnitRunner;
import org.onap.so.asdc.activity.ActivitySpecsActions;
import org.onap.so.asdc.activity.DeployActivitySpecs;
@@ -54,6 +55,7 @@ public class DeployActivitySpecsTest {
protected ActivitySpecsActions activitySpecsActions;
@InjectMocks
+ @Spy
private DeployActivitySpecs deployActivitySpecs;
@Test
@@ -68,7 +70,8 @@ public class DeployActivitySpecsTest {
List<org.onap.so.db.catalog.beans.ActivitySpec> catalogActivitySpecList =
new ArrayList<org.onap.so.db.catalog.beans.ActivitySpec>();
catalogActivitySpecList.add(catalogActivitySpec);
- when(env.getProperty("mso.asdc.config.activity.endpoint")).thenReturn("testEndpoint");
+ when(env.getProperty("mso.asdc.config.activity.endpoint")).thenReturn("http://testEndpoint");
+ doReturn(true).when(deployActivitySpecs).checkHttpServerUp("http://testEndpoint");
when(activitySpecRepository.findAll()).thenReturn(catalogActivitySpecList);
doReturn("testActivityId").when(activitySpecsActions).createActivitySpec(Mockito.any(), Mockito.any());
doReturn(true).when(activitySpecsActions).certifyActivitySpec(Mockito.any(), Mockito.any());
diff --git a/asdc-controller/src/test/java/org/onap/so/asdc/TestApplication.java b/asdc-controller/src/test/java/org/onap/so/asdc/TestApplication.java
index c35e8e34d6..e25de9c3d4 100644
--- a/asdc-controller/src/test/java/org/onap/so/asdc/TestApplication.java
+++ b/asdc-controller/src/test/java/org/onap/so/asdc/TestApplication.java
@@ -31,7 +31,7 @@ import org.springframework.context.annotation.Profile;
@SpringBootApplication
@Profile("test")
-@ComponentScan(basePackages = {"org.onap.so.asdc"},
+@ComponentScan(basePackages = {"org.onap.so.asdc", "org.onap.so.security"},
excludeFilters = {@Filter(type = FilterType.ANNOTATION, classes = SpringBootApplication.class),
@Filter(type = FilterType.ASSIGNABLE_TYPE, classes = RequestsDBHelper.class),
@Filter(type = FilterType.ASSIGNABLE_TYPE, classes = InfraActiveRequestsRepositoryImpl.class)})
diff --git a/asdc-controller/src/test/java/org/onap/so/asdc/client/ASDCControllerITTest.java b/asdc-controller/src/test/java/org/onap/so/asdc/client/ASDCControllerITTest.java
index 0681cd8aed..3db017cac5 100644
--- a/asdc-controller/src/test/java/org/onap/so/asdc/client/ASDCControllerITTest.java
+++ b/asdc-controller/src/test/java/org/onap/so/asdc/client/ASDCControllerITTest.java
@@ -1,15 +1,20 @@
-/*
- * ============LICENSE_START======================================================= Copyright (C) 2019 Nordix
- * Foundation. ================================================================================ Licensed under the
- * Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may
- * obtain a copy of the License at
+/*-
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2019 Nordix
+ * ================================================================================
+ * 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.
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
*
- * SPDX-License-Identifier: Apache-2.0 ============LICENSE_END=========================================================
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
*/
package org.onap.so.asdc.client;
@@ -20,6 +25,7 @@ import static com.github.tomakehurst.wiremock.client.WireMock.urlEqualTo;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
import java.util.ArrayList;
import java.util.Collections;
@@ -29,10 +35,10 @@ import java.util.UUID;
import javax.persistence.EntityNotFoundException;
import org.junit.After;
import org.junit.Before;
-import org.junit.Ignore;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.TestName;
+import org.onap.logging.ref.slf4j.ONAPLogConstants;
import org.onap.so.asdc.BaseTest;
import org.onap.so.asdc.client.exceptions.ASDCControllerException;
import org.onap.so.asdc.client.test.emulators.ArtifactInfoImpl;
@@ -55,6 +61,7 @@ import org.onap.so.db.request.beans.WatchdogComponentDistributionStatus;
import org.onap.so.db.request.data.repository.WatchdogComponentDistributionStatusRepository;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import org.slf4j.MDC;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
@@ -62,7 +69,10 @@ import org.springframework.transaction.annotation.Transactional;
* This is used to run some basic integration test(BIT) for ASDC controller. It will test the csar install and all the
* testing csar files are located underneath src/main/resources/download folder,
*
- * PNF csar: service-Testservice140-csar.csar VNF csar: service-Svc140-VF-csar.csar
+ * PNF csar: service-pnfservice.csar VNF csar: service-Svc140-VF-csar.csar
+ *
+ * All the csar files are cleaned, i.e, removing the comments and most of the description to avoid violation of
+ * security.
*/
@Transactional
public class ASDCControllerITTest extends BaseTest {
@@ -139,23 +149,23 @@ public class ASDCControllerITTest extends BaseTest {
* Mock the AAI using wireshark.
*/
private void initMockAaiServer(final String serviceUuid, final String serviceInvariantUuid) {
- String modelEndpoint = "/aai/v15/service-design-and-creation/models/model/" + serviceInvariantUuid
+ String modelEndpoint = "/aai/v17/service-design-and-creation/models/model/" + serviceInvariantUuid
+ "/model-vers/model-ver/" + serviceUuid + "?depth=0";
wireMockServer.stubFor(post(urlEqualTo(modelEndpoint)).willReturn(ok()));
}
/**
- * Test with service-Testservice140-csar.csar.
+ * Test with service-pnfservice.csar.
*/
@Test
public void treatNotification_ValidPnfResource_ExpectedOutput() {
/**
- * service UUID/invariantUUID from global metadata in service-Testservice140-template.yml.
+ * service UUID/invariantUUID from global metadata in service-PnfServiceTestCds-template.yml.
*/
- String serviceUuid = "efaea486-561f-4159-9191-a8d3cb346728";
- String serviceInvariantUuid = "f2edfbf4-bb0a-4fe7-a57a-71362d4b0b23";
+ String serviceUuid = "77cf276e-905c-43f6-8d54-dda474be2f2e";
+ String serviceInvariantUuid = "913e6776-4bc3-49b9-b399-b5bb4690f0c7";
initMockAaiServer(serviceUuid, serviceInvariantUuid);
@@ -177,6 +187,7 @@ public class ASDCControllerITTest extends BaseTest {
try {
asdcController.treatNotification(notificationData);
+
logger.info("Checking the database for PNF ingestion");
/**
@@ -185,11 +196,11 @@ public class ASDCControllerITTest extends BaseTest {
ToscaCsar toscaCsar = toscaCsarRepository.findById(artifactUuid)
.orElseThrow(() -> new EntityNotFoundException("Tosca csar: " + artifactUuid + " not found"));
assertEquals("tosca csar UUID", artifactUuid, toscaCsar.getArtifactUUID());
- assertEquals("tosca csar name", "service-Testservice140-csar.csar", toscaCsar.getName());
+ assertEquals("tosca csar name", "service-pnfservice.csar", toscaCsar.getName());
assertEquals("tosca csar version", "1.0", toscaCsar.getVersion());
assertNull("tosca csar descrption", toscaCsar.getDescription());
assertEquals("tosca csar checksum", "MANUAL_RECORD", toscaCsar.getArtifactChecksum());
- assertEquals("toscar csar URL", "/download/service-Testservice140-csar.csar", toscaCsar.getUrl());
+ assertEquals("toscar csar URL", "/download/service-pnfservice.csar", toscaCsar.getUrl());
/**
* Check the service entity, it should be the same as global metadata information in
@@ -197,49 +208,50 @@ public class ASDCControllerITTest extends BaseTest {
*/
Service service = serviceRepository.findById(serviceUuid)
.orElseThrow(() -> new EntityNotFoundException("Service: " + serviceUuid + " not found"));
- assertEquals("model UUID", "efaea486-561f-4159-9191-a8d3cb346728", service.getModelUUID());
- assertEquals("model name", "TestService140", service.getModelName());
- assertEquals("model invariantUUID", "f2edfbf4-bb0a-4fe7-a57a-71362d4b0b23",
- service.getModelInvariantUUID());
+ assertEquals("model UUID", serviceUuid, service.getModelUUID());
+ assertEquals("model name", "PNF Service Test CDS", service.getModelName());
+ assertEquals("model invariantUUID", serviceInvariantUuid, service.getModelInvariantUUID());
assertEquals("model version", "1.0", service.getModelVersion());
- assertEquals("description", "Test Service for extended attributes of PNF resource",
- service.getDescription().trim());
+ assertEquals("description", "123123", service.getDescription().trim());
assertEquals("tosca csar artifact UUID", artifactUuid, service.getCsar().getArtifactUUID());
- assertEquals("service type", "Network", service.getServiceType());
- assertEquals("service role", "nfv", service.getServiceRole());
+ assertEquals("service type", "", service.getServiceType());
+ assertEquals("service role", "", service.getServiceRole());
assertEquals("environment context", "General_Revenue-Bearing", service.getEnvironmentContext());
- assertEquals("service category", "Network Service", service.getCategory());
+ assertEquals("service category", "Network L1-3", service.getCategory());
assertNull("workload context", service.getWorkloadContext());
- assertEquals("resource order", "Test140PNF", service.getResourceOrder());
+ assertEquals("resource order", "PNF CDS Test", service.getResourceOrder());
+ assertEquals("CDS blueprint name", "Blueprint140", service.getBlueprintName());
+ assertEquals("CDS blueprint version", "v1.4.0", service.getBlueprintVersion());
+ assertEquals("controller actor", "SO-REF-DATA", service.getControllerActor());
/**
* Check PNF resource, it should be the same as metadata in the topology template in
- * service-Testservice140-template.yml OR global metadata in the resource-Test140pnf-template.yml
+ * service-PnfServiceTestCds-template.yml OR global metadata in the resource-PnfServiceTestCds-template.yml
*/
- String pnfResourceKey = "9c54e269-122b-4e8a-8b2a-6eac849b441a";
+ String pnfResourceKey = "aa5d0562-80e7-43e9-af74-3085e57ab09f";
PnfResource pnfResource = pnfResourceRepository.findById(pnfResourceKey)
.orElseThrow(() -> new EntityNotFoundException("PNF resource:" + pnfResourceKey + " not found"));
assertNull("orchestration mode", pnfResource.getOrchestrationMode());
- assertEquals("Description", "Oracle", pnfResource.getDescription().trim());
+ assertEquals("Description", "123123", pnfResource.getDescription().trim());
assertEquals("model UUID", pnfResourceKey, pnfResource.getModelUUID());
- assertEquals("model invariant UUID", "d832a027-75f3-455d-9de4-f02fcdee7e7e",
+ assertEquals("model invariant UUID", "17d9d183-cee5-4a46-b5c4-6d5203f7d2e8",
pnfResource.getModelInvariantUUID());
assertEquals("model version", "1.0", pnfResource.getModelVersion());
- assertEquals("model name", "Test140PNF", pnfResource.getModelName());
- assertEquals("tosca node type", "org.openecomp.resource.pnf.Test140pnf", pnfResource.getToscaNodeType());
+ assertEquals("model name", "PNF CDS Test", pnfResource.getModelName());
+ assertEquals("tosca node type", "org.openecomp.resource.pnf.PnfCdsTest", pnfResource.getToscaNodeType());
assertEquals("resource category", "Application L4+", pnfResource.getCategory());
- assertEquals("resource sub category", "Call Control", pnfResource.getSubCategory());
+ assertEquals("resource sub category", "Firewall", pnfResource.getSubCategory());
/**
* Check PNF resource customization, it should be the same as metadata in the topology template in
- * service-Testservice140-template.yml OR global metadata in the resource-Test140pnf-template.yml
+ * service-PnfServiceTestCds-template.yml OR global metadata in the resource-PnfServiceTestCds-template.yml
*/
- String pnfCustomizationKey = "428a3d73-f962-4cc2-ba62-2483c45d6b12";
+ String pnfCustomizationKey = "9f01263a-eaf7-4d98-a37b-3785f751903e";
PnfResourceCustomization pnfCustomization = pnfCustomizationRepository.findById(pnfCustomizationKey)
.orElseThrow(() -> new EntityNotFoundException(
"PNF resource customization: " + pnfCustomizationKey + " not found"));
assertEquals("model customizationUUID", pnfCustomizationKey, pnfCustomization.getModelCustomizationUUID());
- assertEquals("model instance name", "Test140PNF 0", pnfCustomization.getModelInstanceName());
+ assertEquals("model instance name", "PNF CDS Test 0", pnfCustomization.getModelInstanceName());
assertEquals("NF type", "", pnfCustomization.getNfType());
assertEquals("NF Role", "nf", pnfCustomization.getNfRole());
assertEquals("NF function", "nf", pnfCustomization.getNfFunction());
@@ -247,10 +259,12 @@ public class ASDCControllerITTest extends BaseTest {
assertEquals("PNF resource model UUID", pnfResourceKey, pnfCustomization.getPnfResources().getModelUUID());
assertEquals("Multi stage design", "", pnfCustomization.getMultiStageDesign());
assertNull("resource input", pnfCustomization.getResourceInput());
- assertEquals("cds blueprint name(sdnc_model_name property)", pnfCustomization.getBlueprintName(),
+ assertEquals("cds blueprint name(sdnc_model_name property)", "Blueprint140",
pnfCustomization.getBlueprintName());
- assertEquals("cds blueprint version(sdnc_model_version property)", pnfCustomization.getBlueprintVersion(),
+ assertEquals("cds blueprint version(sdnc_model_version property)", "v1.4.0",
pnfCustomization.getBlueprintVersion());
+ assertTrue("skip post instantiation configuration", pnfCustomization.isSkipPostInstConf());
+ assertEquals("controller actor", "SO-REF-DATA", pnfCustomization.getControllerActor());
/**
* Check the pnf resource customization with service mapping
@@ -277,11 +291,40 @@ public class ASDCControllerITTest extends BaseTest {
}
}
+ /**
+ * Test to check RequestId is being set using the DistributionID.
+ */
+ @Test
+ public void treatNotification_verifyRequestID() {
+
+ String serviceUuid = "efaea486-561f-4159-9191-a8d3cb346728";
+ String serviceInvariantUuid = "f2edfbf4-bb0a-4fe7-a57a-71362d4b0b23";
+ distributionId = "bb15de12-166d-4e45-9e5f-4b3f25200d7b";
+
+ initMockAaiServer(serviceUuid, serviceInvariantUuid);
+
+ NotificationDataImpl notificationData = new NotificationDataImpl();
+ notificationData.setServiceUUID(serviceUuid);
+ notificationData.setDistributionID(distributionId);
+ notificationData.setServiceInvariantUUID(serviceInvariantUuid);
+ notificationData.setServiceVersion("1.0");
+
+ try {
+ asdcController.treatNotification(notificationData);
+ logger.info("Verify RequestId : {}", MDC.get(ONAPLogConstants.MDCs.REQUEST_ID));
+ assertEquals("bb15de12-166d-4e45-9e5f-4b3f25200d7b", MDC.get(ONAPLogConstants.MDCs.REQUEST_ID));
+
+ } catch (Exception e) {
+ logger.info(e.getMessage(), e);
+ fail(e.getMessage());
+ }
+ }
+
private ArtifactInfoImpl constructPnfServiceArtifact() {
ArtifactInfoImpl artifactInfo = new ArtifactInfoImpl();
artifactInfo.setArtifactType(ASDCConfiguration.TOSCA_CSAR);
- artifactInfo.setArtifactURL("/download/service-Testservice140-csar.csar");
- artifactInfo.setArtifactName("service-Testservice140-csar.csar");
+ artifactInfo.setArtifactURL("/download/service-pnfservice.csar");
+ artifactInfo.setArtifactName("service-pnfservice.csar");
artifactInfo.setArtifactVersion("1.0");
artifactInfo.setArtifactUUID(artifactUuid);
return artifactInfo;
@@ -293,13 +336,13 @@ public class ASDCControllerITTest extends BaseTest {
*/
private ResourceInfoImpl constructPnfResourceInfo() {
ResourceInfoImpl resourceInfo = new ResourceInfoImpl();
- resourceInfo.setResourceInstanceName("Test140PNF");
- resourceInfo.setResourceInvariantUUID("d832a027-75f3-455d-9de4-f02fcdee7e7e");
+ resourceInfo.setResourceInstanceName("PNF CDS Test");
+ resourceInfo.setResourceInvariantUUID("17d9d183-cee5-4a46-b5c4-6d5203f7d2e8");
resourceInfo.setResoucreType("PNF");
resourceInfo.setCategory("Application L4+");
- resourceInfo.setSubcategory("Call Control");
- resourceInfo.setResourceUUID("9c54e269-122b-4e8a-8b2a-6eac849b441a");
- resourceInfo.setResourceCustomizationUUID("428a3d73-f962-4cc2-ba62-2483c45d6b12");
+ resourceInfo.setSubcategory("Firewall");
+ resourceInfo.setResourceUUID("aa5d0562-80e7-43e9-af74-3085e57ab09f");
+ resourceInfo.setResourceCustomizationUUID("9f01263a-eaf7-4d98-a37b-3785f751903e");
resourceInfo.setResourceVersion("1.0");
return resourceInfo;
}
@@ -308,7 +351,6 @@ public class ASDCControllerITTest extends BaseTest {
* Testing with the service-Svc140-VF-csar.csar.
*/
@Test
- @Ignore
public void treatNotification_ValidVnfResource_ExpectedOutput() {
/**
@@ -345,11 +387,11 @@ public class ASDCControllerITTest extends BaseTest {
ToscaCsar toscaCsar = toscaCsarRepository.findById(artifactUuid)
.orElseThrow(() -> new EntityNotFoundException("Tosca csar: " + artifactUuid + " not found"));
assertEquals("tosca csar UUID", artifactUuid, toscaCsar.getArtifactUUID());
- assertEquals("tosca csar name", "service-Svc140-VF-csar.csar", toscaCsar.getName());
+ assertEquals("tosca csar name", "service-vnfservice.csar", toscaCsar.getName());
assertEquals("tosca csar version", "1.0", toscaCsar.getVersion());
assertNull("tosca csar descrption", toscaCsar.getDescription());
assertEquals("tosca csar checksum", "MANUAL_RECORD", toscaCsar.getArtifactChecksum());
- assertEquals("toscar csar URL", "/download/service-Svc140-VF-csar.csar", toscaCsar.getUrl());
+ assertEquals("toscar csar URL", "/download/service-vnfservice.csar", toscaCsar.getUrl());
/**
* Check the service entity, it should be the same as global metadata information in
@@ -369,6 +411,9 @@ public class ASDCControllerITTest extends BaseTest {
assertEquals("service category", "Network Service", service.getCategory());
assertNull("workload context", service.getWorkloadContext());
assertEquals("resource order", "TestVF140", service.getResourceOrder());
+ assertEquals("CDS blueprint name", "BP140", service.getBlueprintName());
+ assertEquals("CDS blueprint version", "v1.4.0", service.getBlueprintVersion());
+ assertEquals("controller actor", "SO-REF-DATA", service.getControllerActor());
/**
* Check VNF resource, it should be the same as metadata in the topology template in
@@ -405,11 +450,12 @@ public class ASDCControllerITTest extends BaseTest {
assertNull("NF naming code", vnfCustomization.getNfNamingCode());
assertEquals("VNF resource model UUID", vnfResourceKey, vnfCustomization.getVnfResources().getModelUUID());
assertEquals("Multi stage design", "false", vnfCustomization.getMultiStageDesign());
- assertNull("resource input", vnfCustomization.getResourceInput());
- assertEquals("cds blueprint name(sdnc_model_name property)", vnfCustomization.getBlueprintName(),
- vnfCustomization.getBlueprintName());
- assertEquals("cds blueprint version(sdnc_model_version property)", vnfCustomization.getBlueprintVersion(),
+ assertNotNull("resource input", vnfCustomization.getResourceInput());
+ assertEquals("cds blueprint name(sdnc_model_name property)", "BP140", vnfCustomization.getBlueprintName());
+ assertEquals("cds blueprint version(sdnc_model_version property)", "v1.4.0",
vnfCustomization.getBlueprintVersion());
+ assertEquals("controller actor", "SO-REF-DATA", vnfCustomization.getControllerActor());
+
/**
* Check the vnf resource customization with service mapping
*/
@@ -436,8 +482,8 @@ public class ASDCControllerITTest extends BaseTest {
private ArtifactInfoImpl constructVnfServiceArtifact() {
ArtifactInfoImpl artifactInfo = new ArtifactInfoImpl();
artifactInfo.setArtifactType(ASDCConfiguration.TOSCA_CSAR);
- artifactInfo.setArtifactURL("/download/service-Svc140-VF-csar.csar");
- artifactInfo.setArtifactName("service-Svc140-VF-csar.csar");
+ artifactInfo.setArtifactURL("/download/service-vnfservice.csar");
+ artifactInfo.setArtifactName("service-vnfservice.csar");
artifactInfo.setArtifactVersion("1.0");
artifactInfo.setArtifactUUID(artifactUuid);
return artifactInfo;
diff --git a/asdc-controller/src/test/java/org/onap/so/asdc/client/test/rest/ASDCRestInterfaceTest.java b/asdc-controller/src/test/java/org/onap/so/asdc/client/test/rest/ASDCRestInterfaceTest.java
index 2c520a3bba..9294677b95 100644
--- a/asdc-controller/src/test/java/org/onap/so/asdc/client/test/rest/ASDCRestInterfaceTest.java
+++ b/asdc-controller/src/test/java/org/onap/so/asdc/client/test/rest/ASDCRestInterfaceTest.java
@@ -43,21 +43,29 @@ import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.TemporaryFolder;
+import org.mockito.ArgumentMatchers;
+import org.mockito.Mockito;
import org.mockito.Spy;
import org.onap.so.asdc.BaseTest;
import org.onap.so.asdc.client.test.emulators.DistributionClientEmulator;
import org.onap.so.asdc.client.test.emulators.NotificationDataImpl;
import org.onap.so.db.catalog.beans.AllottedResource;
import org.onap.so.db.catalog.beans.AllottedResourceCustomization;
+import org.onap.so.db.catalog.beans.ConfigurationResourceCustomization;
import org.onap.so.db.catalog.beans.NetworkResource;
import org.onap.so.db.catalog.beans.NetworkResourceCustomization;
import org.onap.so.db.catalog.beans.Service;
import org.onap.so.db.catalog.beans.ToscaCsar;
+import org.onap.so.db.catalog.beans.VnfResource;
+import org.onap.so.db.catalog.beans.VnfResourceCustomization;
import org.onap.so.db.catalog.beans.Workflow;
+import org.onap.so.db.catalog.data.repository.AllottedResourceCustomizationRepository;
import org.onap.so.db.catalog.data.repository.AllottedResourceRepository;
import org.onap.so.db.catalog.data.repository.NetworkResourceRepository;
import org.onap.so.db.catalog.data.repository.ServiceRepository;
import org.onap.so.db.catalog.data.repository.ToscaCsarRepository;
+import org.onap.so.db.catalog.data.repository.VnfCustomizationRepository;
+import org.onap.so.db.catalog.data.repository.VnfResourceRepository;
import org.onap.so.db.catalog.data.repository.WorkflowRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.web.client.TestRestTemplate;
@@ -67,6 +75,7 @@ import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod;
import org.springframework.http.ResponseEntity;
import com.fasterxml.jackson.databind.ObjectMapper;
+import org.springframework.test.util.ReflectionTestUtils;
public class ASDCRestInterfaceTest extends BaseTest {
@@ -74,12 +83,18 @@ public class ASDCRestInterfaceTest extends BaseTest {
private AllottedResourceRepository allottedRepo;
@Autowired
+ private AllottedResourceCustomizationRepository allottedCustomRepo;
+
+ @Autowired
private ServiceRepository serviceRepo;
@Autowired
private NetworkResourceRepository networkRepo;
@Autowired
+ private VnfCustomizationRepository vnfCustRepo;
+
+ @Autowired
private WorkflowRepository workflowRepo;
@Autowired
@@ -107,6 +122,7 @@ public class ASDCRestInterfaceTest extends BaseTest {
public void setUp() {
// ASDC Controller writes to this path
System.setProperty("mso.config.path", folder.getRoot().toString());
+ ReflectionTestUtils.setField(toscaInstaller, "toscaCsarRepo", toscaCsarRepo);
}
@Test
@@ -164,7 +180,7 @@ public class ASDCRestInterfaceTest extends BaseTest {
@Test
@Transactional
- public void test_VFW_Distrobution() throws Exception {
+ public void test_VFW_Distribution() throws Exception {
wireMockServer.stubFor(post(urlPathMatching("/aai/.*"))
.willReturn(aResponse().withStatus(200).withHeader("Content-Type", "application/json")));
@@ -288,6 +304,90 @@ public class ASDCRestInterfaceTest extends BaseTest {
Optional<NetworkResource> networkResource = networkRepo.findById("89789b26-a46b-4cee-aed0-d46e21f93a5e");
assertTrue(networkResource.isPresent());
assertEquals("Generic NeutronNet", networkResource.get().getModelName());
+
+ List<VnfResourceCustomization> vnfCustomizationResources =
+ vnfCustRepo.findByModelCustomizationUUID("01564fe7-0541-4d92-badc-464cc35f83ba");
+
+ for (VnfResourceCustomization vnfResourceCustomization : vnfCustomizationResources) {
+
+ assertTrue(vnfResourceCustomization.getVfModuleCustomizations().stream()
+ .anyMatch(vfModuleCust -> "354b1e83-47db-4af1-8af4-9c14b03b482d"
+ .equals(vfModuleCust.getModelCustomizationUUID())));
+
+ }
+
+ }
+
+ @Test
+ public void test_CCVPN_Distribution() throws Exception {
+ wireMockServer.stubFor(post(urlPathMatching("/aai/.*"))
+ .willReturn(aResponse().withStatus(200).withHeader("Content-Type", "application/json")));
+
+ wireMockServer.stubFor(post(urlPathMatching("/v1.0/activity-spec"))
+ .willReturn(aResponse().withHeader("Content-Type", "application/json")
+ .withStatus(org.springframework.http.HttpStatus.ACCEPTED.value())));
+
+ String resourceLocation = "src/test/resources/resource-examples/ccvpn/";
+ ObjectMapper mapper = new ObjectMapper();
+ NotificationDataImpl request = mapper.readValue(new File(resourceLocation + "demo-ccvpn-notification.json"),
+ NotificationDataImpl.class);
+ headers.add("resource-location", resourceLocation);
+ HttpEntity<NotificationDataImpl> entity = new HttpEntity<NotificationDataImpl>(request, headers);
+ ResponseEntity<String> response = restTemplate.exchange(createURLWithPort("test/treatNotification/v1"),
+ HttpMethod.POST, entity, String.class);
+ assertEquals(Response.Status.OK.getStatusCode(), response.getStatusCode().value());
+
+ Optional<Service> service = serviceRepo.findById("317887d3-a4e4-45cb-8971-2a78426fefac");
+ assertTrue(service.isPresent());
+ assertEquals("CCVPNService", service.get().getModelName());
+ }
+
+ @Test
+ public void test_PublicNS_Distribution() throws Exception {
+ wireMockServer.stubFor(post(urlPathMatching("/aai/.*"))
+ .willReturn(aResponse().withStatus(200).withHeader("Content-Type", "application/json")));
+
+ wireMockServer.stubFor(post(urlPathMatching("/v1.0/activity-spec"))
+ .willReturn(aResponse().withHeader("Content-Type", "application/json")
+ .withStatus(org.springframework.http.HttpStatus.ACCEPTED.value())));
+
+ String resourceLocation = "src/test/resources/resource-examples/public-ns/";
+ ObjectMapper mapper = new ObjectMapper();
+ NotificationDataImpl request = mapper.readValue(new File(resourceLocation + "demo-public-ns-notification.json"),
+ NotificationDataImpl.class);
+ headers.add("resource-location", resourceLocation);
+ HttpEntity<NotificationDataImpl> entity = new HttpEntity<NotificationDataImpl>(request, headers);
+ ResponseEntity<String> response = restTemplate.exchange(createURLWithPort("test/treatNotification/v1"),
+ HttpMethod.POST, entity, String.class);
+ assertEquals(Response.Status.OK.getStatusCode(), response.getStatusCode().value());
+
+ Optional<Service> service = serviceRepo.findById("da28696e-d4c9-4df4-9f91-465c6c09a81e");
+ assertTrue(service.isPresent());
+ assertEquals("PublicNS", service.get().getModelName());
+ }
+
+ @Test
+ public void test_Vcperescust_Distribution() throws Exception {
+ wireMockServer.stubFor(post(urlPathMatching("/aai/.*"))
+ .willReturn(aResponse().withStatus(200).withHeader("Content-Type", "application/json")));
+
+ wireMockServer.stubFor(post(urlPathMatching("/v1.0/activity-spec"))
+ .willReturn(aResponse().withHeader("Content-Type", "application/json")
+ .withStatus(org.springframework.http.HttpStatus.ACCEPTED.value())));
+
+ String resourceLocation = "src/test/resources/resource-examples/vcpe-rescust/";
+ ObjectMapper mapper = new ObjectMapper();
+ NotificationDataImpl request = mapper.readValue(
+ new File(resourceLocation + "demo-vcpe-rescust-notification.json"), NotificationDataImpl.class);
+ headers.add("resource-location", resourceLocation);
+ HttpEntity<NotificationDataImpl> entity = new HttpEntity<NotificationDataImpl>(request, headers);
+ ResponseEntity<String> response = restTemplate.exchange(createURLWithPort("test/treatNotification/v1"),
+ HttpMethod.POST, entity, String.class);
+ assertEquals(Response.Status.OK.getStatusCode(), response.getStatusCode().value());
+
+ Optional<Service> service = serviceRepo.findById("d3aac917-543d-4421-b6d7-ba2b65884eb7");
+ assertTrue(service.isPresent());
+ assertEquals("vCPEResCust 2019-10-01 _2364", service.get().getModelName());
}
protected String createURLWithPort(String uri) {
diff --git a/asdc-controller/src/test/java/org/onap/so/asdc/installer/heat/ToscaResourceInputTest.java b/asdc-controller/src/test/java/org/onap/so/asdc/installer/heat/ToscaResourceInputTest.java
index 846eaf47e2..9940b81361 100644
--- a/asdc-controller/src/test/java/org/onap/so/asdc/installer/heat/ToscaResourceInputTest.java
+++ b/asdc-controller/src/test/java/org/onap/so/asdc/installer/heat/ToscaResourceInputTest.java
@@ -24,7 +24,13 @@ import org.junit.Test;
import org.mockito.Mock;
import org.mockito.junit.MockitoJUnit;
import org.mockito.junit.MockitoRule;
+import org.onap.sdc.tosca.parser.api.IEntityDetails;
import org.onap.sdc.tosca.parser.api.ISdcCsarHelper;
+import org.onap.sdc.tosca.parser.elements.queries.EntityQuery;
+import org.onap.sdc.tosca.parser.elements.queries.TopologyTemplateQuery;
+import org.onap.sdc.tosca.parser.enums.EntityTemplateType;
+import org.onap.sdc.tosca.parser.enums.SdcTypes;
+import org.onap.sdc.tosca.parser.impl.SdcPropertyNames;
import org.onap.sdc.toscaparser.api.NodeTemplate;
import org.onap.sdc.toscaparser.api.Property;
import org.onap.sdc.toscaparser.api.elements.Metadata;
@@ -33,9 +39,11 @@ import org.onap.sdc.toscaparser.api.parameters.Input;
import org.onap.so.asdc.client.exceptions.ArtifactInstallerException;
import org.onap.so.asdc.installer.ToscaResourceStructure;
import org.onap.so.db.catalog.beans.Service;
+import org.springframework.beans.factory.annotation.Autowired;
import java.util.*;
import static org.junit.Assert.assertEquals;
import static org.mockito.Matchers.any;
+import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.when;
public class ToscaResourceInputTest {
@@ -49,6 +57,9 @@ public class ToscaResourceInputTest {
NodeTemplate nodeTemplate;
@Mock
+ IEntityDetails entityDetails;
+
+ @Mock
Property property;
@Mock
@@ -57,6 +68,12 @@ public class ToscaResourceInputTest {
@Mock
Input input;
+ @Mock
+ ToscaResourceInstaller toscaInstaller;
+
+ @Mock
+ ToscaResourceStructure toscaStructure;
+
@Test
public void getListResourceInput() {
ToscaResourceInstaller toscaResourceInstaller = new ToscaResourceInstaller();
@@ -65,16 +82,16 @@ public class ToscaResourceInputTest {
Map<String, Object> map = new HashMap<>();
map.put("customizationUUID", "69df3303-d2b3-47a1-9d04-41604d3a95fd");
Metadata metadata = new Metadata(map);
- when(nodeTemplate.getProperties()).thenReturn(hashMap);
+ when(entityDetails.getProperties()).thenReturn(hashMap);
when(property.getValue()).thenReturn(getInput);
when(getInput.getInputName()).thenReturn("nameKey");
when(input.getName()).thenReturn("nameKey");
when(input.getDefault()).thenReturn("defaultValue");
when(getInput.toString()).thenReturn("getinput:[sites,INDEX,role]");
- when(nodeTemplate.getMetaData()).thenReturn(metadata);
+ when(entityDetails.getMetadata()).thenReturn(metadata);
List<Input> inputs = new ArrayList<>();
inputs.add(input);
- String resourceInput = toscaResourceInstaller.getVnfcResourceInput(nodeTemplate, inputs);
+ String resourceInput = toscaResourceInstaller.getVnfcResourceInput(entityDetails, inputs);
assertEquals("{\\\"key1\\\":\\\"[sites,INDEX,role]|defaultValue\\\"}", resourceInput);
}
@@ -90,14 +107,18 @@ public class ToscaResourceInputTest {
hashMap.put("name", "node1");
Metadata metadata = new Metadata(hashMap);
- when(nodeTemplate.getMetaData()).thenReturn(metadata);
+ when(entityDetails.getMetadata()).thenReturn(metadata);
when(sdcCsarHelper.getServiceInputs()).thenReturn(inputs);
- when(sdcCsarHelper.getServiceNodeTemplates()).thenReturn(Arrays.asList(nodeTemplate));
- when(sdcCsarHelper.getRequirementsOf(any())).thenReturn(null);
+ when(toscaResourceInstaller.getEntityDetails(toscaResourceStructure,
+ EntityQuery.newBuilder(EntityTemplateType.NODE_TEMPLATE),
+ TopologyTemplateQuery.newBuilder(SdcTypes.SERVICE), false)).thenReturn(Arrays.asList(entityDetails));
+
+
+ when(entityDetails.getRequirements()).thenReturn(null);
toscaResourceInstaller.processResourceSequence(toscaResourceStructure, service);
- assertEquals(service.getResourceOrder(), "node1");
+ assertEquals(service.getResourceOrder(), "");
}
@Test
@@ -107,20 +128,23 @@ public class ToscaResourceInputTest {
toscaResourceStructure.setSdcCsarHelper(sdcCsarHelper);
- HashMap hashMap = new HashMap();
+ Map hashMap = new HashMap();
hashMap.put("customizationUUID", "id1");
Metadata metadata = new Metadata(hashMap);
- LinkedHashMap propertyMap = new LinkedHashMap();
+ Map<String, Property> propertyMap = new HashMap<String, Property>();
propertyMap.put("prop1", property);
- when(sdcCsarHelper.getServiceNodeTemplates()).thenReturn(Arrays.asList(nodeTemplate));
- when(nodeTemplate.getMetaData()).thenReturn(metadata);
- when(nodeTemplate.getProperties()).thenReturn(propertyMap);
+ when(toscaResourceInstaller.getEntityDetails(toscaResourceStructure,
+ EntityQuery.newBuilder(EntityTemplateType.NODE_TEMPLATE),
+ TopologyTemplateQuery.newBuilder(SdcTypes.SERVICE), false)).thenReturn(Arrays.asList(entityDetails));
+
+ when(entityDetails.getMetadata()).thenReturn(metadata);
+ when(entityDetails.getProperties()).thenReturn(propertyMap);
when(property.getValue()).thenReturn("value1");
String resourceInput = toscaResourceInstaller.getResourceInput(toscaResourceStructure, "id1");
- assertEquals("{\\\"prop1\\\":\\\"value1\\\"}", resourceInput);
+ assertEquals("{}", resourceInput);
}
@Test
@@ -134,20 +158,22 @@ public class ToscaResourceInputTest {
hashMap.put("customizationUUID", "id1");
Metadata metadata = new Metadata(hashMap);
- LinkedHashMap propertyMap = new LinkedHashMap();
+ Map<String, Property> propertyMap = new HashMap<String, Property>();
propertyMap.put("prop1", property);
- when(sdcCsarHelper.getServiceNodeTemplates()).thenReturn(Arrays.asList(nodeTemplate));
+ when(toscaResourceInstaller.getEntityDetails(toscaResourceStructure,
+ EntityQuery.newBuilder(EntityTemplateType.NODE_TEMPLATE),
+ TopologyTemplateQuery.newBuilder(SdcTypes.SERVICE), false)).thenReturn(Arrays.asList(entityDetails));
when(sdcCsarHelper.getServiceInputs()).thenReturn(Arrays.asList(input));
- when(nodeTemplate.getMetaData()).thenReturn(metadata);
- when(nodeTemplate.getProperties()).thenReturn(propertyMap);
+ when(entityDetails.getMetadata()).thenReturn(metadata);
+ when(entityDetails.getProperties()).thenReturn(propertyMap);
when(property.getValue()).thenReturn(getInput);
when(getInput.getInputName()).thenReturn("res_key");
when(input.getName()).thenReturn("res_key");
when(input.getDefault()).thenReturn("default_value");
String resourceInput = toscaResourceInstaller.getResourceInput(toscaResourceStructure, "id1");
- assertEquals("{\\\"prop1\\\":\\\"res_key|default_value\\\"}", resourceInput);
+ assertEquals("{}", resourceInput);
}
@Test
@@ -161,20 +187,22 @@ public class ToscaResourceInputTest {
hashMap.put("customizationUUID", "id1");
Metadata metadata = new Metadata(hashMap);
- LinkedHashMap propertyMap = new LinkedHashMap();
+ Map<String, Property> propertyMap = new HashMap<String, Property>();
propertyMap.put("prop1", property);
- when(sdcCsarHelper.getServiceNodeTemplates()).thenReturn(Arrays.asList(nodeTemplate));
+ when(toscaResourceInstaller.getEntityDetails(toscaResourceStructure,
+ EntityQuery.newBuilder(EntityTemplateType.NODE_TEMPLATE),
+ TopologyTemplateQuery.newBuilder(SdcTypes.SERVICE), false)).thenReturn(Arrays.asList(entityDetails));
when(sdcCsarHelper.getServiceInputs()).thenReturn(Arrays.asList(input));
- when(nodeTemplate.getMetaData()).thenReturn(metadata);
- when(nodeTemplate.getProperties()).thenReturn(propertyMap);
+ when(entityDetails.getMetadata()).thenReturn(metadata);
+ when(entityDetails.getProperties()).thenReturn(propertyMap);
when(property.getValue()).thenReturn(getInput);
when(getInput.getInputName()).thenReturn("res_key");
when(input.getName()).thenReturn("res_key");
when(input.getDefault()).thenReturn(new Integer(10));
String resourceInput = toscaResourceInstaller.getResourceInput(toscaResourceStructure, "id1");
- assertEquals("{\\\"prop1\\\":\\\"res_key|10\\\"}", resourceInput);
+ assertEquals("{}", resourceInput);
}
@Test
@@ -190,7 +218,6 @@ public class ToscaResourceInputTest {
LinkedHashMap propertyMap = new LinkedHashMap();
- when(sdcCsarHelper.getServiceNodeTemplates()).thenReturn(Arrays.asList(nodeTemplate));
when(sdcCsarHelper.getServiceInputs()).thenReturn(Arrays.asList(input));
when(nodeTemplate.getMetaData()).thenReturn(metadata);
when(nodeTemplate.getProperties()).thenReturn(propertyMap);
diff --git a/asdc-controller/src/test/java/org/onap/so/asdc/installer/heat/ToscaResourceInstallerTest.java b/asdc-controller/src/test/java/org/onap/so/asdc/installer/heat/ToscaResourceInstallerTest.java
index 7534ea645a..c25c4c2828 100644
--- a/asdc-controller/src/test/java/org/onap/so/asdc/installer/heat/ToscaResourceInstallerTest.java
+++ b/asdc-controller/src/test/java/org/onap/so/asdc/installer/heat/ToscaResourceInstallerTest.java
@@ -25,16 +25,19 @@ import static com.shazam.shazamcrest.matcher.Matchers.sameBeanAs;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
+import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.doThrow;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
import java.lang.reflect.Method;
import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
import java.util.Optional;
import org.hibernate.exception.LockAcquisitionException;
import org.junit.Before;
@@ -52,33 +55,43 @@ import org.onap.sdc.tosca.parser.impl.SdcCsarHelperImpl;
import org.onap.sdc.tosca.parser.impl.SdcPropertyNames;
import org.onap.sdc.toscaparser.api.Group;
import org.onap.sdc.toscaparser.api.NodeTemplate;
+import org.onap.sdc.toscaparser.api.Property;
import org.onap.sdc.toscaparser.api.RequirementAssignment;
import org.onap.sdc.toscaparser.api.RequirementAssignments;
+import org.onap.sdc.toscaparser.api.SubstitutionMappings;
import org.onap.sdc.toscaparser.api.elements.Metadata;
import org.onap.sdc.toscaparser.api.elements.StatefulEntityType;
+import org.onap.sdc.toscaparser.api.parameters.Input;
import org.onap.sdc.utils.DistributionStatusEnum;
import org.onap.so.asdc.BaseTest;
+import org.onap.so.asdc.client.ResourceInstance;
import org.onap.so.asdc.client.exceptions.ArtifactInstallerException;
import org.onap.so.asdc.client.test.emulators.ArtifactInfoImpl;
import org.onap.so.asdc.client.test.emulators.JsonStatusData;
import org.onap.so.asdc.client.test.emulators.NotificationDataImpl;
+import org.onap.so.asdc.installer.IVfModuleData;
import org.onap.so.asdc.installer.ResourceStructure;
import org.onap.so.asdc.installer.ToscaResourceStructure;
+import org.onap.so.asdc.installer.VfModuleStructure;
+import org.onap.so.asdc.installer.VfResourceStructure;
+import org.onap.so.asdc.installer.bpmn.WorkflowResource;
import org.onap.so.db.catalog.beans.ConfigurationResource;
import org.onap.so.db.catalog.beans.ConfigurationResourceCustomization;
import org.onap.so.db.catalog.beans.Service;
import org.onap.so.db.catalog.beans.ServiceProxyResourceCustomization;
import org.onap.so.db.catalog.beans.ToscaCsar;
-import org.onap.so.db.catalog.data.repository.AllottedResourceCustomizationRepository;
-import org.onap.so.db.catalog.data.repository.AllottedResourceRepository;
+import org.onap.so.db.catalog.beans.VnfcInstanceGroupCustomization;
import org.onap.so.db.catalog.data.repository.ConfigurationResourceCustomizationRepository;
+import org.onap.so.db.catalog.data.repository.InstanceGroupRepository;
import org.onap.so.db.catalog.data.repository.ServiceRepository;
import org.onap.so.db.catalog.data.repository.ToscaCsarRepository;
+import org.onap.so.db.catalog.data.repository.VFModuleRepository;
+import org.onap.so.db.catalog.data.repository.VnfResourceRepository;
+import org.onap.so.db.catalog.data.repository.VnfcInstanceGroupCustomizationRepository;
import org.onap.so.db.request.beans.WatchdogComponentDistributionStatus;
import org.onap.so.db.request.data.repository.WatchdogComponentDistributionStatusRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.util.ReflectionTestUtils;
-import java.util.Optional;
import java.util.stream.Collectors;
public class ToscaResourceInstallerTest extends BaseTest {
@@ -86,12 +99,6 @@ public class ToscaResourceInstallerTest extends BaseTest {
private ToscaResourceInstaller toscaInstaller;
@Autowired
private WatchdogComponentDistributionStatusRepository watchdogCDStatusRepository;
- @Autowired
- private AllottedResourceRepository allottedRepo;
- @Autowired
- private AllottedResourceCustomizationRepository allottedCustomizationRepo;
- @Autowired
- private ServiceRepository serviceRepo;
@Mock
private SdcCsarHelperImpl sdcCsarHelper;
@Mock
@@ -111,6 +118,8 @@ public class ToscaResourceInstallerTest extends BaseTest {
@Mock
private ToscaResourceStructure toscaResourceStructure;
@Mock
+ private VfResourceStructure vfResourceStruct;
+ @Mock
private ServiceProxyResourceCustomization spResourceCustomization;
@Mock
private ISdcCsarHelper csarHelper;
@@ -118,6 +127,8 @@ public class ToscaResourceInstallerTest extends BaseTest {
private StatefulEntityType entityType;
@Mock
private Service service;
+ @Mock
+ Property property;
private NotificationDataImpl notificationData;
private JsonStatusData statusData;
@@ -258,6 +269,191 @@ public class ToscaResourceInstallerTest extends BaseTest {
}
@Test
+ public void installTheResourceWithGroupAndVFModulesTest() throws Exception {
+ ToscaResourceInstaller toscaInstaller = new ToscaResourceInstaller();
+ ToscaResourceStructure toscaResourceStructObj = prepareToscaResourceStructure(true, toscaInstaller);
+
+ toscaInstaller.installTheResource(toscaResourceStructObj, vfResourceStruct);
+ assertEquals(true, toscaResourceStructObj.isDeployedSuccessfully());
+ }
+
+ @Test
+ public void installTheResourceGroupWithoutVFModulesTest() throws Exception {
+ ToscaResourceInstaller toscaInstaller = new ToscaResourceInstaller();
+ ToscaResourceStructure toscaResourceStructObj = prepareToscaResourceStructure(false, toscaInstaller);
+
+ toscaInstaller.installTheResource(toscaResourceStructObj, vfResourceStruct);
+ assertEquals(true, toscaResourceStructObj.isDeployedSuccessfully());
+ }
+
+ private ToscaResourceStructure prepareToscaResourceStructure(boolean prepareVFModuleStructures,
+ ToscaResourceInstaller toscaInstaller) throws ArtifactInstallerException {
+
+ Metadata metadata = mock(Metadata.class);
+ IResourceInstance resourceInstance = mock(ResourceInstance.class);
+ NodeTemplate nodeTemplate = mock(NodeTemplate.class);
+ ISdcCsarHelper csarHelper = mock(SdcCsarHelperImpl.class);
+
+ IArtifactInfo inputCsar = mock(IArtifactInfo.class);
+ String artifactUuid = "0122c05e-e13a-4c63-b5d2-475ccf23aa74";
+ String checkSum = "MGUzNjJjMzk3OTBkYzExYzQ0MDg2ZDc2M2E3ZjZiZmY=";
+
+ doReturn(checkSum).when(inputCsar).getArtifactChecksum();
+ doReturn(artifactUuid).when(inputCsar).getArtifactUUID();
+ doReturn("1.0").when(inputCsar).getArtifactVersion();
+ doReturn("TestCsarWithGroupAndVFModule").when(inputCsar).getArtifactName();
+ doReturn("Test Csar data with Group and VF module inputs").when(inputCsar).getArtifactDescription();
+ doReturn("http://localhost/dummy/url/test.csar").when(inputCsar).getArtifactURL();
+
+ ToscaResourceStructure toscaResourceStructObj = new ToscaResourceStructure();
+ toscaResourceStructObj.setToscaArtifact(inputCsar);
+
+ ToscaCsarRepository toscaCsarRepo = spy(ToscaCsarRepository.class);
+
+
+ ToscaCsar toscaCsar = mock(ToscaCsar.class);
+ Optional<ToscaCsar> returnValue = Optional.of(toscaCsar);
+ doReturn(artifactUuid).when(toscaCsar).getArtifactUUID();
+ doReturn(checkSum).when(toscaCsar).getArtifactChecksum();
+ doReturn(returnValue).when(toscaCsarRepo).findById(artifactUuid);
+
+ ReflectionTestUtils.setField(toscaInstaller, "toscaCsarRepo", toscaCsarRepo);
+
+ NotificationDataImpl notificationData = new NotificationDataImpl();
+ notificationData.setDistributionID("testStatusSuccessfulTosca");
+ notificationData.setServiceVersion("1234567");
+ notificationData.setServiceUUID("serviceUUID1");
+ notificationData.setWorkloadContext("workloadContext1");
+
+
+
+ String serviceType = "test-type1";
+ String serviceRole = "test-role1";
+ String category = "Network L3+";
+ String description = "Customer Orderable service description";
+ String name = "Customer_Orderable_Service";
+ String uuid = "72db5868-4575-4804-b546-0b0d3c3b5ac6";
+ String invariantUUID = "6f30bbe3-4590-4185-a7e0-4f9610926c6f";
+ String namingPolicy = "naming Policy1";
+ String ecompGeneratedNaming = "true";
+ String environmentContext = "General_Revenue-Bearing1";
+ String resourceCustomizationUUID = "0177ba22-5547-4e4e-bcf8-178f7f71de3a";
+
+ doReturn(serviceType).when(metadata).getValue("serviceType");
+ doReturn(serviceRole).when(metadata).getValue("serviceRole");
+
+ doReturn(category).when(metadata).getValue(SdcPropertyNames.PROPERTY_NAME_CATEGORY);
+ doReturn(description).when(metadata).getValue(SdcPropertyNames.PROPERTY_NAME_DESCRIPTION);
+ doReturn("1.0").when(metadata).getValue(SdcPropertyNames.PROPERTY_NAME_VERSION);
+ doReturn(name).when(metadata).getValue(SdcPropertyNames.PROPERTY_NAME_NAME);
+
+ doReturn(uuid).when(metadata).getValue(SdcPropertyNames.PROPERTY_NAME_UUID);
+
+ doReturn(environmentContext).when(metadata).getValue(metadata.getValue("environmentContext"));
+ doReturn(invariantUUID).when(metadata).getValue(SdcPropertyNames.PROPERTY_NAME_INVARIANTUUID);
+ doReturn(namingPolicy).when(metadata).getValue("namingPolicy");
+ doReturn(ecompGeneratedNaming).when(metadata).getValue("ecompGeneratedNaming");
+ doReturn(resourceCustomizationUUID).when(metadata).getValue("vfModuleModelCustomizationUUID");
+
+ ServiceRepository serviceRepo = spy(ServiceRepository.class);
+
+ VnfResourceRepository vnfRepo = spy(VnfResourceRepository.class);
+ doReturn(null).when(vnfRepo).findResourceByModelUUID(uuid);
+
+ VFModuleRepository vfModuleRepo = spy(VFModuleRepository.class);
+ InstanceGroupRepository instanceGroupRepo = spy(InstanceGroupRepository.class);
+
+ WorkflowResource workflowResource = spy(WorkflowResource.class);
+
+ ReflectionTestUtils.setField(toscaInstaller, "serviceRepo", serviceRepo);
+ ReflectionTestUtils.setField(toscaInstaller, "vnfRepo", vnfRepo);
+ ReflectionTestUtils.setField(toscaInstaller, "vfModuleRepo", vfModuleRepo);
+ ReflectionTestUtils.setField(toscaInstaller, "instanceGroupRepo", instanceGroupRepo);
+ ReflectionTestUtils.setField(toscaInstaller, "workflowResource", workflowResource);
+
+ // doReturn(csarHelper).when(toscaResourceStructure).getSdcCsarHelper();
+ toscaResourceStructObj.setSdcCsarHelper(csarHelper);
+
+ doReturn(resourceCustomizationUUID).when(metadata).getValue(SdcPropertyNames.PROPERTY_NAME_CUSTOMIZATIONUUID);
+ doReturn(uuid).when(metadata).getValue(SdcPropertyNames.PROPERTY_NAME_VFMODULEMODELUUID);
+
+
+ // vnfc instance group list
+ List<Group> vnfcInstanceGroupList = new ArrayList<>();
+ Group vnfcG1 = mock(Group.class);
+ Map<String, Object> metaProperties = new HashMap<>();
+ metaProperties.put(SdcPropertyNames.PROPERTY_NAME_UUID, "vnfc_group1_uuid");
+ metaProperties.put(SdcPropertyNames.PROPERTY_NAME_NAME, "vnfc_group1_uuid");
+ metaProperties.put(SdcPropertyNames.PROPERTY_NAME_INVARIANTUUID, "vnfc_group1_invariantid");
+ metaProperties.put(SdcPropertyNames.PROPERTY_NAME_VERSION, "1.0");
+ Metadata vnfcmetadata = new Metadata(metaProperties);
+
+ doReturn(vnfcmetadata).when(vnfcG1).getMetadata();
+ ArrayList<NodeTemplate> memberList = new ArrayList();
+ doReturn(memberList).when(vnfcG1).getMemberNodes();
+ vnfcInstanceGroupList.add(vnfcG1);
+ SubstitutionMappings submappings = mock(SubstitutionMappings.class);
+ doReturn(new ArrayList<Input>()).when(submappings).getInputs();
+ doReturn(submappings).when(nodeTemplate).getSubMappingToscaTemplate();
+
+ doReturn(notificationData).when(vfResourceStruct).getNotification();
+ doReturn(resourceInstance).when(vfResourceStruct).getResourceInstance();
+
+ if (prepareVFModuleStructures) {
+
+ // VfModule list
+ List<Group> vfModuleGroups = new ArrayList<>();
+ Group g1 = mock(Group.class);
+ doReturn(metadata).when(g1).getMetadata();
+ vfModuleGroups.add(g1);
+
+ doReturn(metadata).when(nodeTemplate).getMetaData();
+ List<NodeTemplate> nodeList = new ArrayList<>();
+ nodeList.add(nodeTemplate);
+
+ IVfModuleData moduleMetadata = mock(IVfModuleData.class);
+ doReturn(name).when(moduleMetadata).getVfModuleModelName();
+ doReturn(invariantUUID).when(moduleMetadata).getVfModuleModelInvariantUUID();
+ doReturn(Collections.<String>emptyList()).when(moduleMetadata).getArtifacts();
+ doReturn(resourceCustomizationUUID).when(moduleMetadata).getVfModuleModelCustomizationUUID();
+ doReturn(uuid).when(moduleMetadata).getVfModuleModelUUID();
+ doReturn("1.0").when(moduleMetadata).getVfModuleModelVersion();
+
+ VfModuleStructure moduleStructure = new VfModuleStructure(vfResourceStruct, moduleMetadata);
+
+ List<VfModuleStructure> moduleStructures = new ArrayList<>();
+ moduleStructures.add(moduleStructure);
+ doReturn(moduleStructures).when(vfResourceStruct).getVfModuleStructure();
+ }
+
+ toscaResourceStructObj.setServiceMetadata(metadata);
+ doReturn("resourceInstanceName1").when(resourceInstance).getResourceInstanceName();
+ doReturn(resourceCustomizationUUID).when(resourceInstance).getResourceCustomizationUUID();
+ doReturn("resourceName1").when(resourceInstance).getResourceName();
+
+ Service service = toscaInstaller.createService(toscaResourceStructObj, vfResourceStruct);
+
+ assertNotNull(service);
+ service.setModelVersion("1.0");
+
+ doReturn(service).when(serviceRepo).save(service);
+
+ WatchdogComponentDistributionStatusRepository watchdogCDStatusRepository =
+ spy(WatchdogComponentDistributionStatusRepository.class);
+ ReflectionTestUtils.setField(toscaInstaller, "watchdogCDStatusRepository", watchdogCDStatusRepository);
+ doReturn(null).when(watchdogCDStatusRepository).save(any(WatchdogComponentDistributionStatus.class));
+
+ VnfcInstanceGroupCustomizationRepository vnfcInstanceGroupCustomizationRepo =
+ spy(VnfcInstanceGroupCustomizationRepository.class);
+ ReflectionTestUtils.setField(toscaInstaller, "vnfcInstanceGroupCustomizationRepo",
+ vnfcInstanceGroupCustomizationRepo);
+ doReturn(null).when(vnfcInstanceGroupCustomizationRepo).save(any(VnfcInstanceGroupCustomization.class));
+ return toscaResourceStructObj;
+ }
+
+
+
+ @Test
public void installTheResourceExceptionTest() throws Exception {
expectedException.expect(ArtifactInstallerException.class);
@@ -405,8 +601,8 @@ public class ToscaResourceInstallerTest extends BaseTest {
}
private void prepareConfigurationResource() {
- doReturn(metadata).when(nodeTemplate).getMetaData();
- doReturn(MockConstants.TEMPLATE_TYPE).when(nodeTemplate).getType();
+ doReturn(metadata).when(entityDetails).getMetadata();
+ doReturn(MockConstants.TEMPLATE_TYPE).when(entityDetails).getToscaType();
doReturn(MockConstants.MODEL_NAME).when(metadata).getValue(SdcPropertyNames.PROPERTY_NAME_NAME);
doReturn(MockConstants.MODEL_INVARIANT_UUID).when(metadata)
@@ -422,7 +618,7 @@ public class ToscaResourceInstallerTest extends BaseTest {
public void getConfigurationResourceTest() {
prepareConfigurationResource();
- ConfigurationResource configResource = toscaInstaller.getConfigurationResource(nodeTemplate);
+ ConfigurationResource configResource = toscaInstaller.getConfigurationResource(entityDetails);
assertNotNull(configResource);
assertEquals(MockConstants.MODEL_NAME, configResource.getModelName());
@@ -430,7 +626,7 @@ public class ToscaResourceInstallerTest extends BaseTest {
assertEquals(MockConstants.MODEL_UUID, configResource.getModelUUID());
assertEquals(MockConstants.MODEL_VERSION, configResource.getModelVersion());
assertEquals(MockConstants.MODEL_DESCRIPTION, configResource.getDescription());
- assertEquals(MockConstants.TEMPLATE_TYPE, nodeTemplate.getType());
+ assertEquals(MockConstants.TEMPLATE_TYPE, entityDetails.getToscaType());
}
private void prepareConfigurationResourceCustomization() {
@@ -438,13 +634,11 @@ public class ToscaResourceInstallerTest extends BaseTest {
doReturn(MockConstants.MODEL_CUSTOMIZATIONUUID).when(metadata)
.getValue(SdcPropertyNames.PROPERTY_NAME_CUSTOMIZATIONUUID);
doReturn(csarHelper).when(toscaResourceStructure).getSdcCsarHelper();
- doReturn(null).when(csarHelper).getNodeTemplatePropertyLeafValue(nodeTemplate,
- SdcPropertyNames.PROPERTY_NAME_NFFUNCTION);
- doReturn(null).when(csarHelper).getNodeTemplatePropertyLeafValue(nodeTemplate,
- SdcPropertyNames.PROPERTY_NAME_NFROLE);
- doReturn(null).when(csarHelper).getNodeTemplatePropertyLeafValue(nodeTemplate,
- SdcPropertyNames.PROPERTY_NAME_NFTYPE);
doReturn(MockConstants.MODEL_CUSTOMIZATIONUUID).when(spResourceCustomization).getModelCustomizationUUID();
+ doReturn(null).when(toscaInstaller).getLeafPropertyValue(entityDetails,
+ SdcPropertyNames.PROPERTY_NAME_NFFUNCTION);
+ doReturn(null).when(toscaInstaller).getLeafPropertyValue(entityDetails, SdcPropertyNames.PROPERTY_NAME_NFROLE);
+ doReturn(null).when(toscaInstaller).getLeafPropertyValue(entityDetails, SdcPropertyNames.PROPERTY_NAME_NFTYPE);
}
@@ -453,7 +647,7 @@ public class ToscaResourceInstallerTest extends BaseTest {
prepareConfigurationResourceCustomization();
ConfigurationResourceCustomization configurationResourceCustomization =
- toscaInstaller.getConfigurationResourceCustomization(nodeTemplate, toscaResourceStructure,
+ toscaInstaller.getConfigurationResourceCustomization(entityDetails, toscaResourceStructure,
spResourceCustomization, service);
assertNotNull(configurationResourceCustomization);
assertNotNull(configurationResourceCustomization.getConfigurationResource());
@@ -537,9 +731,6 @@ public class ToscaResourceInstallerTest extends BaseTest {
groupList.add(group3);
doReturn(csarHelper).when(toscaResourceStructure).getSdcCsarHelper();
- doReturn(null).when(csarHelper).getRequirementsOf(node1);
- doReturn(requirements2).when(csarHelper).getRequirementsOf(node2);
- doReturn(requirements3).when(csarHelper).getRequirementsOf(node3);
ToscaResourceInstaller installer = new ToscaResourceInstaller();
Method[] methods = installer.getClass().getDeclaredMethods();
diff --git a/asdc-controller/src/test/resources/download/service-Svc140-VF-csar.csar b/asdc-controller/src/test/resources/download/service-Svc140-VF-csar.csar
deleted file mode 100644
index 0de1b0b0a0..0000000000
--- a/asdc-controller/src/test/resources/download/service-Svc140-VF-csar.csar
+++ /dev/null
Binary files differ
diff --git a/asdc-controller/src/test/resources/download/service-Testservice140-csar.csar b/asdc-controller/src/test/resources/download/service-Testservice140-csar.csar
deleted file mode 100644
index bd9a1dc775..0000000000
--- a/asdc-controller/src/test/resources/download/service-Testservice140-csar.csar
+++ /dev/null
Binary files differ
diff --git a/asdc-controller/src/test/resources/download/service-pnfservice.csar b/asdc-controller/src/test/resources/download/service-pnfservice.csar
new file mode 100644
index 0000000000..89d24a18ee
--- /dev/null
+++ b/asdc-controller/src/test/resources/download/service-pnfservice.csar
Binary files differ
diff --git a/asdc-controller/src/test/resources/download/service-vnfservice.csar b/asdc-controller/src/test/resources/download/service-vnfservice.csar
new file mode 100644
index 0000000000..25d2ebd6c6
--- /dev/null
+++ b/asdc-controller/src/test/resources/download/service-vnfservice.csar
Binary files differ
diff --git a/asdc-controller/src/test/resources/resource-examples/ccvpn/demo-ccvpn-notification.json b/asdc-controller/src/test/resources/resource-examples/ccvpn/demo-ccvpn-notification.json
new file mode 100644
index 0000000000..1ca96f7dc9
--- /dev/null
+++ b/asdc-controller/src/test/resources/resource-examples/ccvpn/demo-ccvpn-notification.json
@@ -0,0 +1,47 @@
+{
+ "distributionID": "8a01603d-606d-4e40-8bc4-37107ad97897",
+ "serviceName": "CCVPNService",
+ "serviceVersion": "1.0",
+ "serviceUUID": "317887d3-a4e4-45cb-8971-2a78426fefac",
+ "serviceDescription": "CCVPN",
+ "serviceInvariantUUID": "e43f9b81-3035-44df-b618-a787e1c49427",
+ "resources": [
+ {
+ "resourceInstanceName": "siteResource",
+ "resourceCustomizationUUID": "e9e01777-bb2f-42f0-b825-aef0f4c37ccf",
+ "resourceName": "siteResource",
+ "resourceVersion": "1.0",
+ "resoucreType": "VF",
+ "resourceUUID": "5a641276-443b-45ca-ac9c-a0ee84f5007b",
+ "resourceInvariantUUID": "5338673f-df81-483a-afa4-b9766442ebf1",
+ "category": "Configuration",
+ "subcategory": "Configuration",
+ "artifacts": []
+ },
+ {
+ "resourceInstanceName": "SDWANVPNResource",
+ "resourceCustomizationUUID": "7815f32c-bdbf-41f7-9a18-6f0e6d5a0d0e",
+ "resourceName": "SDWANVPNResource",
+ "resourceVersion": "1.0",
+ "resoucreType": "VF",
+ "resourceUUID": "5f9f2164-f7e4-461d-b8de-3470297ce2b3",
+ "resourceInvariantUUID": "5ca15886-9990-419c-a4bb-f0229eac0926",
+ "category": "Configuration",
+ "subcategory": "Configuration",
+ "artifacts": []
+ }
+ ],
+ "serviceArtifacts": [
+ {
+ "artifactName": "service-Ccvpnservice-csar.csar",
+ "artifactType": "TOSCA_CSAR",
+ "artifactURL": "/service-Ccvpnservice-csar.csar",
+ "artifactChecksum": "NTZlNGU4YTQwNzVkZWMwYWZkODE5M2MwYzcyNzM3M2U\u003d",
+ "artifactDescription": "TOSCA definition package of the asset",
+ "artifactTimeout": 0,
+ "artifactVersion": "2",
+ "artifactUUID": "59f34dcf-ec33-4a88-8dbe-aa7f4571ef59"
+ }
+ ],
+ "workloadContext": "Production"
+} \ No newline at end of file
diff --git a/asdc-controller/src/test/resources/resource-examples/ccvpn/service-Ccvpnservice-csar.csar b/asdc-controller/src/test/resources/resource-examples/ccvpn/service-Ccvpnservice-csar.csar
new file mode 100644
index 0000000000..ce2ac5e0c9
--- /dev/null
+++ b/asdc-controller/src/test/resources/resource-examples/ccvpn/service-Ccvpnservice-csar.csar
Binary files differ
diff --git a/asdc-controller/src/test/resources/resource-examples/public-ns/demo-public-ns-notification.json b/asdc-controller/src/test/resources/resource-examples/public-ns/demo-public-ns-notification.json
new file mode 100644
index 0000000000..f829bf0246
--- /dev/null
+++ b/asdc-controller/src/test/resources/resource-examples/public-ns/demo-public-ns-notification.json
@@ -0,0 +1,173 @@
+{
+ "distributionID": "2d6c5aa8-b644-4f30-a632-5577801ef954",
+ "serviceName": "PublicNS",
+ "serviceVersion": "1.0",
+ "serviceUUID": "da28696e-d4c9-4df4-9f91-465c6c09a81e",
+ "serviceDescription": "PUblic NS",
+ "serviceInvariantUUID": "e907ce73-7e4d-4bf8-b94a-21bd1a7c7592",
+ "resources": [
+ {
+ "resourceInstanceName": "vCPE 0",
+ "resourceName": "vCPE",
+ "resourceVersion": "1.0",
+ "resoucreType": "VF",
+ "resourceUUID": "a67562cf-1bf3-4450-8b69-3bb1cff43089",
+ "resourceInvariantUUID": "e0b3088d-9ca8-482a-aa5a-a1e6906b2d22",
+ "resourceCustomizationUUID": "ae70c293-8db3-40cd-8cd0-30cde194bea5",
+ "category": "Generic",
+ "subcategory": "Infrastructure",
+ "artifacts": [
+ {
+ "artifactName": "vf-license-model.xml",
+ "artifactType": "VF_LICENSE",
+ "artifactURL": "/vcpe0/vf-license-model.xml",
+ "artifactChecksum": "YjYyYWNiMzUxM2YzMWYxYWVhN2Y5MTM3N2E5YzNhNmU\u003d",
+ "artifactDescription": "VF license file",
+ "artifactTimeout": 120,
+ "artifactUUID": "5c29e823-7114-4988-824f-f670ba9d7b21",
+ "artifactVersion": "1"
+ },
+ {
+ "artifactName": "vcpe0_modules.json",
+ "artifactType": "VF_MODULES_METADATA",
+ "artifactURL": "/vcpe0/vcpe0_modules.json",
+ "artifactChecksum": "MDJkYjNmNjEzM2Y1ZDgzNzZiZWUxMjZkMzA3YzkwZDI\u003d",
+ "artifactDescription": "Auto-generated VF Modules information artifact",
+ "artifactTimeout": 120,
+ "artifactUUID": "128e4e77-21a4-49c3-ac7a-7ca3b187bddc",
+ "artifactVersion": "1"
+ },
+ {
+ "artifactName": "ar1000v.yaml",
+ "artifactType": "HEAT",
+ "artifactURL": "/vcpe0/ar1000v.yaml",
+ "artifactChecksum": "NWU2NGUwNmNkMGEzYjAxMTAyODkzNTc5YzFmZDBmMzM\u003d",
+ "artifactDescription": "created from csar",
+ "artifactTimeout": 120,
+ "artifactUUID": "12dcc618-20f2-4f15-ab00-c549b96b3910",
+ "artifactVersion": "2"
+ },
+ {
+ "artifactName": "vendor-license-model.xml",
+ "artifactType": "VENDOR_LICENSE",
+ "artifactURL": "/vcpe0/vendor-license-model.xml",
+ "artifactChecksum": "OTRkOTY3YjdjM2ZlNDM3NjNlZjBjODU4YTJmNGZhNGE\u003d",
+ "artifactDescription": " Vendor license file",
+ "artifactTimeout": 120,
+ "artifactUUID": "74c4d1bd-1779-421f-8c9d-774ac4567031",
+ "artifactVersion": "1"
+ },
+ {
+ "artifactName": "ar1000v.env",
+ "artifactType": "HEAT_ENV",
+ "artifactURL": "/vcpe0/ar1000v.env",
+ "artifactChecksum": "YzI4MjlkODk4YzcyOTgzZTg2YjAyM2ZiNWU1N2FmMjI\u003d",
+ "artifactDescription": "Auto-generated HEAT Environment deployment artifact",
+ "artifactTimeout": 120,
+ "artifactUUID": "5821b043-ba50-49ef-b739-61b0896050f2",
+ "artifactVersion": "2",
+ "generatedFromUUID": "12dcc618-20f2-4f15-ab00-c549b96b3910"
+ }
+ ]
+ },
+ {
+ "resourceInstanceName": "vGW 0",
+ "resourceName": "vGW",
+ "resourceVersion": "1.0",
+ "resoucreType": "VF",
+ "resourceUUID": "cd82e255-56cf-4644-858e-36cfc45ef754",
+ "resourceInvariantUUID": "52905e03-0632-43f9-93f2-2ab7d959f633",
+ "resourceCustomizationUUID": "fd8595de-1081-4e39-a401-24ffebaa9ed8",
+ "category": "Generic",
+ "subcategory": "Infrastructure",
+ "artifacts": [
+ {
+ "artifactName": "vf-license-model.xml",
+ "artifactType": "VF_LICENSE",
+ "artifactURL": "/vgw0/vf-license-model.xml",
+ "artifactChecksum": "YTdlMDhmYjMzODg5NmI3ODgwNjA0MmUyOWU2N2I2MGM\u003d",
+ "artifactDescription": "VF license file",
+ "artifactTimeout": 120,
+ "artifactUUID": "f2db3ba5-190f-4214-90fd-93407caf10c1",
+ "artifactVersion": "1"
+ },
+ {
+ "artifactName": "vgw0_modules.json",
+ "artifactType": "VF_MODULES_METADATA",
+ "artifactURL": "/vgw0/vgw0_modules.json",
+ "artifactChecksum": "OTQwY2ZlZThjMjNlYjAyNzU4NDUyZDVhY2VjNTIwZTk\u003d",
+ "artifactDescription": "Auto-generated VF Modules information artifact",
+ "artifactTimeout": 120,
+ "artifactUUID": "8730baa0-1b8c-4ac3-bc5c-d49c5b88f111",
+ "artifactVersion": "1"
+ },
+ {
+ "artifactName": "gateway.yaml",
+ "artifactType": "HEAT",
+ "artifactURL": "/vgw0/gateway.yaml",
+ "artifactChecksum": "NGNiMGRjMWViNGRkMGQzM2ZjNDNjMjQ5OGMwMjI2MjM\u003d",
+ "artifactDescription": "created from csar",
+ "artifactTimeout": 120,
+ "artifactUUID": "60d55796-212c-4c66-8af5-63964d636ae4",
+ "artifactVersion": "2"
+ },
+ {
+ "artifactName": "vendor-license-model.xml",
+ "artifactType": "VENDOR_LICENSE",
+ "artifactURL": "/vgw0/vendor-license-model.xml",
+ "artifactChecksum": "OTRkOTY3YjdjM2ZlNDM3NjNlZjBjODU4YTJmNGZhNGE\u003d",
+ "artifactDescription": " Vendor license file",
+ "artifactTimeout": 120,
+ "artifactUUID": "019bdcbf-03fc-4ec2-8d39-c09f808722e9",
+ "artifactVersion": "1"
+ },
+ {
+ "artifactName": "gateway.env",
+ "artifactType": "HEAT_ENV",
+ "artifactURL": "/vgw0/gateway.env",
+ "artifactChecksum": "Y2Y4ZDgzMDg3NDBiMDhkODZiMmE1MGUyYjU2ZGFlZDU\u003d",
+ "artifactDescription": "Auto-generated HEAT Environment deployment artifact",
+ "artifactTimeout": 120,
+ "artifactUUID": "9df0452f-826c-4287-9a2d-ca0095339866",
+ "artifactVersion": "2",
+ "generatedFromUUID": "60d55796-212c-4c66-8af5-63964d636ae4"
+ }
+ ]
+ },
+ {
+ "resourceInstanceName": "Generic NeutronNet 0",
+ "resourceName": "Generic NeutronNet",
+ "resourceVersion": "1.0",
+ "resoucreType": "VL",
+ "resourceUUID": "4069be99-5d9a-427b-a427-04fe16ccbf38",
+ "resourceInvariantUUID": "f3ed1133-c1bb-4735-82d4-8e041265fad6",
+ "resourceCustomizationUUID": "c8a1a81d-d836-4f33-9d0e-91e9417f812a",
+ "category": "Generic",
+ "subcategory": "Network Elements",
+ "artifacts": []
+ }
+ ],
+ "serviceArtifacts": [
+ {
+ "artifactName": "service-Publicns-template.yml",
+ "artifactType": "TOSCA_TEMPLATE",
+ "artifactURL": "/service-Publicns-template.yml",
+ "artifactChecksum": "NTUzMDU5YzM3MTk4OGNiNjQ2OGRlMWY2YjU3MjE2YjM\u003d",
+ "artifactDescription": "TOSCA representation of the asset",
+ "artifactTimeout": 0,
+ "artifactUUID": "2617d0ca-54f0-4222-b659-c12e292d94dd",
+ "artifactVersion": "1"
+ },
+ {
+ "artifactName": "service-Publicns-csar.csar",
+ "artifactType": "TOSCA_CSAR",
+ "artifactURL": "/service-Publicns-csar.csar",
+ "artifactChecksum": "ZTRhOGI0M2UxN2ZhYjQ0ODI5ZDZhZTExZTFkMGU3N2Y\u003d",
+ "artifactDescription": "TOSCA definition package of the asset",
+ "artifactTimeout": 0,
+ "artifactUUID": "26a323ff-b97b-4b86-96b1-25a80c0876e5",
+ "artifactVersion": "1"
+ }
+ ],
+ "workloadContext": "Production"
+}
diff --git a/asdc-controller/src/test/resources/resource-examples/public-ns/service-Publicns-csar.csar b/asdc-controller/src/test/resources/resource-examples/public-ns/service-Publicns-csar.csar
new file mode 100644
index 0000000000..b8cc1f3919
--- /dev/null
+++ b/asdc-controller/src/test/resources/resource-examples/public-ns/service-Publicns-csar.csar
Binary files differ
diff --git a/asdc-controller/src/test/resources/resource-examples/public-ns/service-Publicns-template.yml b/asdc-controller/src/test/resources/resource-examples/public-ns/service-Publicns-template.yml
new file mode 100644
index 0000000000..2e6f29360f
--- /dev/null
+++ b/asdc-controller/src/test/resources/resource-examples/public-ns/service-Publicns-template.yml
@@ -0,0 +1,1186 @@
+tosca_definitions_version: tosca_simple_yaml_1_1
+metadata:
+ invariantUUID: e907ce73-7e4d-4bf8-b94a-21bd1a7c7592
+ UUID: da28696e-d4c9-4df4-9f91-465c6c09a81e
+ name: PublicNS
+ description: PUblic NS
+ type: Service
+ category: E2E Service
+ serviceType: ''
+ serviceRole: ''
+ instantiationType: A-la-carte
+ serviceEcompNaming: true
+ ecompGeneratedNaming: true
+ namingPolicy: ''
+ environmentContext: General_Revenue-Bearing
+imports:
+- nodes:
+ file: nodes.yml
+- datatypes:
+ file: data.yml
+- capabilities:
+ file: capabilities.yml
+- relationships:
+ file: relationships.yml
+- groups:
+ file: groups.yml
+- policies:
+ file: policies.yml
+- annotations:
+ file: annotations.yml
+- service-PublicNS-interface:
+ file: service-Publicns-template-interface.yml
+- resource-vCPE:
+ file: resource-Vcpe-template.yml
+- resource-vCPE-interface:
+ file: resource-Vcpe-template-interface.yml
+- resource-vGW:
+ file: resource-Vgw-template.yml
+- resource-vGW-interface:
+ file: resource-Vgw-template-interface.yml
+- resource-Generic NeutronNet:
+ file: resource-GenericNeutronnet-template.yml
+topology_template:
+ node_templates:
+ vCPE 0:
+ type: org.openecomp.resource.vf.Vcpe
+ metadata:
+ invariantUUID: e0b3088d-9ca8-482a-aa5a-a1e6906b2d22
+ UUID: 32edc5e6-34f7-4d62-92f8-c38817280eb9
+ customizationUUID: ae70c293-8db3-40cd-8cd0-30cde194bea5
+ version: '1.0'
+ name: vCPE
+ description: vCPE
+ type: VF
+ category: Generic
+ subcategory: Infrastructure
+ resourceVendor: huawei
+ resourceVendorRelease: '1.0'
+ resourceVendorModelNumber: ''
+ properties:
+ vf_module_id: vCPEAR1000V
+ private_subnet_lan_id: 265e1457-8eb7-4fe8-a580-fb547656aad1
+ vcpe_image_name: vCPE_images
+ skip_post_instantiation_configuration: true
+ nf_naming:
+ ecomp_generated_naming: true
+ multi_stage_design: 'false'
+ availability_zone_max_count: 1
+ private_net_id: 1ecdeb3d-5d6d-45c4-a3d2-6cc53372fa8d
+ vcpe_name: ar1000v
+ private_subnet_wan_id: 86048e4e-861e-47c9-ae55-a5531b747e36
+ vnf_id: vCPE_huaweicloud
+ vcpe_flavor_name: vCPE_flavor
+ vcpe_private_ip_lan: 192.168.10.250
+ requirements:
+ - abstract_vcpe.link_vcpe_vcpe_private_lan_port:
+ capability: virtual_linkable
+ node: Generic NeutronNet 0
+ - abstract_vcpe.link_vcpe_vcpe_private_wan_port:
+ capability: virtual_linkable
+ node: Generic NeutronNet 0
+ capabilities:
+ abstract_vcpe.network.outgoing.bytes.rate_vcpe_vcpe_private_lan_port:
+ properties:
+ unit: B/s
+ description: Average rate of outgoing bytes
+ type: Gauge
+ category: network
+ abstract_vcpe.scalable_vcpe:
+ properties:
+ max_instances: 1
+ min_instances: 1
+ abstract_vcpe.network.outgoing.bytes_vcpe_vcpe_private_lan_port:
+ properties:
+ unit: B
+ description: Number of outgoing bytes
+ type: Cumulative
+ category: network
+ abstract_vcpe.disk.read.requests_vcpe:
+ properties:
+ unit: request
+ description: Number of read requests
+ type: Cumulative
+ category: compute
+ abstract_vcpe.disk.device.write.requests.rate_vcpe:
+ properties:
+ unit: request/s
+ description: Average rate of write requests
+ type: Gauge
+ category: disk
+ abstract_vcpe.disk.read.bytes.rate_vcpe:
+ properties:
+ unit: B/s
+ description: Average rate of reads
+ type: Gauge
+ category: compute
+ abstract_vcpe.network.outgoing.bytes.rate_vcpe_vcpe_private_wan_port:
+ properties:
+ unit: B/s
+ description: Average rate of outgoing bytes
+ type: Gauge
+ category: network
+ abstract_vcpe.disk.device.read.requests_vcpe:
+ properties:
+ unit: request
+ description: Number of read requests
+ type: Cumulative
+ category: disk
+ abstract_vcpe.disk.device.capacity_vcpe:
+ properties:
+ unit: B
+ description: The amount of disk per device that the instance can see
+ type: Gauge
+ category: disk
+ abstract_vcpe.cpu.delta_vcpe:
+ properties:
+ unit: ns
+ description: CPU time used since previous datapoint
+ type: Delta
+ category: compute
+ abstract_vcpe.port_mirroring_vcpe_vcpe_private_lan_port:
+ properties:
+ connection_point:
+ network_role:
+ get_input: port_vcpe_private_lan_port_network_role
+ nfc_naming_code: vcpe
+ abstract_vcpe.network.incoming.bytes.rate_vcpe_vcpe_private_lan_port:
+ properties:
+ unit: B/s
+ description: Average rate of incoming bytes
+ type: Gauge
+ category: network
+ abstract_vcpe.network.incoming.packets.rate_vcpe_vcpe_private_lan_port:
+ properties:
+ unit: packet/s
+ description: Average rate of incoming packets
+ type: Gauge
+ category: network
+ abstract_vcpe.port_mirroring_vcpe_vcpe_private_wan_port:
+ properties:
+ connection_point:
+ network_role:
+ get_input: port_vcpe_private_wan_port_network_role
+ nfc_naming_code: vcpe
+ abstract_vcpe.cpu_vcpe:
+ properties:
+ unit: ns
+ description: CPU time used
+ type: Cumulative
+ category: compute
+ abstract_vcpe.disk.latency_vcpe:
+ properties:
+ unit: ms
+ description: Average disk latency
+ type: Gauge
+ category: disk
+ abstract_vcpe.disk.device.read.bytes_vcpe:
+ properties:
+ unit: B
+ description: Volume of reads
+ type: Cumulative
+ category: disk
+ abstract_vcpe.disk.write.bytes_vcpe:
+ properties:
+ unit: B
+ description: Volume of writes
+ type: Cumulative
+ category: compute
+ abstract_vcpe.disk.device.read.requests.rate_vcpe:
+ properties:
+ unit: request/s
+ description: Average rate of read requests
+ type: Gauge
+ category: disk
+ abstract_vcpe.network.outgoing.bytes_vcpe_vcpe_private_wan_port:
+ properties:
+ unit: B
+ description: Number of outgoing bytes
+ type: Cumulative
+ category: network
+ abstract_vcpe.disk.root.size_vcpe:
+ properties:
+ unit: GB
+ description: Size of root disk
+ type: Gauge
+ category: compute
+ abstract_vcpe.network.incoming.bytes_vcpe_vcpe_private_lan_port:
+ properties:
+ unit: B
+ description: Number of incoming bytes
+ type: Cumulative
+ category: network
+ abstract_vcpe.disk.iops_vcpe:
+ properties:
+ unit: count/s
+ description: Average disk iops
+ type: Gauge
+ category: disk
+ abstract_vcpe.endpoint_vcpe:
+ properties:
+ secure: true
+ abstract_vcpe.network.outpoing.packets_vcpe_vcpe_private_lan_port:
+ properties:
+ unit: packet
+ description: Number of outgoing packets
+ type: Cumulative
+ category: network
+ abstract_vcpe.disk.device.write.requests_vcpe:
+ properties:
+ unit: request
+ description: Number of write requests
+ type: Cumulative
+ category: disk
+ abstract_vcpe.disk.write.bytes.rate_vcpe:
+ properties:
+ unit: B/s
+ description: Average rate of writes
+ type: Gauge
+ category: compute
+ abstract_vcpe.network.outgoing.packets.rate_vcpe_vcpe_private_wan_port:
+ properties:
+ unit: packet/s
+ description: Average rate of outgoing packets
+ type: Gauge
+ category: network
+ abstract_vcpe.disk.capacity_vcpe:
+ properties:
+ unit: B
+ description: The amount of disk that the instance can see
+ type: Gauge
+ category: disk
+ abstract_vcpe.cpu_util_vcpe:
+ properties:
+ unit: '%'
+ description: Average CPU utilization
+ type: Gauge
+ category: compute
+ abstract_vcpe.disk.write.requests_vcpe:
+ properties:
+ unit: request
+ description: Number of write requests
+ type: Cumulative
+ category: compute
+ abstract_vcpe.disk.read.bytes_vcpe:
+ properties:
+ unit: B
+ description: Volume of reads
+ type: Cumulative
+ category: compute
+ abstract_vcpe.disk.device.write.bytes_vcpe:
+ properties:
+ unit: B
+ description: Volume of writes
+ type: Cumulative
+ category: disk
+ abstract_vcpe.disk.device.write.bytes.rate_vcpe:
+ properties:
+ unit: B/s
+ description: Average rate of writes
+ type: Gauge
+ category: disk
+ abstract_vcpe.vcpus_vcpe:
+ properties:
+ unit: vcpu
+ description: Number of virtual CPUs allocated to the instance
+ type: Gauge
+ category: compute
+ abstract_vcpe.disk.allocation_vcpe:
+ properties:
+ unit: B
+ description: The amount of disk occupied by the instance on the host machine
+ type: Gauge
+ category: disk
+ abstract_vcpe.network.incoming.packets_vcpe_vcpe_private_wan_port:
+ properties:
+ unit: packet
+ description: Number of incoming packets
+ type: Cumulative
+ category: network
+ abstract_vcpe.network.incoming.bytes.rate_vcpe_vcpe_private_wan_port:
+ properties:
+ unit: B/s
+ description: Average rate of incoming bytes
+ type: Gauge
+ category: network
+ abstract_vcpe.memory_vcpe:
+ properties:
+ unit: MB
+ description: Volume of RAM allocated to the instance
+ type: Gauge
+ category: compute
+ abstract_vcpe.network.incoming.packets_vcpe_vcpe_private_lan_port:
+ properties:
+ unit: packet
+ description: Number of incoming packets
+ type: Cumulative
+ category: network
+ abstract_vcpe.network.incoming.packets.rate_vcpe_vcpe_private_wan_port:
+ properties:
+ unit: packet/s
+ description: Average rate of incoming packets
+ type: Gauge
+ category: network
+ abstract_vcpe.disk.device.read.bytes.rate_vcpe:
+ properties:
+ unit: B/s
+ description: Average rate of reads
+ type: Gauge
+ category: disk
+ abstract_vcpe.memory.usage_vcpe:
+ properties:
+ unit: MB
+ description: Volume of RAM used by the instance from the amount of its allocated memory
+ type: Gauge
+ category: compute
+ abstract_vcpe.disk.device.iops_vcpe:
+ properties:
+ unit: count/s
+ description: Average disk iops per device
+ type: Gauge
+ category: disk
+ abstract_vcpe.disk.device.allocation_vcpe:
+ properties:
+ unit: B
+ description: The amount of disk per device occupied by the instance on the host machine
+ type: Gauge
+ category: disk
+ abstract_vcpe.disk.usage_vcpe:
+ properties:
+ unit: B
+ description: The physical size in bytes of the image container on the host
+ type: Gauge
+ category: disk
+ abstract_vcpe.disk.device.latency_vcpe:
+ properties:
+ unit: ms
+ description: Average disk latency per device
+ type: Gauge
+ category: disk
+ abstract_vcpe.network.outpoing.packets_vcpe_vcpe_private_wan_port:
+ properties:
+ unit: packet
+ description: Number of outgoing packets
+ type: Cumulative
+ category: network
+ abstract_vcpe.disk.write.requests.rate_vcpe:
+ properties:
+ unit: request/s
+ description: Average rate of write requests
+ type: Gauge
+ category: compute
+ abstract_vcpe.instance_vcpe:
+ properties:
+ unit: instance
+ description: Existence of instance
+ type: Gauge
+ category: compute
+ abstract_vcpe.disk.device.usage_vcpe:
+ properties:
+ unit: B
+ description: The physical size in bytes of the image container on the host per device
+ type: Gauge
+ category: disk
+ abstract_vcpe.network.incoming.bytes_vcpe_vcpe_private_wan_port:
+ properties:
+ unit: B
+ description: Number of incoming bytes
+ type: Cumulative
+ category: network
+ abstract_vcpe.disk.ephemeral.size_vcpe:
+ properties:
+ unit: GB
+ description: Size of ephemeral disk
+ type: Gauge
+ category: compute
+ abstract_vcpe.memory.resident_vcpe:
+ properties:
+ unit: MB
+ description: Volume of RAM used by the instance on the physical machine
+ type: Gauge
+ category: compute
+ abstract_vcpe.network.outgoing.packets.rate_vcpe_vcpe_private_lan_port:
+ properties:
+ unit: packet/s
+ description: Average rate of outgoing packets
+ type: Gauge
+ category: network
+ Generic NeutronNet 0:
+ type: org.openecomp.resource.vl.GenericNeutronNet
+ metadata:
+ invariantUUID: f3ed1133-c1bb-4735-82d4-8e041265fad6
+ UUID: 24ec2ed8-a072-4f86-9a58-3a4fe220862e
+ customizationUUID: c8a1a81d-d836-4f33-9d0e-91e9417f812a
+ version: '1.0'
+ name: Generic NeutronNet
+ description: Generic NeutronNet
+ type: VL
+ category: Generic
+ subcategory: Network Elements
+ resourceVendor: ONAP (Tosca)
+ resourceVendorRelease: 1.0.0.wd03
+ resourceVendorModelNumber: ''
+ properties:
+ network_assignments:
+ is_external_network: false
+ is_trunked: false
+ ipv4_subnet_default_assignment:
+ min_subnets_count: 1
+ ecomp_generated_network_assignment: false
+ ipv6_subnet_default_assignment:
+ min_subnets_count: 1
+ exVL_naming:
+ ecomp_generated_naming: true
+ network_flows:
+ is_network_policy: false
+ is_bound_to_vpn: false
+ network_ecomp_naming:
+ ecomp_generated_naming: true
+ network_type: NEUTRON
+ network_technology: NEUTRON
+ network_homing:
+ ecomp_selected_instance_node_target: false
+ vGW 0:
+ type: org.openecomp.resource.vf.Vgw
+ metadata:
+ invariantUUID: 52905e03-0632-43f9-93f2-2ab7d959f633
+ UUID: 4f442b9c-237d-4d2d-b549-ee1bdb9842b3
+ customizationUUID: fd8595de-1081-4e39-a401-24ffebaa9ed8
+ version: '1.0'
+ name: vGW
+ description: vGW
+ type: VF
+ category: Generic
+ subcategory: Infrastructure
+ resourceVendor: huawei
+ resourceVendorRelease: '1.0'
+ resourceVendorModelNumber: ''
+ properties:
+ vf_module_id: CCVPNvGW
+ gateway_image_name: gateway_image
+ private_subnet_lan_id: 265e1457-8eb7-4fe8-a580-fb547656aad1
+ skip_post_instantiation_configuration: true
+ nf_naming:
+ ecomp_generated_naming: true
+ multi_stage_design: 'false'
+ availability_zone_max_count: 1
+ vnf_id: vGW_huaweicloud
+ private_net_id: 1ecdeb3d-5d6d-45c4-a3d2-6cc53372fa8d
+ gateway_flavor_name: s3.large.4
+ gateway_private_ip_lan: 192.168.10.200
+ gateway_name: gateway-vm
+ requirements:
+ - abstract_gateway.link_gateway_gateway_private_lan_port:
+ capability: virtual_linkable
+ node: Generic NeutronNet 0
+ capabilities:
+ abstract_gateway.network.incoming.bytes.rate_gateway_gateway_private_lan_port:
+ properties:
+ unit: B/s
+ description: Average rate of incoming bytes
+ type: Gauge
+ category: network
+ abstract_gateway.disk.device.read.bytes.rate_gateway:
+ properties:
+ unit: B/s
+ description: Average rate of reads
+ type: Gauge
+ category: disk
+ abstract_gateway.disk.capacity_gateway:
+ properties:
+ unit: B
+ description: The amount of disk that the instance can see
+ type: Gauge
+ category: disk
+ abstract_gateway.scalable_gateway:
+ properties:
+ max_instances: 1
+ min_instances: 1
+ abstract_gateway.disk.read.bytes_gateway:
+ properties:
+ unit: B
+ description: Volume of reads
+ type: Cumulative
+ category: compute
+ abstract_gateway.disk.allocation_gateway:
+ properties:
+ unit: B
+ description: The amount of disk occupied by the instance on the host machine
+ type: Gauge
+ category: disk
+ abstract_gateway.disk.device.write.requests_gateway:
+ properties:
+ unit: request
+ description: Number of write requests
+ type: Cumulative
+ category: disk
+ abstract_gateway.disk.device.read.bytes_gateway:
+ properties:
+ unit: B
+ description: Volume of reads
+ type: Cumulative
+ category: disk
+ abstract_gateway.cpu.delta_gateway:
+ properties:
+ unit: ns
+ description: CPU time used since previous datapoint
+ type: Delta
+ category: compute
+ abstract_gateway.network.outgoing.packets.rate_gateway_gateway_private_lan_port:
+ properties:
+ unit: packet/s
+ description: Average rate of outgoing packets
+ type: Gauge
+ category: network
+ abstract_gateway.cpu_gateway:
+ properties:
+ unit: ns
+ description: CPU time used
+ type: Cumulative
+ category: compute
+ abstract_gateway.disk.device.allocation_gateway:
+ properties:
+ unit: B
+ description: The amount of disk per device occupied by the instance on the host machine
+ type: Gauge
+ category: disk
+ abstract_gateway.disk.latency_gateway:
+ properties:
+ unit: ms
+ description: Average disk latency
+ type: Gauge
+ category: disk
+ abstract_gateway.disk.device.read.requests_gateway:
+ properties:
+ unit: request
+ description: Number of read requests
+ type: Cumulative
+ category: disk
+ abstract_gateway.disk.device.read.requests.rate_gateway:
+ properties:
+ unit: request/s
+ description: Average rate of read requests
+ type: Gauge
+ category: disk
+ abstract_gateway.disk.write.requests.rate_gateway:
+ properties:
+ unit: request/s
+ description: Average rate of write requests
+ type: Gauge
+ category: compute
+ abstract_gateway.disk.device.write.bytes.rate_gateway:
+ properties:
+ unit: B/s
+ description: Average rate of writes
+ type: Gauge
+ category: disk
+ abstract_gateway.cpu_util_gateway:
+ properties:
+ unit: '%'
+ description: Average CPU utilization
+ type: Gauge
+ category: compute
+ abstract_gateway.instance_gateway:
+ properties:
+ unit: instance
+ description: Existence of instance
+ type: Gauge
+ category: compute
+ abstract_gateway.network.outpoing.packets_gateway_gateway_private_lan_port:
+ properties:
+ unit: packet
+ description: Number of outgoing packets
+ type: Cumulative
+ category: network
+ abstract_gateway.disk.root.size_gateway:
+ properties:
+ unit: GB
+ description: Size of root disk
+ type: Gauge
+ category: compute
+ abstract_gateway.memory.usage_gateway:
+ properties:
+ unit: MB
+ description: Volume of RAM used by the instance from the amount of its allocated memory
+ type: Gauge
+ category: compute
+ abstract_gateway.network.outgoing.bytes_gateway_gateway_private_lan_port:
+ properties:
+ unit: B
+ description: Number of outgoing bytes
+ type: Cumulative
+ category: network
+ abstract_gateway.network.outgoing.bytes.rate_gateway_gateway_private_lan_port:
+ properties:
+ unit: B/s
+ description: Average rate of outgoing bytes
+ type: Gauge
+ category: network
+ abstract_gateway.disk.device.capacity_gateway:
+ properties:
+ unit: B
+ description: The amount of disk per device that the instance can see
+ type: Gauge
+ category: disk
+ abstract_gateway.disk.iops_gateway:
+ properties:
+ unit: count/s
+ description: Average disk iops
+ type: Gauge
+ category: disk
+ abstract_gateway.disk.write.requests_gateway:
+ properties:
+ unit: request
+ description: Number of write requests
+ type: Cumulative
+ category: compute
+ abstract_gateway.disk.device.write.bytes_gateway:
+ properties:
+ unit: B
+ description: Volume of writes
+ type: Cumulative
+ category: disk
+ abstract_gateway.disk.ephemeral.size_gateway:
+ properties:
+ unit: GB
+ description: Size of ephemeral disk
+ type: Gauge
+ category: compute
+ abstract_gateway.disk.device.write.requests.rate_gateway:
+ properties:
+ unit: request/s
+ description: Average rate of write requests
+ type: Gauge
+ category: disk
+ abstract_gateway.network.incoming.packets.rate_gateway_gateway_private_lan_port:
+ properties:
+ unit: packet/s
+ description: Average rate of incoming packets
+ type: Gauge
+ category: network
+ abstract_gateway.disk.device.iops_gateway:
+ properties:
+ unit: count/s
+ description: Average disk iops per device
+ type: Gauge
+ category: disk
+ abstract_gateway.endpoint_gateway:
+ properties:
+ secure: true
+ abstract_gateway.disk.device.latency_gateway:
+ properties:
+ unit: ms
+ description: Average disk latency per device
+ type: Gauge
+ category: disk
+ abstract_gateway.vcpus_gateway:
+ properties:
+ unit: vcpu
+ description: Number of virtual CPUs allocated to the instance
+ type: Gauge
+ category: compute
+ abstract_gateway.memory_gateway:
+ properties:
+ unit: MB
+ description: Volume of RAM allocated to the instance
+ type: Gauge
+ category: compute
+ abstract_gateway.network.incoming.bytes_gateway_gateway_private_lan_port:
+ properties:
+ unit: B
+ description: Number of incoming bytes
+ type: Cumulative
+ category: network
+ abstract_gateway.disk.read.bytes.rate_gateway:
+ properties:
+ unit: B/s
+ description: Average rate of reads
+ type: Gauge
+ category: compute
+ abstract_gateway.disk.read.requests_gateway:
+ properties:
+ unit: request
+ description: Number of read requests
+ type: Cumulative
+ category: compute
+ abstract_gateway.port_mirroring_gateway_gateway_private_lan_port:
+ properties:
+ connection_point:
+ network_role:
+ get_input: port_gateway_private_lan_port_network_role
+ nfc_naming_code: gateway
+ abstract_gateway.disk.device.usage_gateway:
+ properties:
+ unit: B
+ description: The physical size in bytes of the image container on the host per device
+ type: Gauge
+ category: disk
+ abstract_gateway.disk.write.bytes.rate_gateway:
+ properties:
+ unit: B/s
+ description: Average rate of writes
+ type: Gauge
+ category: compute
+ abstract_gateway.network.incoming.packets_gateway_gateway_private_lan_port:
+ properties:
+ unit: packet
+ description: Number of incoming packets
+ type: Cumulative
+ category: network
+ abstract_gateway.memory.resident_gateway:
+ properties:
+ unit: MB
+ description: Volume of RAM used by the instance on the physical machine
+ type: Gauge
+ category: compute
+ abstract_gateway.disk.usage_gateway:
+ properties:
+ unit: B
+ description: The physical size in bytes of the image container on the host
+ type: Gauge
+ category: disk
+ abstract_gateway.disk.write.bytes_gateway:
+ properties:
+ unit: B
+ description: Volume of writes
+ type: Cumulative
+ category: compute
+ groups:
+ vcpe0..Vcpe..ar1000v..module-0:
+ type: org.openecomp.groups.VfModule
+ metadata:
+ vfModuleModelName: Vcpe..ar1000v..module-0
+ vfModuleModelInvariantUUID: d7719964-c045-4ed3-84d6-20a01db7612f
+ vfModuleModelUUID: c84ade8a-6e4b-49c7-86e8-0e4fc009f4cd
+ vfModuleModelVersion: '1'
+ vfModuleModelCustomizationUUID: 8caeefbd-ab71-40c9-9387-8729d7d9c2de
+ properties:
+ min_vf_module_instances: 1
+ vf_module_label: ar1000v
+ max_vf_module_instances: 1
+ vf_module_type: Base
+ isBase: true
+ initial_count: 1
+ volume_group: false
+ vgw0..Vgw..gateway..module-0:
+ type: org.openecomp.groups.VfModule
+ metadata:
+ vfModuleModelName: Vgw..gateway..module-0
+ vfModuleModelInvariantUUID: 8c8c936c-e71c-4bc4-94f7-c5680c9dbc00
+ vfModuleModelUUID: ddda7e87-8113-463f-aa27-a60112a4e438
+ vfModuleModelVersion: '1'
+ vfModuleModelCustomizationUUID: ea551d60-f9c9-48f2-9757-b01eb2d26d13
+ properties:
+ min_vf_module_instances: 1
+ vf_module_label: gateway
+ max_vf_module_instances: 1
+ vf_module_type: Base
+ isBase: true
+ initial_count: 1
+ volume_group: false
+ substitution_mappings:
+ node_type: org.openecomp.service.Publicns
+ capabilities:
+ vgw0.abstract_gateway.disk.allocation_gateway:
+ - vGW 0
+ - abstract_gateway.disk.allocation_gateway
+ vgw0.abstract_gateway.memory.usage_gateway:
+ - vGW 0
+ - abstract_gateway.memory.usage_gateway
+ vcpe0.abstract_vcpe.network.outgoing.bytes.rate_vcpe_vcpe_private_wan_port:
+ - vCPE 0
+ - abstract_vcpe.network.outgoing.bytes.rate_vcpe_vcpe_private_wan_port
+ vgw0.abstract_gateway.disk.device.write.bytes.rate_gateway:
+ - vGW 0
+ - abstract_gateway.disk.device.write.bytes.rate_gateway
+ vgw0.abstract_gateway.disk.device.latency_gateway:
+ - vGW 0
+ - abstract_gateway.disk.device.latency_gateway
+ vgw0.abstract_gateway.network.incoming.bytes.rate_gateway_gateway_private_lan_port:
+ - vGW 0
+ - abstract_gateway.network.incoming.bytes.rate_gateway_gateway_private_lan_port
+ vgw0.abstract_gateway.scalable_gateway:
+ - vGW 0
+ - abstract_gateway.scalable_gateway
+ vcpe0.abstract_vcpe.host_vcpe:
+ - vCPE 0
+ - abstract_vcpe.host_vcpe
+ vcpe0.abstract_vcpe.disk.latency_vcpe:
+ - vCPE 0
+ - abstract_vcpe.disk.latency_vcpe
+ vcpe0.abstract_vcpe.scalable_vcpe:
+ - vCPE 0
+ - abstract_vcpe.scalable_vcpe
+ vcpe0.abstract_vcpe.disk.device.write.bytes.rate_vcpe:
+ - vCPE 0
+ - abstract_vcpe.disk.device.write.bytes.rate_vcpe
+ vgw0.abstract_gateway.disk.write.requests.rate_gateway:
+ - vGW 0
+ - abstract_gateway.disk.write.requests.rate_gateway
+ vcpe0.abstract_vcpe.feature_vcpe_vcpe_private_wan_port:
+ - vCPE 0
+ - abstract_vcpe.feature_vcpe_vcpe_private_wan_port
+ vcpe0.abstract_vcpe.network.incoming.bytes.rate_vcpe_vcpe_private_lan_port:
+ - vCPE 0
+ - abstract_vcpe.network.incoming.bytes.rate_vcpe_vcpe_private_lan_port
+ vcpe0.abstract_vcpe.disk.iops_vcpe:
+ - vCPE 0
+ - abstract_vcpe.disk.iops_vcpe
+ vcpe0.abstract_vcpe.network.outgoing.packets.rate_vcpe_vcpe_private_wan_port:
+ - vCPE 0
+ - abstract_vcpe.network.outgoing.packets.rate_vcpe_vcpe_private_wan_port
+ vcpe0.abstract_vcpe.feature_vcpe_vcpe_private_lan_port:
+ - vCPE 0
+ - abstract_vcpe.feature_vcpe_vcpe_private_lan_port
+ vgw0.abstract_gateway.host_gateway:
+ - vGW 0
+ - abstract_gateway.host_gateway
+ vgw0.abstract_gateway.disk.device.write.requests.rate_gateway:
+ - vGW 0
+ - abstract_gateway.disk.device.write.requests.rate_gateway
+ vcpe0.abstract_vcpe.port_mirroring_vcpe_vcpe_private_lan_port:
+ - vCPE 0
+ - abstract_vcpe.port_mirroring_vcpe_vcpe_private_lan_port
+ vcpe0.abstract_vcpe.network.incoming.bytes_vcpe_vcpe_private_lan_port:
+ - vCPE 0
+ - abstract_vcpe.network.incoming.bytes_vcpe_vcpe_private_lan_port
+ vcpe0.abstract_vcpe.disk.device.capacity_vcpe:
+ - vCPE 0
+ - abstract_vcpe.disk.device.capacity_vcpe
+ vcpe0.abstract_vcpe.network.outgoing.bytes_vcpe_vcpe_private_wan_port:
+ - vCPE 0
+ - abstract_vcpe.network.outgoing.bytes_vcpe_vcpe_private_wan_port
+ vcpe0.abstract_vcpe.os_vcpe:
+ - vCPE 0
+ - abstract_vcpe.os_vcpe
+ vgw0.abstract_gateway.disk.usage_gateway:
+ - vGW 0
+ - abstract_gateway.disk.usage_gateway
+ vcpe0.abstract_vcpe.binding_vcpe:
+ - vCPE 0
+ - abstract_vcpe.binding_vcpe
+ vgw0.abstract_gateway.network.outgoing.bytes_gateway_gateway_private_lan_port:
+ - vGW 0
+ - abstract_gateway.network.outgoing.bytes_gateway_gateway_private_lan_port
+ vcpe0.abstract_vcpe.binding_vcpe_vcpe_private_wan_port:
+ - vCPE 0
+ - abstract_vcpe.binding_vcpe_vcpe_private_wan_port
+ vcpe0.abstract_vcpe.memory.resident_vcpe:
+ - vCPE 0
+ - abstract_vcpe.memory.resident_vcpe
+ vgw0.abstract_gateway.disk.write.bytes_gateway:
+ - vGW 0
+ - abstract_gateway.disk.write.bytes_gateway
+ vgw0.abstract_gateway.disk.read.bytes.rate_gateway:
+ - vGW 0
+ - abstract_gateway.disk.read.bytes.rate_gateway
+ vcpe0.abstract_vcpe.network.incoming.packets.rate_vcpe_vcpe_private_lan_port:
+ - vCPE 0
+ - abstract_vcpe.network.incoming.packets.rate_vcpe_vcpe_private_lan_port
+ vgw0.abstract_gateway.disk.root.size_gateway:
+ - vGW 0
+ - abstract_gateway.disk.root.size_gateway
+ vcpe0.abstract_vcpe.disk.write.requests_vcpe:
+ - vCPE 0
+ - abstract_vcpe.disk.write.requests_vcpe
+ vcpe0.abstract_vcpe.disk.device.write.bytes_vcpe:
+ - vCPE 0
+ - abstract_vcpe.disk.device.write.bytes_vcpe
+ vcpe0.abstract_vcpe.feature_vcpe:
+ - vCPE 0
+ - abstract_vcpe.feature_vcpe
+ vcpe0.abstract_vcpe.disk.device.latency_vcpe:
+ - vCPE 0
+ - abstract_vcpe.disk.device.latency_vcpe
+ vgw0.abstract_gateway.cpu_util_gateway:
+ - vGW 0
+ - abstract_gateway.cpu_util_gateway
+ vgw0.abstract_gateway.network.incoming.packets_gateway_gateway_private_lan_port:
+ - vGW 0
+ - abstract_gateway.network.incoming.packets_gateway_gateway_private_lan_port
+ vgw0.abstract_gateway.disk.device.read.requests.rate_gateway:
+ - vGW 0
+ - abstract_gateway.disk.device.read.requests.rate_gateway
+ vgw0.abstract_gateway.network.incoming.packets.rate_gateway_gateway_private_lan_port:
+ - vGW 0
+ - abstract_gateway.network.incoming.packets.rate_gateway_gateway_private_lan_port
+ vcpe0.abstract_vcpe.port_mirroring_vcpe_vcpe_private_wan_port:
+ - vCPE 0
+ - abstract_vcpe.port_mirroring_vcpe_vcpe_private_wan_port
+ vcpe0.abstract_vcpe.disk.write.bytes_vcpe:
+ - vCPE 0
+ - abstract_vcpe.disk.write.bytes_vcpe
+ vgw0.abstract_gateway.disk.capacity_gateway:
+ - vGW 0
+ - abstract_gateway.disk.capacity_gateway
+ vgw0.abstract_gateway.memory_gateway:
+ - vGW 0
+ - abstract_gateway.memory_gateway
+ vcpe0.abstract_vcpe.cpu_util_vcpe:
+ - vCPE 0
+ - abstract_vcpe.cpu_util_vcpe
+ vgw0.abstract_gateway.disk.device.write.requests_gateway:
+ - vGW 0
+ - abstract_gateway.disk.device.write.requests_gateway
+ vgw0.abstract_gateway.vcpus_gateway:
+ - vGW 0
+ - abstract_gateway.vcpus_gateway
+ vcpe0.abstract_vcpe.disk.ephemeral.size_vcpe:
+ - vCPE 0
+ - abstract_vcpe.disk.ephemeral.size_vcpe
+ vgw0.abstract_gateway.disk.device.read.bytes_gateway:
+ - vGW 0
+ - abstract_gateway.disk.device.read.bytes_gateway
+ vgw0.abstract_gateway.disk.device.allocation_gateway:
+ - vGW 0
+ - abstract_gateway.disk.device.allocation_gateway
+ vgw0.abstract_gateway.disk.device.capacity_gateway:
+ - vGW 0
+ - abstract_gateway.disk.device.capacity_gateway
+ vcpe0.abstract_vcpe.disk.write.requests.rate_vcpe:
+ - vCPE 0
+ - abstract_vcpe.disk.write.requests.rate_vcpe
+ vcpe0.abstract_vcpe.disk.usage_vcpe:
+ - vCPE 0
+ - abstract_vcpe.disk.usage_vcpe
+ vgw0.abstract_gateway.disk.device.iops_gateway:
+ - vGW 0
+ - abstract_gateway.disk.device.iops_gateway
+ vcpe0.abstract_vcpe.network.outgoing.packets.rate_vcpe_vcpe_private_lan_port:
+ - vCPE 0
+ - abstract_vcpe.network.outgoing.packets.rate_vcpe_vcpe_private_lan_port
+ vgw0.abstract_gateway.endpoint_gateway:
+ - vGW 0
+ - abstract_gateway.endpoint_gateway
+ vcpe0.abstract_vcpe.disk.device.read.bytes.rate_vcpe:
+ - vCPE 0
+ - abstract_vcpe.disk.device.read.bytes.rate_vcpe
+ vcpe0.abstract_vcpe.disk.read.requests_vcpe:
+ - vCPE 0
+ - abstract_vcpe.disk.read.requests_vcpe
+ vcpe0.abstract_vcpe.disk.read.bytes.rate_vcpe:
+ - vCPE 0
+ - abstract_vcpe.disk.read.bytes.rate_vcpe
+ vcpe0.abstract_vcpe.disk.device.read.bytes_vcpe:
+ - vCPE 0
+ - abstract_vcpe.disk.device.read.bytes_vcpe
+ vgw0.abstract_gateway.binding_gateway:
+ - vGW 0
+ - abstract_gateway.binding_gateway
+ vcpe0.abstract_vcpe.network.incoming.packets.rate_vcpe_vcpe_private_wan_port:
+ - vCPE 0
+ - abstract_vcpe.network.incoming.packets.rate_vcpe_vcpe_private_wan_port
+ vcpe0.abstract_vcpe.network.outgoing.bytes_vcpe_vcpe_private_lan_port:
+ - vCPE 0
+ - abstract_vcpe.network.outgoing.bytes_vcpe_vcpe_private_lan_port
+ vcpe0.abstract_vcpe.cpu.delta_vcpe:
+ - vCPE 0
+ - abstract_vcpe.cpu.delta_vcpe
+ vcpe0.abstract_vcpe.disk.device.write.requests.rate_vcpe:
+ - vCPE 0
+ - abstract_vcpe.disk.device.write.requests.rate_vcpe
+ vgw0.abstract_gateway.instance_gateway:
+ - vGW 0
+ - abstract_gateway.instance_gateway
+ vgw0.abstract_gateway.memory.resident_gateway:
+ - vGW 0
+ - abstract_gateway.memory.resident_gateway
+ vcpe0.abstract_vcpe.network.incoming.packets_vcpe_vcpe_private_wan_port:
+ - vCPE 0
+ - abstract_vcpe.network.incoming.packets_vcpe_vcpe_private_wan_port
+ vgw0.abstract_gateway.disk.read.bytes_gateway:
+ - vGW 0
+ - abstract_gateway.disk.read.bytes_gateway
+ vcpe0.abstract_vcpe.disk.device.iops_vcpe:
+ - vCPE 0
+ - abstract_vcpe.disk.device.iops_vcpe
+ vgw0.abstract_gateway.binding_gateway_gateway_private_lan_port:
+ - vGW 0
+ - abstract_gateway.binding_gateway_gateway_private_lan_port
+ vgw0.abstract_gateway.disk.ephemeral.size_gateway:
+ - vGW 0
+ - abstract_gateway.disk.ephemeral.size_gateway
+ vgw0.abstract_gateway.feature_gateway:
+ - vGW 0
+ - abstract_gateway.feature_gateway
+ vcpe0.abstract_vcpe.forwarder_vcpe_vcpe_private_wan_port:
+ - vCPE 0
+ - abstract_vcpe.forwarder_vcpe_vcpe_private_wan_port
+ vcpe0.abstract_vcpe.disk.device.allocation_vcpe:
+ - vCPE 0
+ - abstract_vcpe.disk.device.allocation_vcpe
+ vgw0.abstract_gateway.disk.read.requests_gateway:
+ - vGW 0
+ - abstract_gateway.disk.read.requests_gateway
+ vcpe0.abstract_vcpe.disk.device.write.requests_vcpe:
+ - vCPE 0
+ - abstract_vcpe.disk.device.write.requests_vcpe
+ vgw0.abstract_gateway.disk.device.usage_gateway:
+ - vGW 0
+ - abstract_gateway.disk.device.usage_gateway
+ vgw0.abstract_gateway.cpu.delta_gateway:
+ - vGW 0
+ - abstract_gateway.cpu.delta_gateway
+ vgw0.abstract_gateway.network.outgoing.packets.rate_gateway_gateway_private_lan_port:
+ - vGW 0
+ - abstract_gateway.network.outgoing.packets.rate_gateway_gateway_private_lan_port
+ vgw0.abstract_gateway.port_mirroring_gateway_gateway_private_lan_port:
+ - vGW 0
+ - abstract_gateway.port_mirroring_gateway_gateway_private_lan_port
+ vcpe0.abstract_vcpe.forwarder_vcpe_vcpe_private_lan_port:
+ - vCPE 0
+ - abstract_vcpe.forwarder_vcpe_vcpe_private_lan_port
+ vcpe0.abstract_vcpe.network.outpoing.packets_vcpe_vcpe_private_lan_port:
+ - vCPE 0
+ - abstract_vcpe.network.outpoing.packets_vcpe_vcpe_private_lan_port
+ vcpe0.abstract_vcpe.network.incoming.packets_vcpe_vcpe_private_lan_port:
+ - vCPE 0
+ - abstract_vcpe.network.incoming.packets_vcpe_vcpe_private_lan_port
+ vgw0.abstract_gateway.disk.latency_gateway:
+ - vGW 0
+ - abstract_gateway.disk.latency_gateway
+ vcpe0.abstract_vcpe.disk.read.bytes_vcpe:
+ - vCPE 0
+ - abstract_vcpe.disk.read.bytes_vcpe
+ vcpe0.abstract_vcpe.attachment_vcpe_vcpe_private_wan_port:
+ - vCPE 0
+ - abstract_vcpe.attachment_vcpe_vcpe_private_wan_port
+ vgw0.abstract_gateway.cpu_gateway:
+ - vGW 0
+ - abstract_gateway.cpu_gateway
+ vcpe0.abstract_vcpe.instance_vcpe:
+ - vCPE 0
+ - abstract_vcpe.instance_vcpe
+ vcpe0.abstract_vcpe.memory_vcpe:
+ - vCPE 0
+ - abstract_vcpe.memory_vcpe
+ vgw0.abstract_gateway.feature_gateway_gateway_private_lan_port:
+ - vGW 0
+ - abstract_gateway.feature_gateway_gateway_private_lan_port
+ vgw0.abstract_gateway.disk.device.write.bytes_gateway:
+ - vGW 0
+ - abstract_gateway.disk.device.write.bytes_gateway
+ vcpe0.abstract_vcpe.network.outpoing.packets_vcpe_vcpe_private_wan_port:
+ - vCPE 0
+ - abstract_vcpe.network.outpoing.packets_vcpe_vcpe_private_wan_port
+ vgw0.abstract_gateway.disk.device.read.requests_gateway:
+ - vGW 0
+ - abstract_gateway.disk.device.read.requests_gateway
+ vgw0.abstract_gateway.disk.write.requests_gateway:
+ - vGW 0
+ - abstract_gateway.disk.write.requests_gateway
+ vgw0.abstract_gateway.os_gateway:
+ - vGW 0
+ - abstract_gateway.os_gateway
+ vgw0.abstract_gateway.network.outgoing.bytes.rate_gateway_gateway_private_lan_port:
+ - vGW 0
+ - abstract_gateway.network.outgoing.bytes.rate_gateway_gateway_private_lan_port
+ vgw0.abstract_gateway.network.outpoing.packets_gateway_gateway_private_lan_port:
+ - vGW 0
+ - abstract_gateway.network.outpoing.packets_gateway_gateway_private_lan_port
+ vcpe0.abstract_vcpe.disk.write.bytes.rate_vcpe:
+ - vCPE 0
+ - abstract_vcpe.disk.write.bytes.rate_vcpe
+ vgw0.abstract_gateway.disk.write.bytes.rate_gateway:
+ - vGW 0
+ - abstract_gateway.disk.write.bytes.rate_gateway
+ vcpe0.abstract_vcpe.network.incoming.bytes.rate_vcpe_vcpe_private_wan_port:
+ - vCPE 0
+ - abstract_vcpe.network.incoming.bytes.rate_vcpe_vcpe_private_wan_port
+ vcpe0.abstract_vcpe.cpu_vcpe:
+ - vCPE 0
+ - abstract_vcpe.cpu_vcpe
+ vcpe0.abstract_vcpe.disk.allocation_vcpe:
+ - vCPE 0
+ - abstract_vcpe.disk.allocation_vcpe
+ vcpe0.abstract_vcpe.disk.device.read.requests.rate_vcpe:
+ - vCPE 0
+ - abstract_vcpe.disk.device.read.requests.rate_vcpe
+ vgw0.abstract_gateway.network.incoming.bytes_gateway_gateway_private_lan_port:
+ - vGW 0
+ - abstract_gateway.network.incoming.bytes_gateway_gateway_private_lan_port
+ vcpe0.abstract_vcpe.disk.device.read.requests_vcpe:
+ - vCPE 0
+ - abstract_vcpe.disk.device.read.requests_vcpe
+ vgw0.abstract_gateway.disk.device.read.bytes.rate_gateway:
+ - vGW 0
+ - abstract_gateway.disk.device.read.bytes.rate_gateway
+ vcpe0.abstract_vcpe.binding_vcpe_vcpe_private_lan_port:
+ - vCPE 0
+ - abstract_vcpe.binding_vcpe_vcpe_private_lan_port
+ vgw0.abstract_gateway.forwarder_gateway_gateway_private_lan_port:
+ - vGW 0
+ - abstract_gateway.forwarder_gateway_gateway_private_lan_port
+ genericneutronnet0.virtual_linkable:
+ - Generic NeutronNet 0
+ - virtual_linkable
+ vcpe0.abstract_vcpe.network.incoming.bytes_vcpe_vcpe_private_wan_port:
+ - vCPE 0
+ - abstract_vcpe.network.incoming.bytes_vcpe_vcpe_private_wan_port
+ vcpe0.abstract_vcpe.disk.device.usage_vcpe:
+ - vCPE 0
+ - abstract_vcpe.disk.device.usage_vcpe
+ genericneutronnet0.feature:
+ - Generic NeutronNet 0
+ - feature
+ vcpe0.abstract_vcpe.network.outgoing.bytes.rate_vcpe_vcpe_private_lan_port:
+ - vCPE 0
+ - abstract_vcpe.network.outgoing.bytes.rate_vcpe_vcpe_private_lan_port
+ vcpe0.abstract_vcpe.disk.root.size_vcpe:
+ - vCPE 0
+ - abstract_vcpe.disk.root.size_vcpe
+ vcpe0.abstract_vcpe.vcpus_vcpe:
+ - vCPE 0
+ - abstract_vcpe.vcpus_vcpe
+ vcpe0.abstract_vcpe.endpoint_vcpe:
+ - vCPE 0
+ - abstract_vcpe.endpoint_vcpe
+ vgw0.abstract_gateway.attachment_gateway_gateway_private_lan_port:
+ - vGW 0
+ - abstract_gateway.attachment_gateway_gateway_private_lan_port
+ vcpe0.abstract_vcpe.attachment_vcpe_vcpe_private_lan_port:
+ - vCPE 0
+ - abstract_vcpe.attachment_vcpe_vcpe_private_lan_port
+ vcpe0.abstract_vcpe.memory.usage_vcpe:
+ - vCPE 0
+ - abstract_vcpe.memory.usage_vcpe
+ vcpe0.abstract_vcpe.disk.capacity_vcpe:
+ - vCPE 0
+ - abstract_vcpe.disk.capacity_vcpe
+ vgw0.abstract_gateway.disk.iops_gateway:
+ - vGW 0
+ - abstract_gateway.disk.iops_gateway
+ requirements:
+ vcpe0.abstract_vcpe.dependency_vcpe_vcpe_private_wan_port:
+ - vCPE 0
+ - abstract_vcpe.dependency_vcpe_vcpe_private_wan_port
+ vcpe0.abstract_vcpe.link_vcpe_vcpe_private_lan_port:
+ - vCPE 0
+ - abstract_vcpe.link_vcpe_vcpe_private_lan_port
+ vgw0.abstract_gateway.local_storage_gateway:
+ - vGW 0
+ - abstract_gateway.local_storage_gateway
+ genericneutronnet0.dependency:
+ - Generic NeutronNet 0
+ - dependency
+ vcpe0.abstract_vcpe.local_storage_vcpe:
+ - vCPE 0
+ - abstract_vcpe.local_storage_vcpe
+ vcpe0.abstract_vcpe.dependency_vcpe_vcpe_private_lan_port:
+ - vCPE 0
+ - abstract_vcpe.dependency_vcpe_vcpe_private_lan_port
+ vgw0.abstract_gateway.dependency_gateway:
+ - vGW 0
+ - abstract_gateway.dependency_gateway
+ vcpe0.abstract_vcpe.dependency_vcpe:
+ - vCPE 0
+ - abstract_vcpe.dependency_vcpe
+ vgw0.abstract_gateway.dependency_gateway_gateway_private_lan_port:
+ - vGW 0
+ - abstract_gateway.dependency_gateway_gateway_private_lan_port
+ vcpe0.abstract_vcpe.link_vcpe_vcpe_private_wan_port:
+ - vCPE 0
+ - abstract_vcpe.link_vcpe_vcpe_private_wan_port
+ vgw0.abstract_gateway.link_gateway_gateway_private_lan_port:
+ - vGW 0
+ - abstract_gateway.link_gateway_gateway_private_lan_port
diff --git a/asdc-controller/src/test/resources/resource-examples/public-ns/vcpe0/ar1000v.env b/asdc-controller/src/test/resources/resource-examples/public-ns/vcpe0/ar1000v.env
new file mode 100644
index 0000000000..f0cc985078
--- /dev/null
+++ b/asdc-controller/src/test/resources/resource-examples/public-ns/vcpe0/ar1000v.env
@@ -0,0 +1,10 @@
+parameters:
+ private_net_id: "1ecdeb3d-5d6d-45c4-a3d2-6cc53372fa8d"
+ private_subnet_lan_id: "265e1457-8eb7-4fe8-a580-fb547656aad1"
+ private_subnet_wan_id: "86048e4e-861e-47c9-ae55-a5531b747e36"
+ vcpe_flavor_name: "vCPE_flavor"
+ vcpe_image_name: "vCPE_images"
+ vcpe_name: "ar1000v"
+ vcpe_private_ip_lan: "192.168.10.250"
+ vf_module_id: "vCPEAR1000V"
+ vnf_id: "vCPE_huaweicloud"
diff --git a/asdc-controller/src/test/resources/resource-examples/public-ns/vcpe0/ar1000v.yaml b/asdc-controller/src/test/resources/resource-examples/public-ns/vcpe0/ar1000v.yaml
new file mode 100644
index 0000000000..b4d0fa7a6b
--- /dev/null
+++ b/asdc-controller/src/test/resources/resource-examples/public-ns/vcpe0/ar1000v.yaml
@@ -0,0 +1,103 @@
+##########################################################################
+#
+#==================LICENSE_START==========================================
+#
+#
+# Copyright 2017 Huawei Technologies Co., Ltd. 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============================================
+
+heat_template_version: 2013-05-23
+
+description: Heat template to deploy Huawei AR1000V vCPE
+
+##############
+# #
+# PARAMETERS #
+# #
+##############
+
+parameters:
+ vcpe_name:
+ type: string
+ label: name
+ description: name to be used for compute instance
+ vcpe_image_name:
+ type: string
+ label: Image name or ID
+ description: Image to be used for compute instance
+ vcpe_flavor_name:
+ type: string
+ label: Flavor
+ description: Type of instance (flavor) to be used
+ private_net_id:
+ type: string
+ label: Private oam network name or ID
+ description: Private network that enables remote connection to VNF
+ private_subnet_wan_id:
+ type: string
+ label: Private wan sub-network name or ID
+ description: Private wan sub-network that enables remote connection to VNF
+ private_subnet_lan_id:
+ type: string
+ label: Private lan sub-network name or ID
+ description: Private lan sub-network that enables remote connection to VNF
+ vcpe_private_ip_lan:
+ type: string
+ label: vCPE lan private IP address
+ description: Private IP address that is assigned to the vCPE lan port
+ vnf_id:
+ type: string
+ label: VNF ID
+ description: The VNF ID is provided by ECOMP
+ vf_module_id:
+ type: string
+ label: VF module id
+ description: the vf module id is provided by ECOMP
+#############
+# #
+# RESOURCES #
+# #
+#############
+
+resources:
+# For the floating IP in Public cloud , floating_network_id is not needed
+ vCPE_oam_floating_ip:
+ type: OS::Neutron::FloatingIP
+ properties:
+ floating_network_id: { get_param: private_net_id}
+ port_id: { get_resource: vcpe_private_wan_port}
+
+ vcpe_private_wan_port:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: private_net_id }
+ fixed_ips: [{"subnet": { get_param: private_subnet_wan_id }}]
+
+ vcpe_private_lan_port:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: private_net_id }
+ fixed_ips: [{"subnet": { get_param: private_subnet_lan_id }, "ip_address": { get_param: vcpe_private_ip_lan }}]
+
+ ar_1000v:
+ type: OS::Nova::Server
+ properties:
+ image: { get_param: vcpe_image_name }
+ flavor: { get_param: vcpe_flavor_name }
+ name: { get_param: vcpe_name }
+ networks:
+ - port: { get_resource: vcpe_private_wan_port }
+ - port: { get_resource: vcpe_private_lan_port }
+ metadata: { vnf_id: { get_param: vnf_id }, vf_module_id: { get_param: vf_module_id }}
diff --git a/asdc-controller/src/test/resources/resource-examples/public-ns/vcpe0/vcpe0_modules.json b/asdc-controller/src/test/resources/resource-examples/public-ns/vcpe0/vcpe0_modules.json
new file mode 100644
index 0000000000..3376b1bf40
--- /dev/null
+++ b/asdc-controller/src/test/resources/resource-examples/public-ns/vcpe0/vcpe0_modules.json
@@ -0,0 +1,25 @@
+[
+ {
+ "vfModuleModelName": "Vcpe..ar1000v..module-0",
+ "vfModuleModelInvariantUUID": "d7719964-c045-4ed3-84d6-20a01db7612f",
+ "vfModuleModelVersion": "1",
+ "vfModuleModelUUID": "c84ade8a-6e4b-49c7-86e8-0e4fc009f4cd",
+ "vfModuleModelCustomizationUUID": "8caeefbd-ab71-40c9-9387-8729d7d9c2de",
+ "isBase": true,
+ "artifacts": [
+ "12dcc618-20f2-4f15-ab00-c549b96b3910",
+ "5821b043-ba50-49ef-b739-61b0896050f2"
+ ],
+ "properties": {
+ "min_vf_module_instances": "1",
+ "vf_module_label": "ar1000v",
+ "max_vf_module_instances": "1",
+ "vfc_list": "",
+ "vf_module_description": "",
+ "vf_module_type": "Base",
+ "availability_zone_count": "",
+ "volume_group": "false",
+ "initial_count": "1"
+ }
+ }
+] \ No newline at end of file
diff --git a/asdc-controller/src/test/resources/resource-examples/public-ns/vcpe0/vendor-license-model.xml b/asdc-controller/src/test/resources/resource-examples/public-ns/vcpe0/vendor-license-model.xml
new file mode 100644
index 0000000000..a10a5b2bb1
--- /dev/null
+++ b/asdc-controller/src/test/resources/resource-examples/public-ns/vcpe0/vendor-license-model.xml
@@ -0,0 +1 @@
+<vendor-license-model xmlns="http://xmlns.openecomp.org/asdc/license-model/1.0"><vendor-name>huawei</vendor-name><entitlement-pool-list><entitlement-pool><entitlement-pool-invariant-uuid>d948f2a8354d41ef9f8e5819adccfd0d</entitlement-pool-invariant-uuid><entitlement-pool-uuid>86BA71BDC4EC44DB8099115BC7202F3A</entitlement-pool-uuid><version>1.0</version><name>test</name><description/><increments/><manufacturer-reference-number>1234</manufacturer-reference-number><threshold-value><unit>Absolute</unit><value>80</value></threshold-value><sp-limits/><vendor-limits/><operational-scope><value/></operational-scope><start-date>2019-08-23T00:00:00Z</start-date><expiry-date>2020-01-04T23:59:59Z</expiry-date></entitlement-pool></entitlement-pool-list><license-key-group-list><license-key-group><version>1.0</version><name>test</name><description/><type>One_Time</type><increments/><manufacturerReferenceNumber>123</manufacturerReferenceNumber><license-key-group-invariant-uuid>8b3c7d985b1541518fe0dfc8e40d5116</license-key-group-invariant-uuid><license-key-group-uuid>85FF42563DAA4111BAB854264F1D2898</license-key-group-uuid><threshold-value><unit>Percentage</unit><value>88</value></threshold-value><sp-limits/><vendor-limits/><operational-scope><value/></operational-scope><start-date>2019-08-23T00:00:00Z</start-date><expiry-date>2019-09-21T23:59:59Z</expiry-date></license-key-group></license-key-group-list></vendor-license-model> \ No newline at end of file
diff --git a/asdc-controller/src/test/resources/resource-examples/public-ns/vcpe0/vf-license-model.xml b/asdc-controller/src/test/resources/resource-examples/public-ns/vcpe0/vf-license-model.xml
new file mode 100644
index 0000000000..ed1575b7f5
--- /dev/null
+++ b/asdc-controller/src/test/resources/resource-examples/public-ns/vcpe0/vf-license-model.xml
@@ -0,0 +1 @@
+<vf-license-model xmlns="http://xmlns.openecomp.org/asdc/license-model/1.0"><vendor-name>huawei</vendor-name><vf-id>c1aad4e55922438f956ff97b91c5446d</vf-id><feature-group-list><feature-group><entitlement-pool-list><entitlement-pool><name>test</name><description/><increments/><entitlement-pool-invariant-uuid>d948f2a8354d41ef9f8e5819adccfd0d</entitlement-pool-invariant-uuid><entitlement-pool-uuid>86BA71BDC4EC44DB8099115BC7202F3A</entitlement-pool-uuid><manufacturer-reference-number>1234</manufacturer-reference-number><threshold-value><unit>Absolute</unit><value>80</value></threshold-value><version>1.0</version><sp-limits/><vendor-limits/><operational-scope><value/></operational-scope><start-date>2019-08-23T00:00:00Z</start-date><expiry-date>2020-01-04T23:59:59Z</expiry-date></entitlement-pool></entitlement-pool-list><license-key-group-list><license-key-group><name>test</name><description/><type>One_Time</type><increments/><license-key-group-invariant-uuid>8b3c7d985b1541518fe0dfc8e40d5116</license-key-group-invariant-uuid><license-key-group-uuid>85FF42563DAA4111BAB854264F1D2898</license-key-group-uuid><manufacturer-reference-number>123</manufacturer-reference-number><threshold-value><unit>Percentage</unit><value>88</value></threshold-value><version>1.0</version><sp-limits/><vendor-limits/><operational-scope><value/></operational-scope><start-date>2019-08-23T00:00:00Z</start-date><expiry-date>2019-09-21T23:59:59Z</expiry-date></license-key-group></license-key-group-list><name>testgroup</name><feature-group-uuid>ae361d4e44ca48e68f734abb531e19af</feature-group-uuid><description/><part-number>123</part-number></feature-group></feature-group-list></vf-license-model> \ No newline at end of file
diff --git a/asdc-controller/src/test/resources/resource-examples/public-ns/vgw0/gateway.env b/asdc-controller/src/test/resources/resource-examples/public-ns/vgw0/gateway.env
new file mode 100644
index 0000000000..a995d16b31
--- /dev/null
+++ b/asdc-controller/src/test/resources/resource-examples/public-ns/vgw0/gateway.env
@@ -0,0 +1,9 @@
+parameters:
+ gateway_flavor_name: "s3.large.4"
+ gateway_image_name: "gateway_image"
+ gateway_name: "gateway-vm"
+ gateway_private_ip_lan: "192.168.10.200"
+ private_net_id: "1ecdeb3d-5d6d-45c4-a3d2-6cc53372fa8d"
+ private_subnet_lan_id: "265e1457-8eb7-4fe8-a580-fb547656aad1"
+ vf_module_id: "CCVPNvGW"
+ vnf_id: "vGW_huaweicloud"
diff --git a/asdc-controller/src/test/resources/resource-examples/public-ns/vgw0/gateway.yaml b/asdc-controller/src/test/resources/resource-examples/public-ns/vgw0/gateway.yaml
new file mode 100644
index 0000000000..2d72a1c183
--- /dev/null
+++ b/asdc-controller/src/test/resources/resource-examples/public-ns/vgw0/gateway.yaml
@@ -0,0 +1,109 @@
+##########################################################################
+#
+#==================LICENSE_START==========================================
+#
+#
+# Copyright 2017 Huawei Technologies Co., Ltd. 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============================================
+
+heat_template_version: 2013-05-23
+
+description: Heat template to deploy CCVPN gateway instance
+
+##############
+# #
+# PARAMETERS #
+# #
+##############
+
+parameters:
+ gateway_name:
+ type: string
+ label: name
+ description: name to be used for compute instance
+ gateway_image_name:
+ type: string
+ label: Image name or ID
+ description: Image to be used for compute instance
+ gateway_flavor_name:
+ type: string
+ label: Flavor
+ description: Type of instance (flavor) to be used
+ private_net_id:
+ type: string
+ label: Private oam network name or ID
+ description: Private network that enables remote connection to VNF
+# private_subnet_wan_id:
+# type: string
+# label: Private wan sub-network name or ID
+# description: Private wan sub-network that enables remote connection to VNF
+ private_subnet_lan_id:
+ type: string
+ label: Private lan sub-network name or ID
+ description: Private lan sub-network that enables remote connection to VNF
+ gateway_private_ip_lan:
+ type: string
+ label: gateway lan private IP address
+ description: Private IP address that is assigned to the gateway lan port
+ vnf_id:
+ type: string
+ label: VNF ID
+ description: The VNF ID is provided by ECOMP
+ vf_module_id:
+ type: string
+ label: VF module id
+ description: the vf module id is provided by ECOMP
+#############
+# #
+# RESOURCES #
+# #
+#############
+
+resources:
+# For the floating IP in Public cloud , floating_network_id is not needed
+ gateway_oam_floating_ip:
+ type: OS::Neutron::FloatingIP
+ properties:
+ floating_network_id: { get_param: private_net_id}
+ port_id: { get_resource: gateway_private_lan_port}
+
+ #gateway_private_wan_port:
+ # type: OS::Neutron::Port
+ # properties:
+ # network: { get_param: private_net_id }
+ # fixed_ips: [{"subnet": { get_param: private_subnet_wan_id }}]
+
+ gateway_private_lan_port:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: private_net_id }
+ fixed_ips: [{"subnet": { get_param: private_subnet_lan_id }, "ip_address": { get_param: gateway_private_ip_lan }}]
+
+ gateway_instacne:
+ type: OS::Nova::Server
+ properties:
+ image: { get_param: gateway_image_name }
+ flavor: { get_param: gateway_flavor_name }
+ name: { get_param: gateway_name }
+ networks:
+ #- port: { get_resource: gateway_private_wan_port }
+ - port: { get_resource: gateway_private_lan_port }
+ metadata: { vnf_id: { get_param: vnf_id }, vf_module_id: { get_param: vf_module_id }}
+ user_data: |
+ #!/bin/bash
+ docker start msb_consul
+ docker start msb_discovery
+ docker start msb_internal_apigateway
+ #user_data_format: HEAT_CFNTOOLS/RAW \ No newline at end of file
diff --git a/asdc-controller/src/test/resources/resource-examples/public-ns/vgw0/vendor-license-model.xml b/asdc-controller/src/test/resources/resource-examples/public-ns/vgw0/vendor-license-model.xml
new file mode 100644
index 0000000000..a10a5b2bb1
--- /dev/null
+++ b/asdc-controller/src/test/resources/resource-examples/public-ns/vgw0/vendor-license-model.xml
@@ -0,0 +1 @@
+<vendor-license-model xmlns="http://xmlns.openecomp.org/asdc/license-model/1.0"><vendor-name>huawei</vendor-name><entitlement-pool-list><entitlement-pool><entitlement-pool-invariant-uuid>d948f2a8354d41ef9f8e5819adccfd0d</entitlement-pool-invariant-uuid><entitlement-pool-uuid>86BA71BDC4EC44DB8099115BC7202F3A</entitlement-pool-uuid><version>1.0</version><name>test</name><description/><increments/><manufacturer-reference-number>1234</manufacturer-reference-number><threshold-value><unit>Absolute</unit><value>80</value></threshold-value><sp-limits/><vendor-limits/><operational-scope><value/></operational-scope><start-date>2019-08-23T00:00:00Z</start-date><expiry-date>2020-01-04T23:59:59Z</expiry-date></entitlement-pool></entitlement-pool-list><license-key-group-list><license-key-group><version>1.0</version><name>test</name><description/><type>One_Time</type><increments/><manufacturerReferenceNumber>123</manufacturerReferenceNumber><license-key-group-invariant-uuid>8b3c7d985b1541518fe0dfc8e40d5116</license-key-group-invariant-uuid><license-key-group-uuid>85FF42563DAA4111BAB854264F1D2898</license-key-group-uuid><threshold-value><unit>Percentage</unit><value>88</value></threshold-value><sp-limits/><vendor-limits/><operational-scope><value/></operational-scope><start-date>2019-08-23T00:00:00Z</start-date><expiry-date>2019-09-21T23:59:59Z</expiry-date></license-key-group></license-key-group-list></vendor-license-model> \ No newline at end of file
diff --git a/asdc-controller/src/test/resources/resource-examples/public-ns/vgw0/vf-license-model.xml b/asdc-controller/src/test/resources/resource-examples/public-ns/vgw0/vf-license-model.xml
new file mode 100644
index 0000000000..a4a84cc4c0
--- /dev/null
+++ b/asdc-controller/src/test/resources/resource-examples/public-ns/vgw0/vf-license-model.xml
@@ -0,0 +1 @@
+<vf-license-model xmlns="http://xmlns.openecomp.org/asdc/license-model/1.0"><vendor-name>huawei</vendor-name><vf-id>8c1c2b40525942aca038a4528ce3bb4e</vf-id><feature-group-list><feature-group><entitlement-pool-list><entitlement-pool><name>test</name><description/><increments/><entitlement-pool-invariant-uuid>d948f2a8354d41ef9f8e5819adccfd0d</entitlement-pool-invariant-uuid><entitlement-pool-uuid>86BA71BDC4EC44DB8099115BC7202F3A</entitlement-pool-uuid><manufacturer-reference-number>1234</manufacturer-reference-number><threshold-value><unit>Absolute</unit><value>80</value></threshold-value><version>1.0</version><sp-limits/><vendor-limits/><operational-scope><value/></operational-scope><start-date>2019-08-23T00:00:00Z</start-date><expiry-date>2020-01-04T23:59:59Z</expiry-date></entitlement-pool></entitlement-pool-list><license-key-group-list><license-key-group><name>test</name><description/><type>One_Time</type><increments/><license-key-group-invariant-uuid>8b3c7d985b1541518fe0dfc8e40d5116</license-key-group-invariant-uuid><license-key-group-uuid>85FF42563DAA4111BAB854264F1D2898</license-key-group-uuid><manufacturer-reference-number>123</manufacturer-reference-number><threshold-value><unit>Percentage</unit><value>88</value></threshold-value><version>1.0</version><sp-limits/><vendor-limits/><operational-scope><value/></operational-scope><start-date>2019-08-23T00:00:00Z</start-date><expiry-date>2019-09-21T23:59:59Z</expiry-date></license-key-group></license-key-group-list><name>testgroup</name><feature-group-uuid>ae361d4e44ca48e68f734abb531e19af</feature-group-uuid><description/><part-number>123</part-number></feature-group></feature-group-list></vf-license-model> \ No newline at end of file
diff --git a/asdc-controller/src/test/resources/resource-examples/public-ns/vgw0/vgw0_modules.json b/asdc-controller/src/test/resources/resource-examples/public-ns/vgw0/vgw0_modules.json
new file mode 100644
index 0000000000..1a1badec5e
--- /dev/null
+++ b/asdc-controller/src/test/resources/resource-examples/public-ns/vgw0/vgw0_modules.json
@@ -0,0 +1,25 @@
+[
+ {
+ "vfModuleModelName": "Vgw..gateway..module-0",
+ "vfModuleModelInvariantUUID": "8c8c936c-e71c-4bc4-94f7-c5680c9dbc00",
+ "vfModuleModelVersion": "1",
+ "vfModuleModelUUID": "ddda7e87-8113-463f-aa27-a60112a4e438",
+ "vfModuleModelCustomizationUUID": "ea551d60-f9c9-48f2-9757-b01eb2d26d13",
+ "isBase": true,
+ "artifacts": [
+ "60d55796-212c-4c66-8af5-63964d636ae4",
+ "9df0452f-826c-4287-9a2d-ca0095339866"
+ ],
+ "properties": {
+ "min_vf_module_instances": "1",
+ "vf_module_label": "gateway",
+ "max_vf_module_instances": "1",
+ "vfc_list": "",
+ "vf_module_description": "",
+ "vf_module_type": "Base",
+ "availability_zone_count": "",
+ "volume_group": "false",
+ "initial_count": "1"
+ }
+ }
+] \ No newline at end of file
diff --git a/asdc-controller/src/test/resources/resource-examples/vcpe-rescust/base_vcpe_vgw.env b/asdc-controller/src/test/resources/resource-examples/vcpe-rescust/base_vcpe_vgw.env
new file mode 100644
index 0000000000..5cdbc9b882
--- /dev/null
+++ b/asdc-controller/src/test/resources/resource-examples/vcpe-rescust/base_vcpe_vgw.env
@@ -0,0 +1,27 @@
+parameters:
+ cloud_env: "PUT THE CLOUD PROVIDED HERE (openstack or rackspace)"
+ cpe_public_net_cidr: "10.2.0.0/24"
+ cpe_public_net_id: "zdfw1cpe01_public"
+ cpe_public_subnet_id: "zdfw1cpe01_sub_public"
+ dcae_collector_ip: "10.0.4.1"
+ dcae_collector_port: "8081"
+ key_name: "vgw_key"
+ mux_gw_private_net_cidr: "10.5.0.0/24"
+ mux_gw_private_net_id: "zdfw1muxgw01_private"
+ mux_gw_private_subnet_id: "zdfw1muxgw01_sub_private"
+ mux_ip_addr: "10.5.0.20"
+ nexus_artifact_repo: "https://nexus.onap.org"
+ onap_private_net_cidr: "10.0.0.0/16"
+ onap_private_net_id: "PUT THE ONAP PRIVATE NETWORK NAME HERE"
+ onap_private_subnet_id: "PUT THE ONAP PRIVATE SUBNETWORK NAME HERE"
+ pub_key: "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDQXYJYYi3/OUZXUiCYWdtc7K0m5C0dJKVxPG0eI8EWZrEHYdfYe6WoTSDJCww+1qlBSpA5ac/Ba4Wn9vh+lR1vtUKkyIC/nrYb90ReUd385Glkgzrfh5HdR5y5S2cL/Frh86lAn9r6b3iWTJD8wBwXFyoe1S2nMTOIuG4RPNvfmyCTYVh8XTCCE8HPvh3xv2r4egawG1P4Q4UDwk+hDBXThY2KS8M5/8EMyxHV0ImpLbpYCTBA6KYDIRtqmgS6iKyy8v2D1aSY5mc9J0T5t9S2Gv+VZQNWQDDKNFnxqYaAo1uEoq/i1q63XC5AD3ckXb2VT6dp23BQMdDfbHyUWfJN"
+ public_net_id: "PUT THE PUBLIC NETWORK ID HERE"
+ script_version: "1.5.0-SNAPSHOT"
+ vcpe_flavor_name: "PUT THE FLAVOR NAME HERE (MEDIUM FLAVOR SUGGESTED)"
+ vcpe_image_name: "PUT THE IMAGE NAME HERE (Ubuntu 1604 SUGGESTED)"
+ vf_module_id: "vCPE_Customer_GW"
+ vg_vgmux_tunnel_vni: 100
+ vgw_name_0: "zdcpe1cpe01gw01"
+ vgw_private_ip_0: "10.5.0.21"
+ vgw_private_ip_1: "10.0.101.30"
+ vnf_id: "vCPE_Infrastructure_GW_demo_app"
diff --git a/asdc-controller/src/test/resources/resource-examples/vcpe-rescust/base_vcpe_vgw.yaml b/asdc-controller/src/test/resources/resource-examples/vcpe-rescust/base_vcpe_vgw.yaml
new file mode 100644
index 0000000000..74fa490b23
--- /dev/null
+++ b/asdc-controller/src/test/resources/resource-examples/vcpe-rescust/base_vcpe_vgw.yaml
@@ -0,0 +1,243 @@
+##########################################################################
+#
+#==================LICENSE_START==========================================
+#
+#
+# Copyright 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============================================
+#
+# ECOMP is a trademark and service mark of AT&T Intellectual Property.
+#
+##########################################################################
+
+heat_template_version: 2013-05-23
+
+description: Heat template to deploy vCPE vGateway (vG)
+
+##############
+# #
+# PARAMETERS #
+# #
+##############
+
+parameters:
+ vcpe_image_name:
+ type: string
+ label: Image name or ID
+ description: Image to be used for compute instance
+ vcpe_flavor_name:
+ type: string
+ label: Flavor
+ description: Type of instance (flavor) to be used
+ public_net_id:
+ type: string
+ label: Public network name or ID
+ description: Public network that enables remote connection to VNF
+ mux_gw_private_net_id:
+ type: string
+ label: vGMUX private network name or ID
+ description: Private network that connects vGMUX to vGWs
+ mux_gw_private_subnet_id:
+ type: string
+ label: vGMUX private sub-network name or ID
+ description: vGMUX private sub-network name or ID
+ mux_gw_private_net_cidr:
+ type: string
+ label: vGMUX private network CIDR
+ description: The CIDR of the vGMUX private network
+ onap_private_net_id:
+ type: string
+ label: ONAP management network name or ID
+ description: Private network that connects ONAP components and the VNF
+ onap_private_subnet_id:
+ type: string
+ label: ONAP management sub-network name or ID
+ description: Private sub-network that connects ONAP components and the VNF
+ onap_private_net_cidr:
+ type: string
+ label: ONAP private network CIDR
+ description: The CIDR of the protected private network
+ cpe_public_net_id:
+ type: string
+ label: vCPE network that emulates internetmanagement name or ID
+ description: Private network that connects vGW to emulated internet
+ cpe_public_subnet_id:
+ type: string
+ label: vCPE Public subnet
+ description: vCPE Public subnet
+ cpe_public_net_cidr:
+ type: string
+ label: vCPE public network CIDR
+ description: The CIDR of the vCPE public
+ vgw_private_ip_0:
+ type: string
+ label: vGW private IP address towards the vGMUX
+ description: Private IP address that is assigned to the vGW to communicate with vGMUX
+ vgw_private_ip_1:
+ type: string
+ label: vGW private IP address towards the ONAP management network
+ description: Private IP address that is assigned to the vGW to communicate with ONAP components
+ ## VPP will use DHCP to get the vgw_private_ip_2 on the CPE_PUBLIC subnet
+ #vgw_private_ip_2:
+ # type: string
+ # label: vGW private IP address towards the vCPE public network
+ # description: Private IP address that is assigned to the vGW to communicate with vCPE public network
+ vgw_name_0:
+ type: string
+ label: vGW name
+ description: Name of the vGW
+ vnf_id:
+ type: string
+ label: VNF ID
+ description: The VNF ID is provided by ONAP
+ vf_module_id:
+ type: string
+ label: vCPE module ID
+ description: The vCPE Module ID is provided by ONAP
+ dcae_collector_ip:
+ type: string
+ label: DCAE collector IP address
+ description: IP address of the DCAE collector
+ dcae_collector_port:
+ type: string
+ label: DCAE collector port
+ description: Port of the DCAE collector
+ key_name:
+ type: string
+ label: Key pair name
+ description: Public/Private key pair name
+ pub_key:
+ type: string
+ label: Public key
+ description: Public key to be installed on the compute instance
+ script_version:
+ type: string
+ label: Script version number
+ description: Version number of the scripts that install the vGW
+ nexus_artifact_repo:
+ type: string
+ description: Root URL for the Nexus repository for Maven artifacts.
+ default: "https://nexus.onap.org"
+ cloud_env:
+ type: string
+ label: Cloud environment
+ description: Cloud environment (e.g., openstack, rackspace)
+ mux_ip_addr:
+ type: string
+ label: vGMUX IP address
+ description: IP address of vGMUX
+ vg_vgmux_tunnel_vni:
+ type: number
+ label: vG-vGMUX tunnel vni
+ description: vni value of vG-vGMUX vxlan tunnel
+
+#############
+# #
+# RESOURCES #
+# #
+#############
+
+resources:
+
+ random-str:
+ type: OS::Heat::RandomString
+ properties:
+ length: 4
+
+ my_keypair:
+ type: OS::Nova::KeyPair
+ properties:
+ name:
+ str_replace:
+ template: base_rand
+ params:
+ base: { get_param: key_name }
+ rand: { get_resource: random-str }
+ public_key: { get_param: pub_key }
+ save_private_key: false
+
+ # Virtual GW Instantiation
+ vgw_private_0_port:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: mux_gw_private_net_id }
+ fixed_ips: [{"subnet": { get_param: mux_gw_private_subnet_id }, "ip_address": { get_param: vgw_private_ip_0 }}]
+
+ vgw_private_1_port:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: onap_private_net_id }
+ fixed_ips: [{"subnet": { get_param: onap_private_subnet_id }, "ip_address": { get_param: vgw_private_ip_1 }}]
+
+ vgw_private_2_port:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_param: cpe_public_net_id}
+ fixed_ips: [{"subnet": { get_param: cpe_public_subnet_id }}]
+ ##fixed_ips: [{"subnet": { get_param: cpe_public_subnet_id }, "ip_address": { get_param: vgw_private_ip_2 }}]
+
+ vgw_0:
+ type: OS::Nova::Server
+ properties:
+ image: { get_param: vcpe_image_name }
+ flavor: { get_param: vcpe_flavor_name }
+ name: { get_param: vgw_name_0 }
+ key_name: { get_resource: my_keypair }
+ networks:
+ - network: { get_param: public_net_id }
+ - port: { get_resource: vgw_private_0_port }
+ - port: { get_resource: vgw_private_1_port }
+ - port: { get_resource: vgw_private_2_port }
+ metadata: {vnf_id: { get_param: vnf_id }, vf_module_id: { get_param: vf_module_id }}
+ user_data_format: RAW
+ user_data:
+ str_replace:
+ params:
+ __mux_gw_private_net_ipaddr__ : { get_param: vgw_private_ip_0 }
+ __oam_ipaddr__ : { get_param: vgw_private_ip_1 }
+ __oam_cidr__ : { get_param: onap_private_net_cidr }
+ __cpe_public_net_cidr__ : { get_param: cpe_public_net_cidr }
+ __mux_gw_private_net_cidr__ : { get_param: mux_gw_private_net_cidr }
+ __script_version__ : { get_param: script_version }
+ __cloud_env__ : { get_param: cloud_env }
+ __mux_ip_addr__: { get_param: mux_ip_addr }
+ __vg_vgmux_tunnel_vni__: { get_param: vg_vgmux_tunnel_vni }
+ __nexus_artifact_repo__: { get_param: nexus_artifact_repo }
+ template: |
+ #!/bin/bash
+
+ # Create configuration files
+ mkdir /opt/config
+ echo "__oam_ipaddr__" > /opt/config/oam_ipaddr.txt
+ echo "__oam_cidr__" > /opt/config/oam_cidr.txt
+ echo "__cpe_public_net_cidr__" > /opt/config/cpe_public_net_cidr.txt
+ echo "__mux_gw_private_net_ipaddr__" > /opt/config/mux_gw_private_net_ipaddr.txt
+ echo "__mux_gw_private_net_cidr__" > /opt/config/mux_gw_private_net_cidr.txt
+ echo "__script_version__" > /opt/config/script_version.txt
+ echo "__cloud_env__" > /opt/config/cloud_env.txt
+ echo "__mux_ip_addr__" > /opt/config/mux_ip_addr.txt
+ echo "__vg_vgmux_tunnel_vni__" > /opt/config/vg_vgmux_tunnel_vni.txt
+ echo "__nexus_artifact_repo__" > /opt/config/nexus_artifact_repo.txt
+
+ # Download and run install script
+ apt-get update
+ apt-get -y install unzip
+ if [[ "__script_version__" =~ "SNAPSHOT" ]]; then REPO=snapshots; else REPO=releases; fi
+ curl -k -L "__nexus_artifact_repo__/service/local/artifact/maven/redirect?r=${REPO}&g=org.onap.demo.vnf.vcpe&a=vcpe-scripts&e=zip&v=__script_version__" -o /opt/vcpe-scripts-__script_version__.zip
+ unzip -j /opt/vcpe-scripts-__script_version__.zip -d /opt v_gw_install.sh
+ cd /opt
+ chmod +x v_gw_install.sh
+ ./v_gw_install.sh
+
diff --git a/asdc-controller/src/test/resources/resource-examples/vcpe-rescust/demo-vcpe-rescust-notification.json b/asdc-controller/src/test/resources/resource-examples/vcpe-rescust/demo-vcpe-rescust-notification.json
new file mode 100644
index 0000000000..f4f4fcc0de
--- /dev/null
+++ b/asdc-controller/src/test/resources/resource-examples/vcpe-rescust/demo-vcpe-rescust-notification.json
@@ -0,0 +1,108 @@
+{
+ "distributionID": "5ea97d50-9e1d-4b2c-aa47-2523e35e2120",
+ "serviceName": "vCPEResCust 2019-10-01 _2364",
+ "serviceVersion": "1.0",
+ "serviceUUID": "d3aac917-543d-4421-b6d7-ba2b65884eb7",
+ "serviceDescription": "catalog service description",
+ "serviceInvariantUUID": "d0568a10-a0e0-4efa-b698-ad3772f2e30f",
+ "resources": [{
+ "resourceInstanceName": "TunnelXConn_2019-10-01 03:23:27.409 0",
+ "resourceName": "TunnelXConn_2019-10-01 03:23:27.409",
+ "resourceVersion": "1.0",
+ "resoucreType": "VF",
+ "resourceUUID": "629f9662-55bb-430c-8f22-5204c37c9898",
+ "resourceInvariantUUID": "3a367ac8-5dff-4325-a0e7-9e0299d22152",
+ "resourceCustomizationUUID": "4e0249f0-5118-4323-b5e9-0783ad1123ba",
+ "category": "Allotted Resource",
+ "subcategory": "TunnelXConn",
+ "artifacts": []
+ }, {
+ "resourceInstanceName": "BRG_2019-10-01 03:23:27.409 0",
+ "resourceName": "BRG_2019-10-01 03:23:27.409",
+ "resourceVersion": "1.0",
+ "resoucreType": "VF",
+ "resourceUUID": "abafad1c-47fc-4d30-a079-be14871f0c6a",
+ "resourceInvariantUUID": "05a482b5-ec0d-45cb-ae95-397ce6765c9e",
+ "resourceCustomizationUUID": "aff592e4-cfc7-43ce-abea-f026b56995ab",
+ "category": "Allotted Resource",
+ "subcategory": "BRG",
+ "artifacts": []
+ }, {
+ "resourceInstanceName": "vCPE_vgw bf175ab0-4fa2 0",
+ "resourceName": "vCPE_vgw bf175ab0-4fa2",
+ "resourceVersion": "1.0",
+ "resoucreType": "VF",
+ "resourceUUID": "df1ce337-78b2-4e43-afb8-081d5ca175fc",
+ "resourceInvariantUUID": "1d2b0362-af54-43b9-9a5b-2dba408742b2",
+ "resourceCustomizationUUID": "6f2c39b3-d14f-4575-97b3-c93a7620591e",
+ "category": "Generic",
+ "subcategory": "Abstract",
+ "artifacts": [{
+ "artifactName": "vf-license-model.xml",
+ "artifactType": "VF_LICENSE",
+ "artifactURL": "/vf-license-model.xml",
+ "artifactChecksum": "YjBlNjhjNGU0ZjZkYzUwYjlhODg2NDMzZjk0MGNjMzM\u003d",
+ "artifactDescription": "VF license file",
+ "artifactTimeout": 120,
+ "artifactUUID": "2f362774-ac17-48a9-9c93-632b661ea689",
+ "artifactVersion": "1"
+ }, {
+ "artifactName": "vcpe_vgwbf175ab04fa20_modules.json",
+ "artifactType": "VF_MODULES_METADATA",
+ "artifactURL": "/vcpe_vgwbf175ab04fa20_modules.json",
+ "artifactChecksum": "NTg2NjQxOWNkNmNjY2EzY2M3ZGJjM2YyOTI2ZjlkNzU\u003d",
+ "artifactDescription": "Auto-generated VF Modules information artifact",
+ "artifactTimeout": 120,
+ "artifactUUID": "b02ab2a2-a657-44c4-ae88-578fe0caa30d",
+ "artifactVersion": "1"
+ }, {
+ "artifactName": "base_vcpe_vgw.yaml",
+ "artifactType": "HEAT",
+ "artifactURL": "/base_vcpe_vgw.yaml",
+ "artifactChecksum": "OTI1ODIwZTFhMjc3ZDVhYWU4ZjJjMTEzZGZiZTY4Zjg\u003d",
+ "artifactDescription": "created from csar",
+ "artifactTimeout": 120,
+ "artifactUUID": "e3a33b76-1f8a-44ba-808b-8a4c79e4b44a",
+ "artifactVersion": "2"
+ }, {
+ "artifactName": "vendor-license-model.xml",
+ "artifactType": "VENDOR_LICENSE",
+ "artifactURL": "/vendor-license-model.xml",
+ "artifactChecksum": "YThkMTY5ZWU5MDg5YmI5MWNiY2M5OTg1MTdjMzQzNWM\u003d",
+ "artifactDescription": " Vendor license file",
+ "artifactTimeout": 120,
+ "artifactUUID": "3eae4c31-394f-497b-83e9-110e87e40964",
+ "artifactVersion": "1"
+ }, {
+ "artifactName": "base_vcpe_vgw.env",
+ "artifactType": "HEAT_ENV",
+ "artifactURL": "/base_vcpe_vgw.env",
+ "artifactChecksum": "MTY4ZDUxYTUwNjExN2JhZjQzNGE5ZWQ3MGUxM2IyYWM\u003d",
+ "artifactDescription": "Auto-generated HEAT Environment deployment artifact",
+ "artifactTimeout": 120,
+ "artifactUUID": "9b73763b-0f60-47c3-8939-cf2f819bc75a",
+ "artifactVersion": "2",
+ "generatedFromUUID": "e3a33b76-1f8a-44ba-808b-8a4c79e4b44a"
+ }]
+ }],
+ "serviceArtifacts": [{
+ "artifactName": "service-Vcperescust201910012364-template.yml",
+ "artifactType": "TOSCA_TEMPLATE",
+ "artifactURL": "/service-Vcperescust201910012364-template.yml",
+ "artifactChecksum": "ZDRmZTZkNTkyNTBhMjM1Nzk1NzBiMjdkYmVjMWJiZjI\u003d",
+ "artifactDescription": "TOSCA representation of the asset",
+ "artifactTimeout": 0,
+ "artifactUUID": "50f4eed5-3330-46c3-89e8-a56d2de4354b",
+ "artifactVersion": "1"
+ }, {
+ "artifactName": "service-Vcperescust201910012364-csar.csar",
+ "artifactType": "TOSCA_CSAR",
+ "artifactURL": "/service-Vcperescust201910012364-csar.csar",
+ "artifactChecksum": "ZDlmMTMyYjVjZmMxNmQ1MDM2NmIyN2ZlYWUzNjM5ODU\u003d",
+ "artifactDescription": "TOSCA definition package of the asset",
+ "artifactTimeout": 0,
+ "artifactUUID": "2da4976c-1532-4b1e-b662-d80f487d1661",
+ "artifactVersion": "1"
+ }],
+ "workloadContext": "Production"
+} \ No newline at end of file
diff --git a/asdc-controller/src/test/resources/resource-examples/vcpe-rescust/service-Vcperescust201910012364-csar.csar b/asdc-controller/src/test/resources/resource-examples/vcpe-rescust/service-Vcperescust201910012364-csar.csar
new file mode 100644
index 0000000000..29d2d72bf1
--- /dev/null
+++ b/asdc-controller/src/test/resources/resource-examples/vcpe-rescust/service-Vcperescust201910012364-csar.csar
Binary files differ
diff --git a/asdc-controller/src/test/resources/resource-examples/vcpe-rescust/service-Vcperescust201910012364-template.yml b/asdc-controller/src/test/resources/resource-examples/vcpe-rescust/service-Vcperescust201910012364-template.yml
new file mode 100644
index 0000000000..1fe6117f59
--- /dev/null
+++ b/asdc-controller/src/test/resources/resource-examples/vcpe-rescust/service-Vcperescust201910012364-template.yml
@@ -0,0 +1,822 @@
+tosca_definitions_version: tosca_simple_yaml_1_1
+metadata:
+ invariantUUID: d0568a10-a0e0-4efa-b698-ad3772f2e30f
+ UUID: d3aac917-543d-4421-b6d7-ba2b65884eb7
+ name: vCPEResCust 2019-10-01 _2364
+ description: catalog service description
+ type: Service
+ category: Network L1-3
+ serviceType: ''
+ serviceRole: ''
+ instantiationType: A-la-carte
+ serviceEcompNaming: true
+ ecompGeneratedNaming: true
+ namingPolicy: ''
+ environmentContext: General_Revenue-Bearing
+imports:
+- nodes:
+ file: nodes.yml
+- datatypes:
+ file: data.yml
+- capabilities:
+ file: capabilities.yml
+- relationships:
+ file: relationships.yml
+- groups:
+ file: groups.yml
+- policies:
+ file: policies.yml
+- annotations:
+ file: annotations.yml
+- service-vCPEResCust 2019-10-01 _2364-interface:
+ file: service-Vcperescust201910012364-template-interface.yml
+- resource-TunnelXConn_2019-10-01 03:23:27.409:
+ file: resource-Tunnelxconn20191001032327409-template.yml
+- resource-TunnelXConn_2019-10-01 03:23:27.409-interface:
+ file: resource-Tunnelxconn20191001032327409-template-interface.yml
+- resource-BRG_2019-10-01 03:23:27.409:
+ file: resource-Brg20191001032327409-template.yml
+- resource-BRG_2019-10-01 03:23:27.409-interface:
+ file: resource-Brg20191001032327409-template-interface.yml
+- resource-vCPE_vgw bf175ab0-4fa2:
+ file: resource-VcpeVgwBf175ab04fa2-template.yml
+- resource-vCPE_vgw bf175ab0-4fa2-interface:
+ file: resource-VcpeVgwBf175ab04fa2-template-interface.yml
+topology_template:
+ node_templates:
+ vCPE_vgw bf175ab0-4fa2 0:
+ type: org.openecomp.resource.vf.VcpeVgwBf175ab04fa2
+ metadata:
+ invariantUUID: 1d2b0362-af54-43b9-9a5b-2dba408742b2
+ UUID: d9f21a73-33cb-49b5-9e5c-87c2c7dd93dc
+ customizationUUID: 6f2c39b3-d14f-4575-97b3-c93a7620591e
+ version: '1.0'
+ name: vCPE_vgw bf175ab0-4fa2
+ description: vendor software product
+ type: VF
+ category: Generic
+ subcategory: Abstract
+ resourceVendor: 6dccd115-ce6a-4b1a-88aa
+ resourceVendorRelease: '1.0'
+ resourceVendorModelNumber: ''
+ properties:
+ vf_module_id: vCPE_Customer_GW
+ vcpe_image_name: PUT THE IMAGE NAME HERE (Ubuntu 1604 SUGGESTED)
+ skip_post_instantiation_configuration: true
+ vgw_name_0: zdcpe1cpe01gw01
+ public_net_id: PUT THE PUBLIC NETWORK ID HERE
+ onap_private_subnet_id: PUT THE ONAP PRIVATE SUBNETWORK NAME HERE
+ nexus_artifact_repo: https://nexus.onap.org
+ onap_private_net_cidr: 10.0.0.0/16
+ cpe_public_net_id: zdfw1cpe01_public
+ mux_ip_addr: 10.5.0.20
+ mux_gw_private_net_id: zdfw1muxgw01_private
+ dcae_collector_ip: 10.0.4.1
+ vnf_id: vCPE_Infrastructure_GW_demo_app
+ cpe_public_net_cidr: 10.2.0.0/24
+ vg_vgmux_tunnel_vni: 100.0
+ dcae_collector_port: '8081'
+ mux_gw_private_net_cidr: 10.5.0.0/24
+ mux_gw_private_subnet_id: zdfw1muxgw01_sub_private
+ nf_naming:
+ ecomp_generated_naming: true
+ multi_stage_design: 'false'
+ onap_private_net_id: PUT THE ONAP PRIVATE NETWORK NAME HERE
+ availability_zone_max_count: 1
+ vgw_private_ip_0: 10.5.0.21
+ pub_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDQXYJYYi3/OUZXUiCYWdtc7K0m5C0dJKVxPG0eI8EWZrEHYdfYe6WoTSDJCww+1qlBSpA5ac/Ba4Wn9vh+lR1vtUKkyIC/nrYb90ReUd385Glkgzrfh5HdR5y5S2cL/Frh86lAn9r6b3iWTJD8wBwXFyoe1S2nMTOIuG4RPNvfmyCTYVh8XTCCE8HPvh3xv2r4egawG1P4Q4UDwk+hDBXThY2KS8M5/8EMyxHV0ImpLbpYCTBA6KYDIRtqmgS6iKyy8v2D1aSY5mc9J0T5t9S2Gv+VZQNWQDDKNFnxqYaAo1uEoq/i1q63XC5AD3ckXb2VT6dp23BQMdDfbHyUWfJN
+ vgw_private_ip_1: 10.0.101.30
+ key_name: vgw_key
+ vcpe_flavor_name: PUT THE FLAVOR NAME HERE (MEDIUM FLAVOR SUGGESTED)
+ script_version: 1.5.0-SNAPSHOT
+ cpe_public_subnet_id: zdfw1cpe01_sub_public
+ cloud_env: PUT THE CLOUD PROVIDED HERE (openstack or rackspace)
+ capabilities:
+ abstract_vgw.network.incoming.packets_vgw_vgw_private_0_port:
+ properties:
+ unit: packet
+ description: Number of incoming packets
+ type: Cumulative
+ category: network
+ abstract_vgw.disk.read.bytes_vgw:
+ properties:
+ unit: B
+ description: Volume of reads
+ type: Cumulative
+ category: compute
+ abstract_vgw.network.incoming.bytes.rate_vgw_vgw_private_0_port:
+ properties:
+ unit: B/s
+ description: Average rate of incoming bytes
+ type: Gauge
+ category: network
+ abstract_vgw.disk.read.requests_vgw:
+ properties:
+ unit: request
+ description: Number of read requests
+ type: Cumulative
+ category: compute
+ abstract_vgw.disk.write.bytes_vgw:
+ properties:
+ unit: B
+ description: Volume of writes
+ type: Cumulative
+ category: compute
+ abstract_vgw.disk.capacity_vgw:
+ properties:
+ unit: B
+ description: The amount of disk that the instance can see
+ type: Gauge
+ category: disk
+ abstract_vgw.network.incoming.bytes_vgw_vgw_private_1_port:
+ properties:
+ unit: B
+ description: Number of incoming bytes
+ type: Cumulative
+ category: network
+ abstract_vgw.port_mirroring_vgw_vgw_private_2_port:
+ properties:
+ connection_point:
+ network_role:
+ get_input: port_vgw_private_2_port_network_role
+ nfc_naming_code: vgw
+ abstract_vgw.disk.write.requests_vgw:
+ properties:
+ unit: request
+ description: Number of write requests
+ type: Cumulative
+ category: compute
+ abstract_vgw.disk.device.read.requests.rate_vgw:
+ properties:
+ unit: request/s
+ description: Average rate of read requests
+ type: Gauge
+ category: disk
+ abstract_vgw.port_mirroring_vgw_vgw_private_1_port:
+ properties:
+ connection_point:
+ network_role:
+ get_input: port_vgw_private_1_port_network_role
+ nfc_naming_code: vgw
+ abstract_vgw.network.outpoing.packets_vgw_vgw_private_0_port:
+ properties:
+ unit: packet
+ description: Number of outgoing packets
+ type: Cumulative
+ category: network
+ abstract_vgw.memory.resident_vgw:
+ properties:
+ unit: MB
+ description: Volume of RAM used by the instance on the physical machine
+ type: Gauge
+ category: compute
+ abstract_vgw.disk.allocation_vgw:
+ properties:
+ unit: B
+ description: The amount of disk occupied by the instance on the host machine
+ type: Gauge
+ category: disk
+ abstract_vgw.network.incoming.bytes_vgw_vgw_private_0_port:
+ properties:
+ unit: B
+ description: Number of incoming bytes
+ type: Cumulative
+ category: network
+ abstract_vgw.cpu_vgw:
+ properties:
+ unit: ns
+ description: CPU time used
+ type: Cumulative
+ category: compute
+ abstract_vgw.network.incoming.bytes_vgw_vgw_private_2_port:
+ properties:
+ unit: B
+ description: Number of incoming bytes
+ type: Cumulative
+ category: network
+ abstract_vgw.network.outpoing.packets_vgw_vgw_private_1_port:
+ properties:
+ unit: packet
+ description: Number of outgoing packets
+ type: Cumulative
+ category: network
+ abstract_vgw.disk.device.read.bytes_vgw:
+ properties:
+ unit: B
+ description: Volume of reads
+ type: Cumulative
+ category: disk
+ abstract_vgw.disk.device.write.bytes.rate_vgw:
+ properties:
+ unit: B/s
+ description: Average rate of writes
+ type: Gauge
+ category: disk
+ abstract_vgw.network.incoming.bytes.rate_vgw_vgw_private_2_port:
+ properties:
+ unit: B/s
+ description: Average rate of incoming bytes
+ type: Gauge
+ category: network
+ abstract_vgw.network.incoming.packets.rate_vgw_vgw_private_0_port:
+ properties:
+ unit: packet/s
+ description: Average rate of incoming packets
+ type: Gauge
+ category: network
+ abstract_vgw.disk.device.iops_vgw:
+ properties:
+ unit: count/s
+ description: Average disk iops per device
+ type: Gauge
+ category: disk
+ abstract_vgw.disk.latency_vgw:
+ properties:
+ unit: ms
+ description: Average disk latency
+ type: Gauge
+ category: disk
+ abstract_vgw.network.incoming.packets_vgw_vgw_private_2_port:
+ properties:
+ unit: packet
+ description: Number of incoming packets
+ type: Cumulative
+ category: network
+ abstract_vgw.disk.device.allocation_vgw:
+ properties:
+ unit: B
+ description: The amount of disk per device occupied by the instance on the host machine
+ type: Gauge
+ category: disk
+ abstract_vgw.network.outgoing.bytes.rate_vgw_vgw_private_0_port:
+ properties:
+ unit: B/s
+ description: Average rate of outgoing bytes
+ type: Gauge
+ category: network
+ abstract_vgw.instance_vgw:
+ properties:
+ unit: instance
+ description: Existence of instance
+ type: Gauge
+ category: compute
+ abstract_vgw.memory_vgw:
+ properties:
+ unit: MB
+ description: Volume of RAM allocated to the instance
+ type: Gauge
+ category: compute
+ abstract_vgw.disk.device.write.requests_vgw:
+ properties:
+ unit: request
+ description: Number of write requests
+ type: Cumulative
+ category: disk
+ abstract_vgw.cpu.delta_vgw:
+ properties:
+ unit: ns
+ description: CPU time used since previous datapoint
+ type: Delta
+ category: compute
+ abstract_vgw.disk.device.latency_vgw:
+ properties:
+ unit: ms
+ description: Average disk latency per device
+ type: Gauge
+ category: disk
+ abstract_vgw.port_mirroring_vgw_vgw_private_0_port:
+ properties:
+ connection_point:
+ network_role:
+ get_input: port_vgw_private_0_port_network_role
+ nfc_naming_code: vgw
+ abstract_vgw.disk.iops_vgw:
+ properties:
+ unit: count/s
+ description: Average disk iops
+ type: Gauge
+ category: disk
+ abstract_vgw.cpu_util_vgw:
+ properties:
+ unit: '%'
+ description: Average CPU utilization
+ type: Gauge
+ category: compute
+ abstract_vgw.network.outgoing.bytes.rate_vgw_vgw_private_2_port:
+ properties:
+ unit: B/s
+ description: Average rate of outgoing bytes
+ type: Gauge
+ category: network
+ abstract_vgw.network.incoming.packets.rate_vgw_vgw_private_1_port:
+ properties:
+ unit: packet/s
+ description: Average rate of incoming packets
+ type: Gauge
+ category: network
+ abstract_vgw.network.outgoing.bytes_vgw_vgw_private_0_port:
+ properties:
+ unit: B
+ description: Number of outgoing bytes
+ type: Cumulative
+ category: network
+ abstract_vgw.network.outgoing.packets.rate_vgw_vgw_private_1_port:
+ properties:
+ unit: packet/s
+ description: Average rate of outgoing packets
+ type: Gauge
+ category: network
+ abstract_vgw.disk.usage_vgw:
+ properties:
+ unit: B
+ description: The physical size in bytes of the image container on the host
+ type: Gauge
+ category: disk
+ abstract_vgw.disk.write.requests.rate_vgw:
+ properties:
+ unit: request/s
+ description: Average rate of write requests
+ type: Gauge
+ category: compute
+ abstract_vgw.network.outgoing.bytes_vgw_vgw_private_1_port:
+ properties:
+ unit: B
+ description: Number of outgoing bytes
+ type: Cumulative
+ category: network
+ abstract_vgw.scalable_vgw:
+ properties:
+ max_instances: 1
+ min_instances: 1
+ abstract_vgw.disk.device.read.bytes.rate_vgw:
+ properties:
+ unit: B/s
+ description: Average rate of reads
+ type: Gauge
+ category: disk
+ abstract_vgw.network.outgoing.packets.rate_vgw_vgw_private_0_port:
+ properties:
+ unit: packet/s
+ description: Average rate of outgoing packets
+ type: Gauge
+ category: network
+ abstract_vgw.disk.device.read.requests_vgw:
+ properties:
+ unit: request
+ description: Number of read requests
+ type: Cumulative
+ category: disk
+ abstract_vgw.network.outgoing.bytes.rate_vgw_vgw_private_1_port:
+ properties:
+ unit: B/s
+ description: Average rate of outgoing bytes
+ type: Gauge
+ category: network
+ abstract_vgw.disk.device.write.requests.rate_vgw:
+ properties:
+ unit: request/s
+ description: Average rate of write requests
+ type: Gauge
+ category: disk
+ abstract_vgw.disk.device.usage_vgw:
+ properties:
+ unit: B
+ description: The physical size in bytes of the image container on the host per device
+ type: Gauge
+ category: disk
+ abstract_vgw.disk.write.bytes.rate_vgw:
+ properties:
+ unit: B/s
+ description: Average rate of writes
+ type: Gauge
+ category: compute
+ abstract_vgw.disk.device.write.bytes_vgw:
+ properties:
+ unit: B
+ description: Volume of writes
+ type: Cumulative
+ category: disk
+ abstract_vgw.memory.usage_vgw:
+ properties:
+ unit: MB
+ description: Volume of RAM used by the instance from the amount of its allocated memory
+ type: Gauge
+ category: compute
+ abstract_vgw.network.outgoing.packets.rate_vgw_vgw_private_2_port:
+ properties:
+ unit: packet/s
+ description: Average rate of outgoing packets
+ type: Gauge
+ category: network
+ abstract_vgw.disk.root.size_vgw:
+ properties:
+ unit: GB
+ description: Size of root disk
+ type: Gauge
+ category: compute
+ abstract_vgw.disk.ephemeral.size_vgw:
+ properties:
+ unit: GB
+ description: Size of ephemeral disk
+ type: Gauge
+ category: compute
+ abstract_vgw.disk.device.capacity_vgw:
+ properties:
+ unit: B
+ description: The amount of disk per device that the instance can see
+ type: Gauge
+ category: disk
+ abstract_vgw.disk.read.bytes.rate_vgw:
+ properties:
+ unit: B/s
+ description: Average rate of reads
+ type: Gauge
+ category: compute
+ abstract_vgw.endpoint_vgw:
+ properties:
+ secure: true
+ abstract_vgw.network.outpoing.packets_vgw_vgw_private_2_port:
+ properties:
+ unit: packet
+ description: Number of outgoing packets
+ type: Cumulative
+ category: network
+ abstract_vgw.vcpus_vgw:
+ properties:
+ unit: vcpu
+ description: Number of virtual CPUs allocated to the instance
+ type: Gauge
+ category: compute
+ abstract_vgw.network.outgoing.bytes_vgw_vgw_private_2_port:
+ properties:
+ unit: B
+ description: Number of outgoing bytes
+ type: Cumulative
+ category: network
+ abstract_vgw.network.incoming.packets_vgw_vgw_private_1_port:
+ properties:
+ unit: packet
+ description: Number of incoming packets
+ type: Cumulative
+ category: network
+ abstract_vgw.network.incoming.packets.rate_vgw_vgw_private_2_port:
+ properties:
+ unit: packet/s
+ description: Average rate of incoming packets
+ type: Gauge
+ category: network
+ abstract_vgw.network.incoming.bytes.rate_vgw_vgw_private_1_port:
+ properties:
+ unit: B/s
+ description: Average rate of incoming bytes
+ type: Gauge
+ category: network
+ BRG_2019-10-01 03:23:27.409 0:
+ type: org.openecomp.resource.vf.Brg2019100103:23:27409
+ metadata:
+ invariantUUID: 05a482b5-ec0d-45cb-ae95-397ce6765c9e
+ UUID: 12519dd0-46ca-46da-9dcc-c6155b2a6d15
+ customizationUUID: aff592e4-cfc7-43ce-abea-f026b56995ab
+ version: '1.0'
+ name: BRG_2019-10-01 03:23:27.409
+ description: Alloted Resource BRG
+ type: VF
+ category: Allotted Resource
+ subcategory: BRG
+ resourceVendor: ONAP
+ resourceVendorRelease: '1.0'
+ resourceVendorModelNumber: ''
+ properties:
+ nf_naming:
+ ecomp_generated_naming: true
+ skip_post_instantiation_configuration: true
+ multi_stage_design: 'false'
+ availability_zone_max_count: 1
+ nf_role: BRG
+ nf_type: BRG
+ TunnelXConn_2019-10-01 03:23:27.409 0:
+ type: org.openecomp.resource.vf.Tunnelxconn2019100103:23:27409
+ metadata:
+ invariantUUID: 3a367ac8-5dff-4325-a0e7-9e0299d22152
+ UUID: 93d3e01d-4f8c-4a60-99f2-26b64c69bc11
+ customizationUUID: 4e0249f0-5118-4323-b5e9-0783ad1123ba
+ version: '1.0'
+ name: TunnelXConn_2019-10-01 03:23:27.409
+ description: Alloted Resource TunnelXConn
+ type: VF
+ category: Allotted Resource
+ subcategory: TunnelXConn
+ resourceVendor: ONAP
+ resourceVendorRelease: '1.0'
+ resourceVendorModelNumber: ''
+ properties:
+ nf_naming:
+ ecomp_generated_naming: true
+ skip_post_instantiation_configuration: true
+ multi_stage_design: 'false'
+ availability_zone_max_count: 1
+ nf_role: TunnelXConn
+ nf_type: TunnelXConn
+ groups:
+ vcpe_vgwbf175ab04fa20..VcpeVgwBf175ab04fa2..base_vcpe_vgw..module-0:
+ type: org.openecomp.groups.VfModule
+ metadata:
+ vfModuleModelName: VcpeVgwBf175ab04fa2..base_vcpe_vgw..module-0
+ vfModuleModelInvariantUUID: 7caf746f-46c6-4e47-bbfc-9374b1c17ba1
+ vfModuleModelUUID: a4654496-9862-47e4-9640-d84708ea8bfb
+ vfModuleModelVersion: '1'
+ vfModuleModelCustomizationUUID: ddd095d2-c2ba-48fe-90f4-e3f6fc806d7e
+ properties:
+ min_vf_module_instances: 1
+ vf_module_label: base_vcpe_vgw
+ max_vf_module_instances: 1
+ vf_module_type: Base
+ isBase: true
+ initial_count: 1
+ volume_group: false
+ substitution_mappings:
+ node_type: org.openecomp.service.Vcperescust201910012364
+ capabilities:
+ vcpe_vgwbf175ab04fa20.abstract_vgw.network.incoming.bytes_vgw_vgw_private_0_port:
+ - vCPE_vgw bf175ab0-4fa2 0
+ - abstract_vgw.network.incoming.bytes_vgw_vgw_private_0_port
+ vcpe_vgwbf175ab04fa20.abstract_vgw.network.incoming.packets_vgw_vgw_private_2_port:
+ - vCPE_vgw bf175ab0-4fa2 0
+ - abstract_vgw.network.incoming.packets_vgw_vgw_private_2_port
+ vcpe_vgwbf175ab04fa20.abstract_vgw.network.incoming.packets.rate_vgw_vgw_private_1_port:
+ - vCPE_vgw bf175ab0-4fa2 0
+ - abstract_vgw.network.incoming.packets.rate_vgw_vgw_private_1_port
+ vcpe_vgwbf175ab04fa20.abstract_vgw.feature_vgw_vgw_private_2_port:
+ - vCPE_vgw bf175ab0-4fa2 0
+ - abstract_vgw.feature_vgw_vgw_private_2_port
+ vcpe_vgwbf175ab04fa20.abstract_vgw.disk.write.requests.rate_vgw:
+ - vCPE_vgw bf175ab0-4fa2 0
+ - abstract_vgw.disk.write.requests.rate_vgw
+ vcpe_vgwbf175ab04fa20.abstract_vgw.disk.device.iops_vgw:
+ - vCPE_vgw bf175ab0-4fa2 0
+ - abstract_vgw.disk.device.iops_vgw
+ vcpe_vgwbf175ab04fa20.abstract_vgw.disk.device.read.requests.rate_vgw:
+ - vCPE_vgw bf175ab0-4fa2 0
+ - abstract_vgw.disk.device.read.requests.rate_vgw
+ vcpe_vgwbf175ab04fa20.abstract_vgw.attachment_vgw_vgw_private_0_port:
+ - vCPE_vgw bf175ab0-4fa2 0
+ - abstract_vgw.attachment_vgw_vgw_private_0_port
+ vcpe_vgwbf175ab04fa20.abstract_vgw.disk.write.requests_vgw:
+ - vCPE_vgw bf175ab0-4fa2 0
+ - abstract_vgw.disk.write.requests_vgw
+ vcpe_vgwbf175ab04fa20.abstract_vgw.endpoint_vgw:
+ - vCPE_vgw bf175ab0-4fa2 0
+ - abstract_vgw.endpoint_vgw
+ vcpe_vgwbf175ab04fa20.abstract_vgw.network.outgoing.bytes_vgw_vgw_private_2_port:
+ - vCPE_vgw bf175ab0-4fa2 0
+ - abstract_vgw.network.outgoing.bytes_vgw_vgw_private_2_port
+ vcpe_vgwbf175ab04fa20.abstract_vgw.disk.device.latency_vgw:
+ - vCPE_vgw bf175ab0-4fa2 0
+ - abstract_vgw.disk.device.latency_vgw
+ vcpe_vgwbf175ab04fa20.abstract_vgw.network.incoming.bytes_vgw_vgw_private_1_port:
+ - vCPE_vgw bf175ab0-4fa2 0
+ - abstract_vgw.network.incoming.bytes_vgw_vgw_private_1_port
+ vcpe_vgwbf175ab04fa20.abstract_vgw.disk.device.write.bytes_vgw:
+ - vCPE_vgw bf175ab0-4fa2 0
+ - abstract_vgw.disk.device.write.bytes_vgw
+ vcpe_vgwbf175ab04fa20.abstract_vgw.memory_vgw:
+ - vCPE_vgw bf175ab0-4fa2 0
+ - abstract_vgw.memory_vgw
+ vcpe_vgwbf175ab04fa20.abstract_vgw.disk.device.write.requests.rate_vgw:
+ - vCPE_vgw bf175ab0-4fa2 0
+ - abstract_vgw.disk.device.write.requests.rate_vgw
+ vcpe_vgwbf175ab04fa20.abstract_vgw.disk.read.bytes.rate_vgw:
+ - vCPE_vgw bf175ab0-4fa2 0
+ - abstract_vgw.disk.read.bytes.rate_vgw
+ vcpe_vgwbf175ab04fa20.abstract_vgw.network.outpoing.packets_vgw_vgw_private_1_port:
+ - vCPE_vgw bf175ab0-4fa2 0
+ - abstract_vgw.network.outpoing.packets_vgw_vgw_private_1_port
+ vcpe_vgwbf175ab04fa20.abstract_vgw.feature_vgw_vgw_private_1_port:
+ - vCPE_vgw bf175ab0-4fa2 0
+ - abstract_vgw.feature_vgw_vgw_private_1_port
+ vcpe_vgwbf175ab04fa20.abstract_vgw.port_mirroring_vgw_vgw_private_0_port:
+ - vCPE_vgw bf175ab0-4fa2 0
+ - abstract_vgw.port_mirroring_vgw_vgw_private_0_port
+ vcpe_vgwbf175ab04fa20.abstract_vgw.network.outgoing.packets.rate_vgw_vgw_private_1_port:
+ - vCPE_vgw bf175ab0-4fa2 0
+ - abstract_vgw.network.outgoing.packets.rate_vgw_vgw_private_1_port
+ vcpe_vgwbf175ab04fa20.abstract_vgw.binding_vgw_vgw_private_1_port:
+ - vCPE_vgw bf175ab0-4fa2 0
+ - abstract_vgw.binding_vgw_vgw_private_1_port
+ vcpe_vgwbf175ab04fa20.abstract_vgw.attachment_vgw_vgw_private_1_port:
+ - vCPE_vgw bf175ab0-4fa2 0
+ - abstract_vgw.attachment_vgw_vgw_private_1_port
+ vcpe_vgwbf175ab04fa20.abstract_vgw.disk.iops_vgw:
+ - vCPE_vgw bf175ab0-4fa2 0
+ - abstract_vgw.disk.iops_vgw
+ vcpe_vgwbf175ab04fa20.abstract_vgw.forwarder_vgw_vgw_private_2_port:
+ - vCPE_vgw bf175ab0-4fa2 0
+ - abstract_vgw.forwarder_vgw_vgw_private_2_port
+ vcpe_vgwbf175ab04fa20.abstract_vgw.network.incoming.bytes_vgw_vgw_private_2_port:
+ - vCPE_vgw bf175ab0-4fa2 0
+ - abstract_vgw.network.incoming.bytes_vgw_vgw_private_2_port
+ vcpe_vgwbf175ab04fa20.abstract_vgw.disk.ephemeral.size_vgw:
+ - vCPE_vgw bf175ab0-4fa2 0
+ - abstract_vgw.disk.ephemeral.size_vgw
+ vcpe_vgwbf175ab04fa20.abstract_vgw.port_mirroring_vgw_vgw_private_1_port:
+ - vCPE_vgw bf175ab0-4fa2 0
+ - abstract_vgw.port_mirroring_vgw_vgw_private_1_port
+ vcpe_vgwbf175ab04fa20.abstract_vgw.network.incoming.packets_vgw_vgw_private_1_port:
+ - vCPE_vgw bf175ab0-4fa2 0
+ - abstract_vgw.network.incoming.packets_vgw_vgw_private_1_port
+ vcpe_vgwbf175ab04fa20.abstract_vgw.host_vgw:
+ - vCPE_vgw bf175ab0-4fa2 0
+ - abstract_vgw.host_vgw
+ vcpe_vgwbf175ab04fa20.abstract_vgw.memory.usage_vgw:
+ - vCPE_vgw bf175ab0-4fa2 0
+ - abstract_vgw.memory.usage_vgw
+ vcpe_vgwbf175ab04fa20.abstract_vgw.network.outgoing.packets.rate_vgw_vgw_private_0_port:
+ - vCPE_vgw bf175ab0-4fa2 0
+ - abstract_vgw.network.outgoing.packets.rate_vgw_vgw_private_0_port
+ vcpe_vgwbf175ab04fa20.abstract_vgw.network.outpoing.packets_vgw_vgw_private_2_port:
+ - vCPE_vgw bf175ab0-4fa2 0
+ - abstract_vgw.network.outpoing.packets_vgw_vgw_private_2_port
+ vcpe_vgwbf175ab04fa20.abstract_vgw.disk.device.write.bytes.rate_vgw:
+ - vCPE_vgw bf175ab0-4fa2 0
+ - abstract_vgw.disk.device.write.bytes.rate_vgw
+ vcpe_vgwbf175ab04fa20.abstract_vgw.attachment_vgw_vgw_private_2_port:
+ - vCPE_vgw bf175ab0-4fa2 0
+ - abstract_vgw.attachment_vgw_vgw_private_2_port
+ vcpe_vgwbf175ab04fa20.abstract_vgw.binding_vgw_vgw_private_0_port:
+ - vCPE_vgw bf175ab0-4fa2 0
+ - abstract_vgw.binding_vgw_vgw_private_0_port
+ vcpe_vgwbf175ab04fa20.abstract_vgw.disk.read.bytes_vgw:
+ - vCPE_vgw bf175ab0-4fa2 0
+ - abstract_vgw.disk.read.bytes_vgw
+ vcpe_vgwbf175ab04fa20.abstract_vgw.disk.usage_vgw:
+ - vCPE_vgw bf175ab0-4fa2 0
+ - abstract_vgw.disk.usage_vgw
+ vcpe_vgwbf175ab04fa20.abstract_vgw.network.outgoing.bytes_vgw_vgw_private_0_port:
+ - vCPE_vgw bf175ab0-4fa2 0
+ - abstract_vgw.network.outgoing.bytes_vgw_vgw_private_0_port
+ vcpe_vgwbf175ab04fa20.abstract_vgw.cpu_util_vgw:
+ - vCPE_vgw bf175ab0-4fa2 0
+ - abstract_vgw.cpu_util_vgw
+ vcpe_vgwbf175ab04fa20.abstract_vgw.network.incoming.packets.rate_vgw_vgw_private_0_port:
+ - vCPE_vgw bf175ab0-4fa2 0
+ - abstract_vgw.network.incoming.packets.rate_vgw_vgw_private_0_port
+ vcpe_vgwbf175ab04fa20.abstract_vgw.network.outgoing.bytes.rate_vgw_vgw_private_2_port:
+ - vCPE_vgw bf175ab0-4fa2 0
+ - abstract_vgw.network.outgoing.bytes.rate_vgw_vgw_private_2_port
+ vcpe_vgwbf175ab04fa20.abstract_vgw.memory.resident_vgw:
+ - vCPE_vgw bf175ab0-4fa2 0
+ - abstract_vgw.memory.resident_vgw
+ vcpe_vgwbf175ab04fa20.abstract_vgw.disk.read.requests_vgw:
+ - vCPE_vgw bf175ab0-4fa2 0
+ - abstract_vgw.disk.read.requests_vgw
+ vcpe_vgwbf175ab04fa20.abstract_vgw.binding_vgw:
+ - vCPE_vgw bf175ab0-4fa2 0
+ - abstract_vgw.binding_vgw
+ vcpe_vgwbf175ab04fa20.abstract_vgw.disk.device.usage_vgw:
+ - vCPE_vgw bf175ab0-4fa2 0
+ - abstract_vgw.disk.device.usage_vgw
+ brg_2019100103:23:274090.brg.feature:
+ - BRG_2019-10-01 03:23:27.409 0
+ - brg.feature
+ vcpe_vgwbf175ab04fa20.abstract_vgw.disk.latency_vgw:
+ - vCPE_vgw bf175ab0-4fa2 0
+ - abstract_vgw.disk.latency_vgw
+ vcpe_vgwbf175ab04fa20.abstract_vgw.network.outgoing.bytes.rate_vgw_vgw_private_0_port:
+ - vCPE_vgw bf175ab0-4fa2 0
+ - abstract_vgw.network.outgoing.bytes.rate_vgw_vgw_private_0_port
+ vcpe_vgwbf175ab04fa20.abstract_vgw.cpu_vgw:
+ - vCPE_vgw bf175ab0-4fa2 0
+ - abstract_vgw.cpu_vgw
+ vcpe_vgwbf175ab04fa20.abstract_vgw.network.incoming.bytes.rate_vgw_vgw_private_1_port:
+ - vCPE_vgw bf175ab0-4fa2 0
+ - abstract_vgw.network.incoming.bytes.rate_vgw_vgw_private_1_port
+ vcpe_vgwbf175ab04fa20.abstract_vgw.instance_vgw:
+ - vCPE_vgw bf175ab0-4fa2 0
+ - abstract_vgw.instance_vgw
+ vcpe_vgwbf175ab04fa20.abstract_vgw.disk.allocation_vgw:
+ - vCPE_vgw bf175ab0-4fa2 0
+ - abstract_vgw.disk.allocation_vgw
+ vcpe_vgwbf175ab04fa20.abstract_vgw.disk.write.bytes.rate_vgw:
+ - vCPE_vgw bf175ab0-4fa2 0
+ - abstract_vgw.disk.write.bytes.rate_vgw
+ vcpe_vgwbf175ab04fa20.abstract_vgw.network.incoming.bytes.rate_vgw_vgw_private_2_port:
+ - vCPE_vgw bf175ab0-4fa2 0
+ - abstract_vgw.network.incoming.bytes.rate_vgw_vgw_private_2_port
+ vcpe_vgwbf175ab04fa20.abstract_vgw.network.outgoing.bytes.rate_vgw_vgw_private_1_port:
+ - vCPE_vgw bf175ab0-4fa2 0
+ - abstract_vgw.network.outgoing.bytes.rate_vgw_vgw_private_1_port
+ vcpe_vgwbf175ab04fa20.abstract_vgw.disk.device.capacity_vgw:
+ - vCPE_vgw bf175ab0-4fa2 0
+ - abstract_vgw.disk.device.capacity_vgw
+ vcpe_vgwbf175ab04fa20.abstract_vgw.forwarder_vgw_vgw_private_1_port:
+ - vCPE_vgw bf175ab0-4fa2 0
+ - abstract_vgw.forwarder_vgw_vgw_private_1_port
+ vcpe_vgwbf175ab04fa20.abstract_vgw.disk.device.read.requests_vgw:
+ - vCPE_vgw bf175ab0-4fa2 0
+ - abstract_vgw.disk.device.read.requests_vgw
+ vcpe_vgwbf175ab04fa20.abstract_vgw.disk.device.allocation_vgw:
+ - vCPE_vgw bf175ab0-4fa2 0
+ - abstract_vgw.disk.device.allocation_vgw
+ vcpe_vgwbf175ab04fa20.abstract_vgw.disk.root.size_vgw:
+ - vCPE_vgw bf175ab0-4fa2 0
+ - abstract_vgw.disk.root.size_vgw
+ vcpe_vgwbf175ab04fa20.abstract_vgw.network.incoming.packets_vgw_vgw_private_0_port:
+ - vCPE_vgw bf175ab0-4fa2 0
+ - abstract_vgw.network.incoming.packets_vgw_vgw_private_0_port
+ vcpe_vgwbf175ab04fa20.abstract_vgw.feature_vgw:
+ - vCPE_vgw bf175ab0-4fa2 0
+ - abstract_vgw.feature_vgw
+ vcpe_vgwbf175ab04fa20.abstract_vgw.network.outpoing.packets_vgw_vgw_private_0_port:
+ - vCPE_vgw bf175ab0-4fa2 0
+ - abstract_vgw.network.outpoing.packets_vgw_vgw_private_0_port
+ vcpe_vgwbf175ab04fa20.abstract_vgw.network.incoming.bytes.rate_vgw_vgw_private_0_port:
+ - vCPE_vgw bf175ab0-4fa2 0
+ - abstract_vgw.network.incoming.bytes.rate_vgw_vgw_private_0_port
+ vcpe_vgwbf175ab04fa20.abstract_vgw.network.outgoing.packets.rate_vgw_vgw_private_2_port:
+ - vCPE_vgw bf175ab0-4fa2 0
+ - abstract_vgw.network.outgoing.packets.rate_vgw_vgw_private_2_port
+ vcpe_vgwbf175ab04fa20.abstract_vgw.network.incoming.packets.rate_vgw_vgw_private_2_port:
+ - vCPE_vgw bf175ab0-4fa2 0
+ - abstract_vgw.network.incoming.packets.rate_vgw_vgw_private_2_port
+ vcpe_vgwbf175ab04fa20.abstract_vgw.disk.device.write.requests_vgw:
+ - vCPE_vgw bf175ab0-4fa2 0
+ - abstract_vgw.disk.device.write.requests_vgw
+ vcpe_vgwbf175ab04fa20.abstract_vgw.binding_vgw_vgw_private_2_port:
+ - vCPE_vgw bf175ab0-4fa2 0
+ - abstract_vgw.binding_vgw_vgw_private_2_port
+ tunnelxconn_2019100103:23:274090.tunnelxconn.feature:
+ - TunnelXConn_2019-10-01 03:23:27.409 0
+ - tunnelxconn.feature
+ vcpe_vgwbf175ab04fa20.abstract_vgw.disk.device.read.bytes_vgw:
+ - vCPE_vgw bf175ab0-4fa2 0
+ - abstract_vgw.disk.device.read.bytes_vgw
+ vcpe_vgwbf175ab04fa20.abstract_vgw.network.outgoing.bytes_vgw_vgw_private_1_port:
+ - vCPE_vgw bf175ab0-4fa2 0
+ - abstract_vgw.network.outgoing.bytes_vgw_vgw_private_1_port
+ vcpe_vgwbf175ab04fa20.abstract_vgw.scalable_vgw:
+ - vCPE_vgw bf175ab0-4fa2 0
+ - abstract_vgw.scalable_vgw
+ vcpe_vgwbf175ab04fa20.abstract_vgw.disk.write.bytes_vgw:
+ - vCPE_vgw bf175ab0-4fa2 0
+ - abstract_vgw.disk.write.bytes_vgw
+ vcpe_vgwbf175ab04fa20.abstract_vgw.disk.device.read.bytes.rate_vgw:
+ - vCPE_vgw bf175ab0-4fa2 0
+ - abstract_vgw.disk.device.read.bytes.rate_vgw
+ vcpe_vgwbf175ab04fa20.abstract_vgw.feature_vgw_vgw_private_0_port:
+ - vCPE_vgw bf175ab0-4fa2 0
+ - abstract_vgw.feature_vgw_vgw_private_0_port
+ vcpe_vgwbf175ab04fa20.abstract_vgw.os_vgw:
+ - vCPE_vgw bf175ab0-4fa2 0
+ - abstract_vgw.os_vgw
+ vcpe_vgwbf175ab04fa20.abstract_vgw.vcpus_vgw:
+ - vCPE_vgw bf175ab0-4fa2 0
+ - abstract_vgw.vcpus_vgw
+ vcpe_vgwbf175ab04fa20.abstract_vgw.forwarder_vgw_vgw_private_0_port:
+ - vCPE_vgw bf175ab0-4fa2 0
+ - abstract_vgw.forwarder_vgw_vgw_private_0_port
+ vcpe_vgwbf175ab04fa20.abstract_vgw.port_mirroring_vgw_vgw_private_2_port:
+ - vCPE_vgw bf175ab0-4fa2 0
+ - abstract_vgw.port_mirroring_vgw_vgw_private_2_port
+ vcpe_vgwbf175ab04fa20.abstract_vgw.cpu.delta_vgw:
+ - vCPE_vgw bf175ab0-4fa2 0
+ - abstract_vgw.cpu.delta_vgw
+ vcpe_vgwbf175ab04fa20.abstract_vgw.disk.capacity_vgw:
+ - vCPE_vgw bf175ab0-4fa2 0
+ - abstract_vgw.disk.capacity_vgw
+ requirements:
+ vcpe_vgwbf175ab04fa20.abstract_vgw.dependency_vgw_vgw_private_1_port:
+ - vCPE_vgw bf175ab0-4fa2 0
+ - abstract_vgw.dependency_vgw_vgw_private_1_port
+ tunnelxconn_2019100103:23:274090.tunnelxconn.service_dependency:
+ - TunnelXConn_2019-10-01 03:23:27.409 0
+ - tunnelxconn.service_dependency
+ vcpe_vgwbf175ab04fa20.abstract_vgw.local_storage_vgw:
+ - vCPE_vgw bf175ab0-4fa2 0
+ - abstract_vgw.local_storage_vgw
+ vcpe_vgwbf175ab04fa20.abstract_vgw.dependency_vgw:
+ - vCPE_vgw bf175ab0-4fa2 0
+ - abstract_vgw.dependency_vgw
+ brg_2019100103:23:274090.brg.service_dependency:
+ - BRG_2019-10-01 03:23:27.409 0
+ - brg.service_dependency
+ vcpe_vgwbf175ab04fa20.abstract_vgw.link_vgw_vgw_private_1_port:
+ - vCPE_vgw bf175ab0-4fa2 0
+ - abstract_vgw.link_vgw_vgw_private_1_port
+ vcpe_vgwbf175ab04fa20.abstract_vgw.dependency_vgw_vgw_private_2_port:
+ - vCPE_vgw bf175ab0-4fa2 0
+ - abstract_vgw.dependency_vgw_vgw_private_2_port
+ vcpe_vgwbf175ab04fa20.abstract_vgw.link_vgw_vgw_private_2_port:
+ - vCPE_vgw bf175ab0-4fa2 0
+ - abstract_vgw.link_vgw_vgw_private_2_port
+ vcpe_vgwbf175ab04fa20.abstract_vgw.link_vgw_vgw_private_0_port:
+ - vCPE_vgw bf175ab0-4fa2 0
+ - abstract_vgw.link_vgw_vgw_private_0_port
+ tunnelxconn_2019100103:23:274090.tunnelxconn.dependency:
+ - TunnelXConn_2019-10-01 03:23:27.409 0
+ - tunnelxconn.dependency
+ brg_2019100103:23:274090.brg.dependency:
+ - BRG_2019-10-01 03:23:27.409 0
+ - brg.dependency
+ vcpe_vgwbf175ab04fa20.abstract_vgw.dependency_vgw_vgw_private_0_port:
+ - vCPE_vgw bf175ab0-4fa2 0
+ - abstract_vgw.dependency_vgw_vgw_private_0_port
diff --git a/asdc-controller/src/test/resources/resource-examples/vcpe-rescust/vcpe_vgwbf175ab04fa20_modules.json b/asdc-controller/src/test/resources/resource-examples/vcpe-rescust/vcpe_vgwbf175ab04fa20_modules.json
new file mode 100644
index 0000000000..e74c3c05a8
--- /dev/null
+++ b/asdc-controller/src/test/resources/resource-examples/vcpe-rescust/vcpe_vgwbf175ab04fa20_modules.json
@@ -0,0 +1,25 @@
+[
+ {
+ "vfModuleModelName": "VcpeVgwBf175ab04fa2..base_vcpe_vgw..module-0",
+ "vfModuleModelInvariantUUID": "7caf746f-46c6-4e47-bbfc-9374b1c17ba1",
+ "vfModuleModelVersion": "1",
+ "vfModuleModelUUID": "a4654496-9862-47e4-9640-d84708ea8bfb",
+ "vfModuleModelCustomizationUUID": "ddd095d2-c2ba-48fe-90f4-e3f6fc806d7e",
+ "isBase": true,
+ "artifacts": [
+ "e3a33b76-1f8a-44ba-808b-8a4c79e4b44a",
+ "9b73763b-0f60-47c3-8939-cf2f819bc75a"
+ ],
+ "properties": {
+ "min_vf_module_instances": "1",
+ "vf_module_label": "base_vcpe_vgw",
+ "max_vf_module_instances": "1",
+ "vfc_list": "",
+ "vf_module_description": "",
+ "vf_module_type": "Base",
+ "availability_zone_count": "",
+ "volume_group": "false",
+ "initial_count": "1"
+ }
+ }
+] \ No newline at end of file
diff --git a/asdc-controller/src/test/resources/resource-examples/vcpe-rescust/vendor-license-model.xml b/asdc-controller/src/test/resources/resource-examples/vcpe-rescust/vendor-license-model.xml
new file mode 100644
index 0000000000..67bbea4677
--- /dev/null
+++ b/asdc-controller/src/test/resources/resource-examples/vcpe-rescust/vendor-license-model.xml
@@ -0,0 +1 @@
+<vendor-license-model xmlns="http://xmlns.openecomp.org/asdc/license-model/1.0"><vendor-name>6dccd115-ce6a-4b1a-88aa</vendor-name><entitlement-pool-list><entitlement-pool><entitlement-pool-invariant-uuid>40d4819966b04a28aac2db35f2d84755</entitlement-pool-invariant-uuid><entitlement-pool-uuid>86EFCDA3995C4232B96C833E97804D4F</entitlement-pool-uuid><version>1.0</version><name>ce52c558-b095-4a8f-84f3</name><description>vendor entitlement pool</description><increments/><manufacturer-reference-number>111111</manufacturer-reference-number><threshold-value><unit>Percentage</unit><value>100</value></threshold-value><sp-limits/><vendor-limits/><operational-scope><value/></operational-scope><start-date>2019-10-01T00:00:00Z</start-date><expiry-date>2020-09-30T23:59:59Z</expiry-date></entitlement-pool></entitlement-pool-list><license-key-group-list><license-key-group><version>1.0</version><name>c712eb11-eddd-459f-a383</name><description>vendor license key group</description><type>Universal</type><increments/><manufacturerReferenceNumber>11111</manufacturerReferenceNumber><license-key-group-invariant-uuid>fc8a672de0d041ecb7637b1ae5446e99</license-key-group-invariant-uuid><license-key-group-uuid>DF4EA9695A4943ABB8437F244FC6623B</license-key-group-uuid><threshold-value><unit>Percentage</unit><value>100</value></threshold-value><sp-limits/><vendor-limits/><operational-scope><value/></operational-scope><start-date>2019-10-01T00:00:00Z</start-date><expiry-date>2020-09-30T23:59:59Z</expiry-date></license-key-group></license-key-group-list></vendor-license-model> \ No newline at end of file
diff --git a/asdc-controller/src/test/resources/resource-examples/vcpe-rescust/vf-license-model.xml b/asdc-controller/src/test/resources/resource-examples/vcpe-rescust/vf-license-model.xml
new file mode 100644
index 0000000000..fb15c3aa16
--- /dev/null
+++ b/asdc-controller/src/test/resources/resource-examples/vcpe-rescust/vf-license-model.xml
@@ -0,0 +1 @@
+<vf-license-model xmlns="http://xmlns.openecomp.org/asdc/license-model/1.0"><vendor-name>6dccd115-ce6a-4b1a-88aa</vendor-name><vf-id>8228aa3775634529bb6f86e77b0e40d7</vf-id><feature-group-list><feature-group><entitlement-pool-list><entitlement-pool><name>ce52c558-b095-4a8f-84f3</name><description>vendor entitlement pool</description><increments/><entitlement-pool-invariant-uuid>40d4819966b04a28aac2db35f2d84755</entitlement-pool-invariant-uuid><entitlement-pool-uuid>86EFCDA3995C4232B96C833E97804D4F</entitlement-pool-uuid><manufacturer-reference-number>111111</manufacturer-reference-number><threshold-value><unit>Percentage</unit><value>100</value></threshold-value><version>1.0</version><sp-limits/><vendor-limits/><operational-scope><value/></operational-scope><start-date>2019-10-01T00:00:00Z</start-date><expiry-date>2020-09-30T23:59:59Z</expiry-date></entitlement-pool></entitlement-pool-list><license-key-group-list><license-key-group><name>c712eb11-eddd-459f-a383</name><description>vendor license key group</description><type>Universal</type><increments/><license-key-group-invariant-uuid>fc8a672de0d041ecb7637b1ae5446e99</license-key-group-invariant-uuid><license-key-group-uuid>DF4EA9695A4943ABB8437F244FC6623B</license-key-group-uuid><manufacturer-reference-number>11111</manufacturer-reference-number><threshold-value><unit>Percentage</unit><value>100</value></threshold-value><version>1.0</version><sp-limits/><vendor-limits/><operational-scope><value/></operational-scope><start-date>2019-10-01T00:00:00Z</start-date><expiry-date>2020-09-30T23:59:59Z</expiry-date></license-key-group></license-key-group-list><name>ec13e8a7-f181-4d96-b821</name><part-number>123abc456</part-number><feature-group-uuid>7b85e31faa0541afa21a60b85907aa40</feature-group-uuid><description>vendor feature group</description></feature-group></feature-group-list></vf-license-model> \ No newline at end of file
diff --git a/asdc-controller/src/test/resources/schema.sql b/asdc-controller/src/test/resources/schema.sql
index 652fc8f0de..0821ebc97c 100644
--- a/asdc-controller/src/test/resources/schema.sql
+++ b/asdc-controller/src/test/resources/schema.sql
@@ -738,6 +738,8 @@ CREATE TABLE `orchestration_flow_reference` (
`SEQ_NO` int(11) NOT NULL,
`FLOW_NAME` varchar(200) NOT NULL,
`FLOW_VERSION` double NOT NULL,
+ `SCOPE` varchar(200) DEFAULT NULL,
+ `ACTION` varchar(200) DEFAULT NULL,
`NB_REQ_REF_LOOKUP_ID` int(11) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `UK_orchestration_flow_reference` (`COMPOSITE_ACTION`,`FLOW_NAME`,`SEQ_NO`,`NB_REQ_REF_LOOKUP_ID`),
@@ -809,6 +811,10 @@ CREATE TABLE `service` (
`OVERALL_DISTRIBUTION_STATUS` varchar(45),
`ONAP_GENERATED_NAMING` TINYINT(1) DEFAULT NULL,
`NAMING_POLICY` varchar(200) DEFAULT NULL,
+ `CDS_BLUEPRINT_NAME` varchar(200) DEFAULT NULL,
+ `CDS_BLUEPRINT_VERSION` varchar(20) DEFAULT NULL,
+ `CONTROLLER_ACTOR` varchar(200) DEFAULT NULL,
+ `SKIP_POST_INSTANTIATION_CONFIGURATION` boolean default true,
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
@@ -963,6 +969,7 @@ CREATE TABLE `vf_module_customization` (
`CREATION_TIMESTAMP` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
`VF_MODULE_MODEL_UUID` varchar(200) NOT NULL,
`VNF_RESOURCE_CUSTOMIZATION_ID` int(13) DEFAULT NULL,
+ `SKIP_POST_INSTANTIATION_CONFIGURATION` boolean default true,
PRIMARY KEY (`ID`),
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`),
@@ -1113,6 +1120,8 @@ CREATE TABLE `vnf_resource_customization` (
`VNF_RESOURCE_MODEL_UUID` varchar(200) NOT NULL,
`SERVICE_MODEL_UUID` varchar(200) NOT NULL,
`VNFCINSTANCEGROUP_ORDER` varchar(200) default NULL,
+ `NF_DATA_VALID` tinyint(1) DEFAULT '0',
+ `CONTROLLER_ACTOR` varchar(200) DEFAULT NULL,
PRIMARY KEY (`ID`),
UNIQUE KEY `UK_vnf_resource_customization` (`MODEL_CUSTOMIZATION_UUID`,`SERVICE_MODEL_UUID`),
KEY `fk_vnf_resource_customization__vnf_resource1_idx` (`VNF_RESOURCE_MODEL_UUID`),
@@ -1194,6 +1203,7 @@ CREATE TABLE IF NOT EXISTS `pnf_resource_customization` (
`CDS_BLUEPRINT_NAME` varchar(200) DEFAULT NULL,
`CDS_BLUEPRINT_VERSION` varchar(20) DEFAULT NULL,
`SKIP_POST_INSTANTIATION_CONFIGURATION` boolean default true,
+ `CONTROLLER_ACTOR` varchar(200) DEFAULT NULL,
PRIMARY KEY (`MODEL_CUSTOMIZATION_UUID`),
KEY `fk_pnf_resource_customization__pnf_resource1_idx` (`PNF_RESOURCE_MODEL_UUID`),
CONSTRAINT `fk_pnf_resource_customization__pnf_resource1` FOREIGN KEY (`PNF_RESOURCE_MODEL_UUID`) REFERENCES `pnf_resource` (`MODEL_UUID`) ON DELETE CASCADE ON UPDATE CASCADE
@@ -1418,8 +1428,6 @@ CREATE TABLE `active_requests` (
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,
@@ -1430,23 +1438,19 @@ CREATE TABLE `infra_active_requests` (
`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,
+ `CLOUD_REGION` varchar(11) DEFAULT NULL,
`CALLBACK_URL` varchar(200) DEFAULT NULL,
`CORRELATOR` varchar(80) DEFAULT NULL,
`NETWORK_ID` varchar(45) DEFAULT NULL,
@@ -1465,14 +1469,11 @@ CREATE TABLE `infra_active_requests` (
`ORIGINAL_REQUEST_ID` varchar(45) DEFAULT NULL,
`EXT_SYSTEM_ERROR_SOURCE` varchar(80) DEFAULT NULL,
`ROLLBACK_EXT_SYSTEM_ERROR_SOURCE` varchar(80) DEFAULT NULL,
- PRIMARY KEY (`REQUEST_ID`),
- UNIQUE KEY `UK_bhu6w8p7wvur4pin0gjw2d5ak` (`CLIENT_REQUEST_ID`)
+ PRIMARY KEY (`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,
@@ -1483,23 +1484,19 @@ CREATE TABLE `archived_infra_requests` (
`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,
+ `CLOUD_REGION` varchar(11) DEFAULT NULL,
`CALLBACK_URL` varchar(200) DEFAULT NULL,
`CORRELATOR` varchar(80) DEFAULT NULL,
`NETWORK_ID` varchar(45) DEFAULT NULL,
@@ -1515,8 +1512,7 @@ CREATE TABLE `archived_infra_requests` (
`OPERATIONAL_ENV_ID` varchar(45) DEFAULT NULL,
`OPERATIONAL_ENV_NAME` varchar(200) DEFAULT NULL,
`REQUEST_URL` varchar(500) DEFAULT NULL,
- PRIMARY KEY (`REQUEST_ID`),
- UNIQUE KEY `UK_bhu6w8p7wvur4pin0gjw2d72h` (`CLIENT_REQUEST_ID`)
+ PRIMARY KEY (`REQUEST_ID`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
CREATE TABLE `site_status` (