From fd63587429fbbd96c2cb5d03463b349666181765 Mon Sep 17 00:00:00 2001 From: "waqas.ikram" Date: Tue, 11 Feb 2020 17:40:20 +0000 Subject: Enhancing SO SDC Controller to invoke ONAP-ETSI Catalog APIs Change-Id: I9f0ba05c14478b9165c2c470559567513e1919cf Issue-ID: SO-2406 Signed-off-by: waqas.ikram --- .../java/org/onap/so/asdc/TestApplication.java | 6 +- .../SdcNotificationWithSol004PackageTest.java | 358 +++++++++++++++++++++ .../src/test/resources/application-test.yaml | 8 + .../VENDOR_LICENSE/vendor-license-model.xml | 1 + .../VF_LICENSE/vf-license-model.xml | 1 + .../vgw/ONBOARDED_PACKAGE/vgw6.csar | Bin 0 -> 43363 bytes .../vgw/SDC_RESOURCE_CSAR/vgw_sdc_resource.csar | Bin 0 -> 117852 bytes .../vgw/VENDOR_LICENSE/vendor-license-model.xml | 1 + .../vgw/VF_LICENSE/vf-license-model.xml | 1 + .../vgw/dmaap-notification-message.json | 66 ++++ ...-onboading-job-status-error-package-exists.json | 20 ++ ...catalog-package-onboading-job-status-error.json | 20 ++ ...og-package-onboading-job-status-successful.json | 27 ++ .../vgw/service-Vgwservicev1-csar.csar | Bin 0 -> 122078 bytes 14 files changed, 507 insertions(+), 2 deletions(-) create mode 100644 asdc-controller/src/test/java/org/onap/so/asdc/client/SdcNotificationWithSol004PackageTest.java create mode 100644 asdc-controller/src/test/resources/resource-examples/vgw/ONBOARDED_PACKAGE/VENDOR_LICENSE/vendor-license-model.xml create mode 100644 asdc-controller/src/test/resources/resource-examples/vgw/ONBOARDED_PACKAGE/VF_LICENSE/vf-license-model.xml create mode 100644 asdc-controller/src/test/resources/resource-examples/vgw/ONBOARDED_PACKAGE/vgw6.csar create mode 100644 asdc-controller/src/test/resources/resource-examples/vgw/SDC_RESOURCE_CSAR/vgw_sdc_resource.csar create mode 100644 asdc-controller/src/test/resources/resource-examples/vgw/VENDOR_LICENSE/vendor-license-model.xml create mode 100644 asdc-controller/src/test/resources/resource-examples/vgw/VF_LICENSE/vf-license-model.xml create mode 100644 asdc-controller/src/test/resources/resource-examples/vgw/dmaap-notification-message.json create mode 100644 asdc-controller/src/test/resources/resource-examples/vgw/etsi-catalog-package-onboading-job-status-error-package-exists.json create mode 100644 asdc-controller/src/test/resources/resource-examples/vgw/etsi-catalog-package-onboading-job-status-error.json create mode 100644 asdc-controller/src/test/resources/resource-examples/vgw/etsi-catalog-package-onboading-job-status-successful.json create mode 100644 asdc-controller/src/test/resources/resource-examples/vgw/service-Vgwservicev1-csar.csar (limited to 'asdc-controller/src/test') 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 e25de9c3d4..1a2e385121 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,12 +31,14 @@ import org.springframework.context.annotation.Profile; @SpringBootApplication @Profile("test") -@ComponentScan(basePackages = {"org.onap.so.asdc", "org.onap.so.security"}, +@ComponentScan( + basePackages = {"org.onap.so.asdc", "org.onap.so.security", "org.onap.so.rest.service", + "org.onap.so.configuration.rest", "org.onap.so.client"}, excludeFilters = {@Filter(type = FilterType.ANNOTATION, classes = SpringBootApplication.class), @Filter(type = FilterType.ASSIGNABLE_TYPE, classes = RequestsDBHelper.class), @Filter(type = FilterType.ASSIGNABLE_TYPE, classes = InfraActiveRequestsRepositoryImpl.class)}) public class TestApplication { - public static void main(String... args) { + public static void main(final String... args) { SpringApplication.run(TestApplication.class, args); System.getProperties().setProperty("mso.db", "MARIADB"); System.getProperties().setProperty("server.name", "Springboot"); diff --git a/asdc-controller/src/test/java/org/onap/so/asdc/client/SdcNotificationWithSol004PackageTest.java b/asdc-controller/src/test/java/org/onap/so/asdc/client/SdcNotificationWithSol004PackageTest.java new file mode 100644 index 0000000000..cb5bd0f51a --- /dev/null +++ b/asdc-controller/src/test/java/org/onap/so/asdc/client/SdcNotificationWithSol004PackageTest.java @@ -0,0 +1,358 @@ +/*- + * ============LICENSE_START======================================================= + * Copyright (C) 2020 Ericsson. 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. + * + * SPDX-License-Identifier: Apache-2.0 + * ============LICENSE_END========================================================= + */ +package org.onap.so.asdc.client; + +import static com.github.tomakehurst.wiremock.client.WireMock.aResponse; +import static com.github.tomakehurst.wiremock.client.WireMock.equalTo; +import static com.github.tomakehurst.wiremock.client.WireMock.equalToJson; +import static com.github.tomakehurst.wiremock.client.WireMock.get; +import static com.github.tomakehurst.wiremock.client.WireMock.getRequestedFor; +import static com.github.tomakehurst.wiremock.client.WireMock.ok; +import static com.github.tomakehurst.wiremock.client.WireMock.okJson; +import static com.github.tomakehurst.wiremock.client.WireMock.post; +import static com.github.tomakehurst.wiremock.client.WireMock.postRequestedFor; +import static com.github.tomakehurst.wiremock.client.WireMock.urlEqualTo; +import static com.github.tomakehurst.wiremock.client.WireMock.verify; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.fail; +import static org.onap.sdc.utils.DistributionStatusEnum.COMPONENT_DONE_ERROR; +import static org.onap.sdc.utils.DistributionStatusEnum.COMPONENT_DONE_OK; +import static org.springframework.http.HttpHeaders.ACCEPT; +import static org.springframework.http.MediaType.APPLICATION_OCTET_STREAM_VALUE; +import java.io.File; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.util.List; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; +import org.onap.so.asdc.BaseTest; +import org.onap.so.asdc.client.exceptions.ASDCControllerException; +import org.onap.so.asdc.client.test.emulators.DistributionClientEmulator; +import org.onap.so.asdc.client.test.emulators.NotificationDataImpl; +import org.onap.so.db.catalog.data.repository.ServiceRepository; +import org.onap.so.db.request.beans.WatchdogComponentDistributionStatus; +import org.onap.so.db.request.beans.WatchdogComponentDistributionStatusId; +import org.onap.so.db.request.data.repository.WatchdogComponentDistributionStatusRepository; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import com.google.gson.GsonBuilder; + +/** + * @author Waqas Ikram (waqas.ikram@est.tech) + * + */ +public class SdcNotificationWithSol004PackageTest extends BaseTest { + + private final static Logger LOGGER = LoggerFactory.getLogger(SdcNotificationWithSol004PackageTest.class); + private static final String ETSI_CATALOG_PACKAGE_ONBOARDING_URL = "/api/catalog/v1/vnfpackages"; + private static final String COMPONENT_NAME = "SO"; + private static final String CSAR_ID = "8f0b72e1-b6d6-42b6-a808-c60b17f04d7a"; + private static final String SDC_GET_RESOURCE_URL = "/sdc/v1/catalog/resources/" + CSAR_ID + "/toscaModel"; + private static final String ETSI_CATALOG_PACKAGE_ONBOARDING_REQUEST = "{\"csarId\": \"" + CSAR_ID + "\"}"; + private static final String DISTRIBUTION_ID = "35f20eb9-238a-4cc2-96dc-0a08f71bc209"; + private static final String VGW_RESOURCE_PATH = "src/test/resources/resource-examples/vgw"; + private static final String SERVICE_UUID = "e051ff77-fb79-451c-8457-1cbf94e4db8f"; + private static final String SERVICE_INVARIANT_UUID = "c2ce924f-0aa1-4777-9b42-c0fec006a883"; + private static final String JOB_ID = "57c13120-0a03-4d2e-837a-7c41d61e4a30"; + private static final String ETSI_CATALOG_PACKAGE_ONBOARDING_JOB_STATUS_URL = "/api/catalog/v1/jobs/" + JOB_ID; + private static final String ETSI_CATALOG_PACKAGE_ONBOARDING_JOB_RESPONSE = "{\"jobId\": \"" + JOB_ID + "\"}"; + + @Autowired + private ASDCController asdcController; + + private DistributionClientEmulator distributionClient; + + @Autowired + private WatchdogComponentDistributionStatusRepository watchdogComponentDistributionStatusRepository; + + @Autowired + protected ServiceRepository serviceRepository; + + @Before + public void setUp() { + distributionClient = new DistributionClientEmulator(); + distributionClient.setResourcePath(getAbsolutePath(VGW_RESOURCE_PATH)); + asdcController.setDistributionClient(distributionClient); + try { + asdcController.initASDC(); + } catch (final ASDCControllerException controllerException) { + LOGGER.error(controllerException.getMessage(), controllerException); + fail(controllerException.getMessage()); + } + } + + @After + public void shutDown() { + try { + if (serviceRepository.existsById(SERVICE_UUID)) { + LOGGER.debug("Deleting existing service using {} ", SERVICE_UUID); + serviceRepository.deleteById(SERVICE_UUID); + } + + final WatchdogComponentDistributionStatusId distributionId = new WatchdogComponentDistributionStatusId(); + distributionId.setDistributionId(DISTRIBUTION_ID); + distributionId.setComponentName(COMPONENT_NAME); + if (watchdogComponentDistributionStatusRepository.existsById(distributionId)) { + LOGGER.debug("Deleting existing WatchdogComponentDistributionStatus using {} ", distributionId); + watchdogComponentDistributionStatusRepository.deleteById(distributionId); + } + asdcController.closeASDC(); + } catch (final ASDCControllerException asdcControllerException) { + LOGGER.error(asdcControllerException.getMessage(), asdcControllerException); + fail(asdcControllerException.getMessage()); + } + } + + @Test + public void testTreatNotification_vgwServiceContainingSol004Package_successfullyOnboard() throws IOException { + initMockAaiServer(SERVICE_UUID, SERVICE_INVARIANT_UUID); + + wireMockServer.stubFor(get(SDC_GET_RESOURCE_URL) + .willReturn(aResponse().withBody(getFileContent( + Paths.get(getAbsolutePath(VGW_RESOURCE_PATH), "SDC_RESOURCE_CSAR", "vgw_sdc_resource.csar")))) + .withHeader(ACCEPT, equalTo(APPLICATION_OCTET_STREAM_VALUE))); + + wireMockServer.stubFor(post(urlEqualTo(ETSI_CATALOG_PACKAGE_ONBOARDING_URL)) + .willReturn(okJson(ETSI_CATALOG_PACKAGE_ONBOARDING_JOB_RESPONSE))); + + wireMockServer.stubFor(get(urlEqualTo(ETSI_CATALOG_PACKAGE_ONBOARDING_JOB_STATUS_URL)) + .willReturn(okJson(new String(getFileContent(Paths.get(getAbsolutePath(VGW_RESOURCE_PATH), + "etsi-catalog-package-onboading-job-status-successful.json")))))); + + asdcController.treatNotification(getNotificationDataImplObject()); + + final List distributionList = + watchdogComponentDistributionStatusRepository.findByDistributionId(DISTRIBUTION_ID); + assertNotNull(distributionList); + assertEquals(1, distributionList.size()); + final WatchdogComponentDistributionStatus distributionStatus = distributionList.get(0); + assertEquals(COMPONENT_DONE_OK.toString(), distributionStatus.getComponentDistributionStatus()); + assertEquals(COMPONENT_NAME, distributionStatus.getComponentName()); + + verify(postRequestedFor(urlEqualTo(ETSI_CATALOG_PACKAGE_ONBOARDING_URL)) + .withRequestBody(equalToJson(ETSI_CATALOG_PACKAGE_ONBOARDING_REQUEST))); + + verify(getRequestedFor(urlEqualTo(ETSI_CATALOG_PACKAGE_ONBOARDING_JOB_STATUS_URL))); + } + + @Test + public void testTreatNotification_vgwServiceUnableToGeSdcResource_successfullyOnboard() throws IOException { + initMockAaiServer(SERVICE_UUID, SERVICE_INVARIANT_UUID); + + wireMockServer + .stubFor(get(SDC_GET_RESOURCE_URL).willReturn(aResponse().withStatus(HttpStatus.NOT_FOUND.value())) + .withHeader(ACCEPT, equalTo(APPLICATION_OCTET_STREAM_VALUE))); + + asdcController.treatNotification(getNotificationDataImplObject()); + + final List distributionList = + watchdogComponentDistributionStatusRepository.findByDistributionId(DISTRIBUTION_ID); + assertNotNull(distributionList); + assertEquals(1, distributionList.size()); + final WatchdogComponentDistributionStatus distributionStatus = distributionList.get(0); + assertEquals(COMPONENT_DONE_OK.toString(), distributionStatus.getComponentDistributionStatus()); + assertEquals(COMPONENT_NAME, distributionStatus.getComponentName()); + } + + @Test + public void testTreatNotification_vgwServiceContainingNonEtsiSdcResource_successfullyOnboard() throws IOException { + + initMockAaiServer(SERVICE_UUID, SERVICE_INVARIANT_UUID); + + wireMockServer.stubFor(get(SDC_GET_RESOURCE_URL) + .willReturn(aResponse().withBody(getFileContent( + Paths.get(getAbsolutePath(VGW_RESOURCE_PATH), "service-Vgwservicev1-csar.csar")))) + .withHeader(ACCEPT, equalTo(APPLICATION_OCTET_STREAM_VALUE))); + + asdcController.treatNotification(getNotificationDataImplObject()); + + final List distributionList = + watchdogComponentDistributionStatusRepository.findByDistributionId(DISTRIBUTION_ID); + assertNotNull(distributionList); + assertEquals(1, distributionList.size()); + final WatchdogComponentDistributionStatus distributionStatus = distributionList.get(0); + assertEquals(COMPONENT_DONE_OK.toString(), distributionStatus.getComponentDistributionStatus()); + assertEquals(COMPONENT_NAME, distributionStatus.getComponentName()); + + } + + @Test + public void testTreatNotification_vgwServiceContainingSol004Package_onnboardRequestToEtsiCatalogReturnsBadGatway_distributionStatusError() + throws IOException { + initMockAaiServer(SERVICE_UUID, SERVICE_INVARIANT_UUID); + + wireMockServer.stubFor(get(SDC_GET_RESOURCE_URL) + .willReturn(aResponse().withBody(getFileContent( + Paths.get(getAbsolutePath(VGW_RESOURCE_PATH), "SDC_RESOURCE_CSAR", "vgw_sdc_resource.csar")))) + .withHeader(ACCEPT, equalTo(APPLICATION_OCTET_STREAM_VALUE))); + + wireMockServer.stubFor(post(urlEqualTo(ETSI_CATALOG_PACKAGE_ONBOARDING_URL)) + .willReturn(aResponse().withStatus(HttpStatus.BAD_GATEWAY.value()))); + + asdcController.treatNotification(getNotificationDataImplObject()); + + final List distributionList = + watchdogComponentDistributionStatusRepository.findByDistributionId(DISTRIBUTION_ID); + assertNotNull(distributionList); + assertEquals(1, distributionList.size()); + final WatchdogComponentDistributionStatus distributionStatus = distributionList.get(0); + assertEquals(COMPONENT_DONE_ERROR.toString(), distributionStatus.getComponentDistributionStatus()); + assertEquals(COMPONENT_NAME, distributionStatus.getComponentName()); + + verify(postRequestedFor(urlEqualTo(ETSI_CATALOG_PACKAGE_ONBOARDING_URL)) + .withRequestBody(equalToJson(ETSI_CATALOG_PACKAGE_ONBOARDING_REQUEST))); + + } + + @Test + public void testTreatNotification_vgwServiceContainingSol004Package_getJobStatusReturnsBadGatway_distributionStatusError() + throws IOException { + initMockAaiServer(SERVICE_UUID, SERVICE_INVARIANT_UUID); + + wireMockServer.stubFor(get(SDC_GET_RESOURCE_URL) + .willReturn(aResponse().withBody(getFileContent( + Paths.get(getAbsolutePath(VGW_RESOURCE_PATH), "SDC_RESOURCE_CSAR", "vgw_sdc_resource.csar")))) + .withHeader(ACCEPT, equalTo(APPLICATION_OCTET_STREAM_VALUE))); + + wireMockServer.stubFor(post(urlEqualTo(ETSI_CATALOG_PACKAGE_ONBOARDING_URL)) + .willReturn(okJson(ETSI_CATALOG_PACKAGE_ONBOARDING_JOB_RESPONSE))); + + wireMockServer.stubFor(get(urlEqualTo(ETSI_CATALOG_PACKAGE_ONBOARDING_JOB_STATUS_URL)) + .willReturn(aResponse().withStatus(HttpStatus.BAD_GATEWAY.value()))); + + asdcController.treatNotification(getNotificationDataImplObject()); + + final List distributionList = + watchdogComponentDistributionStatusRepository.findByDistributionId(DISTRIBUTION_ID); + assertNotNull(distributionList); + assertEquals(1, distributionList.size()); + final WatchdogComponentDistributionStatus distributionStatus = distributionList.get(0); + assertEquals(COMPONENT_DONE_ERROR.toString(), distributionStatus.getComponentDistributionStatus()); + assertEquals(COMPONENT_NAME, distributionStatus.getComponentName()); + + verify(postRequestedFor(urlEqualTo(ETSI_CATALOG_PACKAGE_ONBOARDING_URL)) + .withRequestBody(equalToJson(ETSI_CATALOG_PACKAGE_ONBOARDING_REQUEST))); + + verify(getRequestedFor(urlEqualTo(ETSI_CATALOG_PACKAGE_ONBOARDING_JOB_STATUS_URL))); + + } + + @Test + public void testTreatNotification_vgwServiceContainingSol004Package_getJobStatusBodyWithStatusError_distributionStatusError() + throws IOException { + + initMockAaiServer(SERVICE_UUID, SERVICE_INVARIANT_UUID); + + wireMockServer.stubFor(get(SDC_GET_RESOURCE_URL) + .willReturn(aResponse().withBody(getFileContent( + Paths.get(getAbsolutePath(VGW_RESOURCE_PATH), "SDC_RESOURCE_CSAR", "vgw_sdc_resource.csar")))) + .withHeader(ACCEPT, equalTo(APPLICATION_OCTET_STREAM_VALUE))); + + wireMockServer.stubFor(post(urlEqualTo(ETSI_CATALOG_PACKAGE_ONBOARDING_URL)) + .willReturn(okJson(ETSI_CATALOG_PACKAGE_ONBOARDING_JOB_RESPONSE))); + + wireMockServer.stubFor(get(urlEqualTo(ETSI_CATALOG_PACKAGE_ONBOARDING_JOB_STATUS_URL)) + .willReturn(okJson(new String(getFileContent(Paths.get(getAbsolutePath(VGW_RESOURCE_PATH), + "etsi-catalog-package-onboading-job-status-error.json")))))); + + asdcController.treatNotification(getNotificationDataImplObject()); + + final List distributionList = + watchdogComponentDistributionStatusRepository.findByDistributionId(DISTRIBUTION_ID); + assertNotNull(distributionList); + assertEquals(1, distributionList.size()); + final WatchdogComponentDistributionStatus distributionStatus = distributionList.get(0); + assertEquals(COMPONENT_DONE_ERROR.toString(), distributionStatus.getComponentDistributionStatus()); + assertEquals(COMPONENT_NAME, distributionStatus.getComponentName()); + + verify(postRequestedFor(urlEqualTo(ETSI_CATALOG_PACKAGE_ONBOARDING_URL)) + .withRequestBody(equalToJson(ETSI_CATALOG_PACKAGE_ONBOARDING_REQUEST))); + + verify(getRequestedFor(urlEqualTo(ETSI_CATALOG_PACKAGE_ONBOARDING_JOB_STATUS_URL))); + + + } + + @Test + public void testTreatNotification_vgwServiceContainingSol004PackageAndPackageAlreadyExistsInEtsiCatalog_successfullyOnboard() + throws IOException { + initMockAaiServer(SERVICE_UUID, SERVICE_INVARIANT_UUID); + + wireMockServer.stubFor(get(SDC_GET_RESOURCE_URL) + .willReturn(aResponse().withBody(getFileContent( + Paths.get(getAbsolutePath(VGW_RESOURCE_PATH), "SDC_RESOURCE_CSAR", "vgw_sdc_resource.csar")))) + .withHeader(ACCEPT, equalTo(APPLICATION_OCTET_STREAM_VALUE))); + + wireMockServer.stubFor(post(urlEqualTo(ETSI_CATALOG_PACKAGE_ONBOARDING_URL)) + .willReturn(okJson(ETSI_CATALOG_PACKAGE_ONBOARDING_JOB_RESPONSE))); + + wireMockServer.stubFor(get(urlEqualTo(ETSI_CATALOG_PACKAGE_ONBOARDING_JOB_STATUS_URL)) + .willReturn(okJson(new String(getFileContent(Paths.get(getAbsolutePath(VGW_RESOURCE_PATH), + "etsi-catalog-package-onboading-job-status-error-package-exists.json")))))); + + asdcController.treatNotification(getNotificationDataImplObject()); + + final List distributionList = + watchdogComponentDistributionStatusRepository.findByDistributionId(DISTRIBUTION_ID); + assertNotNull(distributionList); + assertEquals(1, distributionList.size()); + final WatchdogComponentDistributionStatus distributionStatus = distributionList.get(0); + assertEquals(COMPONENT_DONE_OK.toString(), distributionStatus.getComponentDistributionStatus()); + assertEquals(COMPONENT_NAME, distributionStatus.getComponentName()); + + verify(postRequestedFor(urlEqualTo(ETSI_CATALOG_PACKAGE_ONBOARDING_URL)) + .withRequestBody(equalToJson(ETSI_CATALOG_PACKAGE_ONBOARDING_REQUEST))); + + verify(getRequestedFor(urlEqualTo(ETSI_CATALOG_PACKAGE_ONBOARDING_JOB_STATUS_URL))); + } + + + private byte[] getFileContent(final Path path) throws IOException { + return Files.readAllBytes(path); + } + + private NotificationDataImpl getNotificationDataImplObject() throws IOException { + final Path filePath = Paths.get(getAbsolutePath(VGW_RESOURCE_PATH), "dmaap-notification-message.json"); + final byte[] bytes = Files.readAllBytes(filePath); + + return new GsonBuilder().setPrettyPrinting().create().fromJson(new String(bytes), NotificationDataImpl.class); + } + + /** + * Mock the AAI using wireshark. + */ + private void initMockAaiServer(final String serviceUuid, final String serviceInvariantUuid) { + final String modelEndpoint = "/aai/v19/service-design-and-creation/models/model/" + serviceInvariantUuid + + "/model-vers/model-ver/" + serviceUuid + "?depth=0"; + + wireMockServer.stubFor(post(urlEqualTo(modelEndpoint)).willReturn(ok())); + } + + private String getAbsolutePath(final String path) { + final File file = new File(path); + return file.getAbsolutePath(); + } +} diff --git a/asdc-controller/src/test/resources/application-test.yaml b/asdc-controller/src/test/resources/application-test.yaml index 9fa20550db..60cd2d9f2a 100644 --- a/asdc-controller/src/test/resources/application-test.yaml +++ b/asdc-controller/src/test/resources/application-test.yaml @@ -102,3 +102,11 @@ mso: endpoint: http://localhost:${wiremock.server.port} config: defaultpath: src/test/resources + +sdc: + endpoint: http://localhost:${wiremock.server.port} + +etsi-catalog-manager: + endpoint: http://localhost:${wiremock.server.port}/api/catalog/v1 + rest: + timeoutInSeconds: 5 diff --git a/asdc-controller/src/test/resources/resource-examples/vgw/ONBOARDED_PACKAGE/VENDOR_LICENSE/vendor-license-model.xml b/asdc-controller/src/test/resources/resource-examples/vgw/ONBOARDED_PACKAGE/VENDOR_LICENSE/vendor-license-model.xml new file mode 100644 index 0000000000..6499a58fab --- /dev/null +++ b/asdc-controller/src/test/resources/resource-examples/vgw/ONBOARDED_PACKAGE/VENDOR_LICENSE/vendor-license-model.xml @@ -0,0 +1 @@ +VLMd6dea4a3db6b415ba50f17cb3311d04604B01ABDE6CA4A9FBA75ACC023C6FEDA1.0EP23451.0LKGUnique55ddeb1a87be4fbb95a9bd74b4d745ca81117C9B092C4C70AFF76833373CE7F4Absolute23456789 \ No newline at end of file diff --git a/asdc-controller/src/test/resources/resource-examples/vgw/ONBOARDED_PACKAGE/VF_LICENSE/vf-license-model.xml b/asdc-controller/src/test/resources/resource-examples/vgw/ONBOARDED_PACKAGE/VF_LICENSE/vf-license-model.xml new file mode 100644 index 0000000000..581a3acb7f --- /dev/null +++ b/asdc-controller/src/test/resources/resource-examples/vgw/ONBOARDED_PACKAGE/VF_LICENSE/vf-license-model.xml @@ -0,0 +1 @@ +VLMfa87b9536b704787981357393f36b3fcEPd6dea4a3db6b415ba50f17cb3311d04604B01ABDE6CA4A9FBA75ACC023C6FEDA23451.0LKGUnique55ddeb1a87be4fbb95a9bd74b4d745ca81117C9B092C4C70AFF76833373CE7F4Absolute234567891.0FG2218d90f94944a94952be83354847631234594 \ No newline at end of file diff --git a/asdc-controller/src/test/resources/resource-examples/vgw/ONBOARDED_PACKAGE/vgw6.csar b/asdc-controller/src/test/resources/resource-examples/vgw/ONBOARDED_PACKAGE/vgw6.csar new file mode 100644 index 0000000000..56dbb2bce0 Binary files /dev/null and b/asdc-controller/src/test/resources/resource-examples/vgw/ONBOARDED_PACKAGE/vgw6.csar differ diff --git a/asdc-controller/src/test/resources/resource-examples/vgw/SDC_RESOURCE_CSAR/vgw_sdc_resource.csar b/asdc-controller/src/test/resources/resource-examples/vgw/SDC_RESOURCE_CSAR/vgw_sdc_resource.csar new file mode 100644 index 0000000000..7ddfb6ef51 Binary files /dev/null and b/asdc-controller/src/test/resources/resource-examples/vgw/SDC_RESOURCE_CSAR/vgw_sdc_resource.csar differ diff --git a/asdc-controller/src/test/resources/resource-examples/vgw/VENDOR_LICENSE/vendor-license-model.xml b/asdc-controller/src/test/resources/resource-examples/vgw/VENDOR_LICENSE/vendor-license-model.xml new file mode 100644 index 0000000000..6499a58fab --- /dev/null +++ b/asdc-controller/src/test/resources/resource-examples/vgw/VENDOR_LICENSE/vendor-license-model.xml @@ -0,0 +1 @@ +VLMd6dea4a3db6b415ba50f17cb3311d04604B01ABDE6CA4A9FBA75ACC023C6FEDA1.0EP23451.0LKGUnique55ddeb1a87be4fbb95a9bd74b4d745ca81117C9B092C4C70AFF76833373CE7F4Absolute23456789 \ No newline at end of file diff --git a/asdc-controller/src/test/resources/resource-examples/vgw/VF_LICENSE/vf-license-model.xml b/asdc-controller/src/test/resources/resource-examples/vgw/VF_LICENSE/vf-license-model.xml new file mode 100644 index 0000000000..581a3acb7f --- /dev/null +++ b/asdc-controller/src/test/resources/resource-examples/vgw/VF_LICENSE/vf-license-model.xml @@ -0,0 +1 @@ +VLMfa87b9536b704787981357393f36b3fcEPd6dea4a3db6b415ba50f17cb3311d04604B01ABDE6CA4A9FBA75ACC023C6FEDA23451.0LKGUnique55ddeb1a87be4fbb95a9bd74b4d745ca81117C9B092C4C70AFF76833373CE7F4Absolute234567891.0FG2218d90f94944a94952be83354847631234594 \ No newline at end of file diff --git a/asdc-controller/src/test/resources/resource-examples/vgw/dmaap-notification-message.json b/asdc-controller/src/test/resources/resource-examples/vgw/dmaap-notification-message.json new file mode 100644 index 0000000000..d936cd1144 --- /dev/null +++ b/asdc-controller/src/test/resources/resource-examples/vgw/dmaap-notification-message.json @@ -0,0 +1,66 @@ +{ + "distributionID": "35f20eb9-238a-4cc2-96dc-0a08f71bc209", + "serviceName": "VgwServiceV1", + "serviceVersion": "1.0", + "serviceUUID": "e051ff77-fb79-451c-8457-1cbf94e4db8f", + "serviceDescription": "Test VGW Service", + "serviceInvariantUUID": "c2ce924f-0aa1-4777-9b42-c0fec006a883", + "resources": [ + { + "resourceInstanceName": "VgwVspV1 0", + "resourceName": "VgwVspV1", + "resourceVersion": "1.0", + "resourceType": "VF", + "resourceUUID": "655aa939-d589-4333-8cc6-8fcb15db858a", + "resourceInvariantUUID": "c53a0c91-35f6-40ff-bcda-f75030cfaf2d", + "resourceCustomizationUUID": "db1673e1-351a-4d04-8e2f-84b2b4c52cc7", + "category": "Generic", + "subcategory": "Network Service", + "artifacts": [ + { + "artifactName": "vf-license-model.xml", + "artifactType": "VF_LICENSE", + "artifactURL": "/VF_LICENSE/vf-license-model.xml", + "artifactChecksum": "NjMwZDc0YzhiNDRlZDAyYjIxMmFlM2M0MWRkZjFmNDA\u003d", + "artifactDescription": "VF license file", + "artifactTimeout": 120, + "artifactUUID": "8dda263d-90bb-4b3d-b8e0-0048222dc658", + "artifactVersion": "1" + }, + { + "artifactName": "vgw6.csar", + "artifactType": "ONBOARDED_PACKAGE", + "artifactURL": "/ONBOARDED_PACKAGE/vgw6.csar", + "artifactChecksum": "NjdmNGU3ZDlkODQ0YTUzMTU5NjZmOThiYjMxNTJiNGI\u003d", + "artifactDescription": "Artifact created from csar", + "artifactTimeout": 120, + "artifactUUID": "9e9930b8-898e-4b8b-999e-66c43e1611f4", + "artifactVersion": "1" + }, + { + "artifactName": "vendor-license-model.xml", + "artifactType": "VENDOR_LICENSE", + "artifactURL": "/VENDOR_LICENSE/vendor-license-model.xml", + "artifactChecksum": "NGNmNzU4MDhjN2FjMTJkNWIxMjNkZDZhOWQyYzU0ZjA\u003d", + "artifactDescription": " Vendor license file", + "artifactTimeout": 120, + "artifactUUID": "b3f7a4cf-6a35-4f66-b800-cd4a9a0e9719", + "artifactVersion": "1" + } + ] + } + ], + "serviceArtifacts": [ + { + "artifactName": "service-Vgwservicev1-csar.csar", + "artifactType": "TOSCA_CSAR", + "artifactURL": "/service-Vgwservicev1-csar.csar", + "artifactChecksum": "MzcxNTMwMDhmNGY0MjRkMjFkNzk1MDNjOTVhNjQzMmE\u003d", + "artifactDescription": "TOSCA definition package of the asset", + "artifactTimeout": 0, + "artifactUUID": "0cc70c6e-6ddc-4ecc-8052-d9f1433c14b8", + "artifactVersion": "1" + } + ], + "workloadContext": "Production" +} diff --git a/asdc-controller/src/test/resources/resource-examples/vgw/etsi-catalog-package-onboading-job-status-error-package-exists.json b/asdc-controller/src/test/resources/resource-examples/vgw/etsi-catalog-package-onboading-job-status-error-package-exists.json new file mode 100644 index 0000000000..8dc07b9613 --- /dev/null +++ b/asdc-controller/src/test/resources/resource-examples/vgw/etsi-catalog-package-onboading-job-status-error-package-exists.json @@ -0,0 +1,20 @@ +{ + "jobId": "57c13120-0a03-4d2e-837a-7c41d61e4a30", + "responseDescriptor": + { + "status": "error", + "progress": "255", + "statusDescription": "VNF package() already exists.", + "errorCode": "1", + "responseId": "2", + "responseHistoryList": [ + { + "status": "processing", + "progress": "5", + "statusDescription": "Start CSAR(8f0b72e1-b6d6-42b6-a808-c60b17f04d7a) distribute.", + "errorCode": "0", + "responseId": "1" + } + ] + } +} diff --git a/asdc-controller/src/test/resources/resource-examples/vgw/etsi-catalog-package-onboading-job-status-error.json b/asdc-controller/src/test/resources/resource-examples/vgw/etsi-catalog-package-onboading-job-status-error.json new file mode 100644 index 0000000000..13f346fb7a --- /dev/null +++ b/asdc-controller/src/test/resources/resource-examples/vgw/etsi-catalog-package-onboading-job-status-error.json @@ -0,0 +1,20 @@ +{ + "jobId": "57c13120-0a03-4d2e-837a-7c41d61e4a30", + "responseDescriptor": + { + "status": "error", + "progress": "255", + "statusDescription": "Failed to query artifacts(resources) from sdc.", + "errorCode": "0", + "responseId": "2", + "responseHistoryList": [ + { + "status": "processing", + "progress": "5", + "statusDescription": "Start CSAR(8f0b72e1-b6d6-42b6-a808-c60b17f04d7a) distribute.", + "errorCode": "0", + "responseId": "1" + } + ] + } +} diff --git a/asdc-controller/src/test/resources/resource-examples/vgw/etsi-catalog-package-onboading-job-status-successful.json b/asdc-controller/src/test/resources/resource-examples/vgw/etsi-catalog-package-onboading-job-status-successful.json new file mode 100644 index 0000000000..b5dc1fe4f2 --- /dev/null +++ b/asdc-controller/src/test/resources/resource-examples/vgw/etsi-catalog-package-onboading-job-status-successful.json @@ -0,0 +1,27 @@ +{ + "jobId": "57c13120-0a03-4d2e-837a-7c41d61e4a30", + "responseDescriptor": + { + "status": "finished", + "progress": "100", + "statusDescription": "CSAR(8f0b72e1-b6d6-42b6-a808-c60b17f04d7a) distribute successfully.", + "errorCode": "0", + "responseId": "3", + "responseHistoryList": [ + { + "status": "processing", + "progress": "30", + "statusDescription": "Save CSAR(8f0b72e1-b6d6-42b6-a808-c60b17f04d7a) to database.", + "errorCode": "0", + "responseId": "2" + }, + { + "status": "processing", + "progress": "5", + "statusDescription": "Start CSAR(8f0b72e1-b6d6-42b6-a808-c60b17f04d7a) distribute.", + "errorCode": "0", + "responseId": "1" + } + ] + } +} diff --git a/asdc-controller/src/test/resources/resource-examples/vgw/service-Vgwservicev1-csar.csar b/asdc-controller/src/test/resources/resource-examples/vgw/service-Vgwservicev1-csar.csar new file mode 100644 index 0000000000..51a9e19466 Binary files /dev/null and b/asdc-controller/src/test/resources/resource-examples/vgw/service-Vgwservicev1-csar.csar differ -- cgit 1.2.3-korg