From a0ee4b360d59a98b2f82ad21b07e60ac166ca4e2 Mon Sep 17 00:00:00 2001 From: "Magnusen, Drew (dm741q)" Date: Wed, 14 Mar 2018 08:36:25 -0500 Subject: Changed SO request to iterate extra props Modified SoActorServiceProvider.constructRequest() method so that it iterates over extra properties instead of hard coding array values. Issue-ID: POLICY-443 Change-Id: I37d6be9dc595bd8d5e9f9f3f63d6890ef1b2f8b3 Signed-off-by: Magnusen, Drew (dm741q) --- .../actor/so/SOActorServiceProvider.java | 43 ++++++++++++++++++---- 1 file changed, 36 insertions(+), 7 deletions(-) (limited to 'controlloop') diff --git a/controlloop/common/actors/actor.so/src/main/java/org/onap/policy/controlloop/actor/so/SOActorServiceProvider.java b/controlloop/common/actors/actor.so/src/main/java/org/onap/policy/controlloop/actor/so/SOActorServiceProvider.java index 4385ce272..69a266e6b 100644 --- a/controlloop/common/actors/actor.so/src/main/java/org/onap/policy/controlloop/actor/so/SOActorServiceProvider.java +++ b/controlloop/common/actors/actor.so/src/main/java/org/onap/policy/controlloop/actor/so/SOActorServiceProvider.java @@ -28,6 +28,8 @@ import java.util.UUID; import org.drools.core.WorkingMemory; import org.onap.policy.aai.AAIManager; +import org.onap.policy.aai.AAINQExtraProperties; +import org.onap.policy.aai.AAINQExtraProperty; import org.onap.policy.aai.AAINQInstanceFilters; import org.onap.policy.aai.AAINQInventoryResponseItem; import org.onap.policy.aai.AAINQNamedQuery; @@ -115,6 +117,11 @@ public class SOActorServiceProvider implements Actor { * @return a SO request conforming to the lcm API using the DMAAP wrapper */ public SORequest constructRequest(VirtualControlLoopEvent onset, ControlLoopOperation operation, Policy policy) { + String modelNamePropertyKey = "model-ver.model-name"; + String modelVersionPropertyKey = "model-ver.model-version"; + String modelVersionIdPropertyKey = "model-ver.model-version-id"; + + if (!SO_ACTOR.equals(policy.getActor()) || !RECIPE_VF_MODULE_CREATE.equals(policy.getRecipe())) { // for future extension return null; @@ -165,6 +172,7 @@ public class SOActorServiceProvider implements Actor { logger.error("Either base or non-base vf module is not found from AAI response."); return null; } + // Construct SO Request SORequest request = new SORequest(); @@ -190,9 +198,16 @@ public class SOActorServiceProvider implements Actor { request.getRequestDetails().getModelInfo().setModelType("vfModule"); request.getRequestDetails().getModelInfo().setModelInvariantId(vfModuleItem.getVfModule().getModelInvariantId()); request.getRequestDetails().getModelInfo().setModelVersionId(vfModuleItem.getVfModule().getModelVersionId()); - request.getRequestDetails().getModelInfo().setModelName(vfModuleItem.getExtraProperties().getExtraProperty().get(1).getPropertyValue()); - request.getRequestDetails().getModelInfo().setModelVersion(vfModuleItem.getExtraProperties().getExtraProperty().get(4).getPropertyValue()); + for (AAINQExtraProperty prop : vfModuleItem.getExtraProperties().getExtraProperty()) { + if (prop.getPropertyName().equals(modelNamePropertyKey)) { + request.getRequestDetails().getModelInfo().setModelName(prop.getPropertyValue()); + } + else if (prop.getPropertyName().equals(modelVersionPropertyKey)) { + request.getRequestDetails().getModelInfo().setModelVersion(prop.getPropertyValue()); + } + } + // // requestInfo // @@ -230,17 +245,31 @@ public class SOActorServiceProvider implements Actor { relatedInstanceListElement1.getRelatedInstance().getModelInfo().setModelType("service"); relatedInstanceListElement1.getRelatedInstance().getModelInfo().setModelInvariantId(vnfServiceItem.getServiceInstance().getModelInvariantId()); relatedInstanceListElement1.getRelatedInstance().getModelInfo().setModelVersionId(vnfServiceItem.getServiceInstance().getModelVersionId()); - relatedInstanceListElement1.getRelatedInstance().getModelInfo().setModelName(vnfServiceItem.getExtraProperties().getExtraProperty().get(1).getPropertyValue()); - relatedInstanceListElement1.getRelatedInstance().getModelInfo().setModelVersion(vnfServiceItem.getExtraProperties().getExtraProperty().get(4).getPropertyValue()); + for (AAINQExtraProperty prop : vnfServiceItem.getExtraProperties().getExtraProperty()) { + if (prop.getPropertyName().equals(modelNamePropertyKey)) { + relatedInstanceListElement1.getRelatedInstance().getModelInfo().setModelName(prop.getPropertyValue()); + } + else if (prop.getPropertyName().equals(modelVersionPropertyKey)) { + relatedInstanceListElement1.getRelatedInstance().getModelInfo().setModelVersion(prop.getPropertyValue()); + } + } // VNF Item relatedInstanceListElement2.getRelatedInstance().setInstanceId(vnfItem.getGenericVNF().getVnfID()); relatedInstanceListElement2.getRelatedInstance().setModelInfo(new SOModelInfo()); relatedInstanceListElement2.getRelatedInstance().getModelInfo().setModelType("vnf"); relatedInstanceListElement2.getRelatedInstance().getModelInfo().setModelInvariantId(vnfItem.getGenericVNF().getModelInvariantId()); - relatedInstanceListElement2.getRelatedInstance().getModelInfo().setModelVersionId(vnfItem.getExtraProperties().getExtraProperty().get(0).getPropertyValue()); - relatedInstanceListElement2.getRelatedInstance().getModelInfo().setModelName(vnfItem.getExtraProperties().getExtraProperty().get(1).getPropertyValue()); - relatedInstanceListElement2.getRelatedInstance().getModelInfo().setModelVersion(vnfItem.getExtraProperties().getExtraProperty().get(4).getPropertyValue()); + for (AAINQExtraProperty prop : vnfItem.getExtraProperties().getExtraProperty()) { + if (prop.getPropertyName().equals(modelNamePropertyKey)) { + relatedInstanceListElement2.getRelatedInstance().getModelInfo().setModelName(prop.getPropertyValue()); + } + else if (prop.getPropertyName().equals(modelVersionPropertyKey)) { + relatedInstanceListElement2.getRelatedInstance().getModelInfo().setModelVersion(prop.getPropertyValue()); + } + else if (prop.getPropertyName().equals(modelVersionIdPropertyKey)) { + relatedInstanceListElement2.getRelatedInstance().getModelInfo().setModelVersionId(prop.getPropertyValue()); + } + } relatedInstanceListElement2.getRelatedInstance().getModelInfo().setModelCustomizationName(vnfItem.getGenericVNF().getVnfType().substring(vnfItem.getGenericVNF().getVnfType().lastIndexOf('/') + 1)); // Insert the Service Item and VNF Item -- cgit 1.2.3-korg