diff options
10 files changed, 125 insertions, 27 deletions
diff --git a/asdc-controller/src/main/java/org/onap/so/asdc/installer/heat/ToscaResourceInstaller.java b/asdc-controller/src/main/java/org/onap/so/asdc/installer/heat/ToscaResourceInstaller.java index 4f64af0110..f8d9d6c96c 100644 --- a/asdc-controller/src/main/java/org/onap/so/asdc/installer/heat/ToscaResourceInstaller.java +++ b/asdc-controller/src/main/java/org/onap/so/asdc/installer/heat/ToscaResourceInstaller.java @@ -1220,16 +1220,32 @@ public class ToscaResourceInstaller { crInstanceGroupCustomization.setModelCustomizationUUID( networkNodeTemplate.getMetaData().getValue(SdcPropertyNames.PROPERTY_NAME_CUSTOMIZATIONUUID)); - String quantityName = instanceMetadata.getValue(SdcPropertyNames.PROPERTY_NAME_NAME); - String fixedQuantity = quantityName.replace("NetworkCollection", "Fixed"); - if (toscaResourceStructure.getSdcCsarHelper().getNodeTemplatePropertyLeafValue(networkNodeTemplate, - fixedQuantity + "_quantity") != null) { - - crInstanceGroupCustomization.setSubInterfaceNetworkQuantity(Integer.parseInt( - toscaResourceStructure.getSdcCsarHelper().getNodeTemplatePropertyLeafValue(networkNodeTemplate, - fixedQuantity + "_quantity"))); + // Loop through the template policy to find the subinterface_network_quantity property name. Then extract the value for it. + List<Policy> policyList = toscaResourceStructure.getSdcCsarHelper().getPoliciesOfOriginOfNodeTemplateByToscaPolicyType(networkNodeTemplate, "org.openecomp.policies.scaling.Fixed"); + + if(policyList != null){ + for(Policy policy : policyList){ + for(String policyNetworkCollection : policy.getTargets()){ + + if(policyNetworkCollection.equalsIgnoreCase(group.getName())){ + + Map<String, Object> propMap = policy.getPolicyProperties(); + + if(propMap.get("quantity") != null){ + + String quantity = toscaResourceStructure.getSdcCsarHelper().getNodeTemplatePropertyLeafValue(networkNodeTemplate, getPropertyInput(propMap.get("quantity").toString())); + + if(quantity != null){ + crInstanceGroupCustomization.setSubInterfaceNetworkQuantity(Integer.parseInt(quantity)); + } + + } + + } + } + } } - + crInstanceGroupCustomization.setDescription( toscaResourceStructure.getSdcCsarHelper().getNodeTemplatePropertyLeafValue(networkNodeTemplate, instanceMetadata.getValue(SdcPropertyNames.PROPERTY_NAME_NAME) @@ -1246,7 +1262,6 @@ public class ToscaResourceInstaller { networkInstanceGroupList.add(networkInstanceGroup); - //} toscaResourceStructure.setCatalogNetworkInstanceGroup(networkInstanceGroupList); @@ -2032,6 +2047,20 @@ public class ToscaResourceInstaller { + vfModuleStructure.getVfModuleMetadata().getVfModuleModelName(); } + protected String getPropertyInput(String propertyName){ + + String inputName = new String(); + + if (propertyName != null) { + int getInputIndex = propertyName.indexOf("{get_input="); + if (getInputIndex > -1) { + inputName = propertyName.substring(getInputIndex+11, propertyName.length()-1); + } + } + + return inputName; + } + protected static Timestamp getCurrentTimeStamp() { diff --git a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/aai/tasks/AAIDeleteTasks.java b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/aai/tasks/AAIDeleteTasks.java index 8f0334e462..0d9aeed1ae 100644 --- a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/aai/tasks/AAIDeleteTasks.java +++ b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/aai/tasks/AAIDeleteTasks.java @@ -21,15 +21,16 @@ package org.onap.so.bpmn.infrastructure.aai.tasks; +import java.util.List; import java.util.Optional; -import java.util.UUID; +import org.onap.aai.domain.yang.NetworkPolicies; +import org.onap.aai.domain.yang.NetworkPolicy; import org.onap.so.bpmn.common.BuildingBlockExecution; import org.onap.so.bpmn.servicedecomposition.bbobjects.CloudRegion; import org.onap.so.bpmn.servicedecomposition.bbobjects.Configuration; import org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf; import org.onap.so.bpmn.servicedecomposition.bbobjects.L3Network; -import org.onap.so.bpmn.servicedecomposition.bbobjects.NetworkPolicy; import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance; import org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule; import org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup; @@ -169,18 +170,22 @@ public class AAIDeleteTasks { String fqdn = fqdnList[i]; AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectPlurals.NETWORK_POLICY); uri.queryParam(NETWORK_POLICY_FQDN_PARAM, fqdn); - Optional<org.onap.aai.domain.yang.NetworkPolicy> oNetPolicy = aaiNetworkResources.getNetworkPolicy(uri); - if(oNetPolicy.isPresent()) { - String networkPolicyId = oNetPolicy.get().getNetworkPolicyId(); - msoLogger.debug("Deleting network-policy with network-policy-id " + networkPolicyId); - - aaiNetworkResources.deleteNetworkPolicy(networkPolicyId); + Optional<NetworkPolicies> oNetPolicies = aaiNetworkResources.getNetworkPolicies(uri); + if(oNetPolicies.isPresent()) { + NetworkPolicies networkPolicies = oNetPolicies.get(); + List<NetworkPolicy> networkPolicyList = networkPolicies.getNetworkPolicy(); + if (networkPolicyList != null && !networkPolicyList.isEmpty()) { + NetworkPolicy networkPolicy = networkPolicyList.get(0); + String networkPolicyId = networkPolicy.getNetworkPolicyId(); + msoLogger.debug("Deleting network-policy with network-policy-id " + networkPolicyId); + aaiNetworkResources.deleteNetworkPolicy(networkPolicyId); + } } } } } } catch (Exception ex) { exceptionUtil.buildAndThrowWorkflowException(execution, 7000, ex); - } + } } } diff --git a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/WorkflowActionBBTasks.java b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/WorkflowActionBBTasks.java index f6c9597de8..2e91a52f65 100644 --- a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/WorkflowActionBBTasks.java +++ b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/WorkflowActionBBTasks.java @@ -89,8 +89,8 @@ public class WorkflowActionBBTasks { execution.setVariable("completed", true); } else { execution.setVariable("completed", false); - execution.setVariable(G_CURRENT_SEQUENCE, currentSequence); } + execution.setVariable(G_CURRENT_SEQUENCE, currentSequence); } public void updateFlowStatistics(DelegateExecution execution) { diff --git a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/orchestration/AAINetworkResources.java b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/orchestration/AAINetworkResources.java index 4ca3f2a78d..7283c9967c 100644 --- a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/orchestration/AAINetworkResources.java +++ b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/orchestration/AAINetworkResources.java @@ -22,6 +22,7 @@ package org.onap.so.client.orchestration; import java.util.Optional; +import org.onap.aai.domain.yang.NetworkPolicies; import org.onap.aai.domain.yang.NetworkPolicy; import org.onap.aai.domain.yang.RouteTableReference; import org.onap.aai.domain.yang.VpnBinding; @@ -86,6 +87,10 @@ public class AAINetworkResources { return injectionHelper.getAaiClient().get(netPolicyUri).asBean(NetworkPolicy.class); } + public Optional<NetworkPolicies> getNetworkPolicies(AAIResourceUri netPoliciesUri) { + return injectionHelper.getAaiClient().get(netPoliciesUri).asBean(NetworkPolicies.class); + } + public Optional<org.onap.aai.domain.yang.Subnet> getSubnet(AAIResourceUri subnetUri) { return injectionHelper.getAaiClient().get(subnetUri).asBean(org.onap.aai.domain.yang.Subnet.class); } diff --git a/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/aai/tasks/AAIDeleteTasksTest.java b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/aai/tasks/AAIDeleteTasksTest.java index 5cb775180e..4984b2fbb5 100644 --- a/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/aai/tasks/AAIDeleteTasksTest.java +++ b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/aai/tasks/AAIDeleteTasksTest.java @@ -30,6 +30,8 @@ import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; +import java.nio.file.Files; +import java.nio.file.Paths; import java.util.Optional; import org.camunda.bpm.engine.delegate.BpmnError; @@ -39,6 +41,7 @@ import org.mockito.ArgumentCaptor; import org.mockito.ArgumentMatchers; import org.mockito.Captor; import org.mockito.InjectMocks; +import org.onap.aai.domain.yang.NetworkPolicies; import org.onap.aai.domain.yang.NetworkPolicy; import org.onap.so.bpmn.BaseTaskTest; import org.onap.so.bpmn.common.BuildingBlockExecution; @@ -50,11 +53,13 @@ import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance; import org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule; import org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup; import org.onap.so.bpmn.servicedecomposition.entities.ResourceKey; +import org.onap.so.client.aai.entities.AAIResultWrapper; import org.onap.so.client.aai.entities.uri.AAIResourceUri; import org.onap.so.client.exception.BBObjectNotFoundException; public class AAIDeleteTasksTest extends BaseTaskTest { + private final static String JSON_FILE_LOCATION = "src/test/resources/__files/BuildingBlocks/"; @InjectMocks private AAIDeleteTasks aaiDeleteTasks = new AAIDeleteTasks(); @@ -191,11 +196,14 @@ public class AAIDeleteTasksTest extends BaseTaskTest { @Test public void deleteNetworkPolicyNeedToDeleteAllTest() throws Exception { execution.setVariable("contrailNetworkPolicyFqdnList", "ABC123,DEF456"); - NetworkPolicy networkPolicy0 = new NetworkPolicy(); - networkPolicy0.setNetworkPolicyId("testNetworkPolicyId0"); - NetworkPolicy networkPolicy1 = new NetworkPolicy(); - networkPolicy1.setNetworkPolicyId("testNetworkPolicyId1"); - doReturn(Optional.of(networkPolicy0),Optional.of(networkPolicy1)).when(aaiNetworkResources).getNetworkPolicy(any(AAIResourceUri.class)); + final String content0 = new String(Files.readAllBytes(Paths.get(JSON_FILE_LOCATION + "queryAaiNetworkPoliciesForDelete0.json"))); + AAIResultWrapper aaiResultWrapper0 = new AAIResultWrapper(content0); + NetworkPolicies networkPolicies0 = aaiResultWrapper0.asBean(NetworkPolicies.class).get(); + final String content1 = new String(Files.readAllBytes(Paths.get(JSON_FILE_LOCATION + "queryAaiNetworkPoliciesForDelete1.json"))); + AAIResultWrapper aaiResultWrapper1 = new AAIResultWrapper(content1); + NetworkPolicies networkPolicies1 = aaiResultWrapper1.asBean(NetworkPolicies.class).get(); + + doReturn(Optional.of(networkPolicies0),Optional.of(networkPolicies1)).when(aaiNetworkResources).getNetworkPolicies(any(AAIResourceUri.class)); doNothing().when(aaiNetworkResources).deleteNetworkPolicy(any(String.class)); aaiDeleteTasks.deleteNetworkPolicies(execution); verify(aaiNetworkResources, times(2)).deleteNetworkPolicy(stringCaptor.capture()); @@ -206,8 +214,8 @@ public class AAIDeleteTasksTest extends BaseTaskTest { @Test public void deleteNetworkPolicyNeedToDeleteNoneTest() throws Exception { execution.setVariable("contrailNetworkPolicyFqdnList", "ABC123"); - Optional<NetworkPolicy> networkPolicy = Optional.empty(); - doReturn(networkPolicy).when(aaiNetworkResources).getNetworkPolicy(any(AAIResourceUri.class)); + Optional<NetworkPolicies> networkPolicies = Optional.empty(); + doReturn(networkPolicies).when(aaiNetworkResources).getNetworkPolicies(any(AAIResourceUri.class)); aaiDeleteTasks.deleteNetworkPolicies(execution); verify(aaiNetworkResources, times(0)).deleteNetworkPolicy(any(String.class)); } diff --git a/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/workflow/tasks/WorkflowActionBBTasksTest.java b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/workflow/tasks/WorkflowActionBBTasksTest.java index 2fc62978fb..17a37c873a 100644 --- a/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/workflow/tasks/WorkflowActionBBTasksTest.java +++ b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/workflow/tasks/WorkflowActionBBTasksTest.java @@ -96,7 +96,9 @@ public class WorkflowActionBBTasksTest extends BaseTaskTest { execution.setVariable("flowsToExecute", flowsToExecute); workflowActionBBTasks.selectBB(execution); boolean success = (boolean) execution.getVariable("completed"); + int currentSequence = (int) execution.getVariable("gCurrentSequence"); assertEquals(true,success); + assertEquals(1,currentSequence); } @Test @@ -115,7 +117,9 @@ public class WorkflowActionBBTasksTest extends BaseTaskTest { execution.setVariable("flowsToExecute", flowsToExecute); workflowActionBBTasks.selectBB(execution); boolean success = (boolean) execution.getVariable("completed"); + int currentSequence = (int) execution.getVariable("gCurrentSequence"); assertEquals(false,success); + assertEquals(1,currentSequence); } @Test diff --git a/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/client/orchestration/AAINetworkResourcesTest.java b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/client/orchestration/AAINetworkResourcesTest.java index 2e2cc5d974..8632a6afdd 100644 --- a/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/client/orchestration/AAINetworkResourcesTest.java +++ b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/client/orchestration/AAINetworkResourcesTest.java @@ -56,6 +56,7 @@ import org.onap.so.bpmn.servicedecomposition.bbobjects.L3Network; import org.onap.so.bpmn.servicedecomposition.bbobjects.NetworkPolicy; import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance; import org.onap.so.bpmn.servicedecomposition.bbobjects.Subnet; +import org.onap.so.client.aai.AAIObjectPlurals; import org.onap.so.client.aai.AAIObjectType; import org.onap.so.client.aai.AAIResourcesClient; import org.onap.so.client.aai.entities.AAIEdgeLabel; @@ -191,6 +192,22 @@ public class AAINetworkResourcesTest extends TestDataSetup{ } @Test + public void getNetworkPoliciesTest() throws Exception { + final String content = new String(Files.readAllBytes(Paths.get(JSON_FILE_LOCATION + "queryAaiNetworkPolicies.json"))); + AAIResultWrapper aaiResultWrapper = new AAIResultWrapper(content); + Optional<org.onap.aai.domain.yang.NetworkPolicies> oNetPolicies = Optional.empty(); + AAIResourceUri netPoliciesUri = AAIUriFactory.createResourceUri(AAIObjectPlurals.NETWORK_POLICY); + + doReturn(aaiResultWrapper).when(MOCK_aaiResourcesClient).get(isA(AAIResourceUri.class)); + oNetPolicies = aaiNetworkResources.getNetworkPolicies(netPoliciesUri); + verify(MOCK_aaiResourcesClient, times(1)).get(any(AAIResourceUri.class)); + if (oNetPolicies.isPresent()) { + org.onap.aai.domain.yang.NetworkPolicies networkPolicies = oNetPolicies.get(); + assertThat(aaiResultWrapper.asBean(org.onap.aai.domain.yang.NetworkPolicies.class).get(), sameBeanAs(networkPolicies)); + } + } + + @Test public void getRouteTableTest() throws Exception { final String content = new String(Files.readAllBytes(Paths.get(JSON_FILE_LOCATION + "queryAaiNetworkTableRefs.json"))); AAIResultWrapper aaiResultWrapper = new AAIResultWrapper(content); diff --git a/bpmn/so-bpmn-tasks/src/test/resources/__files/BuildingBlocks/queryAaiNetworkPolicies.json b/bpmn/so-bpmn-tasks/src/test/resources/__files/BuildingBlocks/queryAaiNetworkPolicies.json new file mode 100644 index 0000000000..3bd60a777e --- /dev/null +++ b/bpmn/so-bpmn-tasks/src/test/resources/__files/BuildingBlocks/queryAaiNetworkPolicies.json @@ -0,0 +1,10 @@ +{"network-policy": + [ + { + "network-policy-id":"1ac71fb8-ad43-4e16-9459-c3f372b8236d", + "network-policy-fqdn":"default-domain:enpx-26177-T-E2E-rdm6a:enpx-26177-T-E2E-rdm6a_TIPXH-DBEV-VIF-TDAT0_net_1", + "heat-stack-id":"InfraMSO-vSAMP12_14_1.0-VF-Base-1902-est01-GR_API-021119-1/9a3be28f-115d-4693-9b17-9291b98b46de", + "resource-version":"1550068250015" + } + ] +}
\ No newline at end of file diff --git a/bpmn/so-bpmn-tasks/src/test/resources/__files/BuildingBlocks/queryAaiNetworkPoliciesForDelete0.json b/bpmn/so-bpmn-tasks/src/test/resources/__files/BuildingBlocks/queryAaiNetworkPoliciesForDelete0.json new file mode 100644 index 0000000000..f60c6d97ad --- /dev/null +++ b/bpmn/so-bpmn-tasks/src/test/resources/__files/BuildingBlocks/queryAaiNetworkPoliciesForDelete0.json @@ -0,0 +1,10 @@ +{"network-policy": + [ + { + "network-policy-id":"testNetworkPolicyId0", + "network-policy-fqdn":"ABC123", + "heat-stack-id":"InfraMSO-vSAMP12_14_1.0-VF-Base-1902-est01-GR_API-021119-1/9a3be28f-115d-4693-9b17-9291b98b46de", + "resource-version":"1550068250015" + } + ] +}
\ No newline at end of file diff --git a/bpmn/so-bpmn-tasks/src/test/resources/__files/BuildingBlocks/queryAaiNetworkPoliciesForDelete1.json b/bpmn/so-bpmn-tasks/src/test/resources/__files/BuildingBlocks/queryAaiNetworkPoliciesForDelete1.json new file mode 100644 index 0000000000..6aaea8eec8 --- /dev/null +++ b/bpmn/so-bpmn-tasks/src/test/resources/__files/BuildingBlocks/queryAaiNetworkPoliciesForDelete1.json @@ -0,0 +1,10 @@ +{"network-policy": + [ + { + "network-policy-id":"testNetworkPolicyId1", + "network-policy-fqdn":"DEF456", + "heat-stack-id":"InfraMSO-vSAMP12_14_1.0-VF-Base-1902-est01-GR_API-021119-1/9a3be28f-115d-4693-9b17-9291b98b46de", + "resource-version":"1550068250015" + } + ] +}
\ No newline at end of file |