Code changes to retrieve template-id
[appc.git] / appc-outbound / appc-aai-client / provider / src / main / java / org / onap / appc / aai / client / node / AAIResourceNode.java
index 5e25f57..0e28727 100644 (file)
@@ -2,22 +2,22 @@
  * ============LICENSE_START=======================================================
  * ONAP : APPC
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights reserved.
  * ================================================================================
  * Copyright (C) 2017 Amdocs
  * =============================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- * 
+ *
  *      http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
- * 
+ *
  * ECOMP is a trademark and service mark of AT&T Intellectual Property.
  * ============LICENSE_END=========================================================
  */
@@ -235,7 +235,7 @@ public class AAIResourceNode implements SvcLogicJavaPlugin {
             responsePrefix = StringUtils.isNotBlank(responsePrefix) ? (responsePrefix + ".") : "";
             AaiService aai = getAaiService();
 
-            //no:of vnfcs from the vnfc_reference table          
+            //no:of vnfcs from the vnfc_reference table
             String vnfcRefLenStr = ctx.getAttribute("vnfcReference_length");
 
             vnfcRefLen = trySetVnfcRefLen(vnfcRefLenStr);
@@ -432,4 +432,64 @@ public class AAIResourceNode implements SvcLogicJavaPlugin {
         log.info("setVmParams()::setVmParamsVM level action:" + params.toString());
         return params;
     }
-}
\ No newline at end of file
+
+    public void getVfModuleModelInfo(Map<String, String> inParams, SvcLogicContext ctx) throws SvcLogicException {
+        log.info("vfModuleInfo()::Retrieving vf-module information :" + inParams.toString());
+        String responsePrefix = inParams.get(AppcAaiClientConstant.INPUT_PARAM_RESPONSE_PREFIX);
+        try {
+            responsePrefix = StringUtils.isNotBlank(responsePrefix) ? (responsePrefix + ".") : "";
+            AaiService aaiService = getAaiService();
+            processForVfModuleModelInfo(aaiService,inParams,ctx);
+        } catch (Exception e) {
+            ctx.setAttribute(responsePrefix + AppcAaiClientConstant.OUTPUT_PARAM_STATUS,
+                AppcAaiClientConstant.OUTPUT_STATUS_FAILURE);
+            ctx.setAttribute(responsePrefix + AppcAaiClientConstant.OUTPUT_PARAM_ERROR_MESSAGE, e.getMessage());
+            log.error("Failed in vfModuleInfo", e);
+        }
+    }
+
+    public void processForVfModuleModelInfo(AaiService aaiService, Map<String, String> inParams, SvcLogicContext ctx) {
+        log.info("processForVfModuleModelInfo()::Retrieving vf-module information :" + inParams.toString());
+        String responsePrefix = inParams.get(AppcAaiClientConstant.INPUT_PARAM_RESPONSE_PREFIX);
+        try {
+            responsePrefix = StringUtils.isNotBlank(responsePrefix) ? (responsePrefix + ".") : "";
+            Map<String, String> params = new HashMap<>();
+            params.put(AppcAaiClientConstant.INPUT_PARAM_RESPONSE_PREFIX,
+                inParams.get(AppcAaiClientConstant.INPUT_PARAM_RESPONSE_PREFIX));
+            params.put("vnfId", inParams.get("vnf-id"));
+            params.put("vfModuleId", inParams.get("vf-module-id"));
+            SvcLogicContext vfModuleCtx = new SvcLogicContext();
+            aaiService.getVfModuleInfo(params, vfModuleCtx);
+
+            String modelInvariantId = vfModuleCtx.getAttribute(responsePrefix + "vfModule.model-invariant-id");
+            String modelVersionId = vfModuleCtx.getAttribute(responsePrefix + "vfModule.model-version-id");
+            log.info("processForVfModuleModelInfo()::modelInvariantId=" + modelInvariantId+",modelVersionId="+modelVersionId);
+
+            Map<String, String> modelParams = new HashMap<>();
+            modelParams.put(AppcAaiClientConstant.INPUT_PARAM_RESPONSE_PREFIX,
+                    inParams.get(AppcAaiClientConstant.INPUT_PARAM_RESPONSE_PREFIX));
+            SvcLogicContext modelCtx = new SvcLogicContext();
+            if (StringUtils.isNotBlank(modelInvariantId) && StringUtils.isNotBlank(modelVersionId)) {
+                modelParams.put("model-invariant-id", modelInvariantId);
+                modelParams.put("model-version-id", modelVersionId);
+
+            } else {
+                log.info("processForVfModuleModelInfo()::model-invariant-id or model-version-id is blank, not getting model info !!!!");
+                return;
+            }
+            aaiService.getModelVersionInfo(modelParams,modelCtx);
+            String modelName = modelCtx.getAttribute(responsePrefix+"vfModule.model-name");
+            log.info("processForVfModuleModelInfo()::modelName for vfModule:::"+modelName);
+            log.info("Setting context template-model-id as :::"+modelName);
+            ctx.setAttribute("template-model-id", modelName);
+            log.info("processForVfModuleModelInfo() ::: End");
+            }
+            catch (Exception e) {
+                ctx.setAttribute(responsePrefix + AppcAaiClientConstant.OUTPUT_PARAM_STATUS,
+                    AppcAaiClientConstant.OUTPUT_STATUS_FAILURE);
+                ctx.setAttribute(responsePrefix + AppcAaiClientConstant.OUTPUT_PARAM_ERROR_MESSAGE, e.getMessage());
+                log.error("Failed in vfModuleInfo", e);
+            }
+
+}
+}