aboutsummaryrefslogtreecommitdiffstats
path: root/appc-outbound/appc-aai-client
diff options
context:
space:
mode:
authorBalaji, Ramya (rb111y) <rb111y@att.com>2018-03-02 16:39:47 -0500
committerBalaji, Ramya (rb111y) <rb111y@att.com>2018-03-05 08:20:24 -0500
commit2a65f44fc463f204ef51367dff9a894ce0acceb8 (patch)
tree0e4adf86c37d8e325cf2db28880920b14c065a8a /appc-outbound/appc-aai-client
parent84919d3230ad04b6a78f52e37449ba5d34c9a033 (diff)
Code changes to retrieve template-id
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>
Diffstat (limited to 'appc-outbound/appc-aai-client')
-rw-r--r--appc-outbound/appc-aai-client/provider/src/main/java/org/onap/appc/aai/client/aai/AaiService.java39
-rw-r--r--appc-outbound/appc-aai-client/provider/src/main/java/org/onap/appc/aai/client/node/AAIResourceNode.java72
-rw-r--r--appc-outbound/appc-aai-client/provider/src/test/java/org/onap/appc/aai/client/node/MockAaiService.java41
-rw-r--r--appc-outbound/appc-aai-client/provider/src/test/java/org/onap/appc/aai/client/node/TestAAIResourceNode.java51
4 files changed, 162 insertions, 41 deletions
diff --git a/appc-outbound/appc-aai-client/provider/src/main/java/org/onap/appc/aai/client/aai/AaiService.java b/appc-outbound/appc-aai-client/provider/src/main/java/org/onap/appc/aai/client/aai/AaiService.java
index a3e274c1c..cb439ee16 100644
--- a/appc-outbound/appc-aai-client/provider/src/main/java/org/onap/appc/aai/client/aai/AaiService.java
+++ b/appc-outbound/appc-aai-client/provider/src/main/java/org/onap/appc/aai/client/aai/AaiService.java
@@ -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");
+
+ }
}
diff --git a/appc-outbound/appc-aai-client/provider/src/main/java/org/onap/appc/aai/client/node/AAIResourceNode.java b/appc-outbound/appc-aai-client/provider/src/main/java/org/onap/appc/aai/client/node/AAIResourceNode.java
index 5e25f576d..0e28727bc 100644
--- a/appc-outbound/appc-aai-client/provider/src/main/java/org/onap/appc/aai/client/node/AAIResourceNode.java
+++ b/appc-outbound/appc-aai-client/provider/src/main/java/org/onap/appc/aai/client/node/AAIResourceNode.java
@@ -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);
+ }
+
+}
+}
diff --git a/appc-outbound/appc-aai-client/provider/src/test/java/org/onap/appc/aai/client/node/MockAaiService.java b/appc-outbound/appc-aai-client/provider/src/test/java/org/onap/appc/aai/client/node/MockAaiService.java
index 2e03e6b5a..ddbb97954 100644
--- a/appc-outbound/appc-aai-client/provider/src/test/java/org/onap/appc/aai/client/node/MockAaiService.java
+++ b/appc-outbound/appc-aai-client/provider/src/test/java/org/onap/appc/aai/client/node/MockAaiService.java
@@ -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;
}
}
diff --git a/appc-outbound/appc-aai-client/provider/src/test/java/org/onap/appc/aai/client/node/TestAAIResourceNode.java b/appc-outbound/appc-aai-client/provider/src/test/java/org/onap/appc/aai/client/node/TestAAIResourceNode.java
index 6b05c08bb..e6ac0567a 100644
--- a/appc-outbound/appc-aai-client/provider/src/test/java/org/onap/appc/aai/client/node/TestAAIResourceNode.java
+++ b/appc-outbound/appc-aai-client/provider/src/test/java/org/onap/appc/aai/client/node/TestAAIResourceNode.java
@@ -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");
+
+ }
}