+ public void processCapabilitiesForVMLevel(String vServerId, SvcLogicContext ctx, String findCapability,
+ JsonNode subCapabilities) throws Exception {
+ log.info("processCapabilitiesForVMLevel():::subCapabilities::" + subCapabilities.toString() + ",vServerId::"
+ + vServerId);
+ if (subCapabilities.size()==0) {
+ ctx.setAttribute("capabilities", "None");
+ log.info("processCapabilitiesForVMLevel :: No VM block found!!");
+ return;
+ }
+ JsonNode vmCaps = null;
+ for (JsonNode cap : subCapabilities) {
+ if (null != cap && null != cap.get(findCapability)
+ && StringUtils.isNotBlank(cap.get(findCapability).toString())) {
+ vmCaps = cap.get(findCapability);
+ log.info("processCapabilitiesForVMLevel()::vmCaps found" + vmCaps.toString());
+ break;
+ }
+ }
+
+ if (null == vmCaps || vmCaps.isNull() || vmCaps.size() == 0) {
+ ctx.setAttribute("capabilities", "Not-Supported");
+ log.info("processCapabilitiesForVMLevel :: Found non-empty VM block but Not desired capability!!");
+ return;
+ }
+
+ String vnfcFunctionCode = getVnfcFunctionCodeForVserver(ctx, vServerId);
+ if (vmCaps != null && vmCaps.toString().contains(vnfcFunctionCode))
+ ctx.setAttribute("capabilities", "Supported");
+ else
+ ctx.setAttribute("capabilities", "Not-Supported");
+ log.info("End processCapabilitiesForVMLevel():capabilities is ::"+ctx.getAttribute("capabilities"));
+ }
+
+ private String getVnfcFunctionCodeForVserver(SvcLogicContext ctx, String vServerId) throws Exception {
+ log.debug("getVnfcFunctionCodeForVserver()::vServerId=" + vServerId);
+ String vnfcFunctionCode = ctx.getAttribute("tmp.vnfInfo.vm.vnfc.vnfc-function-code");
+ log.debug("getVnfcFunctionCodeForVserver()::vnfcFunctionCode=" + vnfcFunctionCode);
+ return vnfcFunctionCode;
+ }
+