summaryrefslogtreecommitdiffstats
path: root/appc-outbound/appc-aai-client/provider
diff options
context:
space:
mode:
authorDilip kumar Pampana <dp583p@att.com>2018-01-09 12:25:37 -0500
committerSkip Wonnell <skip@att.com>2018-01-09 19:00:46 +0000
commit531ba500e19e30b7d4ff0ee8c585f407f6ee295a (patch)
tree833f67529e9f626afd668607ba07259e41d63a09 /appc-outbound/appc-aai-client/provider
parent9f4b9299a1bdfaffb669fb051707d3e540a9f529 (diff)
AAI Client Updates
Update and retrieve OAM Addresses,Update vnfc data Issue-ID: APPC-352 Change-Id: Ibf7bdb38296f278fd414ef0b9464ed42245051f1 Signed-off-by: Dilip kumar Pampana <dp583p@att.com>
Diffstat (limited to 'appc-outbound/appc-aai-client/provider')
-rw-r--r--appc-outbound/appc-aai-client/provider/src/main/java/org/onap/appc/aai/client/aai/AaiService.java1357
-rw-r--r--appc-outbound/appc-aai-client/provider/src/main/java/org/onap/appc/aai/client/node/AAIResourceNode.java996
2 files changed, 1209 insertions, 1144 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 f03e7f319..ea59d9686 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
@@ -25,6 +25,11 @@
package org.onap.appc.aai.client.aai;
import java.util.HashMap;
+import java.util.List;
+import java.util.Set;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
import java.util.Map;
import org.apache.commons.lang3.StringUtils;
@@ -44,732 +49,712 @@ import org.osgi.framework.ServiceReference;
public class AaiService {
- private static final EELFLogger log = EELFManager.getInstance().getLogger(AaiService.class);
- private AAIClient aaiClient;
-
-
- public AaiService(AAIClient aaiClient) {
- this.aaiClient = aaiClient;
- }
-
- public AaiService() {
- BundleContext bctx = FrameworkUtil.getBundle(this.getClass()).getBundleContext();
- ServiceReference sref = bctx.getServiceReference(AAIService.class);
- aaiClient = (AAIClient) bctx.getService(sref);
- }
-
- public void getGenericVnfInfo(Map<String, String> params, SvcLogicContext ctx) throws Exception {
-
-
- String vnfId = params.get("vnfId");
- if(StringUtils.isBlank(vnfId)){
- throw new Exception("VnfId is missing");
- }
-
- String prefix = params.get(AppcAaiClientConstant.INPUT_PARAM_RESPONSE_PREFIX);
-
-
- prefix = StringUtils.isNotBlank(prefix) ? (prefix+".") : "";
-
-
- //String resourceKey = "generic-vnf.vnf-id = '" + vnfId + "' AND relationship-key = 'vserver.vserver-id'";
-
- String resourceKey = "generic-vnf.vnf-id = '" + vnfId + "'";
-
- String resourceType = "generic-vnf";
- String queryPrefix = "vnfInfo";
- SvcLogicContext vnfCtx = readResource(resourceKey,queryPrefix,resourceType);
-
-
-
-
- ctx.setAttribute(prefix + "vnf.vnf-name", vnfCtx.getAttribute("vnfInfo.vnf-name"));
- ctx.setAttribute(prefix + "vnf.vnf-type", vnfCtx.getAttribute("vnfInfo.vnf-type"));
- ctx.setAttribute(prefix + "vnf.prov-status", vnfCtx.getAttribute("vnfInfo.prov-status"));
- ctx.setAttribute(prefix + "vnf.orchestration-status", vnfCtx.getAttribute("vnfInfo.orchestration-status"));
-
-
-
- int vmCount = 0;
-
-
- String relLen = vnfCtx.getAttribute("vnfInfo.relationship-list.relationship_length");
- int relationshipLength = 0;
- if ( relLen != null )
- relationshipLength = Integer.parseInt(relLen);
-
- log.info("RELLEN " + relationshipLength);
- for ( int i=0; i < relationshipLength; i++ ) {
-
- String vserverId = getRelationshipValue(i, vnfCtx, "vserver", "vserver.vserver-id", "vnfInfo");
- String tenantId = getRelationshipValue(i, vnfCtx, "vserver", "tenant.tenant-id", "vnfInfo");
- String cloudOwner = getRelationshipValue(i, vnfCtx, "vserver", "cloud-region.cloud-owner", "vnfInfo");
- String cloudRegionId = getRelationshipValue(i, vnfCtx, "vserver", "cloud-region.cloud-region-id", "vnfInfo");
-
- if ( vserverId != null ) {
-
- log.info("VSERVER KEYS " + vserverId + " " + tenantId + " " + cloudOwner + " " + cloudRegionId);
- String vnfPrefix = prefix + "vm[" + vmCount + "].";
-
- ctx.setAttribute(vnfPrefix + "vserver-id", vserverId);
- ctx.setAttribute(vnfPrefix + "tenant-id", tenantId);
- ctx.setAttribute(vnfPrefix + "cloud-owner", cloudOwner);
- ctx.setAttribute(vnfPrefix + "cloud-region-id", cloudRegionId);
-
- vmCount++;
- }
- }
-
-
-
- ctx.setAttribute(prefix + "vm-count", String.valueOf(vmCount));
-
- log.info("VMCOUNT FROM VNF INFO " + ctx.getAttribute(prefix + "vm-count"));
-
-
-
-
- }
-
-
-
- public void getVMInfo(Map<String, String> params,SvcLogicContext ctx ) throws Exception {
- log.info("Received getVmInfo call with params : " + params);
-
- String prefix = params.get(AppcAaiClientConstant.INPUT_PARAM_RESPONSE_PREFIX);
-
-
- prefix = StringUtils.isNotBlank(prefix) ? (prefix+".") : "";
-
- int vnfcCount = 0;
- ctx.setAttribute(prefix + "vm.vnfc-count", String.valueOf(vnfcCount)); // Incase no vnfcs are found
-
- String vserverId = params.get("vserverId");
- if(StringUtils.isBlank(vserverId)){
- throw new Exception("VServerId is missing");
- }
-
- String tenantId = params.get("tenantId");
- if(StringUtils.isBlank(tenantId)){
- throw new Exception("TenantId is missing");
- }
-
- String cloudOwner = params.get("cloudOwner");
- if(StringUtils.isBlank(cloudOwner)){
- throw new Exception("Cloud Owner is missing");
- }
-
- String cloudRegionId = params.get("cloudRegionId");
- if(StringUtils.isBlank(cloudRegionId)){
- throw new Exception("Cloud region Id is missing");
- }
-
-
-
- String resourceKey = "vserver.vserver-id = '" +vserverId + "' AND tenant.tenant-id = '" + tenantId +
- "' AND cloud-region.cloud-owner = '" +cloudOwner +
- "' AND cloud-region.cloud-region-id = '" +cloudRegionId + "'";
-
-
- String queryPrefix = "vmInfo";
-
- String resourceType = "vserver";
- SvcLogicContext vmCtx = readResource(resourceKey,queryPrefix,resourceType);
-
-
-
-
-
- ctx.setAttribute(prefix+ "vm.prov-status", vmCtx.getAttribute("vmInfo.prov-status"));
-
- ctx.setAttribute(prefix+ "vm.vserver-name", vmCtx.getAttribute("vmInfo.vserver-name"));
-
-
-
- String relLen = vmCtx.getAttribute("vmInfo.relationship-list.relationship_length");
-
-
- int relationshipLength = 0;
- if ( relLen != null )
- relationshipLength = Integer.parseInt(relLen);
-
- log.info("RELLEN" + relationshipLength);
- for ( int i=0; i < relationshipLength; i++ ) {
-
- String vfModuleId = getRelationshipValue(i, vmCtx, "vf-module", "vf-module.vf-module-id", "vmInfo");
-
- if ( vfModuleId != null )
- ctx.setAttribute(prefix + "vm.vf-module-id", vfModuleId);
-
-
- String vnfcName = getRelationshipValue(i, vmCtx, "vnfc", "vnfc.vnfc-name", "vmInfo");
-
- if ( vnfcName != null ) {
-
- ctx.setAttribute(prefix + "vm.vnfc[" + vnfcCount + "].vnfc-name", vnfcName);
- vnfcCount++;
- }
-
-
-
-
- } //relationshipLength
- ctx.setAttribute(prefix + "vm.vnfc-count", String.valueOf(vnfcCount));
-
- log.info("VSERVERNAME " + ctx.getAttribute(prefix+ "vm.vserver-name") + " HAS NUM VNFCS = " + ctx.getAttribute(prefix+ "vm.vnfc-count"));
-
- }
-
-
-
- private String getRelationshipValue(int i, SvcLogicContext ctx, String relatedTo, String relationshipKey, String prefix) throws Exception {
-
-
- if ( relatedTo.equals(ctx.getAttribute(prefix + ".relationship-list.relationship[" + i + "].related-to")) ) {
-
-
- log.info("RELATEDTO " + relatedTo);
- int relationshipDataLength = 0;
- String relDataLen = ctx.getAttribute(prefix + ".relationship-list.relationship[" + i + "].relationship-data_length");
-
- if ( relDataLen != null )
- relationshipDataLength = Integer.parseInt(relDataLen);
-
-
-
- for ( int j =0 ; j < relationshipDataLength ; j++) {
-
- String key = ctx.getAttribute(prefix + ".relationship-list.relationship[" + i + "].relationship-data[" + j + "].relationship-key");
-
- String value = ctx.getAttribute(prefix + ".relationship-list.relationship[" + i + "].relationship-data[" + j + "].relationship-value");
-
- log.info("GENERIC KEY " + key);
- log.info("GENERIC VALUE " + value);
-
- if (relationshipKey.equals(key)) {
+ private static final EELFLogger log = EELFManager.getInstance().getLogger(AaiService.class);
+ private AAIClient aaiClient;
+
+ public AaiService(AAIClient aaiClient) {
+ this.aaiClient = aaiClient;
+ }
+
+ public AaiService() {
+ BundleContext bctx = FrameworkUtil.getBundle(this.getClass()).getBundleContext();
+ ServiceReference sref = bctx.getServiceReference(AAIService.class);
+ aaiClient = (AAIClient) bctx.getService(sref);
+ }
+
+ public void getGenericVnfInfo(Map<String, String> params, SvcLogicContext ctx) throws Exception {
+
+ String vnfId = params.get("vnfId");
+ if(StringUtils.isBlank(vnfId)){
+ throw new Exception("VnfId is missing");
+ }
+ String prefix = params.get(AppcAaiClientConstant.INPUT_PARAM_RESPONSE_PREFIX);
+ prefix = StringUtils.isNotBlank(prefix) ? (prefix+".") : "";
+ //String resourceKey = "generic-vnf.vnf-id = '" + vnfId + "' AND relationship-key = 'vserver.vserver-id'";
+ String resourceKey = "generic-vnf.vnf-id = '" + vnfId + "'";
+ String resourceType = "generic-vnf";
+ String queryPrefix = "vnfInfo";
+ SvcLogicContext vnfCtx = readResource(resourceKey,queryPrefix,resourceType);
+
+ ctx.setAttribute(prefix + "vnf.vnf-name", vnfCtx.getAttribute("vnfInfo.vnf-name"));
+ ctx.setAttribute(prefix + "vnf.vnf-type", vnfCtx.getAttribute("vnfInfo.vnf-type"));
+ ctx.setAttribute(prefix + "vnf.prov-status", vnfCtx.getAttribute("vnfInfo.prov-status"));
+ ctx.setAttribute(prefix + "vnf.orchestration-status", vnfCtx.getAttribute("vnfInfo.orchestration-status"));
+ ctx.setAttribute(prefix + "vnf.ipv4-oam-address", vnfCtx.getAttribute("vnfInfo.ipv4-oam-address"));
+
+ int vmCount = 0;
+ String relLen = vnfCtx.getAttribute("vnfInfo.relationship-list.relationship_length");
+ int relationshipLength = 0;
+ if ( relLen != null )
+ relationshipLength = Integer.parseInt(relLen);
+ log.info("RELLEN " + relationshipLength);
+ for ( int i=0; i < relationshipLength; i++ ) {
+ String vserverId = getRelationshipValue(i, vnfCtx, "vserver", "vserver.vserver-id", "vnfInfo");
+ String tenantId = getRelationshipValue(i, vnfCtx, "vserver", "tenant.tenant-id", "vnfInfo");
+ String cloudOwner = getRelationshipValue(i, vnfCtx, "vserver", "cloud-region.cloud-owner", "vnfInfo");
+ String cloudRegionId = getRelationshipValue(i, vnfCtx, "vserver", "cloud-region.cloud-region-id", "vnfInfo");
+ if ( vserverId != null ) {
+ log.info("VSERVER KEYS " + vserverId + " " + tenantId + " " + cloudOwner + " " + cloudRegionId);
+ String vnfPrefix = prefix + "vm[" + vmCount + "].";
+ ctx.setAttribute(vnfPrefix + "vserver-id", vserverId);
+ ctx.setAttribute(vnfPrefix + "tenant-id", tenantId);
+ ctx.setAttribute(vnfPrefix + "cloud-owner", cloudOwner);
+ ctx.setAttribute(vnfPrefix + "cloud-region-id", cloudRegionId);
+ vmCount++;
+ }
+ }
+ ctx.setAttribute(prefix + "vm-count", String.valueOf(vmCount));
+ log.info("VMCOUNT FROM VNF INFO " + ctx.getAttribute(prefix + "vm-count"));
+ }
+
+ public void getVMInfo(Map<String, String> params,SvcLogicContext ctx )throws Exception {
+ log.info("Received getVmInfo call with params : " + params);
+ String prefix = params.get(AppcAaiClientConstant.INPUT_PARAM_RESPONSE_PREFIX);
+ prefix = StringUtils.isNotBlank(prefix) ? (prefix+".") : "";
+ int vnfcCount = 0;
+ ctx.setAttribute(prefix + "vm.vnfc-count", String.valueOf(vnfcCount)); // Incase no vnfcs are found
+ String vserverId = params.get("vserverId");
+ if(StringUtils.isBlank(vserverId)){
+ throw new Exception("VServerId is missing");
+ }
+ String tenantId = params.get("tenantId");
+ if(StringUtils.isBlank(tenantId)){
+ throw new Exception("TenantId is missing");
+ }
+ String cloudOwner = params.get("cloudOwner");
+ if(StringUtils.isBlank(cloudOwner)){
+ throw new Exception("Cloud Owner is missing");
+ }
+ String cloudRegionId = params.get("cloudRegionId");
+ if(StringUtils.isBlank(cloudRegionId)){
+ throw new Exception("Cloud region Id is missing");
+ }
+ String resourceKey = "vserver.vserver-id = '" +vserverId + "' AND tenant.tenant-id = '" + tenantId +
+ "' AND cloud-region.cloud-owner = '" +cloudOwner +
+ "' AND cloud-region.cloud-region-id = '" +cloudRegionId + "'";
+ String queryPrefix = "vmInfo";
+ String resourceType = "vserver";
+ SvcLogicContext vmCtx = readResource(resourceKey,queryPrefix,resourceType);
+
+ ctx.setAttribute(prefix+ "vm.prov-status", vmCtx.getAttribute("vmInfo.prov-status"));
+ ctx.setAttribute(prefix+ "vm.vserver-name", vmCtx.getAttribute("vmInfo.vserver-name"));
+
+ String relLen = vmCtx.getAttribute("vmInfo.relationship-list.relationship_length");
+ int relationshipLength = 0;
+ if ( relLen != null )
+ relationshipLength = Integer.parseInt(relLen);
+ log.info("RELLEN" + relationshipLength);
+ for ( int i=0; i < relationshipLength; i++ ) {
+ String vfModuleId = getRelationshipValue(i, vmCtx, "vf-module", "vf-module.vf-module-id", "vmInfo");
+ if ( vfModuleId != null )
+ ctx.setAttribute(prefix + "vm.vf-module-id", vfModuleId);
+
+ String vnfcName = getRelationshipValue(i, vmCtx, "vnfc", "vnfc.vnfc-name", "vmInfo");
+ if ( vnfcName != null ) {
+ ctx.setAttribute(prefix + "vm.vnfc[" + vnfcCount + "].vnfc-name", vnfcName);
+ vnfcCount++;
+ }
+
+ } //relationshipLength
+ ctx.setAttribute(prefix + "vm.vnfc-count", String.valueOf(vnfcCount));
+ log.info("VSERVERNAME " + ctx.getAttribute(prefix+ "vm.vserver-name") + " HAS NUM VNFCS = " + ctx.getAttribute(prefix+ "vm.vnfc-count"));
+ }
+
+ private String getRelationshipValue(int i, SvcLogicContext ctx, String relatedTo, String relationshipKey, String prefix) throws Exception {
+
+ if ( relatedTo.equals(ctx.getAttribute(prefix + ".relationship-list.relationship[" + i + "].related-to")) ) {
+ log.info("RELATEDTO " + relatedTo);
+ int relationshipDataLength = 0;
+ String relDataLen = ctx.getAttribute(prefix + ".relationship-list.relationship[" + i + "].relationship-data_length");
+ if ( relDataLen != null )
+ relationshipDataLength = Integer.parseInt(relDataLen);
+
+ for ( int j =0 ; j < relationshipDataLength ; j++) {
+
+ String key = ctx.getAttribute(prefix + ".relationship-list.relationship[" + i + "].relationship-data[" + j + "].relationship-key");
+
+ String value = ctx.getAttribute(prefix + ".relationship-list.relationship[" + i + "].relationship-data[" + j + "].relationship-value");
+
+ log.info("GENERIC KEY " + key);
+ log.info("GENERIC VALUE " + value);
+
+ if (relationshipKey.equals(key)) {
return value;
-
}
-
- } // relationshipDataLength
-
-
- } // if related-To
-
-
- return null;
-
-
- }
-
-
- public void getVnfcInfo(Map<String, String> params,SvcLogicContext ctx ) throws Exception {
- log.info("Received getVnfc call with params : " + params);
-
- String prefix = params.get(AppcAaiClientConstant.INPUT_PARAM_RESPONSE_PREFIX);
- prefix = StringUtils.isNotBlank(prefix) ? (prefix+".") : "";
-
- String vnfcName = params.get("vnfcName");
- if(StringUtils.isBlank(vnfcName)){
- throw new Exception("Vnfc Name is missing");
- }
-
- String resourceKey = "vnfc.vnfc-name = '" + vnfcName + "'";
-
- String queryPrefix = "vnfcInfo";
- String resourceType = "vnfc";
- SvcLogicContext vnfcCtx = readResource(resourceKey,queryPrefix,resourceType);
-
- // Changes for US 315820 for 1710 vnfc-type renamed to nfc-function,vnfc-function-code renamed to nfc-naming-code
-
- /*ctx.setAttribute(prefix+ "vnfc.vnfc-type", vnfcCtx.getAttribute("vnfcInfo.vnfc-type"));
- ctx.setAttribute(prefix+ "vnfc.vnfc-function-code", vnfcCtx.getAttribute("vnfcInfo.vnfc-function-code"));
- ctx.setAttribute(prefix+ "vnfc.group-notation", vnfcCtx.getAttribute("vnfcInfo.group-notation"));*/
-
- ctx.setAttribute(prefix+ "vnfc.vnfc-type", vnfcCtx.getAttribute("vnfcInfo.nfc-function"));
- ctx.setAttribute(prefix+ "vnfc.vnfc-function-code", vnfcCtx.getAttribute("vnfcInfo.nfc-naming-code"));
- ctx.setAttribute(prefix+ "vnfc.group-notation", vnfcCtx.getAttribute("vnfcInfo.group-notation"));
-
-
- }
-
- public void insertVnfcs(Map<String, String> params,SvcLogicContext ctx, int vnfcRefLen, int vmCount) throws Exception {
- log.info("Received insertVnfcs call with params : " + params);
-
- String prefix = params.get(AppcAaiClientConstant.INPUT_PARAM_RESPONSE_PREFIX);
-
- prefix = StringUtils.isNotBlank(prefix) ? (prefix+".") : "";
-
-
-
- int vnfcRefIndx =-1;
- for ( int i = 0; i < vmCount ; i++ ) {
- String aaiRefKey = prefix + "vm[" + i + "].";
-
- log.info("VNFCNAME IN INSERTVNFCS " + ctx.getAttribute(aaiRefKey + "vnfc-name"));
- String numVnfcsStr = ctx.getAttribute(aaiRefKey + "vnfc-count");
-
-
- //if ( numVnfcsStr != null || Integer.parseInt(numVnfcsStr) >= 1 )
-
-
- if ( ctx.getAttribute(aaiRefKey + "vnfc-name") != null )
- continue;
- else
- vnfcRefIndx++;
-
-
- // Get Vnfc_reference data
- String vnfcRefKey = "vnfcReference[" + vnfcRefIndx + "].";
-
- log.info("VNFCREFKEY " + vnfcRefKey);
- log.info("AAIREFKEY " + aaiRefKey);
-
- String vmInstance = ctx.getAttribute(vnfcRefKey+ "VM-INSTANCE");
- String vnfcInstance = ctx.getAttribute(vnfcRefKey+ "VNFC-INSTANCE");
-
- String groupNotationType = ctx.getAttribute(vnfcRefKey+ "GROUP-NOTATION-TYPE");
- String groupNotationValue = ctx.getAttribute(vnfcRefKey+ "GROUP-NOTATION-VALUE");
-
- String vnfcType = ctx.getAttribute(vnfcRefKey+ "VNFC-TYPE");
-
- String vnfcFuncCode = ctx.getAttribute(vnfcRefKey+ "VNFC-FUNCTION-CODE");
-
- String populateIpAddressV4OamVip = ctx.getAttribute(vnfcRefKey+ "IPADDRESS-V4-OAM-VIP");
-
-
- // Get vnfc Data to be added
- String vserverName = ctx.getAttribute(aaiRefKey + "vserver-name");
- String vnfcName = vserverName + vnfcFuncCode + "001";
-
- String groupNotation = getGroupNotation(groupNotationType, groupNotationValue, vnfcName, vserverName,prefix, ctx, vnfcType);
-
-
- String ipAddressV4OamVip = null;
- if ( "Y".equals(populateIpAddressV4OamVip))
- ipAddressV4OamVip = ctx.getAttribute("vnf-host-ip-address"); // from input
-
-
- Map<String, String> vnfcParams = populateVnfcParams(ctx, aaiRefKey, ipAddressV4OamVip, groupNotation, vnfcType, vnfcFuncCode);
-
-
- addVnfc( vnfcName, vnfcParams, prefix);
-
- // Add VNFC Info to context for current added VNFC
- ctx.setAttribute(aaiRefKey + "vnfc-name", vnfcName);
- ctx.setAttribute(aaiRefKey + "vnfc-type", vnfcType);
- ctx.setAttribute(aaiRefKey + "vnfc-function-code", vnfcFuncCode);
- ctx.setAttribute(aaiRefKey + "group-notation", groupNotation);
-
- }
-
-
- }
-
-
-
- public Map<String, String> populateVnfcParams(SvcLogicContext ctx, String aaiRefKey,
- String ipAddressV4OamVip, String groupNotation, String vnfcType, String vnfcFuncCode) throws Exception {
-
-
- Map<String, String> vnfcParams = new HashMap<String, String>();
-
- // Changes for US 315820 for 1710 vnfc-type renamed to nfc-function,vnfc-function-code renamed to nfc-naming-code
-
- /*
- vnfcParams.put("vnfc-function-code", vnfcFuncCode);
- vnfcParams.put("vnfc-type", vnfcType);
- */
- vnfcParams.put("nfc-naming-code", vnfcFuncCode);
- vnfcParams.put("nfc-function", vnfcType);
-
- //
-
- vnfcParams.put("ipaddress-v4-oam-vip", ipAddressV4OamVip);
-
- vnfcParams.put("prov-status", "NVTPROV");
- vnfcParams.put("orchestration-status", "CONFIGURED");
- vnfcParams.put("in-maint", "false");
- vnfcParams.put("is-closed-loop", "false");
- vnfcParams.put("group-notation",groupNotation);
-
-
- vnfcParams.put("relationship-list.relationship[0].related-to","vserver");
- vnfcParams.put("relationship-list.relationship[0].relationship-data[0].relationship-key","vserver.vserver-id");
- vnfcParams.put("relationship-list.relationship[0].relationship-data[0].relationship-value",ctx.getAttribute(aaiRefKey + "vserver-id"));
-
-
- vnfcParams.put("relationship-list.relationship[0].relationship-data[1].relationship-key","tenant.tenant-id");
- vnfcParams.put("relationship-list.relationship[0].relationship-data[1].relationship-value",ctx.getAttribute(aaiRefKey + "tenant-id"));
-
-
- vnfcParams.put("relationship-list.relationship[0].relationship-data[2].relationship-key","cloud-region.cloud-owner");
- vnfcParams.put("relationship-list.relationship[0].relationship-data[2].relationship-value",ctx.getAttribute(aaiRefKey + "cloud-owner"));
-
-
- vnfcParams.put("relationship-list.relationship[0].relationship-data[3].relationship-key","cloud-region.cloud-region-id");
- vnfcParams.put("relationship-list.relationship[0].relationship-data[3].relationship-value",ctx.getAttribute(aaiRefKey + "cloud-region-id"));
-
-
-
- vnfcParams.put("relationship-list.relationship[1].related-to","generic-vnf");
- vnfcParams.put("relationship-list.relationship[1].relationship-data[0].relationship-key","generic-vnf.vnf-id");
- vnfcParams.put("relationship-list.relationship[1].relationship-data[0].relationship-value",ctx.getAttribute("vnf-id"));
-
-
- vnfcParams.put("relationship-list.relationship[2].related-to","vf-module");
- vnfcParams.put("relationship-list.relationship[2].relationship-data[0].relationship-key","generic-vnf.vnf-id");
- vnfcParams.put("relationship-list.relationship[2].relationship-data[0].relationship-value",ctx.getAttribute("vnf-id"));
-
-
- vnfcParams.put("relationship-list.relationship[2].relationship-data[1].relationship-key","vf-module.vf-module-id");
- vnfcParams.put("relationship-list.relationship[2].relationship-data[1].relationship-value",ctx.getAttribute(aaiRefKey + "vf-module-id"));
-
-
- return vnfcParams;
- }
-
- public void addVnfc(String vnfcName, Map<String, String> params, String prefix) throws Exception {
-
- log.info("Received addVnfc call with vnfcName : " +vnfcName);
- log.info("Received addVnfc call with params : " + params);
- String resourceKey = "vnfc.vnfc-name = '" + vnfcName + "'";
-
- log.info("Received addVnfc call with resourceKey : " + resourceKey);
-
-
- SvcLogicContext vnfcCtx = new SvcLogicContext();
- SvcLogicResource.QueryStatus response = aaiClient.save("vnfc", true, false, resourceKey, params, prefix, vnfcCtx) ;
-
- if (SvcLogicResource.QueryStatus.SUCCESS.equals(response)) {
- log.info("Added VNFC SUCCESSFULLY " + vnfcName);
-
- }
- else if (SvcLogicResource.QueryStatus.FAILURE.equals(response)) {
- throw new Exception("VNFC Add failed for for vnfc_name " + vnfcName);
-
- }
-
-
- }
-
- public String getGroupNotation(String groupNotationType, String groupNotationValue, String vnfcName,
- String vserverName, String prefix, SvcLogicContext ctx, String vnfcRefVnfcType) throws Exception {
-
- String grpNotation = null;
-
- if ( "fixed-value".equals(groupNotationType)) {
- grpNotation = groupNotationValue;
-
- }
- else if ( "first-vnfc-name".equals(groupNotationType) ) {
-
- /*If the group-notation-type value = ?first-vnfc-name?,
- * then populate the group-notation value with the concatenation of
- * [vnfc name associated with the first vnfc for the vnfc-type (e.g., *******)]
- * and [the value in group-notation-value (e.g., pair)].
- * There may be several vnfc-types associated with the VM?s.
- */
- /* Vnfc-type should be from refrence data */
-
- /* vDBE has 2 VNFCs with same VNFC type . The pair name should be same for both . */
- /* When first VNFC is added details should be added to context so FirstVnfcName doesnt return null second time. */
- String tmpVnfcName = getFirstVnfcNameForVnfcType(ctx, prefix, vnfcRefVnfcType);
-
- log.info("RETURNED FIRSTVNFCNAME" + tmpVnfcName);
- log.info("CURRENTVNFCNAME" + vnfcName);
- if ( tmpVnfcName == null ) {
- log.info("CURRENTVNFCNAME" + vnfcName);
- // No Vnfcs currently exist. Use Current vnfcName
- grpNotation = vnfcName + groupNotationValue;
- }
- else
- grpNotation = tmpVnfcName + groupNotationValue;
-
-
- }
- else if ( "relative-value".equals(groupNotationType) ) {
-
- /*If the group-notation-type = ?relative-value?, then find the group-notation value
- * from the prior vnfc (where prior means the vnfc with where the last three digits of the
- * vm-name is one lower than the current one; note that this vnfc may have been previously configured.)
- 1. If the group-notation-value = next, then add 1 to the group-notation value from the prior vnfc and use this value
- 2. If the group-notation-value = same, then use the group-notation-value from the prior vnfc record*/
-
- // next and same cant be defined for first VM. if next will not generate grpNotation if Prior is not a number
- String tmpVserverName = null;
- if ( vserverName != null ) {
-
- String vmNamePrefix = vserverName.substring(0,vserverName.length()-3);
-
- String lastThreeChars = vserverName.substring(vserverName.length() - 3);
-
- if ( NumberUtils.isDigits(lastThreeChars)) {
- int vmNum = Integer.parseInt(lastThreeChars) - 1;
- String formatted = String.format("%03d", vmNum);
-
- log.info("FORMATTED " + formatted);
-
- tmpVserverName = vmNamePrefix + formatted;
-
-
- String priorGroupNotation = getGroupNotationForVServer(ctx, prefix, tmpVserverName);
-
- if ( "same".equals(groupNotationValue))
- grpNotation = priorGroupNotation;
- else if ( "next".equals(groupNotationValue)) {
- if ( priorGroupNotation != null && NumberUtils.isDigits(priorGroupNotation)) {
- int nextGrpNotation = Integer.parseInt(priorGroupNotation) + 1;
- grpNotation = String.valueOf(nextGrpNotation);
- }
- }
- }
-
- }
-
-
-
- }
-
-
- log.info("RETURNED GROUPNOTATION " + grpNotation);
- return grpNotation;
- }
-
- public String getGroupNotationForVServer(SvcLogicContext ctx, String prefix, String vserverName) throws Exception {
-
-
- String vmCountStr = ctx.getAttribute(prefix+"vnf.vm-count");
-
- if ( vmCountStr == null )
- return null;
-
- int vmCount = Integer.valueOf(vmCountStr);
- for ( int i = 0; i < vmCount ; i++ ) {
-
- String tmpVserver = ctx.getAttribute(prefix+ "vm[" + i + "].vserver-name");
-
- if (vserverName.equals(tmpVserver))
- return ctx.getAttribute(prefix+ "vm[" + i + "].group-notation");
-
- } // vmCount
-
- return null;
-
- }
-
-
-
-
- public String getFirstVnfcNameForVnfcType(SvcLogicContext ctx, String prefix, String vnfcRefVnfcType) throws Exception {
-
-
-
- /*if(StringUtils.isBlank(vnfcRefVnfcType)){
- throw new Exception("Vnfc Reference : VNFC Type is missing");
- }*/
-
-
- String vmCountStr = ctx.getAttribute(prefix+"vnf.vm-count");
-
- if ( vmCountStr == null )
- return null;
-
- int vmCount = Integer.valueOf(vmCountStr);
- for ( int i = 0; i < vmCount ; i++ ) {
-
- String tmpvnfcType = ctx.getAttribute(prefix+ "vm[" + i + "].vnfc-type");
-
- if (vnfcRefVnfcType.equals(tmpvnfcType))
- return ctx.getAttribute(prefix+ "vm[" + i + "].vnfc-name");
-
- } // vmCount
-
-
-
- return null;
-
- }
-
- public void updateVServerStatus(Map<String, String> params,SvcLogicContext ctx, int vmCount) throws Exception {
- log.info("Received updateVServerStatus call with params : " + params);
-
- String prefix = params.get(AppcAaiClientConstant.INPUT_PARAM_RESPONSE_PREFIX);
-
- prefix = StringUtils.isNotBlank(prefix) ? (prefix+".") : "";
-
-
- Map<String, String> vServerParams = new HashMap<String, String>();
-
-
- // TODO - Should this just update prov-status or both? What about generic-vnf status? Will that be updated by Dispatcher?
-
- vServerParams.put("prov-status", "NVTPROV");
- //vServerParams.put("orchestration-status", "CONFIGURED");
-
-
- for ( int i = 0; i < vmCount ; i++ ) {
- String aaiRefKey = prefix + "vm[" + i + "].";
-
- log.info("VNFCNAME IN UpdateVServer " + ctx.getAttribute(aaiRefKey + "vnfc-name"));
-
- if ( ctx.getAttribute(aaiRefKey + "vnfc-name") != null )
- continue;
-
-
-
- String resourceKey = "vserver.vserver-id = '" + ctx.getAttribute(aaiRefKey + "vserver-id") + "'" +
- " AND tenant.tenant-id = '" + ctx.getAttribute(aaiRefKey + "tenant-id") + "'" +
- " AND cloud-region.cloud-owner = '" + ctx.getAttribute(aaiRefKey + "cloud-owner") + "'" +
- " AND cloud-region.cloud-region-id = '" + ctx.getAttribute(aaiRefKey + "cloud-region-id") + "'";
-
-
- updateResource( "vserver", resourceKey, vServerParams);
-
- }
-
-
- }
-
-
-
- public void updateVnfStatus(Map<String, String> params,SvcLogicContext ctx) throws Exception {
- log.info("Received updateVnfStatus call with params : " + params);
-
- String prefix = params.get(AppcAaiClientConstant.INPUT_PARAM_RESPONSE_PREFIX);
-
- prefix = StringUtils.isNotBlank(prefix) ? (prefix+".") : "";
-
-
- Map<String, String> vnfParams = new HashMap<String, String>();
-
-
- // TODO - Should this just update prov-status or both? What about generic-vnf status? Will that be updated by Dispatcher?
-
- vnfParams.put("prov-status", "NVTPROV");
- //vnfParams.put("orchestration-status", "CONFIGURED");
-
-
- String resourceKey = "generic-vnf.vnf-id = '" + ctx.getAttribute("vnf-id") + "'";
-
- updateResource( "generic-vnf" , resourceKey, vnfParams);
-
-
-
-
- }
-
- public void updateResource( String resource, String resourceKey, Map<String, String> params) throws Exception {
-
- log.info("Received updateResource call with Key : " +resourceKey);
-
-
- SvcLogicContext ctx = new SvcLogicContext();
-
-
- SvcLogicResource.QueryStatus response = aaiClient.update(resource, resourceKey , params, "tmp.update", ctx);
-
-
-
- if (SvcLogicResource.QueryStatus.SUCCESS.equals(response)) {
- log.info("Updated " + resource + " SUCCESSFULLY for " + resourceKey);
-
- }
- else if (SvcLogicResource.QueryStatus.FAILURE.equals(response)) {
- throw new Exception(resource + " Update failed for " + resourceKey);
-
- }
- }
-
- public SvcLogicContext readResource(String query, String prefix, String resourceType) throws Exception {
+
+ } // relationshipDataLength
+
+ } // if related-To
+
+ return null;
+
+ }
+
+ public void getVnfcInfo(Map<String, String> params,SvcLogicContext ctx ) throws Exception {
+ log.info("Received getVnfc call with params : " + params);
+
+ String prefix = params.get(AppcAaiClientConstant.INPUT_PARAM_RESPONSE_PREFIX);
+ prefix = StringUtils.isNotBlank(prefix) ? (prefix+".") : "";
+
+ String vnfcName = params.get("vnfcName");
+ if(StringUtils.isBlank(vnfcName)){
+ throw new Exception("Vnfc Name is missing");
+ }
+
+ String resourceKey = "vnfc.vnfc-name = '" + vnfcName + "'";
+
+ String queryPrefix = "vnfcInfo";
+ String resourceType = "vnfc";
+ SvcLogicContext vnfcCtx = readResource(resourceKey,queryPrefix,resourceType);
+
+ // Changes for US 315820 for 1710 vnfc-type renamed to nfc-function,vnfc-function-code renamed to nfc-naming-code
+
+ /*ctx.setAttribute(prefix+ "vnfc.vnfc-type", vnfcCtx.getAttribute("vnfcInfo.vnfc-type"));
+ ctx.setAttribute(prefix+ "vnfc.vnfc-function-code", vnfcCtx.getAttribute("vnfcInfo.vnfc-function-code"));
+ ctx.setAttribute(prefix+ "vnfc.group-notation", vnfcCtx.getAttribute("vnfcInfo.group-notation"));*/
+
+ ctx.setAttribute(prefix+ "vnfc.vnfc-type", vnfcCtx.getAttribute("vnfcInfo.nfc-function"));
+ ctx.setAttribute(prefix+ "vnfc.vnfc-function-code", vnfcCtx.getAttribute("vnfcInfo.nfc-naming-code"));
+ ctx.setAttribute(prefix+ "vnfc.group-notation", vnfcCtx.getAttribute("vnfcInfo.group-notation"));
+ ctx.setAttribute(prefix+ "vnfc.ipaddress-v4-oam-vip", vnfcCtx.getAttribute("vnfcInfo.ipaddress-v4-oam-vip"));
+
+ }
+
+ public void insertVnfcs(Map<String, String> params,SvcLogicContext ctx, int vnfcRefLen, int vmCount) throws Exception {
+ log.info("Received insertVnfcs call with params : " + params);
+
+ String prefix = params.get(AppcAaiClientConstant.INPUT_PARAM_RESPONSE_PREFIX);
+
+ prefix = StringUtils.isNotBlank(prefix) ? (prefix +".") : "";
+ int vnfcRefIndx = 0;
+ log.debug("vnfcRefIndx" +vnfcRefIndx);
+ for ( int i = 0; i < vmCount ; i++ ) {
+ String aaiRefKey = prefix + "vm[" + i + "].";
+
+ log.info("VNFCNAME IN INSERTVNFCS " + ctx.getAttribute(aaiRefKey + "vnfc-name"));
+ String numVnfcsStr = ctx.getAttribute(aaiRefKey + "vnfc-count");
+ String vnfcNameAAI = ctx.getAttribute(aaiRefKey + "vnfc-name");
+ //if ( numVnfcsStr != null || Integer.parseInt(numVnfcsStr) >= 1 )
+
+ // Get Vnfc_reference data from the table
+ String vnfcRefKey = "vnfcReference[" + vnfcRefIndx + "].";
+
+ log.info("VNFCREFKEY " + vnfcRefKey);
+ log.info("AAIREFKEY " + aaiRefKey);
+
+ String vmInstance = ctx.getAttribute(vnfcRefKey+ "VM-INSTANCE");
+ String vnfcInstance = ctx.getAttribute(vnfcRefKey+ "VNFC-INSTANCE");
+
+ String groupNotationType = ctx.getAttribute(vnfcRefKey+ "GROUP-NOTATION-TYPE");
+ String groupNotationValue = ctx.getAttribute(vnfcRefKey+ "GROUP-NOTATION-VALUE");
+
+ String vnfcType = ctx.getAttribute(vnfcRefKey+ "VNFC-TYPE");
+
+ String vnfcFuncCode = ctx.getAttribute(vnfcRefKey+ "VNFC-FUNCTION-CODE");
+
+ String populateIpAddressV4OamVip = ctx.getAttribute(vnfcRefKey+ "IPADDRESS-V4-OAM-VIP");
+
+
+ // Get vnfc Data to be added
+ String vserverName = ctx.getAttribute(aaiRefKey + "vserver-name");
+ String vnfcName = vserverName + vnfcFuncCode + "001";
+
+ String groupNotation = getGroupNotation(groupNotationType, groupNotationValue, vnfcName, vserverName,prefix, ctx, vnfcType);
+
+ String ipAddressV4OamVip = null;
+ if ( "Y".equals(populateIpAddressV4OamVip))
+ ipAddressV4OamVip = ctx.getAttribute("vnf-host-ip-address"); // from input
+ Map<String, String> vnfcParams = populateVnfcParams(ctx, aaiRefKey,
+ ipAddressV4OamVip, groupNotation, vnfcType, vnfcFuncCode);
+
+ log.info("Vnfc name from AAI: "+ vnfcNameAAI);
+ log.info("Vnfc name generated: " + vnfcName);
+
+ if (StringUtils.isNotBlank(vnfcNameAAI)) {
+
+ if (vnfcName.equalsIgnoreCase(vnfcNameAAI)) {
+
+ updateVnfcStatus(vnfcNameAAI, params, prefix);
+ vnfcRefIndx++;
+ continue;
+
+ } else
+ continue;
+ }
+ vnfcRefIndx++;
+ addVnfc( vnfcName, vnfcParams, prefix);
+
+ // Add VNFC Info to context for current added VNFC
+ ctx.setAttribute(aaiRefKey + "vnfc-name", vnfcName);
+ ctx.setAttribute(aaiRefKey + "vnfc-type", vnfcType);
+ ctx.setAttribute(aaiRefKey + "vnfc-function-code", vnfcFuncCode);
+ ctx.setAttribute(aaiRefKey + "group-notation", groupNotation);
+
+ }
+
+ }
+
+
+ public List<String> getVnfcData(Map<String, String> params,SvcLogicContext ctx, int vnfcRefLen, int vmCount) throws Exception{
+
+ String prefix = params.get(AppcAaiClientConstant.INPUT_PARAM_RESPONSE_PREFIX);
+ prefix = StringUtils.isNotBlank(prefix) ? (prefix +".") : "";
+ List<String> vnfcNames = new ArrayList<String>();
+ int vnfcRefIndx =-1;
+ for ( int i = 0; i < vmCount ; i++ ) {
+ String aaiRefKey = prefix + "vm[" + i + "].";
+ log.info("VNFCNAME IN INSERTVNFCS " + ctx.getAttribute(aaiRefKey + "vnfc-name"));
+ if ( ctx.getAttribute(aaiRefKey + "vnfc-name") != null )
+ continue;
+ else
+ vnfcRefIndx++;
+ String vnfcRefKey = "vnfcReference[" + vnfcRefIndx + "].";
+ log.info("VNFCREFKEY " + vnfcRefKey);
+ log.info("AAIREFKEY " + aaiRefKey);
+ String groupNotationType = ctx.getAttribute(vnfcRefKey+ "GROUP-NOTATION-TYPE");
+ String groupNotationValue = ctx.getAttribute(vnfcRefKey+ "GROUP-NOTATION-VALUE");
+
+ String vnfcType = ctx.getAttribute(vnfcRefKey+ "VNFC-TYPE");
+
+ String vnfcFuncCode = ctx.getAttribute(vnfcRefKey+ "VNFC-FUNCTION-CODE");
+
+ String populateIpAddressV4OamVip = ctx.getAttribute(vnfcRefKey+ "IPADDRESS-V4-OAM-VIP");
+
+
+ // Get vnfc Data to be added
+ String vserverName = ctx.getAttribute(aaiRefKey + "vserver-name");
+ String vnfcName = vserverName + vnfcFuncCode + "001";
+
+ String groupNotation = getGroupNotation(groupNotationType, groupNotationValue, vnfcName, vserverName,prefix, ctx, vnfcType);
+
+ String ipAddressV4OamVip = null;
+ if ( "Y".equals(populateIpAddressV4OamVip))
+ ipAddressV4OamVip = ctx.getAttribute("vnf-host-ip-address"); // from input
+
+ Map<String, String> vnfcParams = populateVnfcParams(ctx, aaiRefKey, ipAddressV4OamVip, groupNotation, vnfcType, vnfcFuncCode);
+
+ vnfcNames.add(vnfcName);
+
+ }
+
+ return vnfcNames;
+
+ }
+
+ public Map<String, String> populateVnfcParams(SvcLogicContext ctx, String aaiRefKey,
+ String ipAddressV4OamVip, String groupNotation, String vnfcType, String vnfcFuncCode) throws Exception {
+
+ Map<String, String> vnfcParams = new HashMap<String, String>();
+
+ // Changes for US 315820 for 1710 vnfc-type renamed to nfc-function,vnfc-function-code renamed to nfc-naming-code
+
+ /*
+ vnfcParams.put("vnfc-function-code", vnfcFuncCode);
+ vnfcParams.put("vnfc-type", vnfcType);
+ */
+ vnfcParams.put("nfc-naming-code", vnfcFuncCode);
+ vnfcParams.put("nfc-function", vnfcType);
+
+ //
+
+ vnfcParams.put("ipaddress-v4-oam-vip", ipAddressV4OamVip);
+
+ vnfcParams.put("prov-status", "NVTPROV");
+ vnfcParams.put("orchestration-status", "CONFIGURED");
+ vnfcParams.put("in-maint", "false");
+ vnfcParams.put("is-closed-loop", "false");
+ vnfcParams.put("group-notation",groupNotation);
+
+
+ vnfcParams.put("relationship-list.relationship[0].related-to","vserver");
+ vnfcParams.put("relationship-list.relationship[0].relationship-data[0].relationship-key","vserver.vserver-id");
+ vnfcParams.put("relationship-list.relationship[0].relationship-data[0].relationship-value",ctx.getAttribute(aaiRefKey + "vserver-id"));
+
+
+ vnfcParams.put("relationship-list.relationship[0].relationship-data[1].relationship-key","tenant.tenant-id");
+ vnfcParams.put("relationship-list.relationship[0].relationship-data[1].relationship-value",ctx.getAttribute(aaiRefKey + "tenant-id"));
+
+
+ vnfcParams.put("relationship-list.relationship[0].relationship-data[2].relationship-key","cloud-region.cloud-owner");
+ vnfcParams.put("relationship-list.relationship[0].relationship-data[2].relationship-value",ctx.getAttribute(aaiRefKey + "cloud-owner"));
+
+
+ vnfcParams.put("relationship-list.relationship[0].relationship-data[3].relationship-key","cloud-region.cloud-region-id");
+ vnfcParams.put("relationship-list.relationship[0].relationship-data[3].relationship-value",ctx.getAttribute(aaiRefKey + "cloud-region-id"));
+
+
+
+ vnfcParams.put("relationship-list.relationship[1].related-to","generic-vnf");
+ vnfcParams.put("relationship-list.relationship[1].relationship-data[0].relationship-key","generic-vnf.vnf-id");
+ vnfcParams.put("relationship-list.relationship[1].relationship-data[0].relationship-value",ctx.getAttribute("vnf-id"));
+
+
+ vnfcParams.put("relationship-list.relationship[2].related-to","vf-module");
+ vnfcParams.put("relationship-list.relationship[2].relationship-data[0].relationship-key","generic-vnf.vnf-id");
+ vnfcParams.put("relationship-list.relationship[2].relationship-data[0].relationship-value",ctx.getAttribute("vnf-id"));
+
+
+ vnfcParams.put("relationship-list.relationship[2].relationship-data[1].relationship-key","vf-module.vf-module-id");
+ vnfcParams.put("relationship-list.relationship[2].relationship-data[1].relationship-value",ctx.getAttribute(aaiRefKey + "vf-module-id"));
+
+
+ return vnfcParams;
+ }
+
+ public void addVnfc(String vnfcName, Map<String, String> params, String prefix) throws Exception {
+
+ log.info("Received addVnfc call with vnfcName : " +vnfcName);
+ log.info("Received addVnfc call with params : " + params);
+ String resourceKey = "vnfc.vnfc-name = '" + vnfcName + "'";
+
+ log.info("Received addVnfc call with resourceKey : " + resourceKey);
+
+
+ SvcLogicContext vnfcCtx = new SvcLogicContext();
+ SvcLogicResource.QueryStatus response = aaiClient.save("vnfc", true, false, resourceKey, params, prefix, vnfcCtx) ;
+
+ if (SvcLogicResource.QueryStatus.SUCCESS.equals(response)) {
+ log.info("Added VNFC SUCCESSFULLY " + vnfcName);
+
+ }
+ else if (SvcLogicResource.QueryStatus.FAILURE.equals(response)) {
+ throw new Exception("VNFC Add failed for for vnfc_name " + vnfcName);
+
+ }
+
+
+ }
+
+ public String getGroupNotation(String groupNotationType, String groupNotationValue, String vnfcName,
+ String vserverName, String prefix, SvcLogicContext ctx, String vnfcRefVnfcType) throws Exception {
+
+ String grpNotation = null;
+
+ if ( "fixed-value".equals(groupNotationType)) {
+ grpNotation = groupNotationValue;
+
+ }
+ else if ( "first-vnfc-name".equals(groupNotationType) ) {
+
+ /*If the group-notation-type value = ?first-vnfc-name?,
+ * then populate the group-notation value with the concatenation of
+ * [vnfc name associated with the first vnfc for the vnfc-type (e.g., *******)]
+ * and [the value in group-notation-value (e.g., pair)].
+ * There may be several vnfc-types associated with the VM?s.
+ */
+ /* Vnfc-type should be from refrence data */
+
+ /* vDBE has 2 VNFCs with same VNFC type . The pair name should be same for both . */
+ /* When first VNFC is added details should be added to context so FirstVnfcName doesnt return null second time. */
+ String tmpVnfcName = getFirstVnfcNameForVnfcType(ctx, prefix, vnfcRefVnfcType);
+
+ log.info("RETURNED FIRSTVNFCNAME" + tmpVnfcName);
+ log.info("CURRENTVNFCNAME" + vnfcName);
+ if ( tmpVnfcName == null ) {
+ log.info("CURRENTVNFCNAME" + vnfcName);
+ // No Vnfcs currently exist. Use Current vnfcName
+ grpNotation = vnfcName + groupNotationValue;
+ }
+ else
+ grpNotation = tmpVnfcName + groupNotationValue;
+
+
+ }
+ else if ( "relative-value".equals(groupNotationType) ) {
+
+ /*If the group-notation-type = ?relative-value?, then find the group-notation value
+ * from the prior vnfc (where prior means the vnfc with where the last three digits of the
+ * vm-name is one lower than the current one; note that this vnfc may have been previously configured.)
+ 1. If the group-notation-value = next, then add 1 to the group-notation value from the prior vnfc and use this value
+ 2. If the group-notation-value = same, then use the group-notation-value from the prior vnfc record*/
+
+ // next and same cant be defined for first VM. if next will not generate grpNotation if Prior is not a number
+ String tmpVserverName = null;
+ if ( vserverName != null ) {
+
+ String vmNamePrefix = vserverName.substring(0,vserverName.length()-3);
+
+ String lastThreeChars = vserverName.substring(vserverName.length() - 3);
+
+ if ( NumberUtils.isDigits(lastThreeChars)) {
+ int vmNum = Integer.parseInt(lastThreeChars) - 1;
+ String formatted = String.format("%03d", vmNum);
+
+ log.info("FORMATTED " + formatted);
+
+ tmpVserverName = vmNamePrefix + formatted;
+
+
+ String priorGroupNotation = getGroupNotationForVServer(ctx, prefix, tmpVserverName);
+
+ if ( "same".equals(groupNotationValue))
+ grpNotation = priorGroupNotation;
+ else if ( "next".equals(groupNotationValue)) {
+ if ( priorGroupNotation != null && NumberUtils.isDigits(priorGroupNotation)) {
+ int nextGrpNotation = Integer.parseInt(priorGroupNotation) + 1;
+ grpNotation = String.valueOf(nextGrpNotation);
+ }
+ }
+ }
+
+ }
+
+
+
+ }
+
+
+ log.info("RETURNED GROUPNOTATION " + grpNotation);
+ return grpNotation;
+ }
+
+ public String getGroupNotationForVServer(SvcLogicContext ctx, String prefix, String vserverName) throws Exception {
+
+
+ String vmCountStr = ctx.getAttribute(prefix+"vnf.vm-count");
+
+ if ( vmCountStr == null )
+ return null;
+
+ int vmCount = Integer.valueOf(vmCountStr);
+ for ( int i = 0; i < vmCount ; i++ ) {
+
+ String tmpVserver = ctx.getAttribute(prefix+ "vm[" + i + "].vserver-name");
+
+ if (vserverName.equals(tmpVserver))
+ return ctx.getAttribute(prefix+ "vm[" + i + "].group-notation");
+
+ } // vmCount
+
+ return null;
+
+ }
+
+
+
+
+ public String getFirstVnfcNameForVnfcType(SvcLogicContext ctx, String prefix, String vnfcRefVnfcType) throws Exception {
+
+
+
+ /*if(StringUtils.isBlank(vnfcRefVnfcType)){
+ throw new Exception("Vnfc Reference : VNFC Type is missing");
+ }*/
+
+
+ String vmCountStr = ctx.getAttribute(prefix+"vnf.vm-count");
+
+ if ( vmCountStr == null )
+ return null;
+
+ int vmCount = Integer.valueOf(vmCountStr);
+ for ( int i = 0; i < vmCount ; i++ ) {
+
+ String tmpvnfcType = ctx.getAttribute(prefix+ "vm[" + i + "].vnfc-type");
+
+ if (vnfcRefVnfcType.equals(tmpvnfcType))
+ return ctx.getAttribute(prefix+ "vm[" + i + "].vnfc-name");
+
+ } // vmCount
+
+
+
+ return null;
+
+ }
+
+ public void updateVServerStatus(Map<String, String> params,SvcLogicContext ctx, int vmCount) throws Exception {
+ log.info("Received updateVServerStatus call with params : " + params);
+
+ String prefix = params.get(AppcAaiClientConstant.INPUT_PARAM_RESPONSE_PREFIX);
+
+ prefix = StringUtils.isNotBlank(prefix) ? (prefix+".") : "";
+
+
+ Map<String, String> vServerParams = new HashMap<String, String>();
+
+
+ // TODO - Should this just update prov-status or both? What about generic-vnf status? Will that be updated by Dispatcher?
+
+ vServerParams.put("prov-status", "NVTPROV");
+ //vServerParams.put("orchestration-status", "CONFIGURED");
+
+
+ for ( int i = 0; i < vmCount ; i++ ) {
+ String aaiRefKey = prefix + "vm[" + i + "].";
+
+ log.info("VNFCNAME IN UpdateVServer " + ctx.getAttribute(aaiRefKey + "vnfc-name"));
+
+ if ( ctx.getAttribute(aaiRefKey + "vnfc-name") != null )
+ continue;
+
+
+
+ String resourceKey = "vserver.vserver-id = '" + ctx.getAttribute(aaiRefKey + "vserver-id") + "'" +
+ " AND tenant.tenant-id = '" + ctx.getAttribute(aaiRefKey + "tenant-id") + "'" +
+ " AND cloud-region.cloud-owner = '" + ctx.getAttribute(aaiRefKey + "cloud-owner") + "'" +
+ " AND cloud-region.cloud-region-id = '" + ctx.getAttribute(aaiRefKey + "cloud-region-id") + "'";
+
+
+ updateResource( "vserver", resourceKey, vServerParams);
+
+ }
+
+
+ }
+
+
+
+ public void updateVnfStatus(Map<String, String> params,SvcLogicContext ctx) throws Exception {
+ log.info("Received updateVnfStatus call with params : " + params);
+
+ String prefix = params.get(AppcAaiClientConstant.INPUT_PARAM_RESPONSE_PREFIX);
+
+ prefix = StringUtils.isNotBlank(prefix) ? (prefix+".") : "";
+
+
+ Map<String, String> vnfParams = new HashMap<String, String>();
+
+
+ // TODO - Should this just update prov-status or both? What about generic-vnf status? Will that be updated by Dispatcher?
+
+ vnfParams.put("prov-status", "NVTPROV");
+ //vnfParams.put("orchestration-status", "CONFIGURED");
+
+
+ String resourceKey = "generic-vnf.vnf-id = '" + ctx.getAttribute("vnf-id") + "'";
+
+ updateResource( "generic-vnf" , resourceKey, vnfParams);
+
+
+
+
+ }
+
+ public void updateResource( String resource, String resourceKey, Map<String, String> params) throws Exception {
+
+ log.info("Received updateResource call with Key : " +resourceKey);
+
+
+ SvcLogicContext ctx = new SvcLogicContext();
+
+
+ SvcLogicResource.QueryStatus response = aaiClient.update(resource, resourceKey , params, "tmp.update", ctx);
+
+
+
+ if (SvcLogicResource.QueryStatus.SUCCESS.equals(response)) {
+ log.info("Updated " + resource + " SUCCESSFULLY for " + resourceKey);
+
+ }
+ else if (SvcLogicResource.QueryStatus.FAILURE.equals(response)) {
+ throw new Exception(resource + " Update failed for " + resourceKey);
+
+ }
+ }
+
+ public SvcLogicContext readResource(String query, String prefix, String resourceType) throws Exception {
SvcLogicContext resourceContext = new SvcLogicContext();
-
+
SvcLogicResource.QueryStatus response = aaiClient.query(resourceType,false,null,query,prefix,null,resourceContext);
log.info("AAIResponse: " + response.toString());
if(!SvcLogicResource.QueryStatus.SUCCESS.equals(response)){
throw new Exception("Error Retrieving " + resourceType + " from A&AI");
}
-
+
return resourceContext;
-
-
-
+
+
+
}
-
- //Added 1710 & Backward Compatibility
- public void checkAndUpdateVnfc(Map<String, String> params,SvcLogicContext ctx, int vnfcRefLen, int vmCount) throws Exception {
- log.info("Received checkAndUpdateVnfcStatus call with params : " + params);
+ //Added 1710 & Backward Compatibility
+
+ public void checkAndUpdateVnfc(Map<String, String> params,SvcLogicContext ctx, int vnfcRefLen, int vmCount) throws Exception {
+ log.info("Received checkAndUpdateVnfcStatus call with params : " + params);
+
+ String prefix = params.get(AppcAaiClientConstant.INPUT_PARAM_RESPONSE_PREFIX);
+
+ prefix = StringUtils.isNotBlank(prefix) ? (prefix+".") : "";
+
+ for ( int i = 0; i < vmCount ; i++ ) {
+ String aaiRefKey = prefix + "vm[" + i + "].";
+
+ log.info("VNFCNAME IN INSERTVNFCS "+ aaiRefKey+"vnfc-name:" + ctx.getAttribute(aaiRefKey + "vnfc-name"));
+
+ String numVnfcsStr = ctx.getAttribute(aaiRefKey + "vnfc-count");
+ String vnfcNameAai = ctx.getAttribute(aaiRefKey + "vnfc-name");
- String prefix = params.get(AppcAaiClientConstant.INPUT_PARAM_RESPONSE_PREFIX);
+ if (StringUtils.isNotBlank(vnfcNameAai)) {
+ // Get Vnfc_reference data
+ for(int vnfcRefIndx=0;vnfcRefIndx < vnfcRefLen;vnfcRefIndx++ ) {
- prefix = StringUtils.isNotBlank(prefix) ? (prefix+".") : "";
+ String vnfcRefKey = "vnfcReference[" + vnfcRefIndx + "].";
- for ( int i = 0; i < vmCount ; i++ ) {
- String aaiRefKey = prefix + "vm[" + i + "].";
-
- log.info("VNFCNAME IN INSERTVNFCS "+ aaiRefKey+"vnfc-name:" + ctx.getAttribute(aaiRefKey + "vnfc-name"));
-
- String numVnfcsStr = ctx.getAttribute(aaiRefKey + "vnfc-count");
- String vnfcNameAai = ctx.getAttribute(aaiRefKey + "vnfc-name");
+ log.info("VNFCREFKEY " + vnfcRefKey);
+ log.info("AAIREFKEY " + aaiRefKey);
- if (StringUtils.isNotBlank(vnfcNameAai)) {
- // Get Vnfc_reference data
- for(int vnfcRefIndx=0;vnfcRefIndx < vnfcRefLen;vnfcRefIndx++ ) {
+ String vnfcFuncCode = ctx.getAttribute(vnfcRefKey+ "VNFC-FUNCTION-CODE");
+ String vserverName = ctx.getAttribute(aaiRefKey + "vserver-name");
+ String vnfcNameReference = vserverName + vnfcFuncCode + "001";
- String vnfcRefKey = "vnfcReference[" + vnfcRefIndx + "].";
+ if(vnfcNameAai.equals(vnfcNameReference)) {
- log.info("VNFCREFKEY " + vnfcRefKey);
- log.info("AAIREFKEY " + aaiRefKey);
+ updateVnfcStatus( vnfcNameAai, params, prefix);
+ }
- String vnfcFuncCode = ctx.getAttribute(vnfcRefKey+ "VNFC-FUNCTION-CODE");
- String vserverName = ctx.getAttribute(aaiRefKey + "vserver-name");
- String vnfcNameReference = vserverName + vnfcFuncCode + "001";
- if(vnfcNameAai.equals(vnfcNameReference)) {
+ }
+ }
+
- updateVnfcStatus( vnfcNameAai, params, prefix);
- }
-
- }
- }
+ }
+ }
- }
+ public void updateVnfcStatus(String vnfcName, Map<String, String> params, String prefix) throws Exception {
+ log.info("Received updateVnfcStatus call with vnfcName : " +vnfcName);
+ log.info("Received updateVnfcStatus call with params : " + params);
- }
+ String resourceKey = "vnfc.vnfc-name = '" + vnfcName + "'";
+ log.info("Received updateVnfcStatus call with resourceKey : " + resourceKey);
- public void updateVnfcStatus(String vnfcName, Map<String, String> params, String prefix) throws Exception {
- log.info("Received updateVnfcStatus call with vnfcName : " +vnfcName);
- log.info("Received updateVnfcStatus call with params : " + params);
+ Map<String, String> vnfcParams = new HashMap<String, String>();
+ vnfcParams.put("prov-status", "NVTPROV");
+ vnfcParams.put("orchestration-status", "CONFIGURED");
- String resourceKey = "vnfc.vnfc-name = '" + vnfcName + "'";
- log.info("Received updateVnfcStatus call with resourceKey : " + resourceKey);
+ log.info("In updateVnfcStatus call with vnfcParams : " + vnfcParams);
+ updateResource( "vnfc" , resourceKey, vnfcParams);
- Map<String, String> vnfcParams = new HashMap<String, String>();
- vnfcParams.put("prov-status", "NVTPROV");
- vnfcParams.put("orchestration-status", "CONFIGURED");
+ log.info("End of updateVnfcStatus");
- log.info("In updateVnfcStatus call with vnfcParams : " + vnfcParams);
- updateResource( "vnfc" , resourceKey, vnfcParams);
+ }
+public void updateVnfStatusWithOAMAddress(Map<String, String> params, SvcLogicContext ctx) throws Exception {
+ log.info("Received updateVnfStatusWithOAMAddress call with params : " + params);
- log.info("End of updateVnfcStatus");
+ String prefix = params.get(AppcAaiClientConstant.INPUT_PARAM_RESPONSE_PREFIX);
+ String ipAddress = ctx.getAttribute("vnf-host-ip-address");
+ log.debug("Vnf-host-ip-address" + ipAddress);
+ prefix = StringUtils.isNotBlank(prefix) ? (prefix+".") : "";
- }
+ Map<String, String> vnfParams = new HashMap<String, String>();
+ vnfParams.put("ipv4-oam-address", ipAddress);
+ String resourceKey = "generic-vnf.vnf-id = '" + ctx.getAttribute("vnf-id") + "'";
- //Added for 1710
-
-
+ updateResource( "generic-vnf" , resourceKey, vnfParams);
+
+
+ }
}
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 250508358..b3a20b049 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
@@ -51,464 +51,544 @@ import org.onap.ccsdk.sli.core.sli.SvcLogicJavaPlugin;
public class AAIResourceNode implements SvcLogicJavaPlugin {
- private static final EELFLogger log = EELFManager.getInstance().getLogger(AAIResourceNode.class);
-
-
- public AaiService getAaiService() {
- return new AaiService();
- }
- /* Gets VNF Info and All VServers associated with Vnf */
- public void getVnfInfo(Map<String, String> inParams, SvcLogicContext ctx) throws SvcLogicException {
-
- log.info("Received getVnfInfo call with params : " + inParams);
-
- String responsePrefix = inParams.get(AppcAaiClientConstant.INPUT_PARAM_RESPONSE_PREFIX);
-
- try {
-
-
- responsePrefix = StringUtils.isNotBlank(responsePrefix) ? (responsePrefix+".") : "";
- AaiService aai = getAaiService();
-
-
-
- aai.getGenericVnfInfo(inParams,ctx);
-
-
-
-
- ctx.setAttribute(responsePrefix + AppcAaiClientConstant.OUTPUT_PARAM_STATUS,
- AppcAaiClientConstant.OUTPUT_STATUS_SUCCESS);
- log.info("getVnfInfo Successful ");
- } 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 getVnfInfo " + e.getMessage());
-
- throw new SvcLogicException(e.getMessage());
- }
- }
-
-
-
- public void getAllVServersVnfcsInfo(Map<String, String> inParams, SvcLogicContext ctx) throws SvcLogicException {
-
- log.info("Received getAllVServersVnfcsInfo call with params : " + inParams);
-
- String responsePrefix = inParams.get(AppcAaiClientConstant.INPUT_PARAM_RESPONSE_PREFIX);
-
- try {
- responsePrefix = StringUtils.isNotBlank(responsePrefix) ? (responsePrefix+".") : "";
- AaiService aai = getAaiService();
-
-
-
- ArrayList<Map<String, String>> vservers = new ArrayList<Map<String, String>>();
-
- int vmWithNoVnfcsCount = 0;
- String vmCountStr = ctx.getAttribute(responsePrefix + "vm-count");
-
- if ( vmCountStr == null )
- throw new Exception("Unable to get VServers for the VNF");
-
- int vmCount = Integer.parseInt(vmCountStr);
- for ( int i = 0; i < vmCount; i++ ) {
-
- SvcLogicContext vmServerCtx = new SvcLogicContext();
-
- Map<String, String> paramsVm = new HashMap<String, String>();
- paramsVm.put("vserverId", ctx.getAttribute(responsePrefix + "vm[" + i + "].vserver-id"));
- paramsVm.put("tenantId", ctx.getAttribute(responsePrefix +"vm[" + i + "].tenant-id"));
- paramsVm.put("cloudOwner", ctx.getAttribute(responsePrefix +"vm[" + i + "].cloud-owner"));
- paramsVm.put("cloudRegionId", ctx.getAttribute(responsePrefix +"vm[" + i + "].cloud-region-id"));
- paramsVm.put(AppcAaiClientConstant.INPUT_PARAM_RESPONSE_PREFIX, inParams.get(AppcAaiClientConstant.INPUT_PARAM_RESPONSE_PREFIX));
-
-
-
- aai.getVMInfo(paramsVm, vmServerCtx);
-
- HashMap<String, String> vserverMap = new HashMap<String, String>();
- vserverMap.put("vserver-id", ctx.getAttribute(responsePrefix + "vm[" + i + "].vserver-id"));
- vserverMap.put("tenant-id", ctx.getAttribute(responsePrefix +"vm[" + i + "].tenant-id"));
- vserverMap.put("cloud-owner", ctx.getAttribute(responsePrefix +"vm[" + i + "].cloud-owner"));
- vserverMap.put("cloud-region-id", ctx.getAttribute(responsePrefix +"vm[" + i + "].cloud-region-id"));
-
- // Parameters returned by getVMInfo
- vserverMap.put("vserver-name", vmServerCtx.getAttribute(responsePrefix + "vm.vserver-name"));
- vserverMap.put("vf-module-id", vmServerCtx.getAttribute(responsePrefix + "vm.vf-module-id"));
-
-
- // as Per 17.07 requirements we are supporting only one VNFC per VM.
-
- String vnfcName = vmServerCtx.getAttribute(responsePrefix + "vm.vnfc[0].vnfc-name");
- vserverMap.put("vnfc-name", vnfcName);
-
-
- String vnfcCount = vmServerCtx.getAttribute(responsePrefix + "vm.vnfc-count");
- if ( vnfcCount == null )
- vnfcCount = "0";
-
- vserverMap.put("vnfc-count", vnfcCount);
-
- if ( vnfcName != null ) {
- Map<String, String> paramsVnfc = new HashMap<String, String>();
+ private static final EELFLogger log = EELFManager.getInstance().getLogger(AAIResourceNode.class);
+
+
+ public AaiService getAaiService() {
+ return new AaiService();
+ }
+ /* Gets VNF Info and All VServers associated with Vnf */
+ public void getVnfInfo(Map<String, String> inParams, SvcLogicContext ctx) throws SvcLogicException {
+
+ log.info("Received getVnfInfo call with params : " + inParams);
+
+ String responsePrefix = inParams.get(AppcAaiClientConstant.INPUT_PARAM_RESPONSE_PREFIX);
+
+ try {
+
+ responsePrefix = StringUtils.isNotBlank(responsePrefix) ? (responsePrefix+".") : "";
+ AaiService aai = getAaiService();
+ aai.getGenericVnfInfo(inParams,ctx);
+
+ ctx.setAttribute(responsePrefix + AppcAaiClientConstant.OUTPUT_PARAM_STATUS,
+ AppcAaiClientConstant.OUTPUT_STATUS_SUCCESS);
+ log.info("getVnfInfo Successful ");
+ } 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 getVnfInfo " + e.getMessage());
+
+ throw new SvcLogicException(e.getMessage());
+ }
+ }
+
+
+ public void getAllVServersVnfcsInfo(Map<String, String> inParams, SvcLogicContext ctx) throws SvcLogicException {
+
+ log.info("Received getAllVServersVnfcsInfo call with params : " + inParams);
+
+ String responsePrefix = inParams.get(AppcAaiClientConstant.INPUT_PARAM_RESPONSE_PREFIX);
+
+ try {
+ responsePrefix = StringUtils.isNotBlank(responsePrefix) ? (responsePrefix+".") : "";
+ AaiService aai = getAaiService();
+
+
+
+ ArrayList<Map<String, String>> vservers = new ArrayList<Map<String, String>>();
+
+ int vmWithNoVnfcsCount = 0;
+ String vmCountStr = ctx.getAttribute(responsePrefix + "vm-count");
+
+ if ( vmCountStr == null )
+ throw new Exception("Unable to get VServers for the VNF");
+
+ int vmCount = Integer.parseInt(vmCountStr);
+ for ( int i = 0; i < vmCount; i++ ) {
+
+ SvcLogicContext vmServerCtx = new SvcLogicContext();
+
+ Map<String, String> paramsVm = new HashMap<String, String>();
+ paramsVm.put("vserverId", ctx.getAttribute(responsePrefix + "vm[" + i + "].vserver-id"));
+ paramsVm.put("tenantId", ctx.getAttribute(responsePrefix +"vm[" + i + "].tenant-id"));
+ paramsVm.put("cloudOwner", ctx.getAttribute(responsePrefix +"vm[" + i + "].cloud-owner"));
+ paramsVm.put("cloudRegionId", ctx.getAttribute(responsePrefix +"vm[" + i + "].cloud-region-id"));
+ paramsVm.put(AppcAaiClientConstant.INPUT_PARAM_RESPONSE_PREFIX, inParams.get(AppcAaiClientConstant.INPUT_PARAM_RESPONSE_PREFIX));
+
+
+
+ aai.getVMInfo(paramsVm, vmServerCtx);
+
+ HashMap<String, String> vserverMap = new HashMap<String, String>();
+ vserverMap.put("vserver-id", ctx.getAttribute(responsePrefix + "vm[" + i + "].vserver-id"));
+ vserverMap.put("tenant-id", ctx.getAttribute(responsePrefix +"vm[" + i + "].tenant-id"));
+ vserverMap.put("cloud-owner", ctx.getAttribute(responsePrefix +"vm[" + i + "].cloud-owner"));
+ vserverMap.put("cloud-region-id", ctx.getAttribute(responsePrefix +"vm[" + i + "].cloud-region-id"));
+
+ // Parameters returned by getVMInfo
+ vserverMap.put("vserver-name", vmServerCtx.getAttribute(responsePrefix + "vm.vserver-name"));
+ vserverMap.put("vf-module-id", vmServerCtx.getAttribute(responsePrefix + "vm.vf-module-id"));
+
+
+ // as Per 17.07 requirements we are supporting only one VNFC per VM.
+
+ String vnfcName = vmServerCtx.getAttribute(responsePrefix + "vm.vnfc[0].vnfc-name");
+ vserverMap.put("vnfc-name", vnfcName);
+
+
+ String vnfcCount = vmServerCtx.getAttribute(responsePrefix + "vm.vnfc-count");
+ if ( vnfcCount == null )
+ vnfcCount = "0";
+
+ vserverMap.put("vnfc-count", vnfcCount);
+
+ if ( vnfcName != null ) {
+ Map<String, String> paramsVnfc = new HashMap<String, String>();
paramsVnfc.put("vnfcName", vnfcName);
-
- paramsVnfc.put(AppcAaiClientConstant.INPUT_PARAM_RESPONSE_PREFIX, inParams.get(AppcAaiClientConstant.INPUT_PARAM_RESPONSE_PREFIX));
-
- SvcLogicContext vnfcCtx = new SvcLogicContext();
-
- aai.getVnfcInfo(paramsVnfc, vnfcCtx);
-
- vserverMap.put("vnfc-type", vnfcCtx.getAttribute(responsePrefix + "vnfc.vnfc-type"));
- vserverMap.put("vnfc-function-code", vnfcCtx.getAttribute(responsePrefix + "vnfc.vnfc-function-code"));
- vserverMap.put("group-notation", vnfcCtx.getAttribute(responsePrefix + "vnfc.group-notation"));
-
-
- }
- else
- vmWithNoVnfcsCount++;
-
-
-
- vservers.add(vserverMap);
-
- } // vmCount
-
-
-
-
- Collections.sort(vservers, new Comparator<Map<String, String>>() {
- @Override
- public int compare(Map<String, String> o1, Map<String, String> o2) {
- return o1.get("vserver-name").compareTo(o2.get("vserver-name"));
- }
- });
-
- log.info("SORTED VSERVERS " + vservers.toString());
-
- populateContext(vservers, ctx, responsePrefix);
-
- log.info("VMCOUNT IN GETALLVSERVERS " + vmCount);
- log.info("VMSWITHNOVNFCSCOUNT IN GETALLVSERVERS " + vmWithNoVnfcsCount);
- ctx.setAttribute(responsePrefix+"vnf.vm-count", String.valueOf(vmCount));
- ctx.setAttribute(responsePrefix+"vnf.vm-with-no-vnfcs-count", String.valueOf(vmWithNoVnfcsCount));
-
-
- } 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 getAllVServersVnfcsInfo " + e.getMessage());
-
- throw new SvcLogicException(e.getMessage());
- }
- }
-
-
-
-
- public void populateContext(ArrayList<Map<String, String>> vservers, SvcLogicContext ctx, String prefix) {
-
-
- log.info("Populating Final Context");
- int ctr = 0;
-
- for (Map<String, String> entry : vservers) {
- for (String key : entry.keySet()) {
- String value = entry.get(key);
-
- ctx.setAttribute(prefix+ "vm[" + ctr + "]."+ key, value);
- log.info("Populating Context Key = " + prefix+ "vm[" + ctr + "]."+ key + " Value = " + value);
-
- }
-
-
- ctr++;
- }
-
- String firstVServerName = null;
- for ( int i =0; i < ctr; i++ ) {
- String vnfcName = ctx.getAttribute(prefix + "vm[" + i + "].vnfc-name");
- log.info("VNFCNAME " + i + vnfcName);
- if ( vnfcName == null && firstVServerName == null ) {
- firstVServerName = ctx.getAttribute(prefix + "vm[" + i + "].vserver-name");
- ctx.setAttribute("vm-name" , firstVServerName);
- log.info("Populating Context Key = " + "vm-name" + " Value = " + firstVServerName);
- }
- }
- }
-
-
-
- public void addVnfcs(Map<String, String> inParams, SvcLogicContext ctx) throws SvcLogicException {
-
- log.info("Received addVnfcs call with params : " + inParams);
-
- String responsePrefix = inParams.get(AppcAaiClientConstant.INPUT_PARAM_RESPONSE_PREFIX);
-
- int vnfcRefLen =0 ;
- int vmCount = 0;
- int vmWithNoVnfcCount = 0;
-
- try {
-
- responsePrefix = StringUtils.isNotBlank(responsePrefix) ? (responsePrefix+".") : "";
- AaiService aai = getAaiService();
-
-
-
- String vnfcRefLenStr = ctx.getAttribute("vnfcReference_length");
-
- if ( vnfcRefLenStr == null) {
- log.info("Vnfc Reference data is missing");
- throw new Exception("Vnfc Reference data is missing");
-
- }
- else
- vnfcRefLen = Integer.parseInt(vnfcRefLenStr);
-
- String vmWithNoVnfcCountStr = ctx.getAttribute(responsePrefix+"vnf.vm-with-no-vnfcs-count");
-
+
+ paramsVnfc.put(AppcAaiClientConstant.INPUT_PARAM_RESPONSE_PREFIX, inParams.get(AppcAaiClientConstant.INPUT_PARAM_RESPONSE_PREFIX));
+
+ SvcLogicContext vnfcCtx = new SvcLogicContext();
+
+ aai.getVnfcInfo(paramsVnfc, vnfcCtx);
+
+ vserverMap.put("vnfc-type", vnfcCtx.getAttribute(responsePrefix + "vnfc.vnfc-type"));
+ vserverMap.put("vnfc-function-code", vnfcCtx.getAttribute(responsePrefix + "vnfc.vnfc-function-code"));
+ vserverMap.put("group-notation", vnfcCtx.getAttribute(responsePrefix + "vnfc.group-notation"));
+ vserverMap.put("vnfc-ipaddress-v4-oam-vip", vnfcCtx.getAttribute(responsePrefix + "vnfc.ipaddress-v4-oam-vip"));
+
+ }
+ else
+ vmWithNoVnfcsCount++;
+ vservers.add(vserverMap);
+
+ } // vmCount
+
+ Collections.sort(vservers, new Comparator<Map<String, String>>() {
+ @Override
+ public int compare(Map<String, String> o1, Map<String, String> o2) {
+ return o1.get("vserver-name").compareTo(o2.get("vserver-name"));
+ }
+ });
+
+ log.info("SORTED VSERVERS " + vservers.toString());
+
+ populateContext(vservers, ctx, responsePrefix);
+
+ log.info("VMCOUNT IN GETALLVSERVERS " + vmCount);
+ log.info("VMSWITHNOVNFCSCOUNT IN GETALLVSERVERS " + vmWithNoVnfcsCount);
+ ctx.setAttribute(responsePrefix+"vnf.vm-count", String.valueOf(vmCount));
+ ctx.setAttribute(responsePrefix+"vnf.vm-with-no-vnfcs-count", String.valueOf(vmWithNoVnfcsCount));
+
+
+ } 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 getAllVServersVnfcsInfo " + e.getMessage());
+
+ throw new SvcLogicException(e.getMessage());
+ }
+ }
+
+ public void populateContext(ArrayList<Map<String, String>> vservers, SvcLogicContext ctx, String prefix) {
+
+
+ log.info("Populating Final Context");
+ int ctr = 0;
+
+ for (Map<String, String> entry : vservers) {
+ for (String key : entry.keySet()) {
+ String value = entry.get(key);
+
+ ctx.setAttribute(prefix+ "vm[" + ctr + "]."+ key, value);
+ log.info("Populating Context Key = " + prefix+ "vm[" + ctr + "]."+ key + " Value = " + value);
+
+ }
+ ctr++;
+ }
+
+ String firstVServerName = null;
+ for ( int i =0; i < ctr; i++ ) {
+ String vnfcName = ctx.getAttribute(prefix + "vm[" + i + "].vnfc-name");
+ log.info("VNFCNAME " + i + vnfcName);
+ if ( vnfcName == null && firstVServerName == null ) {
+ firstVServerName = ctx.getAttribute(prefix + "vm[" + i + "].vserver-name");
+ ctx.setAttribute("vm-name" , firstVServerName);
+ log.info("Populating Context Key = " + "vm-name" + " Value = " + firstVServerName);
+ }
+ }
+ }
+
+
+
+ public void addVnfcs(Map<String, String> inParams, SvcLogicContext ctx) throws SvcLogicException {
+
+ log.info("Received addVnfcs call with params : " + inParams);
+
+ String responsePrefix = inParams.get(AppcAaiClientConstant.INPUT_PARAM_RESPONSE_PREFIX);
+
+ int vnfcRefLen =0 ;
+ int vmCount = 0;
+ int vmWithNoVnfcCount = 0;
+
+ try {
+
+ responsePrefix = StringUtils.isNotBlank(responsePrefix) ? (responsePrefix+".") : "";
+ AaiService aai = getAaiService();
+
+ String vnfcRefLenStr = ctx.getAttribute("vnfcReference_length");
+
+ if ( vnfcRefLenStr == null) {
+ log.info("Vnfc Reference data is missing");
+ throw new Exception("Vnfc Reference data is missing");
+
+ }
+ else
+ vnfcRefLen = Integer.parseInt(vnfcRefLenStr);
+
+ String vmWithNoVnfcCountStr = ctx.getAttribute(responsePrefix+"vnf.vm-with-no-vnfcs-count");
+
//Commented for backward compatibility
-
- /*if ( vmWithNoVnfcCountStr == null) {
- throw new Exception("VNFCs to be added data from A&AI is missing");
- //log.info("VNFCs to be added data from A&AI is missing");
- }
- else
- vmWithNoVnfcCount = Integer.parseInt(vmWithNoVnfcCountStr);
-
- if ( vmWithNoVnfcCount!= vnfcRefLen )
- throw new Exception("Unable to Add Vnfcs to A&AI. Reference data mismatch.");
-
- String vmCountStr = ctx.getAttribute(responsePrefix+"vnf.vm-count");
-
- if ( vmCountStr == null)
- throw new Exception("VM data from A&AI is missing");
- else
- vmCount = Integer.parseInt(vmCountStr);
-
-
- log.info("VMCOUNT " + vmCount);
- log.info("VNFCREFLEN " + vnfcRefLen);
- aai.insertVnfcs(inParams,ctx, vnfcRefLen, vmCount);
-
- */
-
-
- // Modified for 1710
-
- if ( vmWithNoVnfcCountStr == null) {
- log.info("Parameter VM without VNFCs(vmWithNoVnfcCountStr) from A&AI is Null");
- }
- else
- vmWithNoVnfcCount = Integer.parseInt(vmWithNoVnfcCountStr);
-
- log.info("No of VM without VNFCs(vmWithNoVnfcCount) from A&AI is " +vmWithNoVnfcCount);
-
- String vmCountStr = ctx.getAttribute(responsePrefix+"vnf.vm-count");
-
- if ( vmCountStr == null)
- throw new Exception("VM data from A&AI is missing");
- else
- vmCount = Integer.parseInt(vmCountStr);
-
- log.info("VMCOUNT " + vmCount);
- log.info("VNFCREFLEN " + vnfcRefLen);
-
- if ( vmWithNoVnfcCount!= vnfcRefLen ) {
- //throw new Exception("Unable to Add Vnfcs to A&AI. Reference data mismatch.");
- log.info("vmWithNoVnfcCount and vnfcRefLen data from table are not same ");
- aai.checkAndUpdateVnfc(inParams,ctx, vnfcRefLen, vmCount);
- }
-
- else {
-
- aai.insertVnfcs(inParams,ctx, vnfcRefLen, vmCount);
- }
-
- //// Modified 1710
-
- ctx.setAttribute(responsePrefix + AppcAaiClientConstant.OUTPUT_PARAM_STATUS,
- AppcAaiClientConstant.OUTPUT_STATUS_SUCCESS);
-
- log.info("addVnfcs Successful ");
- } 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 addVnfcs " + e.getMessage());
-
- throw new SvcLogicException(e.getMessage());
- }
- }
-
-
- public void updateVnfAndVServerStatus(Map<String, String> inParams, SvcLogicContext ctx) throws SvcLogicException {
-
- log.info("Received updateVnfAndVServerStatus call with params : " + inParams);
-
- String responsePrefix = inParams.get(AppcAaiClientConstant.INPUT_PARAM_RESPONSE_PREFIX);
-
-
- int vmCount = 0;
-
-
- try {
-
- responsePrefix = StringUtils.isNotBlank(responsePrefix) ? (responsePrefix+".") : "";
- AaiService aai = getAaiService();
-
-
-
- String vmCountStr = ctx.getAttribute(responsePrefix+"vnf.vm-count");
-
- if ( vmCountStr == null)
- throw new Exception("VM data from A&AI is missing");
- else
- vmCount = Integer.parseInt(vmCountStr);
-
-
- log.info("VMCOUNT " + vmCount);
-
-
- aai.updateVnfStatus(inParams, ctx);
- aai.updateVServerStatus(inParams,ctx, vmCount);
-
- ctx.setAttribute(responsePrefix + AppcAaiClientConstant.OUTPUT_PARAM_STATUS,
- AppcAaiClientConstant.OUTPUT_STATUS_SUCCESS);
-
- log.info("updateVnfAndVServerStatus Successful ");
- } 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 updateVnfAndVServerStatus " + e.getMessage());
-
- throw new SvcLogicException(e.getMessage());
- }
- }
-
- /*public void getDummyValues(Map<String, String> inParams, SvcLogicContext ctx) throws SvcLogicException {
-
- log.info("Received getDummyValues call with params : " + inParams);
-
- String responsePrefix = inParams.get(AppcAaiClientConstant.INPUT_PARAM_RESPONSE_PREFIX);
-
- try {
-
- responsePrefix = StringUtils.isNotBlank(responsePrefix) ? (responsePrefix+".") : "";
- String instarKeys = inParams.get("instarKeys");
- ObjectMapper mapper = new ObjectMapper();
- if ( instarKeys != null ) {
-
- List<String> keyList = mapper.readValue(instarKeys, ArrayList.class);
-
- Map<String, String> instarParams =new HashMap<String, String>();
- if(keyList != null){
- //System.out.println(keyList.toString());
-
-
- for(int i=0;i<keyList.size();i++)
- {
- log.info(" -->"+keyList.get(i));
-
- //ctx.setAttribute(keyList.get(i), "test" + i);
-
- instarParams.put( keyList.get(i), "test" + i);
- }
-
- }
- log.info("INSTARPARAMMAP " + instarParams);
- String jsonString = mapper.writeValueAsString(instarParams);
- log.info(jsonString);
- ctx.setAttribute(responsePrefix + "configuration-parameters", jsonString);
-
- }
-
- log.info("getDummyValues Successful ");
- } 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 getDummyValues " + e.getMessage());
-
- throw new SvcLogicException(e.getMessage());
- }
-
- }
-
- */
- /*public void getRequestKeys(Map<String, String> inParams, SvcLogicContext ctx) throws SvcLogicException {
-
- log.info("Received getRequestKeys call with params : " + inParams);
-
- String responsePrefix = inParams.get(AppcAaiClientConstant.INPUT_PARAM_RESPONSE_PREFIX);
-
- try {
-
- responsePrefix = StringUtils.isNotBlank(responsePrefix) ? (responsePrefix+".") : "";
- String instarKeys = inParams.get("instarKeys");
-
- ObjectMapper mapper = new ObjectMapper();
- if ( instarKeys != null ) {
-
- List<String> keyList = mapper.readValue(instarKeys, ArrayList.class);
-
- //Map<String, String> instarParams =new HashMap<String, String>();
- if(keyList != null){
-
-
- for(int i=0;i<keyList.size();i++)
- {
- log.info("INSTARKEY -->"+keyList.get(i));
-
-
- String instarParameter = ctx.getAttribute("INSTAR." + keyList.get(i));
- log.info("INSTARPARAMETER " + instarParameter);
- Parameter param = parseParameterContent(instarParameter);
-
- log.info("PARAMETER KEY SIZE " + param.getRequestKeys().size());
- log.info("RULE TYPE " + param.getClassType());
-
- for ( int j =0 ; j < param.getRequestKeys().size() ; j++ ) {
-
- log.info(" PARAM KEY NAME " + param.getRequestKeys().get(j).getKeyName());
- log.info(" PARAM KEY VALUE " + param.getRequestKeys().get(j).getKeyValue());
- }
-
- // instarParams.put( keyList.get(i), "test" + i);
- }
-
- }
- //log.info("INSTARPARAMMAP " + instarParams);
- //String jsonString = mapper.writeValueAsString(instarParams);
- //log.info(jsonString);
- //ctx.setAttribute(responsePrefix + "configuration-parameters", jsonString);
-
- }
-
- log.info("getRequestKeys Successful ");
- } 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 getRequestKeys " + e.getMessage());
-
- throw new SvcLogicException(e.getMessage());
- }
-
- }
-
-
- public Parameter parseParameterContent(String parameter) throws JsonParseException, JsonMappingException, IOException{
- Parameter parameterDefinition = null;
- if(StringUtils.isNotBlank(parameter)){
- ObjectMapper mapper = new ObjectMapper();
- parameterDefinition = mapper.readValue(parameter, Parameter.class);
- }
- return parameterDefinition;
- }*/
+
+ /*if ( vmWithNoVnfcCountStr == null) {
+ throw new Exception("VNFCs to be added data from A&AI is missing");
+ //log.info("VNFCs to be added data from A&AI is missing");
+ }
+ else
+ vmWithNoVnfcCount = Integer.parseInt(vmWithNoVnfcCountStr);
+
+ if ( vmWithNoVnfcCount!= vnfcRefLen )
+ throw new Exception("Unable to Add Vnfcs to A&AI. Reference data mismatch.");
+
+ String vmCountStr = ctx.getAttribute(responsePrefix+"vnf.vm-count");
+
+ if ( vmCountStr == null)
+ throw new Exception("VM data from A&AI is missing");
+ else
+ vmCount = Integer.parseInt(vmCountStr);
+
+
+ log.info("VMCOUNT " + vmCount);
+ log.info("VNFCREFLEN " + vnfcRefLen);
+ aai.insertVnfcs(inParams,ctx, vnfcRefLen, vmCount);
+
+ */
+
+
+ // Modified for 1710
+
+ if ( vmWithNoVnfcCountStr == null) {
+ log.info("Parameter VM without VNFCs(vmWithNoVnfcCountStr) from A&AI is Null");
+ }
+ else
+ vmWithNoVnfcCount = Integer.parseInt(vmWithNoVnfcCountStr);
+
+ log.info("No of VM without VNFCs(vmWithNoVnfcCount) from A&AI is " +vmWithNoVnfcCount);
+
+ String vmCountStr = ctx.getAttribute(responsePrefix+"vnf.vm-count");
+
+ if ( vmCountStr == null)
+ throw new Exception("VM data from A&AI is missing");
+ else
+ vmCount = Integer.parseInt(vmCountStr);
+ if(vmCount<vnfcRefLen)
+ throw new Exception("Vnfc and VM count mismatch");
+
+
+ log.info("VMCOUNT " + vmCount);
+ log.info("VNFCREFLEN " + vnfcRefLen);
+ if(StringUtils.isBlank(ctx.getAttribute("vnfc-type"))){
+ aai.updateVnfStatusWithOAMAddress(inParams, ctx);
+ }
+
+ if ( vmWithNoVnfcCount!= vnfcRefLen ) {
+ //throw new Exception("Unable to Add Vnfcs to A&AI. Reference data mismatch.");
+ log.info("vmWithNoVnfcCount and vnfcRefLen data from table are not same ");
+ aai.checkAndUpdateVnfc(inParams,ctx, vnfcRefLen, vmCount);
+ }
+
+ else {
+
+ aai.insertVnfcs(inParams,ctx, vnfcRefLen, vmCount);
+ }
+
+ //// Modified 1710
+
+ ctx.setAttribute(responsePrefix + AppcAaiClientConstant.OUTPUT_PARAM_STATUS,
+ AppcAaiClientConstant.OUTPUT_STATUS_SUCCESS);
+
+ log.info("addVnfcs Successful ");
+ } 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 addVnfcs " + e.getMessage());
+
+ throw new SvcLogicException(e.getMessage());
+ }
+ }
+
+
+ public void updateVnfAndVServerStatus(Map<String, String> inParams, SvcLogicContext ctx) throws SvcLogicException {
+
+ log.info("Received updateVnfAndVServerStatus call with params : " + inParams);
+
+ String responsePrefix = inParams.get(AppcAaiClientConstant.INPUT_PARAM_RESPONSE_PREFIX);
+
+
+ int vmCount = 0;
+
+
+ try {
+
+ responsePrefix = StringUtils.isNotBlank(responsePrefix) ? (responsePrefix+".") : "";
+ AaiService aai = getAaiService();
+
+
+
+ String vmCountStr = ctx.getAttribute(responsePrefix+"vnf.vm-count");
+
+ if ( vmCountStr == null)
+ throw new Exception("VM data from A&AI is missing");
+ else
+ vmCount = Integer.parseInt(vmCountStr);
+
+
+ log.info("VMCOUNT " + vmCount);
+
+
+ aai.updateVnfStatus(inParams, ctx);
+ aai.updateVServerStatus(inParams,ctx, vmCount);
+
+ ctx.setAttribute(responsePrefix + AppcAaiClientConstant.OUTPUT_PARAM_STATUS,
+ AppcAaiClientConstant.OUTPUT_STATUS_SUCCESS);
+
+ log.info("updateVnfAndVServerStatus Successful ");
+ } 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 updateVnfAndVServerStatus " + e.getMessage());
+
+ throw new SvcLogicException(e.getMessage());
+ }
+ }
+
+ /*public void getDummyValues(Map<String, String> inParams, SvcLogicContext ctx) throws SvcLogicException {
+
+ log.info("Received getDummyValues call with params : " + inParams);
+
+ String responsePrefix = inParams.get(AppcAaiClientConstant.INPUT_PARAM_RESPONSE_PREFIX);
+
+ try {
+
+ responsePrefix = StringUtils.isNotBlank(responsePrefix) ? (responsePrefix+".") : "";
+ String instarKeys = inParams.get("instarKeys");
+ ObjectMapper mapper = new ObjectMapper();
+ if ( instarKeys != null ) {
+
+ List<String> keyList = mapper.readValue(instarKeys, ArrayList.class);
+
+ Map<String, String> instarParams =new HashMap<String, String>();
+ if(keyList != null){
+ //System.out.println(keyList.toString());
+
+
+ for(int i=0;i<keyList.size();i++)
+ {
+ log.info(" -->"+keyList.get(i));
+
+ //ctx.setAttribute(keyList.get(i), "test" + i);
+
+ instarParams.put( keyList.get(i), "test" + i);
+ }
+
+ }
+ log.info("INSTARPARAMMAP " + instarParams);
+ String jsonString = mapper.writeValueAsString(instarParams);
+ log.info(jsonString);
+ ctx.setAttribute(responsePrefix + "configuration-parameters", jsonString);
+
+ }
+
+ log.info("getDummyValues Successful ");
+ } 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 getDummyValues " + e.getMessage());
+
+ throw new SvcLogicException(e.getMessage());
+ }
+
+ }
+
+ */
+ /*public void getRequestKeys(Map<String, String> inParams, SvcLogicContext ctx) throws SvcLogicException {
+
+ log.info("Received getRequestKeys call with params : " + inParams);
+
+ String responsePrefix = inParams.get(AppcAaiClientConstant.INPUT_PARAM_RESPONSE_PREFIX);
+
+ try {
+
+ responsePrefix = StringUtils.isNotBlank(responsePrefix) ? (responsePrefix+".") : "";
+ String instarKeys = inParams.get("instarKeys");
+
+ ObjectMapper mapper = new ObjectMapper();
+ if ( instarKeys != null ) {
+
+ List<String> keyList = mapper.readValue(instarKeys, ArrayList.class);
+
+ //Map<String, String> instarParams =new HashMap<String, String>();
+ if(keyList != null){
+
+
+ for(int i=0;i<keyList.size();i++)
+ {
+ log.info("INSTARKEY -->"+keyList.get(i));
+
+
+ String instarParameter = ctx.getAttribute("INSTAR." + keyList.get(i));
+ log.info("INSTARPARAMETER " + instarParameter);
+ Parameter param = parseParameterContent(instarParameter);
+
+ log.info("PARAMETER KEY SIZE " + param.getRequestKeys().size());
+ log.info("RULE TYPE " + param.getClassType());
+
+ for ( int j =0 ; j < param.getRequestKeys().size() ; j++ ) {
+
+ log.info(" PARAM KEY NAME " + param.getRequestKeys().get(j).getKeyName());
+ log.info(" PARAM KEY VALUE " + param.getRequestKeys().get(j).getKeyValue());
+ }
+
+ // instarParams.put( keyList.get(i), "test" + i);
+ }
+
+ }
+ //log.info("INSTARPARAMMAP " + instarParams);
+ //String jsonString = mapper.writeValueAsString(instarParams);
+ //log.info(jsonString);
+ //ctx.setAttribute(responsePrefix + "configuration-parameters", jsonString);
+
+ }
+
+ log.info("getRequestKeys Successful ");
+ } 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 getRequestKeys " + e.getMessage());
+
+ throw new SvcLogicException(e.getMessage());
+ }
+
+ }
+
+
+ public Parameter parseParameterContent(String parameter) throws JsonParseException, JsonMappingException, IOException{
+ Parameter parameterDefinition = null;
+ if(StringUtils.isNotBlank(parameter)){
+ ObjectMapper mapper = new ObjectMapper();
+ parameterDefinition = mapper.readValue(parameter, Parameter.class);
+ }
+ return parameterDefinition;
+ }*/
+public void getVserverInfo(Map<String, String> inParams, SvcLogicContext ctx) throws SvcLogicException {
+ log.debug("getVserverInfo()::Retrieving vm and vnfc information for vserver:" + inParams.toString());
+ String responsePrefix = inParams.get(AppcAaiClientConstant.INPUT_PARAM_RESPONSE_PREFIX);
+ try {
+ responsePrefix = StringUtils.isNotBlank(responsePrefix) ? (responsePrefix + ".") : "";
+ AaiService aaiService = getAaiService();
+ String vServerId = inParams.get("vserverId");
+ Map<String, String> params = setVmParams(ctx, vServerId);
+ Map<String, String> vnfcParams = new HashMap<String, String>();
+ if (null == params) {
+ log.error("getVserverInfo()::No Vm Info found!!");
+ throw new SvcLogicException("No Vm Info in Context");
+ }
+ params.put(AppcAaiClientConstant.INPUT_PARAM_RESPONSE_PREFIX,
+ inParams.get(AppcAaiClientConstant.INPUT_PARAM_RESPONSE_PREFIX));
+ SvcLogicContext newVmCtx = new SvcLogicContext();
+ aaiService.getVMInfo(params, newVmCtx);
+
+ String vnfcName = newVmCtx.getAttribute(responsePrefix + "vm.vnfc[0].vnfc-name");
+ log.debug("getVnfcFunctionCodeForVserver()::vnfcName=" + vnfcName);
+ SvcLogicContext newVnfcCtx = new SvcLogicContext();
+ if (StringUtils.isNotBlank(vnfcName)) {
+ vnfcParams.put("vnfcName", vnfcName);
+ } else {
+ log.info("getVserverInfo()::vnfc Name is blank, not setting vnfc info !!!!");
+ return;
+ }
+ getVnfcInformationForVserver(vnfcParams, newVnfcCtx, inParams, ctx, aaiService, responsePrefix);
+ } 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 getVserverInfo " + e.getMessage());
+ }
+ }
+
+ public void getVnfcInformationForVserver(Map<String, String> vnfcParams, SvcLogicContext newVnfcCtx,
+ Map<String, String> inParams, SvcLogicContext ctx, AaiService aaiService, String responsePrefix)
+ throws Exception {
+ log.debug("getVnfcInformationForVserver()::vnfcParams:" + vnfcParams.toString());
+ vnfcParams.put(AppcAaiClientConstant.INPUT_PARAM_RESPONSE_PREFIX,
+ inParams.get(AppcAaiClientConstant.INPUT_PARAM_RESPONSE_PREFIX));
+
+ aaiService.getVnfcInfo(vnfcParams, newVnfcCtx);
+
+ String vnfcType = newVnfcCtx.getAttribute(responsePrefix + "vnfc.vnfc-type");
+ String vnfcFunctionCode = newVnfcCtx.getAttribute(responsePrefix + "vnfc.vnfc-function-code");
+ String vnfcGroupNotation = newVnfcCtx.getAttribute(responsePrefix + "vnfc.group-notation");
+ String vnfcV4OamIp = newVnfcCtx.getAttribute(responsePrefix + "vnfc.ipaddress-v4-oam-vip");
+
+ if (StringUtils.isBlank(vnfcType) || StringUtils.isBlank(vnfcFunctionCode)
+ || StringUtils.isBlank(vnfcGroupNotation) || StringUtils.isBlank(vnfcV4OamIp)) {
+ log.info("getVnfcInformationForVserver()::Some vnfc parameters are blank!!!!");
+ }
+ log.debug("getVnfcInformationForVserver()::vnfcType=" + vnfcType + ",vnfcFunctionCode=" + vnfcFunctionCode,
+ ", vnfc-ipaddress-v4-oam-vip=" + vnfcV4OamIp);
+ ctx.setAttribute(responsePrefix + "vm.vnfc.vnfc-name", vnfcParams.get("vnfcName"));
+ ctx.setAttribute(responsePrefix + "vm.vnfc.vnfc-type", vnfcType);
+ ctx.setAttribute(responsePrefix + "vm.vnfc.vnfc-function-code", vnfcFunctionCode);
+ ctx.setAttribute(responsePrefix + "vm.vnfc.vnfc-group-notation", vnfcGroupNotation);
+ ctx.setAttribute(responsePrefix + "vm.vnfc.vnfc-ipaddress-v4-oam-vip", vnfcV4OamIp);
+
+ }
+
+ public Map<String, String> setVmParams(SvcLogicContext ctx, String vServerId) {
+ log.debug("setVmParams()::setVmParamsVM level action:" + vServerId);
+ Map<String, String> params = new HashMap<String, String>();
+ int vmCount = 0, arrayIndex = -1;
+ String vmCountStr = ctx.getAttribute("tmp.vnfInfo.vm-count");
+ if (StringUtils.isNotBlank(vmCountStr))
+ vmCount = Integer.parseInt(vmCountStr);
+ for (int cnt = 0; cnt < vmCount; cnt++) {
+ String vsId = ctx.getAttribute("tmp.vnfInfo.vm[" + cnt + "].vserver-id");
+ log.debug("setVmParams():::vserver details::" + cnt + ":" + vsId);
+ if (StringUtils.equals(vServerId, vsId)) {
+ arrayIndex = cnt;
+ }
+ }
+ if (arrayIndex < 0) {
+ log.info("setVmParams()::VserverId not found in context!! Returning null for params!!");
+ return null;
+ }
+ String tenantId = ctx.getAttribute("tmp.vnfInfo.vm[" + arrayIndex + "].tenant-id");
+ String cloudOwner = ctx.getAttribute("tmp.vnfInfo.vm[" + arrayIndex + "].cloud-region-id");
+ String cloudRegionId = ctx.getAttribute("tmp.vnfInfo.vm[" + arrayIndex + "].cloud-owner");
+ log.debug("setVmParams()::tenantId=" + tenantId + " cloudOwner=" + cloudOwner + " cloudRegiodId= "
+ + cloudRegionId);
+ params.put("vserverId", vServerId);
+ params.put("tenantId", tenantId);
+ params.put("cloudOwner", cloudOwner);
+ params.put("cloudRegionId", cloudRegionId);
+ log.debug("setVmParams()::setVmParamsVM level action:" + params.toString());
+ return params;
+
+ }
}