From e8455edfc3cf25352c2cc44340eb77e36439534d Mon Sep 17 00:00:00 2001 From: "aravind.est" Date: Fri, 1 Mar 2024 17:04:39 +0000 Subject: [PATCH] Pass rAppInstanceId to k8s participant and create the invoker with the instance Id rAppInstanceId and Sme discovery endpoint has been passed to k8s participant. The invoker gets created as part of the rApp instance is using rApp instance Id as invoker id. Issue-ID: NONRTRIC-988 Change-Id: Iff684bcec554a004b3e4b8e5a2728148941a7a4f Signed-off-by: aravind.est --- .../rappmanager/acm/service/AcmDeployer.java | 3 +- .../rappmanager/acm/service/AcmDeployerTest.java | 5 +- .../src/test/resources/application.yaml | 7 ++- .../src/main/resources/application.yaml | 10 +++- .../dme/service/DmeAcmInterceptorTest.java | 4 +- .../rappmanager/dme/service/DmeDeployerTest.java | 5 +- .../RappsEnvironmentConfiguration.java | 31 ++++++++++ .../models/csar/RappCsarConfigurationHandler.java | 24 ++++---- .../rappmanager/models/RappServiceEnablerTest.java | 4 +- .../csar/RappCsarConfigurationHandlerTest.java | 50 ++++++++++++---- .../validator/ArtifactDefinitionValidatorTest.java | 6 +- .../csar/validator/AsdDescriptorValidatorTest.java | 4 +- .../csar/validator/FileExistenceValidatorTest.java | 3 +- .../csar/validator/RappValidationHandlerTest.java | 4 +- .../csar/validator/RappValidationUtilsTest.java | 7 ++- .../src/test/resources/application.yaml | 4 ++ .../src/test/resources/valid-rapp-package.csar | Bin 23577 -> 23690 bytes .../rappmanager/sme/service/SmeDeployer.java | 2 +- .../rappmanager/sme/service/SmeDeployerTest.java | 5 +- .../rapp-all/Files/Acm/instances/all-instance.json | 4 ++ .../rapp-all/Files/Acm/instances/k8s-instance.json | 4 ++ .../rapp-all/Files/Sme/invokers/invoker-app1.json | 2 +- .../rapp-all/Files/Sme/invokers/invoker-app2.json | 2 +- .../Files/Acm/instances/k8s-instance.json | 64 +++++++++++---------- 24 files changed, 177 insertions(+), 77 deletions(-) create mode 100644 rapp-manager-models/src/main/java/com/oransc/rappmanager/models/configuration/RappsEnvironmentConfiguration.java create mode 100644 rapp-manager-models/src/test/resources/application.yaml diff --git a/rapp-manager-acm/src/main/java/com/oransc/rappmanager/acm/service/AcmDeployer.java b/rapp-manager-acm/src/main/java/com/oransc/rappmanager/acm/service/AcmDeployer.java index c1a035c..dce7be8 100755 --- a/rapp-manager-acm/src/main/java/com/oransc/rappmanager/acm/service/AcmDeployer.java +++ b/rapp-manager-acm/src/main/java/com/oransc/rappmanager/acm/service/AcmDeployer.java @@ -133,8 +133,7 @@ public class AcmDeployer implements RappDeployer { @Override public boolean deployRappInstance(Rapp rapp, RappInstance rappInstance) { try { - String instantiationPayload = - rappCsarConfigurationHandler.getInstantiationPayload(rapp, rappInstance.getAcm(), + String instantiationPayload = rappCsarConfigurationHandler.getInstantiationPayload(rapp, rappInstance, rapp.getCompositionId()); AutomationComposition automationComposition = gson.fromJson(instantiationPayload, AutomationComposition.class); diff --git a/rapp-manager-acm/src/test/java/com/oransc/rappmanager/acm/service/AcmDeployerTest.java b/rapp-manager-acm/src/test/java/com/oransc/rappmanager/acm/service/AcmDeployerTest.java index 30c77a1..5f6b509 100755 --- a/rapp-manager-acm/src/test/java/com/oransc/rappmanager/acm/service/AcmDeployerTest.java +++ b/rapp-manager-acm/src/test/java/com/oransc/rappmanager/acm/service/AcmDeployerTest.java @@ -37,6 +37,7 @@ import com.fasterxml.jackson.databind.ObjectMapper; import com.oransc.rappmanager.acm.configuration.ACMConfiguration; import com.oransc.rappmanager.dme.service.DmeAcmInterceptor; import com.oransc.rappmanager.models.cache.RappCacheService; +import com.oransc.rappmanager.models.configuration.RappsEnvironmentConfiguration; import com.oransc.rappmanager.models.csar.RappCsarConfigurationHandler; import com.oransc.rappmanager.models.rapp.Rapp; import com.oransc.rappmanager.models.rapp.RappEvent; @@ -78,8 +79,8 @@ import org.springframework.web.client.RestTemplate; @SpringBootTest( classes = {BeanTestConfiguration.class, ACMConfiguration.class, AcmDeployer.class, DmeAcmInterceptor.class, - RappCsarConfigurationHandler.class, RappCacheService.class, RappInstanceStateMachineConfig.class, - RappInstanceStateMachine.class}) + RappsEnvironmentConfiguration.class, RappCsarConfigurationHandler.class, RappCacheService.class, + RappInstanceStateMachineConfig.class, RappInstanceStateMachine.class}) @TestInstance(TestInstance.Lifecycle.PER_CLASS) @AutoConfigureMockMvc class AcmDeployerTest { diff --git a/rapp-manager-acm/src/test/resources/application.yaml b/rapp-manager-acm/src/test/resources/application.yaml index 2fdadf4..2df8f66 100755 --- a/rapp-manager-acm/src/test/resources/application.yaml +++ b/rapp-manager-acm/src/test/resources/application.yaml @@ -1,7 +1,10 @@ rappmanager: acm: - baseurl: http://10.101.3.22:30442/onap/policy/clamp/acm/v2/ + baseurl: http://localhost:30442/onap/policy/clamp/acm/v2/ username: runtimeUser password: zb!XztG34 maxRetries: 3 - retryInterval: 2 #seconds \ No newline at end of file + retryInterval: 2 #seconds + rapps: + env: + smeDiscoveryEndpoint: http://localhost:53012/service-apis/v1/allServiceAPIs \ No newline at end of file diff --git a/rapp-manager-application/src/main/resources/application.yaml b/rapp-manager-application/src/main/resources/application.yaml index 0097f86..2a8489a 100755 --- a/rapp-manager-application/src/main/resources/application.yaml +++ b/rapp-manager-application/src/main/resources/application.yaml @@ -1,20 +1,24 @@ rappmanager: csarlocation: src/test/resources/csar acm: - baseurl: http://10.101.2.41:30442/onap/policy/clamp/acm/v2/ + baseurl: http://localhost:30442/onap/policy/clamp/acm/v2/ username: runtimeUser password: zb!XztG34 maxRetries: 10 retryInterval: 2 #seconds sme: - baseurl: http://localhost:56571 #http://10.101.3.22:61761 + baseurl: http://localhost:56571 providerBasePath: /api-provider-management/v1/ invokerBasePath: /api-invoker-management/v1/ publishApiBasePath: /published-apis/v1/ maxRetries: 3 retryInterval: 2 #seconds dme: - baseurl: http://localhost:63475 #http://10.101.3.22:61761 + baseurl: http://localhost:63475 + + rapps: + env: + smeDiscoveryEndpoint: http://localhost:53012/service-apis/v1/allServiceAPIs spring: jackson: diff --git a/rapp-manager-dme/src/test/java/com/oransc/rappmanager/dme/service/DmeAcmInterceptorTest.java b/rapp-manager-dme/src/test/java/com/oransc/rappmanager/dme/service/DmeAcmInterceptorTest.java index fb51f29..005afcc 100755 --- a/rapp-manager-dme/src/test/java/com/oransc/rappmanager/dme/service/DmeAcmInterceptorTest.java +++ b/rapp-manager-dme/src/test/java/com/oransc/rappmanager/dme/service/DmeAcmInterceptorTest.java @@ -23,6 +23,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import com.fasterxml.jackson.databind.ObjectMapper; import com.google.gson.JsonArray; import com.google.gson.JsonParser; +import com.oransc.rappmanager.models.configuration.RappsEnvironmentConfiguration; import com.oransc.rappmanager.models.csar.RappCsarConfigurationHandler; import com.oransc.rappmanager.models.rapp.Rapp; import com.oransc.rappmanager.models.rapp.RappDmeResourceBuilder; @@ -48,7 +49,8 @@ import org.onap.policy.models.tosca.authorative.concepts.ToscaTopologyTemplate; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; -@SpringBootTest(classes = {ObjectMapper.class, RappCsarConfigurationHandler.class, DmeAcmInterceptor.class}) +@SpringBootTest(classes = {ObjectMapper.class, RappsEnvironmentConfiguration.class, RappCsarConfigurationHandler.class, + DmeAcmInterceptor.class}) class DmeAcmInterceptorTest { @Autowired diff --git a/rapp-manager-dme/src/test/java/com/oransc/rappmanager/dme/service/DmeDeployerTest.java b/rapp-manager-dme/src/test/java/com/oransc/rappmanager/dme/service/DmeDeployerTest.java index acbf697..7961cc2 100755 --- a/rapp-manager-dme/src/test/java/com/oransc/rappmanager/dme/service/DmeDeployerTest.java +++ b/rapp-manager-dme/src/test/java/com/oransc/rappmanager/dme/service/DmeDeployerTest.java @@ -31,6 +31,7 @@ import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import com.oransc.rappmanager.dme.configuration.DmeConfiguration; import com.oransc.rappmanager.models.cache.RappCacheService; +import com.oransc.rappmanager.models.configuration.RappsEnvironmentConfiguration; import com.oransc.rappmanager.models.csar.RappCsarConfigurationHandler; import com.oransc.rappmanager.models.rapp.Rapp; import com.oransc.rappmanager.models.rapp.RappDmeResourceBuilder; @@ -65,8 +66,8 @@ import org.springframework.test.web.client.MockRestServiceServer; import org.springframework.web.client.RestTemplate; @SpringBootTest(classes = {DmeConfiguration.class, DmeDeployer.class, BeanTestConfiguration.class, - RappCsarConfigurationHandler.class, RappCacheService.class, RappInstanceStateMachineConfig.class, - RappInstanceStateMachine.class}) + RappsEnvironmentConfiguration.class, RappCsarConfigurationHandler.class, RappCacheService.class, + RappInstanceStateMachineConfig.class, RappInstanceStateMachine.class}) @TestInstance(TestInstance.Lifecycle.PER_CLASS) @AutoConfigureMockMvc class DmeDeployerTest { diff --git a/rapp-manager-models/src/main/java/com/oransc/rappmanager/models/configuration/RappsEnvironmentConfiguration.java b/rapp-manager-models/src/main/java/com/oransc/rappmanager/models/configuration/RappsEnvironmentConfiguration.java new file mode 100644 index 0000000..941556e --- /dev/null +++ b/rapp-manager-models/src/main/java/com/oransc/rappmanager/models/configuration/RappsEnvironmentConfiguration.java @@ -0,0 +1,31 @@ +/*- + * ============LICENSE_START====================================================================== + * Copyright (C) 2024 OpenInfra Foundation Europe. 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======================================================================== + */ + +package com.oransc.rappmanager.models.configuration; + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.context.annotation.Configuration; + +@Configuration +@ConfigurationProperties(prefix = "rappmanager.rapps.env") +@Data +public class RappsEnvironmentConfiguration { + + String smeDiscoveryEndpoint; +} \ No newline at end of file diff --git a/rapp-manager-models/src/main/java/com/oransc/rappmanager/models/csar/RappCsarConfigurationHandler.java b/rapp-manager-models/src/main/java/com/oransc/rappmanager/models/csar/RappCsarConfigurationHandler.java index f71315f..cb071b9 100755 --- a/rapp-manager-models/src/main/java/com/oransc/rappmanager/models/csar/RappCsarConfigurationHandler.java +++ b/rapp-manager-models/src/main/java/com/oransc/rappmanager/models/csar/RappCsarConfigurationHandler.java @@ -26,9 +26,10 @@ import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; import com.google.gson.Gson; +import com.oransc.rappmanager.models.configuration.RappsEnvironmentConfiguration; import com.oransc.rappmanager.models.rapp.Rapp; import com.oransc.rappmanager.models.rapp.RappResources; -import com.oransc.rappmanager.models.rappinstance.RappACMInstance; +import com.oransc.rappmanager.models.rappinstance.RappInstance; import com.oransc.rappmanager.models.rappinstance.RappSMEInstance; import java.io.ByteArrayOutputStream; import java.io.File; @@ -59,15 +60,19 @@ public class RappCsarConfigurationHandler { Logger logger = LoggerFactory.getLogger(RappCsarConfigurationHandler.class); private final ObjectMapper objectMapper; + private final RappsEnvironmentConfiguration rappsEnvironmentConfiguration; public Path getRappPackageLocation(String csarLocation, String rappId, String fileName) { return Path.of(csarLocation, rappId, fileName); } - public String getInstantiationPayload(Rapp rapp, RappACMInstance rappACMInstance, UUID compositionId) { - return getPayload(rapp, - getResourceUri(RappCsarPathProvider.ACM_INSTANCES_LOCATION, rappACMInstance.getInstance())).replaceAll( - "DO_NOT_CHANGE_THIS_COMPOSITION_ID", String.valueOf(compositionId)); + public String getInstantiationPayload(Rapp rapp, RappInstance rappInstance, UUID compositionId) { + return getPayload(rapp, getResourceUri(RappCsarPathProvider.ACM_INSTANCES_LOCATION, + rappInstance.getAcm().getInstance())).replace("DO_NOT_CHANGE_THIS_COMPOSITION_ID", + String.valueOf(compositionId)) + .replace("DO_NOT_CHANGE_THIS_RAPP_INSTANCE_ID", String.valueOf(rappInstance.getRappInstanceId())) + .replace("DO_NOT_CHANGE_THIS_SME_DISCOVERY_ENDPOINT", + rappsEnvironmentConfiguration.getSmeDiscoveryEndpoint()); } public ByteArrayResource getArtifactPayload(Rapp rapp, String location) { @@ -139,8 +144,6 @@ public class RappCsarConfigurationHandler { } - - public String getSmeProviderDomainPayload(Rapp rapp, RappSMEInstance rappSMEInstance) { return getPayload(rapp, getResourceUri(RappCsarPathProvider.SME_PROVIDER_FUNCS_LOCATION, rappSMEInstance.getProviderFunction())); @@ -151,9 +154,10 @@ public class RappCsarConfigurationHandler { getResourceUri(RappCsarPathProvider.SME_SERVICE_APIS_LOCATION, rappSMEInstance.getServiceApis())); } - public String getSmeInvokerPayload(Rapp rapp, RappSMEInstance rappSMEInstance) { - return getPayload(rapp, - getResourceUri(RappCsarPathProvider.SME_INVOKERS_LOCATION, rappSMEInstance.getInvokers())); + public String getSmeInvokerPayload(Rapp rapp, RappInstance rappInstance) { + return getPayload(rapp, getResourceUri(RappCsarPathProvider.SME_INVOKERS_LOCATION, + rappInstance.getSme().getInvokers())).replace("DO_NOT_CHANGE_THIS_RAPP_INSTANCE_ID", + String.valueOf(rappInstance.getRappInstanceId())); } public String getAcmCompositionPayload(Rapp rapp) { diff --git a/rapp-manager-models/src/test/java/com/oransc/rappmanager/models/RappServiceEnablerTest.java b/rapp-manager-models/src/test/java/com/oransc/rappmanager/models/RappServiceEnablerTest.java index 69ddc9b..4c0a63c 100755 --- a/rapp-manager-models/src/test/java/com/oransc/rappmanager/models/RappServiceEnablerTest.java +++ b/rapp-manager-models/src/test/java/com/oransc/rappmanager/models/RappServiceEnablerTest.java @@ -22,6 +22,7 @@ import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; import com.fasterxml.jackson.databind.ObjectMapper; +import com.oransc.rappmanager.models.configuration.RappsEnvironmentConfiguration; import com.oransc.rappmanager.models.csar.RappCsarConfigurationHandler; import com.oransc.rappmanager.models.rapp.Rapp; import com.oransc.rappmanager.models.rapp.RappResources; @@ -36,7 +37,8 @@ import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.ContextConfiguration; @SpringBootTest -@ContextConfiguration(classes = {ObjectMapper.class, RappCsarConfigurationHandler.class}) +@ContextConfiguration( + classes = {ObjectMapper.class, RappsEnvironmentConfiguration.class, RappCsarConfigurationHandler.class}) class RappServiceEnablerTest { @Autowired diff --git a/rapp-manager-models/src/test/java/com/oransc/rappmanager/models/csar/RappCsarConfigurationHandlerTest.java b/rapp-manager-models/src/test/java/com/oransc/rappmanager/models/csar/RappCsarConfigurationHandlerTest.java index 9f1893b..be4e002 100755 --- a/rapp-manager-models/src/test/java/com/oransc/rappmanager/models/csar/RappCsarConfigurationHandlerTest.java +++ b/rapp-manager-models/src/test/java/com/oransc/rappmanager/models/csar/RappCsarConfigurationHandlerTest.java @@ -29,12 +29,15 @@ import static org.mockito.Mockito.doThrow; import static org.mockito.Mockito.mock; import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; import com.google.gson.JsonSyntaxException; +import com.oransc.rappmanager.models.configuration.RappsEnvironmentConfiguration; import com.oransc.rappmanager.models.rapp.Rapp; import com.oransc.rappmanager.models.rapp.RappResources; import com.oransc.rappmanager.models.rappinstance.RappACMInstance; import com.oransc.rappmanager.models.rappinstance.RappDMEInstance; +import com.oransc.rappmanager.models.rappinstance.RappInstance; import com.oransc.rappmanager.models.rappinstance.RappSMEInstance; import java.io.ByteArrayOutputStream; import java.io.File; @@ -42,21 +45,30 @@ import java.io.IOException; import java.util.Set; import java.util.UUID; import org.apache.commons.compress.archivers.zip.ZipArchiveInputStream; +import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import org.junit.jupiter.api.Test; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.ValueSource; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.mock.mockito.SpyBean; import org.springframework.test.context.ContextConfiguration; @SpringBootTest -@ContextConfiguration(classes = {ObjectMapper.class, RappCsarConfigurationHandler.class}) +@EnableConfigurationProperties +@ContextConfiguration( + classes = {ObjectMapper.class, RappsEnvironmentConfiguration.class, RappCsarConfigurationHandler.class}) class RappCsarConfigurationHandlerTest { @SpyBean RappCsarConfigurationHandler rappCsarConfigurationHandler; + @Autowired + RappsEnvironmentConfiguration rappsEnvironmentConfiguration; + @Autowired + ObjectMapper objectMapper; String validCsarFileLocation = "src/test/resources/"; @@ -67,14 +79,27 @@ class RappCsarConfigurationHandlerTest { private final String invalidRappEmptyAsdFile = "invalid-rapp-package-empty-asd-yaml.csar"; @Test - void testCsarInstantiationPayload() throws JSONException { + void testCsarInstantiationPayload() throws JSONException, JsonProcessingException { Rapp rapp = Rapp.builder().name("").packageName(validRappFile).packageLocation(validCsarFileLocation).build(); UUID compositionId = UUID.randomUUID(); - RappACMInstance rappACMInstance = new RappACMInstance(); - rappACMInstance.setInstance("kserve-instance"); - JSONObject jsonObject = new JSONObject( - rappCsarConfigurationHandler.getInstantiationPayload(rapp, rappACMInstance, compositionId)); - assertEquals(jsonObject.get("compositionId"), String.valueOf(compositionId)); + RappInstance rappInstance = new RappInstance(); + RappACMInstance rappKserveACMInstance = new RappACMInstance(); + rappKserveACMInstance.setInstance("kserve-instance"); + rappInstance.setAcm(rappKserveACMInstance); + JSONObject kserveInstanceJsonObject = + new JSONObject(rappCsarConfigurationHandler.getInstantiationPayload(rapp, rappInstance, compositionId)); + assertEquals(kserveInstanceJsonObject.get("compositionId"), String.valueOf(compositionId)); + RappACMInstance rappK8sACMInstance = new RappACMInstance(); + rappK8sACMInstance.setInstance("k8s-instance"); + rappInstance.setAcm(rappK8sACMInstance); + JsonNode jsonNode = objectMapper.readTree( + rappCsarConfigurationHandler.getInstantiationPayload(rapp, rappInstance, compositionId)); + assertEquals(jsonNode.get("compositionId").asText(), String.valueOf(compositionId)); + JsonNode overrideParamsNode = jsonNode.at("/elements").elements().next().at("/properties/chart/overrideParams"); + System.out.println(overrideParamsNode); + assertEquals(overrideParamsNode.get("appId").asText(), rappInstance.getRappInstanceId().toString()); + assertEquals(overrideParamsNode.get("smeDiscoveryEndpoint").asText(), + rappsEnvironmentConfiguration.getSmeDiscoveryEndpoint()); } @Test @@ -191,12 +216,17 @@ class RappCsarConfigurationHandlerTest { void testGetSmeInvokerPayload() { UUID rappId = UUID.randomUUID(); RappSMEInstance rappSMEInstance = new RappSMEInstance(); - rappSMEInstance.setServiceApis("invoker-app1"); + rappSMEInstance.setInvokers("invoker-app1"); + RappInstance rappInstance = new RappInstance(); + rappInstance.setSme(rappSMEInstance); Rapp rapp = Rapp.builder().rappId(rappId).name("").packageName(validRappFile).packageLocation(validCsarFileLocation) .build(); - String smeProviderDomainPayload = rappCsarConfigurationHandler.getSmeInvokerPayload(rapp, rappSMEInstance); - assertNotNull(smeProviderDomainPayload); + JSONArray smeInvokerPayload = + new JSONArray(rappCsarConfigurationHandler.getSmeInvokerPayload(rapp, rappInstance)); + assertNotNull(smeInvokerPayload); + assertEquals(smeInvokerPayload.getJSONObject(0).getString("apiInvokerInformation"), + rappInstance.getRappInstanceId().toString()); } @Test diff --git a/rapp-manager-models/src/test/java/com/oransc/rappmanager/models/csar/validator/ArtifactDefinitionValidatorTest.java b/rapp-manager-models/src/test/java/com/oransc/rappmanager/models/csar/validator/ArtifactDefinitionValidatorTest.java index b0c2f43..fa4377c 100755 --- a/rapp-manager-models/src/test/java/com/oransc/rappmanager/models/csar/validator/ArtifactDefinitionValidatorTest.java +++ b/rapp-manager-models/src/test/java/com/oransc/rappmanager/models/csar/validator/ArtifactDefinitionValidatorTest.java @@ -25,10 +25,9 @@ import static org.junit.jupiter.api.Assertions.assertThrows; import static org.junit.jupiter.api.Assertions.assertTrue; import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.doCallRealMethod; -import static org.mockito.Mockito.doReturn; -import static org.mockito.Mockito.mock; import com.fasterxml.jackson.databind.ObjectMapper; +import com.oransc.rappmanager.models.configuration.RappsEnvironmentConfiguration; import com.oransc.rappmanager.models.csar.RappCsarConfigurationHandler; import com.oransc.rappmanager.models.exception.RappValidationException; import java.io.ByteArrayOutputStream; @@ -50,7 +49,7 @@ import org.springframework.web.multipart.MultipartFile; @SpringBootTest @ContextConfiguration(classes = {ArtifactDefinitionValidator.class, RappValidationUtils.class, ObjectMapper.class, - RappCsarConfigurationHandler.class}) + RappsEnvironmentConfiguration.class, RappCsarConfigurationHandler.class}) class ArtifactDefinitionValidatorTest { @Autowired @@ -84,7 +83,6 @@ class ArtifactDefinitionValidatorTest { } - @ParameterizedTest @NullSource @ValueSource(strings = {"{asasdasd"}) diff --git a/rapp-manager-models/src/test/java/com/oransc/rappmanager/models/csar/validator/AsdDescriptorValidatorTest.java b/rapp-manager-models/src/test/java/com/oransc/rappmanager/models/csar/validator/AsdDescriptorValidatorTest.java index 1d9079b..eb60567 100755 --- a/rapp-manager-models/src/test/java/com/oransc/rappmanager/models/csar/validator/AsdDescriptorValidatorTest.java +++ b/rapp-manager-models/src/test/java/com/oransc/rappmanager/models/csar/validator/AsdDescriptorValidatorTest.java @@ -29,6 +29,7 @@ import static org.mockito.Mockito.doReturn; import com.fasterxml.jackson.databind.ObjectMapper; import com.oransc.rappmanager.models.BeanTestConfiguration; import com.oransc.rappmanager.models.cache.RappCacheService; +import com.oransc.rappmanager.models.configuration.RappsEnvironmentConfiguration; import com.oransc.rappmanager.models.csar.AsdMetadata; import com.oransc.rappmanager.models.csar.RappCsarConfigurationHandler; import com.oransc.rappmanager.models.exception.RappValidationException; @@ -54,7 +55,8 @@ import org.springframework.web.multipart.MultipartFile; @SpringBootTest @ContextConfiguration(classes = {BeanTestConfiguration.class, AsdDescriptorValidator.class, RappValidationUtils.class, - ObjectMapper.class, RappCsarConfigurationHandler.class, RappCacheService.class, CacheManager.class}) + ObjectMapper.class, RappsEnvironmentConfiguration.class, RappCsarConfigurationHandler.class, + RappCacheService.class, CacheManager.class}) class AsdDescriptorValidatorTest { @Autowired diff --git a/rapp-manager-models/src/test/java/com/oransc/rappmanager/models/csar/validator/FileExistenceValidatorTest.java b/rapp-manager-models/src/test/java/com/oransc/rappmanager/models/csar/validator/FileExistenceValidatorTest.java index 2b6e369..22ca62c 100755 --- a/rapp-manager-models/src/test/java/com/oransc/rappmanager/models/csar/validator/FileExistenceValidatorTest.java +++ b/rapp-manager-models/src/test/java/com/oransc/rappmanager/models/csar/validator/FileExistenceValidatorTest.java @@ -25,6 +25,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertThrows; import com.fasterxml.jackson.databind.ObjectMapper; +import com.oransc.rappmanager.models.configuration.RappsEnvironmentConfiguration; import com.oransc.rappmanager.models.csar.RappCsarConfigurationHandler; import com.oransc.rappmanager.models.exception.RappValidationException; import java.io.File; @@ -41,7 +42,7 @@ import org.springframework.web.multipart.MultipartFile; @SpringBootTest @ContextConfiguration(classes = {FileExistenceValidator.class, RappValidationUtils.class, ObjectMapper.class, - RappCsarConfigurationHandler.class}) + RappsEnvironmentConfiguration.class, RappCsarConfigurationHandler.class}) class FileExistenceValidatorTest { @Autowired diff --git a/rapp-manager-models/src/test/java/com/oransc/rappmanager/models/csar/validator/RappValidationHandlerTest.java b/rapp-manager-models/src/test/java/com/oransc/rappmanager/models/csar/validator/RappValidationHandlerTest.java index 2166419..ac61c3e 100755 --- a/rapp-manager-models/src/test/java/com/oransc/rappmanager/models/csar/validator/RappValidationHandlerTest.java +++ b/rapp-manager-models/src/test/java/com/oransc/rappmanager/models/csar/validator/RappValidationHandlerTest.java @@ -26,6 +26,7 @@ import static org.mockito.Mockito.mock; import com.fasterxml.jackson.databind.ObjectMapper; import com.oransc.rappmanager.models.BeanTestConfiguration; import com.oransc.rappmanager.models.cache.RappCacheService; +import com.oransc.rappmanager.models.configuration.RappsEnvironmentConfiguration; import com.oransc.rappmanager.models.csar.RappCsarConfigurationHandler; import com.oransc.rappmanager.models.exception.RappValidationException; import java.io.File; @@ -47,7 +48,8 @@ import org.springframework.web.multipart.MultipartFile; @SpringBootTest @ContextConfiguration(classes = {BeanTestConfiguration.class, RappValidationHandler.class, NamingValidator.class, FileExistenceValidator.class, ArtifactDefinitionValidator.class, AsdDescriptorValidator.class, - RappValidationUtils.class, RappCsarConfigurationHandler.class, ObjectMapper.class, RappCacheService.class}) + RappValidationUtils.class, RappsEnvironmentConfiguration.class, RappCsarConfigurationHandler.class, + ObjectMapper.class, RappCacheService.class}) class RappValidationHandlerTest { @Autowired diff --git a/rapp-manager-models/src/test/java/com/oransc/rappmanager/models/csar/validator/RappValidationUtilsTest.java b/rapp-manager-models/src/test/java/com/oransc/rappmanager/models/csar/validator/RappValidationUtilsTest.java index da575dd..5245d54 100755 --- a/rapp-manager-models/src/test/java/com/oransc/rappmanager/models/csar/validator/RappValidationUtilsTest.java +++ b/rapp-manager-models/src/test/java/com/oransc/rappmanager/models/csar/validator/RappValidationUtilsTest.java @@ -27,6 +27,7 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; import com.fasterxml.jackson.databind.ObjectMapper; +import com.oransc.rappmanager.models.configuration.RappsEnvironmentConfiguration; import com.oransc.rappmanager.models.csar.RappCsarConfigurationHandler; import com.oransc.rappmanager.models.csar.RappCsarPathProvider; import com.oransc.rappmanager.models.exception.RappValidationException; @@ -43,7 +44,8 @@ import org.springframework.test.context.ContextConfiguration; import org.springframework.web.multipart.MultipartFile; @SpringBootTest -@ContextConfiguration(classes = {RappValidationUtils.class, ObjectMapper.class, RappCsarConfigurationHandler.class}) +@ContextConfiguration(classes = {RappValidationUtils.class, ObjectMapper.class, RappsEnvironmentConfiguration.class, + RappCsarConfigurationHandler.class}) class RappValidationUtilsTest { String validCsarFileLocation = "src/test/resources/"; @@ -87,7 +89,8 @@ class RappValidationUtilsTest { RappValidationException exception = assertThrows(RappValidationException.class, () -> rappValidationUtils.getFileFromCsar(multipartFile, null)); assertEquals(HttpStatus.BAD_REQUEST, exception.getStatusCode()); - assertEquals(String.format("Unable to get file %s from the multipart CSAR file", (Object) null), exception.getMessage()); + assertEquals(String.format("Unable to get file %s from the multipart CSAR file", (Object) null), + exception.getMessage()); } @Test diff --git a/rapp-manager-models/src/test/resources/application.yaml b/rapp-manager-models/src/test/resources/application.yaml new file mode 100644 index 0000000..2b28b08 --- /dev/null +++ b/rapp-manager-models/src/test/resources/application.yaml @@ -0,0 +1,4 @@ +rappmanager: + rapps: + env: + smeDiscoveryEndpoint: http://localhost:53012/service-apis/v1/allServiceAPIs diff --git a/rapp-manager-models/src/test/resources/valid-rapp-package.csar b/rapp-manager-models/src/test/resources/valid-rapp-package.csar index 1dddd4a45398630e2e399271d954f51cc94d5b2c..a24a8c8714032e9402e8c6fabd37ba2d47151aef 100755 GIT binary patch delta 2439 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 diff --git a/rapp-manager-sme/src/main/java/com/oransc/rappmanager/sme/service/SmeDeployer.java b/rapp-manager-sme/src/main/java/com/oransc/rappmanager/sme/service/SmeDeployer.java index cab3ef8..8989e82 100755 --- a/rapp-manager-sme/src/main/java/com/oransc/rappmanager/sme/service/SmeDeployer.java +++ b/rapp-manager-sme/src/main/java/com/oransc/rappmanager/sme/service/SmeDeployer.java @@ -218,7 +218,7 @@ public class SmeDeployer implements RappDeployer { boolean createInvoker(Rapp rapp, RappInstance rappInstance) { logger.debug("Creating provider domain for Rapp {}", rapp.getName()); try { - String invokerPayload = rappCsarConfigurationHandler.getSmeInvokerPayload(rapp, rappInstance.getSme()); + String invokerPayload = rappCsarConfigurationHandler.getSmeInvokerPayload(rapp, rappInstance); if (invokerPayload != null) { List apiInvokerEnrolmentDetails = objectMapper.readValue(invokerPayload, new TypeReference<>() { }); diff --git a/rapp-manager-sme/src/test/java/com/oransc/rappmanager/sme/service/SmeDeployerTest.java b/rapp-manager-sme/src/test/java/com/oransc/rappmanager/sme/service/SmeDeployerTest.java index 53d5b5d..b7bcab0 100755 --- a/rapp-manager-sme/src/test/java/com/oransc/rappmanager/sme/service/SmeDeployerTest.java +++ b/rapp-manager-sme/src/test/java/com/oransc/rappmanager/sme/service/SmeDeployerTest.java @@ -30,6 +30,7 @@ import static org.springframework.test.web.client.response.MockRestResponseCreat import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import com.oransc.rappmanager.models.cache.RappCacheService; +import com.oransc.rappmanager.models.configuration.RappsEnvironmentConfiguration; import com.oransc.rappmanager.models.csar.RappCsarConfigurationHandler; import com.oransc.rappmanager.models.rapp.Rapp; import com.oransc.rappmanager.models.rapp.RappState; @@ -63,8 +64,8 @@ import org.springframework.test.web.client.MockRestServiceServer; import org.springframework.web.client.RestTemplate; @SpringBootTest(classes = {SmeConfiguration.class, SmeDeployer.class, BeanTestConfiguration.class, - RappCsarConfigurationHandler.class, RappCacheService.class, RappInstanceStateMachineConfig.class, - RappInstanceStateMachine.class}) + RappsEnvironmentConfiguration.class, RappCsarConfigurationHandler.class, RappCacheService.class, + RappInstanceStateMachineConfig.class, RappInstanceStateMachine.class}) @TestInstance(TestInstance.Lifecycle.PER_CLASS) @AutoConfigureMockMvc class SmeDeployerTest { diff --git a/sample-rapp-generator/rapp-all/Files/Acm/instances/all-instance.json b/sample-rapp-generator/rapp-all/Files/Acm/instances/all-instance.json index 4491148..2e5a18a 100755 --- a/sample-rapp-generator/rapp-all/Files/Acm/instances/all-instance.json +++ b/sample-rapp-generator/rapp-all/Files/Acm/instances/all-instance.json @@ -43,6 +43,10 @@ "repository": { "repoName": "local", "address": "UPDATE_THIS_CHART_MUSEUM_GET_CHARTS_URI" + }, + "overrideParams": { + "appId": "DO_NOT_CHANGE_THIS_RAPP_INSTANCE_ID", + "smeDiscoveryEndpoint": "DO_NOT_CHANGE_THIS_SME_DISCOVERY_ENDPOINT" } } } diff --git a/sample-rapp-generator/rapp-all/Files/Acm/instances/k8s-instance.json b/sample-rapp-generator/rapp-all/Files/Acm/instances/k8s-instance.json index b4416fb..a77ac5b 100755 --- a/sample-rapp-generator/rapp-all/Files/Acm/instances/k8s-instance.json +++ b/sample-rapp-generator/rapp-all/Files/Acm/instances/k8s-instance.json @@ -23,6 +23,10 @@ "repository": { "repoName": "local", "address": "UPDATE_THIS_CHART_MUSEUM_GET_CHARTS_URI" + }, + "overrideParams": { + "appId": "DO_NOT_CHANGE_THIS_RAPP_INSTANCE_ID", + "smeDiscoveryEndpoint": "DO_NOT_CHANGE_THIS_SME_DISCOVERY_ENDPOINT" } } } diff --git a/sample-rapp-generator/rapp-all/Files/Sme/invokers/invoker-app1.json b/sample-rapp-generator/rapp-all/Files/Sme/invokers/invoker-app1.json index 612af40..0400730 100755 --- a/sample-rapp-generator/rapp-all/Files/Sme/invokers/invoker-app1.json +++ b/sample-rapp-generator/rapp-all/Files/Sme/invokers/invoker-app1.json @@ -1,6 +1,6 @@ [ { - "apiInvokerInformation": "Invoker App 1", + "apiInvokerInformation": "DO_NOT_CHANGE_THIS_RAPP_INSTANCE_ID", "apiList": [ {} ], diff --git a/sample-rapp-generator/rapp-all/Files/Sme/invokers/invoker-app2.json b/sample-rapp-generator/rapp-all/Files/Sme/invokers/invoker-app2.json index 27e1063..0ebeaad 100755 --- a/sample-rapp-generator/rapp-all/Files/Sme/invokers/invoker-app2.json +++ b/sample-rapp-generator/rapp-all/Files/Sme/invokers/invoker-app2.json @@ -1,6 +1,6 @@ [ { - "apiInvokerInformation": "Invoker App 2", + "apiInvokerInformation": "DO_NOT_CHANGE_THIS_RAPP_INSTANCE_ID", "apiList": [ {} ], diff --git a/sample-rapp-generator/rapp-hello-world/Files/Acm/instances/k8s-instance.json b/sample-rapp-generator/rapp-hello-world/Files/Acm/instances/k8s-instance.json index c019541..c37d288 100644 --- a/sample-rapp-generator/rapp-hello-world/Files/Acm/instances/k8s-instance.json +++ b/sample-rapp-generator/rapp-hello-world/Files/Acm/instances/k8s-instance.json @@ -1,31 +1,35 @@ -{ - "name": "K8DemoInstance0", - "version": "1.0.1", - "compositionId": "DO_NOT_CHANGE_THIS_COMPOSITION_ID", - "description": "Demo automation composition instance 0", - "elements": { - "d7be552e-bcc5-4478-b64d-797dbaec8f55": { - "id": "d7be552e-bcc5-4478-b64d-797dbaec8f55", - "definition": { - "name": "onap.policy.clamp.ac.element.K8S_StarterAutomationCompositionElement", - "version": "1.2.3" - }, - "description": "Starter Automation Composition Element for the Hello World", - "properties": { - "chart": { - "chartId": { - "name": "hello-world-chart", - "version": "0.1.0" - }, - "namespace": "nonrtric", - "releaseName": "hello-world-chart", - "podName": "hello-world-chart", - "repository": { - "repoName": "local", - "address": "UPDATE_THIS_CHART_MUSEUM_GET_CHARTS_URI" - } - } - } - } - } +{ + "name": "K8DemoInstance0", + "version": "1.0.1", + "compositionId": "DO_NOT_CHANGE_THIS_COMPOSITION_ID", + "description": "Demo automation composition instance 0", + "elements": { + "d7be552e-bcc5-4478-b64d-797dbaec8f55": { + "id": "d7be552e-bcc5-4478-b64d-797dbaec8f55", + "definition": { + "name": "onap.policy.clamp.ac.element.K8S_StarterAutomationCompositionElement", + "version": "1.2.3" + }, + "description": "Starter Automation Composition Element for the Hello World", + "properties": { + "chart": { + "chartId": { + "name": "hello-world-chart", + "version": "0.1.0" + }, + "namespace": "nonrtric", + "releaseName": "hello-world-chart", + "podName": "hello-world-chart", + "repository": { + "repoName": "local", + "address": "UPDATE_THIS_CHART_MUSEUM_GET_CHARTS_URI" + }, + "overrideParams": { + "appId": "DO_NOT_CHANGE_THIS_RAPP_INSTANCE_ID", + "smeDiscoveryEndpoint": "DO_NOT_CHANGE_THIS_SME_DISCOVERY_ENDPOINT" + } + } + } + } + } } \ No newline at end of file -- 2.16.6