diff options
author | aleem.raja@t-systems.com <aleem.raja@t-systems.com> | 2022-09-07 15:54:04 +0530 |
---|---|---|
committer | aleem.raja@t-systems.com <aleem.raja@t-systems.com> | 2022-09-07 15:54:17 +0530 |
commit | d4de474780d0ab820f2133a7ff368cc24939397d (patch) | |
tree | b826bb6b4996cbafd6fb4e65c3d1d9936b933c00 | |
parent | 66b09af14e0a2cf774e9f917562f4ae54587eb19 (diff) |
Update nf_type for PNF in AAI
Update nf_type for PNF in AAI to distinguish different PNFs
nf_type value will come from SDC properties
Issue-ID: SO-3967
Signed-off-by: aleem.raja@t-systems.com <aleem.raja@t-systems.com>
Change-Id: I9dd039ac098a60f7cf4d4a9c456c7681f64d9987
8 files changed, 132 insertions, 0 deletions
diff --git a/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/modelinfo/ModelInfoPnf.java b/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/modelinfo/ModelInfoPnf.java index a01fa9698b..9b81979222 100644 --- a/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/modelinfo/ModelInfoPnf.java +++ b/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/modelinfo/ModelInfoPnf.java @@ -20,8 +20,31 @@ package org.onap.so.bpmn.servicedecomposition.modelinfo; +import com.fasterxml.jackson.annotation.JsonProperty; import java.io.Serializable; public class ModelInfoPnf extends ModelInfoMetadata implements Serializable { private static final long serialVersionUID = 50687109134317615L; + + @JsonProperty("nf-role") + private String role; + + @JsonProperty("nf-type") + private String NfType; + + public String getRole() { + return role; + } + + public void setRole(String role) { + this.role = role; + } + + public String getNfType() { + return NfType; + } + + public void setNfType(String nfType) { + NfType = nfType; + } } diff --git a/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/tasks/BBInputSetup.java b/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/tasks/BBInputSetup.java index a0784b375e..c36aaac5e1 100644 --- a/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/tasks/BBInputSetup.java +++ b/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/tasks/BBInputSetup.java @@ -86,6 +86,7 @@ import org.onap.so.db.catalog.beans.CvnfcConfigurationCustomization; import org.onap.so.db.catalog.beans.NetworkCollectionResourceCustomization; import org.onap.so.db.catalog.beans.NetworkResourceCustomization; import org.onap.so.db.catalog.beans.OrchestrationStatus; +import org.onap.so.db.catalog.beans.PnfResourceCustomization; import org.onap.so.db.catalog.beans.Service; import org.onap.so.db.catalog.beans.ServiceProxyResourceCustomization; import org.onap.so.db.catalog.beans.VfModuleCustomization; @@ -982,6 +983,13 @@ public class BBInputSetup implements JavaDelegate { } } + protected void mapCatalogPnf(Pnf pnf, ModelInfo modelInfo, Service service) { + PnfResourceCustomization pnfResourceCustomization = getPnfResourceCustomizationFromService(modelInfo, service); + if (pnfResourceCustomization != null) { + pnf.setModelInfoPnf(this.mapperLayer.mapCatalogPnfToPnf(pnfResourceCustomization)); + } + } + protected VnfResourceCustomization getVnfResourceCustomizationFromService(ModelInfo modelInfo, Service service) { VnfResourceCustomization vnfResourceCustomization = null; for (VnfResourceCustomization resourceCust : service.getVnfCustomizations()) { @@ -993,6 +1001,17 @@ public class BBInputSetup implements JavaDelegate { return vnfResourceCustomization; } + protected PnfResourceCustomization getPnfResourceCustomizationFromService(ModelInfo modelInfo, Service service) { + PnfResourceCustomization pnfResourceCustomization = null; + for (PnfResourceCustomization resourceCust : service.getPnfCustomizations()) { + if (resourceCust.getModelCustomizationUUID().equalsIgnoreCase(modelInfo.getModelCustomizationUuid())) { + pnfResourceCustomization = resourceCust; + break; + } + } + return pnfResourceCustomization; + } + protected void populateL3Network(BBInputSetupParameter parameter) { L3Network network = null; for (L3Network networkTemp : parameter.getServiceInstance().getNetworks()) { @@ -1645,6 +1664,15 @@ public class BBInputSetup implements JavaDelegate { .filter(pnfs -> Objects.equals(key, pnfs.getModelInfo().getModelCustomizationId())).findFirst() .ifPresent(pnfs -> BBInputSetupPnf.populatePnfToServiceInstance(pnfs, pnfId, serviceInstance)); } + + serviceInstance.getPnfs().stream().filter(pnf -> pnfInstanceName.equalsIgnoreCase(pnf.getPnfName())) + .findFirst().ifPresent(pnf -> { + ModelInfo pnfModelInfo = new ModelInfo(); + pnfModelInfo.setModelCustomizationUuid(pnf.getModelInfoPnf().getModelCustomizationUuid()); + pnfModelInfo.setModelCustomizationId(pnf.getModelInfoPnf().getModelCustomizationUuid()); + mapCatalogPnf(pnf, pnfModelInfo, service); + }); + } else if (bbName.contains(VF_MODULE) || bbName.contains(VOLUME_GROUP) || (bbName.contains(CONTROLLER) && (VF_MODULE).equalsIgnoreCase(executeBB.getBuildingBlock().getBpmnScope()))) { String vfModuleInstanceName = lookupKeyMap.get(ResourceKey.VF_MODULE_INSTANCE_NAME); diff --git a/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/tasks/BBInputSetupMapperLayer.java b/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/tasks/BBInputSetupMapperLayer.java index 2bb383e4ec..759c9ec46a 100644 --- a/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/tasks/BBInputSetupMapperLayer.java +++ b/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/tasks/BBInputSetupMapperLayer.java @@ -65,6 +65,7 @@ import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoConfiguration; import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoGenericVnf; import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoInstanceGroup; import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoNetwork; +import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoPnf; import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoServiceInstance; import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoServiceProxy; import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoVfModule; @@ -79,6 +80,7 @@ import org.onap.so.db.catalog.beans.InstanceGroupType; import org.onap.so.db.catalog.beans.NetworkResourceCustomization; import org.onap.so.db.catalog.beans.OrchestrationStatus; import org.onap.so.db.catalog.beans.Service; +import org.onap.so.db.catalog.beans.PnfResourceCustomization; import org.onap.so.db.catalog.beans.ServiceProxyResourceCustomization; import org.onap.so.db.catalog.beans.VfModuleCustomization; import org.onap.so.db.catalog.beans.VnfResourceCustomization; @@ -480,6 +482,12 @@ public class BBInputSetupMapperLayer { return modelInfoVnf; } + protected ModelInfoPnf mapCatalogPnfToPnf(PnfResourceCustomization pnfResourceCustomization) { + ModelInfoPnf modelInfoPnf = modelMapper.map(pnfResourceCustomization, ModelInfoPnf.class); + modelMapper.map(pnfResourceCustomization.getPnfResources(), modelInfoPnf); + return modelInfoPnf; + } + protected ModelInfoVfModule mapCatalogVfModuleToVfModule(VfModuleCustomization vfResourceCustomization) { ModelInfoVfModule modelInfoVfModule = modelMapper.map(vfResourceCustomization, ModelInfoVfModule.class); modelMapper.map(vfResourceCustomization.getVfModule(), modelInfoVfModule); diff --git a/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/servicedecomposition/tasks/BBInputSetupMapperLayerTest.java b/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/servicedecomposition/tasks/BBInputSetupMapperLayerTest.java index 9195df0955..6f091304ef 100644 --- a/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/servicedecomposition/tasks/BBInputSetupMapperLayerTest.java +++ b/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/servicedecomposition/tasks/BBInputSetupMapperLayerTest.java @@ -61,6 +61,7 @@ import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoGenericVnf; import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoInstanceGroup; import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoNetwork; import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoServiceInstance; +import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoPnf; import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoVfModule; import org.onap.so.db.catalog.beans.CollectionNetworkResourceCustomization; import org.onap.so.db.catalog.beans.CollectionResource; @@ -74,6 +75,8 @@ import org.onap.so.db.catalog.beans.InstanceGroup; import org.onap.so.db.catalog.beans.NetworkResourceCustomization; import org.onap.so.db.catalog.beans.OrchestrationStatus; import org.onap.so.db.catalog.beans.Service; +import org.onap.so.db.catalog.beans.PnfResource; +import org.onap.so.db.catalog.beans.PnfResourceCustomization; import org.onap.so.db.catalog.beans.VfModuleCustomization; import org.onap.so.db.catalog.beans.VnfResourceCustomization; import org.onap.so.db.catalog.beans.VnfcCustomization; @@ -508,6 +511,26 @@ public class BBInputSetupMapperLayerTest { } @Test + public void testMapCatalogPnfToPnf() throws IOException { + PnfResourceCustomization pnfResourceCustomization = mapper.readValue( + new File(RESOURCE_PATH + "PnfResourceCustomizationInput.json"), PnfResourceCustomization.class); + + PnfResource pnfResource = new PnfResource(); + pnfResource.setModelUUID("modelUuid"); + pnfResource.setModelInvariantUUID("modelInvariantUuid"); + pnfResource.setModelVersion("modelVersion"); + + pnfResourceCustomization.setPnfResources(pnfResource); + + ModelInfoPnf expectedModelInfoPnf = + mapper.readValue(new File(RESOURCE_PATH + "ModelInfoPnfExpected.json"), ModelInfoPnf.class); + + ModelInfoPnf actualModelInfoPnf = bbInputSetupMapperLayer.mapCatalogPnfToPnf(pnfResourceCustomization); + + assertThat(actualModelInfoPnf, sameBeanAs(expectedModelInfoPnf)); + } + + @Test public void testMapCatalogVfModuleToVfModule() throws JsonParseException, JsonMappingException, IOException { VfModuleCustomization vfResourceCustomization = mapper .readValue(new File(RESOURCE_PATH + "VfModuleCustomizationInput.json"), VfModuleCustomization.class); diff --git a/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/servicedecomposition/tasks/BBInputSetupTest.java b/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/servicedecomposition/tasks/BBInputSetupTest.java index 803d2bf8a3..bc751c3b3c 100644 --- a/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/servicedecomposition/tasks/BBInputSetupTest.java +++ b/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/servicedecomposition/tasks/BBInputSetupTest.java @@ -97,6 +97,7 @@ import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoGenericVnf; import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoInstanceGroup; import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoNetwork; import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoServiceInstance; +import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoPnf; import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoServiceProxy; import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoVfModule; import org.onap.so.bpmn.servicedecomposition.tasks.exceptions.NoServiceInstanceFoundException; @@ -113,6 +114,7 @@ import org.onap.so.db.catalog.beans.NetworkCollectionResourceCustomization; import org.onap.so.db.catalog.beans.NetworkResourceCustomization; import org.onap.so.db.catalog.beans.OrchestrationStatus; import org.onap.so.db.catalog.beans.Service; +import org.onap.so.db.catalog.beans.PnfResourceCustomization; import org.onap.so.db.catalog.beans.ServiceProxyResourceCustomization; import org.onap.so.db.catalog.beans.VfModuleCustomization; import org.onap.so.db.catalog.beans.VnfResourceCustomization; @@ -1735,6 +1737,28 @@ public class BBInputSetupTest { } @Test + public void testMapCatalogPnf() { + ModelInfoPnf modelInfoPnf = new ModelInfoPnf(); + Pnf pnf = new Pnf(); + RequestDetails requestDetails = new RequestDetails(); + ModelInfo modelInfo = new ModelInfo(); + modelInfo.setModelCustomizationUuid("modelCustomizationUUID"); + requestDetails.setModelInfo(modelInfo); + Service service = new Service(); + + PnfResourceCustomization resourceCust = new PnfResourceCustomization(); + resourceCust.setModelCustomizationUUID("pnfModelCustomizationUUID"); + service.getPnfCustomizations().add(resourceCust); + resourceCust.setModelCustomizationUUID("modelCustomizationUUID"); + + doReturn(modelInfoPnf).when(bbInputSetupMapperLayer).mapCatalogPnfToPnf(resourceCust); + + SPY_bbInputSetup.mapCatalogPnf(pnf, modelInfo, service); + + assertEquals(modelInfoPnf, pnf.getModelInfoPnf()); + } + + @Test public void testMapCatalogCollectionAndInstanceGroup() { ModelInfoCollection modelInfoCollection = new ModelInfoCollection(); modelInfoCollection.setCollectionFunction("collectionFunction"); diff --git a/bpmn/MSOCommonBPMN/src/test/resources/__files/ExecuteBuildingBlock/ModelInfoPnfExpected.json b/bpmn/MSOCommonBPMN/src/test/resources/__files/ExecuteBuildingBlock/ModelInfoPnfExpected.json new file mode 100644 index 0000000000..5c9dbb63e2 --- /dev/null +++ b/bpmn/MSOCommonBPMN/src/test/resources/__files/ExecuteBuildingBlock/ModelInfoPnfExpected.json @@ -0,0 +1,11 @@ +{ + "nfType": "nfType", + "model-customization-uuid": "modelCustomizationUUID", + "model-invariant-uuid": "modelInvariantUuid", + "model-uuid": "modelUuid", + "model-version": "modelVersion", + "model-instance-name": "modelInstanceName", + "model-name": null, + "nf-role": "nfRole", + "nf-type": "nfType" +}
\ No newline at end of file diff --git a/bpmn/MSOCommonBPMN/src/test/resources/__files/ExecuteBuildingBlock/PnfResourceCustomizationInput.json b/bpmn/MSOCommonBPMN/src/test/resources/__files/ExecuteBuildingBlock/PnfResourceCustomizationInput.json new file mode 100644 index 0000000000..b7845ba8c2 --- /dev/null +++ b/bpmn/MSOCommonBPMN/src/test/resources/__files/ExecuteBuildingBlock/PnfResourceCustomizationInput.json @@ -0,0 +1,14 @@ +{ + "modelCustomizationUUID" : "modelCustomizationUUID", + "modelInstanceName" : "modelInstanceName", + "minInstances": 2, + "maxInstances": 3, + "availabilityZoneMaxCount": 5, + "nfFunction" : "nfFunction", + "nfType" : "nfType", + "nfRole" : "nfRole", + "nfNamingCode" : "nfNamingCode", + "multiStageDesign" : "multiStageDesign", + "blueprintName" : "testBlueprintName", + "blueprintVersion" : "testBlueprintVersion" +}
\ No newline at end of file diff --git a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/aai/mapper/AAIObjectMapper.java b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/aai/mapper/AAIObjectMapper.java index 9899d89b5e..4664ffcc37 100644 --- a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/aai/mapper/AAIObjectMapper.java +++ b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/aai/mapper/AAIObjectMapper.java @@ -113,6 +113,7 @@ public class AAIObjectMapper { map().setModelCustomizationId(source.getModelInfoPnf().getModelCustomizationUuid()); map().setModelInvariantId(source.getModelInfoPnf().getModelInvariantUuid()); map().setModelVersionId(source.getModelInfoPnf().getModelUuid()); + map().setNfType(source.getModelInfoPnf().getNfType()); } }); } |