Code changes to retrieve template-id 61/33961/2
authorBalaji, Ramya (rb111y) <rb111y@att.com>
Fri, 2 Mar 2018 21:39:47 +0000 (16:39 -0500)
committerBalaji, Ramya (rb111y) <rb111y@att.com>
Mon, 5 Mar 2018 13:20:24 +0000 (08:20 -0500)
Functionality to retrieve vf-module
and associated model information
from A&AI

Issue-ID: APPC-623
Change-Id: I9d2e12748641978c689566756a6301808e41b69a
Signed-off-by: Balaji, Ramya (rb111y) <rb111y@att.com>
appc-outbound/appc-aai-client/provider/src/main/java/org/onap/appc/aai/client/aai/AaiService.java
appc-outbound/appc-aai-client/provider/src/main/java/org/onap/appc/aai/client/node/AAIResourceNode.java
appc-outbound/appc-aai-client/provider/src/test/java/org/onap/appc/aai/client/node/MockAaiService.java
appc-outbound/appc-aai-client/provider/src/test/java/org/onap/appc/aai/client/node/TestAAIResourceNode.java

index a3e274c..cb439ee 100644 (file)
@@ -2,7 +2,7 @@
  * ============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
  * =============================================================================
@@ -644,4 +644,41 @@ public class AaiService {
 
         updateResource("generic-vnf", resourceKey, vnfParams);
     }
+
+    public void getVfModuleInfo(Map<String, String> params, SvcLogicContext vfModuleCtx) throws Exception {
+        log.info("Received getVfModuleInfo call with params : " + params);
+        String prefix = params.get(AppcAaiClientConstant.INPUT_PARAM_RESPONSE_PREFIX);
+        prefix = StringUtils.isNotBlank(prefix) ? (prefix + ".") : "";
+
+        String vnfId = params.get("vnfId");
+        String vfModuleId = params.get("vfModuleId");
+        String resourceKey = "generic-vnf.vnf-id = '" + vnfId +
+                "' AND vf-module.vf-module-id = '" + vfModuleId + "'";
+        String queryPrefix = "vfModuleInfo";
+        String resourceType = "vf-module";
+        SvcLogicContext vfmCtx = readResource(resourceKey, queryPrefix, resourceType);
+        String modelInvariantId=vfmCtx.getAttribute("vfModuleInfo.model-invariant-id");
+        log.info("getVfModuleInfo():::modelInvariant="+modelInvariantId);
+        vfModuleCtx.setAttribute(prefix+"vfModule.model-invariant-id", vfmCtx.getAttribute("vfModuleInfo.model-invariant-id"));
+        vfModuleCtx.setAttribute(prefix+"vfModule.model-version-id", vfmCtx.getAttribute("vfModuleInfo.model-version-id"));
+        log.info("End - getVfModuleInfo");
+    }
+
+    public void getModelVersionInfo(Map<String, String> modelParams, SvcLogicContext modelCtx) throws Exception {
+        log.info("Received getModelVersionInfo call with params : " + modelParams);
+        String prefix = modelParams.get(AppcAaiClientConstant.INPUT_PARAM_RESPONSE_PREFIX);
+        prefix = StringUtils.isNotBlank(prefix) ? (prefix + ".") : "";
+
+        String modelInvariantId = modelParams.get("model-invariant-id");
+        String modelVersionId = modelParams.get("model-version-id");
+        String resourceKey = "model.model-invariant-id = '" + modelInvariantId +
+                "' AND model-ver.model-version-id = '" + modelVersionId + "'";
+        String queryPrefix = "modelInfo";
+        String resourceType = "model-ver";
+        SvcLogicContext vfmCtx = readResource(resourceKey, queryPrefix, resourceType);
+        log.info("getModelVersionInfo():::modelname="+vfmCtx.getAttribute("modelInfo.model-name"));
+        modelCtx.setAttribute(prefix+"vfModule.model-name", vfmCtx.getAttribute("modelInfo.model-name"));
+        log.info("End - getModelVersionInfo");
+
+    }
 }
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);
+            }
+
+}
+}
index 2e03e6b..ddbb979 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=========================================================
  */
@@ -37,23 +37,24 @@ import org.onap.appc.aai.client.aai.AaiService;
 import com.att.eelf.configuration.EELFLogger;
 import com.att.eelf.configuration.EELFManager;
 import org.onap.ccsdk.sli.core.sli.SvcLogicContext;
+import org.onap.ccsdk.sli.core.sli.SvcLogicResource;
 import org.onap.ccsdk.sli.adaptors.aai.AAIClient;
 
 public class MockAaiService extends AaiService {
-    
+
     // ONAP merging
     private static final EELFLogger log = EELFManager.getInstance().getLogger(MockAaiService.class);
          private AAIClient aaiClient;
-           
+
          /*public MockAaiService() {
               super(new AAIClientMock());
          }*/
-         
+
 
          public MockAaiService(AAIClient aaic) {
              super(aaic);
          }
-        
+
         public void getVMInfo(Map<String, String> params,SvcLogicContext ctx )     throws Exception {
             log.info("Received Mock getVmInfo call with params : " + params);
             String vserverId =  params.get("vserverId");
@@ -67,22 +68,32 @@ public class MockAaiService extends AaiService {
                 ctx.setAttribute(prefix + ".vm.vf-module-id", "vfModule2");
                 ctx.setAttribute(prefix + ".vm.vnfc[0].vnfc-name", "vnfcName2");
             }
-                
+
         }
-         
-        
+
+
         public void getVnfcInfo(Map<String, String> params,SvcLogicContext ctx )     throws Exception {
             log.info("Received Mock getVmInfo call with params : " + params);
             String prefix = params.get(AppcAaiClientConstant.INPUT_PARAM_RESPONSE_PREFIX);
-            
+
             String vnfcName =  params.get("vnfcName");
-            
+
             if ( vnfcName.equals("vnfcName2") ) {
                 ctx.setAttribute(prefix + ".vnfc.vnfc-type", "vnfcType2");
                 ctx.setAttribute(prefix + ".vnfc.vnfc-function-code", "vnfcFuncCode2");
                 ctx.setAttribute(prefix + ".vnfc.group-notation", "vnfcGrpNot2");
             }
-        
-        
+
+
+        }
+
+        @Override
+        public SvcLogicContext readResource(String query, String prefix, String resourceType) throws Exception {
+            SvcLogicContext resourceContext = new SvcLogicContext();
+            resourceContext.setAttribute("vfModuleInfo.model-invariant-id","invid01");
+            resourceContext.setAttribute("vfModuleInfo.model-version-id","versid01");
+            resourceContext.setAttribute("modelInfo.model-name","model0001");
+
+            return resourceContext;
         }
 }
index 6b05c08..e6ac056 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=========================================================
  */
@@ -54,16 +54,16 @@ import com.fasterxml.jackson.databind.ObjectMapper;
 
 
 public class TestAAIResourceNode {
-    
+
     //Removed for ONAP integration
 
     private static final EELFLogger log = EELFManager.getInstance().getLogger(TestAAIResourceNode.class);
-    
+
     @Test
     public void sortVServer() throws Exception{
-        
+
         //log.info("Test");
-        
+
         ArrayList<Map<String, String>> vservers = new ArrayList<Map<String, String>>();
         HashMap<String, String> vserverMap = new HashMap<String, String>();
         vserverMap.put("vserver-id", "vserverId9");
@@ -92,7 +92,7 @@ public class TestAAIResourceNode {
                 return o1.get("vserver-name").compareTo(o2.get("vserver-name"));
             }
         });
-        
+
         SvcLogicContext ctx = new SvcLogicContext();
         AAIResourceNode aai = new AAIResourceNode();
         aai.populateContext(vservers, ctx, "vserver.");
@@ -101,7 +101,7 @@ public class TestAAIResourceNode {
 
     @Test
     public void testAllVServer() throws Exception{
-        
+
         MockAAIResourceNode mrn = new MockAAIResourceNode();
         SvcLogicContext ctx = new SvcLogicContext();
         populateAllVServerInfo(ctx, "tmp.vnfInfo");
@@ -119,7 +119,7 @@ public class TestAAIResourceNode {
         assertEquals(ctx.getAttribute("tmp.vnfInfo.vm[0].vserver-name"), "vserverName2");
         assertEquals(ctx.getAttribute("tmp.vnfInfo.vm[0].vf-module-id"), "vfModule2");
         //assertNull(ctx.getAttribute("tmp.vnfInfo.vm[0].vnfc-name"));
-        
+
         // VM2
         assertEquals(ctx.getAttribute("tmp.vnfInfo.vm[1].vserver-id"), "ibcxvm0001id");
         assertEquals(ctx.getAttribute("tmp.vnfInfo.vm[1].tenant-id"), "tenantid1");
@@ -144,13 +144,13 @@ public class TestAAIResourceNode {
          ctx.setAttribute(prefix+ ".vm[1].tenant-id", "tenantid1");
          ctx.setAttribute(prefix+ ".vm[1].cloud-owner", "cloudOwner1");
          ctx.setAttribute(prefix+ ".vm[1].cloud-region-id", "cloudRegionId1");
-         
+
     }
-    
+
     public static class MockAAIResourceNode extends AAIResourceNode {
         private static final EELFLogger log = EELFManager.getInstance().getLogger(MockAAIResourceNode.class);
          private AAIClient aaiClient;
-        
+
         public AaiService getAaiService() {
             log.info("In MockAAI");
             return new MockAaiService(aaiClient);
@@ -159,7 +159,7 @@ public class TestAAIResourceNode {
 
     @Test
     public void testPopulateContext() throws Exception{
-        
+
         ArrayList<Map<String, String>> vservers = new ArrayList<Map<String, String>>();
         HashMap<String, String> vserverMap = new HashMap<String, String>();
         vserverMap = new HashMap<String, String>();
@@ -194,7 +194,7 @@ public class TestAAIResourceNode {
         assertEquals(ctx.getAttribute("tmp.vnfInfo.vm[0].vserver-id"), "vserverId1");
         assertEquals(ctx.getAttribute("vm-name"), "vServerName3");
     }
-    
+
     @Test
     public final void testGetVnfInfo() {
         SvcLogicContext ctx = new SvcLogicContext();
@@ -206,7 +206,7 @@ Map<String, String> inParams  =new HashMap<String, String>();
         } catch (SvcLogicException e) {
             e.printStackTrace();
         }
-    
+
     }
     @Test
     public final void testaddVnfcs()
@@ -220,14 +220,14 @@ Map<String, String> inParams  =new HashMap<String, String>();
         } catch (SvcLogicException e) {
             e.printStackTrace();
         }
-        
+
     }
     @Test
     public final void  testupdateVnfAndVServerStatus(){
         SvcLogicContext ctx = new SvcLogicContext();
         AAIResourceNode aai = new AAIResourceNode();
 Map<String, String> inParams  =new HashMap<String, String>();
-        
+
         inParams.put("responsePrefix", "tmp.vnfInfo");
         try {
             aai.updateVnfAndVServerStatus(inParams, ctx);
@@ -235,4 +235,17 @@ Map<String, String> inParams  =new HashMap<String, String>();
             e.printStackTrace();
         }
     }
+
+    @Test
+    public void testgetVfModduleModelInfo() throws Exception{
+        SvcLogicContext ctx = new SvcLogicContext();
+        AAIResourceNode aai = new AAIResourceNode();
+        AAIClient aaic=null;
+        MockAaiService aaiService=new MockAaiService(aaic);
+        Map<String, String> inParams  =new HashMap<String, String>();
+        inParams.put("responsePrefix", "tmp.vnfInfo");
+        aai.processForVfModuleModelInfo(aaiService,inParams, ctx);
+        assertEquals(ctx.getAttribute("template-model-id"),"model0001");
+
+    }
 }