X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=holmes-actions%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Fholmes%2Fcommon%2Faai%2FAaiQuery.java;h=7cbb6f3e782a9ef623d927bb87e27b9105756353;hb=75b8b484b7207c393026ee6509a22b2016a22475;hp=36479d704d89bea5531eeabd7f0a0082f9c8a863;hpb=4eaf0290dd2572f40526da9cfd09a1ccee4da76d;p=holmes%2Fcommon.git diff --git a/holmes-actions/src/main/java/org/onap/holmes/common/aai/AaiQuery.java b/holmes-actions/src/main/java/org/onap/holmes/common/aai/AaiQuery.java index 36479d7..7cbb6f3 100644 --- a/holmes-actions/src/main/java/org/onap/holmes/common/aai/AaiQuery.java +++ b/holmes-actions/src/main/java/org/onap/holmes/common/aai/AaiQuery.java @@ -15,6 +15,9 @@ package org.onap.holmes.common.aai; import java.util.HashMap; import java.util.Map; +import javax.inject.Inject; +import lombok.extern.slf4j.Slf4j; +import org.jvnet.hk2.annotations.Service; import org.onap.holmes.common.aai.config.AaiConfig; import org.onap.holmes.common.aai.entity.VmEntity; import org.onap.holmes.common.aai.entity.VnfEntity; @@ -22,8 +25,11 @@ import org.onap.holmes.common.config.MicroServiceConfig; import org.onap.holmes.common.exception.CorrelationException; import org.onap.holmes.common.utils.HttpsUtils; +@Service +@Slf4j public class AaiQuery { + @Inject private AaiResponseUtil aaiResponseUtil; public VnfEntity getAaiVnfData(String vnfId, String vnfName) throws CorrelationException { @@ -36,7 +42,7 @@ public class AaiQuery { } public VmEntity getAaiVmData(String vserverId, String vserverName) throws CorrelationException { - String url = MicroServiceConfig.getMsbServerAddr() + getVmResourceLinks(vserverId, vserverName); + String url = getVmUrl(vserverId, vserverName); String response = getResponse(url); try { return aaiResponseUtil.convertJsonToVmEntity(response); @@ -45,6 +51,18 @@ public class AaiQuery { } } + private String getVmUrl(String vserverId, String vserverName) throws CorrelationException { + String url = ""; + String resourceLinkUrl = getVmResourceLinks(vserverId, vserverName); + String baseUrl = getBaseUrl(""); + if (baseUrl.startsWith("http")) { + url = baseUrl + getMsbSuffixAddr(resourceLinkUrl); + } else { + url = baseUrl + resourceLinkUrl; + } + return url; + } + private String getVmResourceLinks(String vserverId, String vserverName) throws CorrelationException { String response = getResourceLinksResponse(vserverId, vserverName); try { @@ -55,29 +73,65 @@ public class AaiQuery { } private String getResourceLinksResponse(String vserverId, String vserverName) throws CorrelationException { - String url = - MicroServiceConfig.getMsbServerAddr() + AaiConfig.VM_ADDR + "vserver-id:EQUALS:" - + vserverId; + String url = getBaseUrl(getMsbSuffixAddr(AaiConfig.AAI_VM_ADDR) + "vserver-id:EQUALS:" + vserverId); String response = getResponse(url); - if (response.equals("")) { - url = MicroServiceConfig.getMsbServerAddr() + AaiConfig.VM_ADDR - + "vserver-name:EQUALS:" + vserverName; + if ("".equals(response) || "{}".equals(response)) { + url = getBaseUrl(AaiConfig.AAI_VM_ADDR + "vserver-name:EQUALS:" + vserverName); response = getResponse(url); } return response; } private String getVnfDataResponse(String vnfId, String vnfName) throws CorrelationException { - String url = MicroServiceConfig.getMsbServerAddr() + AaiConfig.VNF_ADDR + "vnf-id=" + vnfId; + String url = getBaseUrl(getMsbSuffixAddr(AaiConfig.AAI_VNF_ADDR)+ "/" + vnfId); String response = getResponse(url); - if (response.equals("")) { - url = MicroServiceConfig.getMsbServerAddr() + AaiConfig.VNF_ADDR + "vnf-name=" - + vnfName; + if ("".equals(response) || "{}".equals(response)) { + url = getBaseUrl(AaiConfig.AAI_VNF_ADDR + "vnf-name=" + vnfName); response = getResponse(url); } return response; } + private String getBaseUrl(String suffixUrl) { + String url = ""; + try { + String[] msbUrl = MicroServiceConfig.getMsbServerAddr().split(":"); + url = msbUrl[0] + ":" + msbUrl[1] + suffixUrl; + } catch (Exception e) { + log.info("Failed to get msb address"); + } + if ("".equals(url)) { + try { + url = "https://" + MicroServiceConfig.getServiceAddrInfoFromCBS("aai_config") + + suffixUrl; + } catch (Exception e) { + log.info("Failed to get aai address"); + } + } + return url; + } + + private String getMsbSuffixAddr(String suffixUrl) { + String[] addrSplits = suffixUrl.substring(1).split("/"); + String[] conv = addrSplits[2].split("-"); + addrSplits[2] = conv[0]; + if (conv.length > 1) { + for(int i = 1; i < conv.length; i++) { + addrSplits[2] = addrSplits[2] + conv[i].substring(0, 1).toUpperCase() + conv[i] + .substring(1); + } + } + String ret = addrSplits[1]; + addrSplits[1] = addrSplits[0] + "-" + addrSplits[2]; + addrSplits[2] = ret; + addrSplits[0] = "api"; + StringBuffer stringBuffer = new StringBuffer(); + for (String split : addrSplits) { + stringBuffer.append("/" + split); + } + return stringBuffer.toString(); + } + private String getResponse(String url) throws CorrelationException { String response = ""; try {