From 758f70985e3c7a6243d87bc649367f0013503a11 Mon Sep 17 00:00:00 2001 From: "Benjamin, Max (mb388a)" Date: Thu, 14 Feb 2019 18:14:00 -0500 Subject: Process query of Network Policies from A&AI Process query of Network Policies from A&AI as a NetworkPolicies object. Change-Id: I01b4c00e3732a5518ddc21d08740c0684de86d5e Issue-ID: SO-1511 Signed-off-by: Benjamin, Max (mb388a) --- .../infrastructure/aai/tasks/AAIDeleteTasks.java | 23 +++++++++++++--------- .../client/orchestration/AAINetworkResources.java | 5 +++++ .../aai/tasks/AAIDeleteTasksTest.java | 22 ++++++++++++++------- .../orchestration/AAINetworkResourcesTest.java | 17 ++++++++++++++++ .../BuildingBlocks/queryAaiNetworkPolicies.json | 10 ++++++++++ .../queryAaiNetworkPoliciesForDelete0.json | 10 ++++++++++ .../queryAaiNetworkPoliciesForDelete1.json | 10 ++++++++++ 7 files changed, 81 insertions(+), 16 deletions(-) create mode 100644 bpmn/so-bpmn-tasks/src/test/resources/__files/BuildingBlocks/queryAaiNetworkPolicies.json create mode 100644 bpmn/so-bpmn-tasks/src/test/resources/__files/BuildingBlocks/queryAaiNetworkPoliciesForDelete0.json create mode 100644 bpmn/so-bpmn-tasks/src/test/resources/__files/BuildingBlocks/queryAaiNetworkPoliciesForDelete1.json 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 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 oNetPolicies = aaiNetworkResources.getNetworkPolicies(uri); + if(oNetPolicies.isPresent()) { + NetworkPolicies networkPolicies = oNetPolicies.get(); + List 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/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 getNetworkPolicies(AAIResourceUri netPoliciesUri) { + return injectionHelper.getAaiClient().get(netPoliciesUri).asBean(NetworkPolicies.class); + } + public Optional 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 = Optional.empty(); - doReturn(networkPolicy).when(aaiNetworkResources).getNetworkPolicy(any(AAIResourceUri.class)); + Optional 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/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; @@ -190,6 +191,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 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"))); 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 -- cgit 1.2.3-korg