From: John Keeney Date: Thu, 7 Mar 2024 10:46:07 +0000 (+0000) Subject: Merge "Pass rAppInstanceId to k8s participant and create the invoker with the instanc... X-Git-Tag: 0.1.0~21 X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=commitdiff_plain;h=0c011a73756fbba6db7d8e0267ca1e7d17cc1e23;hp=65e1da472f81364372b6c5eccb60b1bcf2ef3976;p=nonrtric%2Fplt%2Frappmanager.git Merge "Pass rAppInstanceId to k8s participant and create the invoker with the instance Id" --- 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 1dddd4a..a24a8c8 100755 Binary files a/rapp-manager-models/src/test/resources/valid-rapp-package.csar and b/rapp-manager-models/src/test/resources/valid-rapp-package.csar differ 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