From e7edc5816cd8a25854302c5546e19f5e064c9a7f Mon Sep 17 00:00:00 2001 From: waynedunican Date: Wed, 27 Oct 2021 08:52:32 +0100 Subject: Refactor policy-participant policy deployment and undeployment Change the policy-participant to use DeploymentGroups to generate JSON body rather than manual generation Issue-ID: POLICY-3793 Change-Id: I3a049e2be8a677f5a5aeff7ed14e44d7252a2fb7 Signed-off-by: Wayne Dunican --- .../policy/client/PolicyPapHttpClient.java | 50 +++++++++++----------- .../main/handler/ControlLoopElementHandler.java | 7 ++- 2 files changed, 29 insertions(+), 28 deletions(-) (limited to 'participant/participant-impl/participant-impl-policy/src/main') diff --git a/participant/participant-impl/participant-impl-policy/src/main/java/org/onap/policy/clamp/controlloop/participant/policy/client/PolicyPapHttpClient.java b/participant/participant-impl/participant-impl-policy/src/main/java/org/onap/policy/clamp/controlloop/participant/policy/client/PolicyPapHttpClient.java index 3cce3bd8a..f835c6e04 100644 --- a/participant/participant-impl/participant-impl-policy/src/main/java/org/onap/policy/clamp/controlloop/participant/policy/client/PolicyPapHttpClient.java +++ b/participant/participant-impl/participant-impl-policy/src/main/java/org/onap/policy/clamp/controlloop/participant/policy/client/PolicyPapHttpClient.java @@ -20,12 +20,16 @@ package org.onap.policy.clamp.controlloop.participant.policy.client; -import com.google.gson.JsonArray; -import com.google.gson.JsonObject; +import java.util.LinkedList; +import java.util.List; import javax.ws.rs.client.Entity; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; import org.onap.policy.clamp.controlloop.participant.policy.main.parameters.ParticipantPolicyParameters; +import org.onap.policy.models.pdp.concepts.DeploymentGroup; +import org.onap.policy.models.pdp.concepts.DeploymentGroups; +import org.onap.policy.models.pdp.concepts.DeploymentSubGroup; +import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier; import org.springframework.stereotype.Component; @Component @@ -55,33 +59,27 @@ public class PolicyPapHttpClient extends AbstractHttpClient { * @return Response */ public Response handlePolicyDeployOrUndeploy(final String policyName, final String policyVersion, - final String action) { - // policies - JsonObject policyArrayBody = new JsonObject(); - policyArrayBody.addProperty("name", policyName); - policyArrayBody.addProperty("version", policyVersion); - JsonArray policyArr = new JsonArray(); - policyArr.add(policyArrayBody); + final DeploymentSubGroup.Action action) { - // deploymentSubgroups - JsonObject deploymentSubGrpBody = new JsonObject(); - deploymentSubGrpBody.addProperty("pdpType", pdpType); - deploymentSubGrpBody.addProperty("action", action); - deploymentSubGrpBody.add("policies", policyArr); - JsonArray deployArr = new JsonArray(); - deployArr.add(deploymentSubGrpBody); + List policies = new LinkedList(); + policies.add(new ToscaConceptIdentifier(policyName, policyVersion)); - // groups - JsonObject groupArrayBody = new JsonObject(); - groupArrayBody.addProperty("name", pdpGroup); - groupArrayBody.add("deploymentSubgroups", deployArr); - JsonArray groupArr = new JsonArray(); - groupArr.add(groupArrayBody); + DeploymentSubGroup subGroup = new DeploymentSubGroup(); + subGroup.setPolicies(policies); + subGroup.setPdpType(pdpType); + subGroup.setAction(action); - // main json - JsonObject mainJson = new JsonObject(); - mainJson.add("groups", groupArr); + DeploymentGroup group = new DeploymentGroup(); + List subGroups = new LinkedList(); + subGroups.add(subGroup); + group.setDeploymentSubgroups(subGroups); + group.setName(pdpGroup); - return executePost(PAP_URI + "pdps/deployments/batch", Entity.entity(mainJson, MediaType.APPLICATION_JSON)); + DeploymentGroups groups = new DeploymentGroups(); + List groupsArr = new LinkedList(); + groupsArr.add(group); + groups.setGroups(groupsArr); + + return executePost(PAP_URI + "pdps/deployments/batch", Entity.entity(groups, MediaType.APPLICATION_JSON)); } } diff --git a/participant/participant-impl/participant-impl-policy/src/main/java/org/onap/policy/clamp/controlloop/participant/policy/main/handler/ControlLoopElementHandler.java b/participant/participant-impl/participant-impl-policy/src/main/java/org/onap/policy/clamp/controlloop/participant/policy/main/handler/ControlLoopElementHandler.java index 29a7852f1..f6d616dac 100644 --- a/participant/participant-impl/participant-impl-policy/src/main/java/org/onap/policy/clamp/controlloop/participant/policy/main/handler/ControlLoopElementHandler.java +++ b/participant/participant-impl/participant-impl-policy/src/main/java/org/onap/policy/clamp/controlloop/participant/policy/main/handler/ControlLoopElementHandler.java @@ -39,6 +39,7 @@ import org.onap.policy.clamp.controlloop.participant.policy.client.PolicyApiHttp import org.onap.policy.clamp.controlloop.participant.policy.client.PolicyPapHttpClient; import org.onap.policy.models.base.PfModelException; import org.onap.policy.models.base.PfModelRuntimeException; +import org.onap.policy.models.pdp.concepts.DeploymentSubGroup; import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier; import org.onap.policy.models.tosca.authorative.concepts.ToscaNodeTemplate; import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicy; @@ -144,7 +145,8 @@ public class ControlLoopElementHandler implements ControlLoopElementListener { // Deploy all policies of this controlLoop from Policy Framework if (policyMap.entrySet() != null) { for (Entry policy : policyMap.entrySet()) { - papHttpClient.handlePolicyDeployOrUndeploy(policy.getKey(), policy.getValue(), "POST"); + papHttpClient.handlePolicyDeployOrUndeploy(policy.getKey(), policy.getValue(), + DeploymentSubGroup.Action.POST); } LOGGER.debug("Policies deployed to {} successfully", controlLoopElementId); } else { @@ -159,7 +161,8 @@ public class ControlLoopElementHandler implements ControlLoopElementListener { // Undeploy all policies of this controlloop from Policy Framework if (policyMap.entrySet() != null) { for (Entry policy : policyMap.entrySet()) { - papHttpClient.handlePolicyDeployOrUndeploy(policy.getKey(), policy.getValue(), "DELETE"); + papHttpClient.handlePolicyDeployOrUndeploy(policy.getKey(), policy.getValue(), + DeploymentSubGroup.Action.DELETE); } LOGGER.debug("Undeployed policies from {} successfully", controlLoopElementId); } else { -- cgit 1.2.3-korg