* ============LICENSE_START=======================================================
* org.onap.holmes.common.aai
* ================================================================================
- * Copyright (C) 2018-2019 Huawei. All rights reserved.
+ * Copyright (C) 2018-2021 Huawei, ZTE. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
package org.onap.holmes.common.aai;
-import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONArray;
-import com.alibaba.fastjson.JSONObject;
+import com.google.gson.JsonArray;
+import com.google.gson.JsonObject;
+import com.google.gson.JsonParser;
import lombok.extern.slf4j.Slf4j;
-import org.jvnet.hk2.annotations.Service;
import org.onap.holmes.common.aai.config.AaiConfig;
-import org.onap.holmes.common.exception.CorrelationException;
+import org.onap.holmes.common.config.MicroServiceConfig;
+import org.onap.holmes.common.utils.JerseyClient;
+import org.springframework.stereotype.Service;
-import javax.ws.rs.core.MultivaluedHashMap;
-import javax.ws.rs.core.MultivaluedMap;
-import javax.ws.rs.core.Response;
+import java.util.HashMap;
+import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
-import static org.onap.holmes.common.aai.AaiJsonParserUtil.extractJsonArray;
-import static org.onap.holmes.common.aai.AaiJsonParserUtil.get;
-import static org.onap.holmes.common.aai.AaiJsonParserUtil.getHostAddr;
-import static org.onap.holmes.common.aai.AaiJsonParserUtil.getInfo;
-import static org.onap.holmes.common.aai.AaiJsonParserUtil.getPath;
+import static org.onap.holmes.common.aai.AaiJsonParserUtil.*;
-@Service
@Slf4j
+@Service
public class AaiQuery4Ccvpn2 {
- private MultivaluedMap<String, Object> headers;
+ private Map<String, Object> headers;
static public AaiQuery4Ccvpn2 newInstance() {
return new AaiQuery4Ccvpn2();
}
private AaiQuery4Ccvpn2() {
- headers = new MultivaluedHashMap<>();
- headers.add("X-TransactionId", AaiConfig.X_TRANSACTION_ID);
- headers.add("X-FromAppId", AaiConfig.X_FROMAPP_ID);
- headers.add("Authorization", AaiConfig.getAuthenticationCredentials());
- headers.add("Accept", "application/json");
- headers.add("Content-Type", "application/json");
+ headers = new HashMap<>();
+ headers.put("X-TransactionId", AaiConfig.X_TRANSACTION_ID);
+ headers.put("X-FromAppId", AaiConfig.X_FROMAPP_ID);
+ headers.put("Authorization", AaiConfig.getAuthenticationCredentials());
+ headers.put("Accept", "application/json");
+ headers.put("Content-Type", "application/json");
}
- private String getSiteVNFId(String siteService) throws CorrelationException {
- Response response = get(getHostAddr(), AaiConfig.MsbConsts.AAI_SITE_RESOURCES_QUERY);
- String resStr = response.readEntity(String.class);
- JSONObject resObj = JSON.parseObject(resStr);
- JSONArray siteResources = extractJsonArray(resObj, "site-resource");
+ private String getSiteVNFId(String siteService) {
+ String response = JerseyClient.newInstance()
+ .headers(headers)
+ .path(AaiConfig.AaiConsts.AAI_SITE_RESOURCES_QUERY)
+ .get(MicroServiceConfig.getAaiAddr());
+ JsonObject resObj = JsonParser.parseString(response).getAsJsonObject();
+ JsonArray siteResources = extractJsonArray(resObj, "site-resource");
if (siteResources != null) {
for (int i = 0; i < siteResources.size(); i++) {
- final JSONObject object = siteResources.getJSONObject(i);
- if (siteService.equals(object.getString("site-resource-name"))) {
- JSONObject vnfInfo = getInfo(object.toJSONString(), "generic-vnf");
- String vnfPath = vnfInfo.getString("related-link");
+ final JsonObject object = siteResources.get(i).getAsJsonObject();
+ if (siteService.equals(object.get("site-resource-name").getAsString())) {
+ JsonObject vnfInfo = getInfo(object.toString(), "generic-vnf");
+ String vnfPath = vnfInfo.get("related-link").getAsString();
String vnfId = null;
Pattern pattern = Pattern.compile("/aai/v\\d+/network/generic-vnfs/generic-vnf/(.+)");
return null;
}
- private JSONObject getServiceInstanceByVnfId(String vnfId) throws CorrelationException {
- Response response = get(getHostAddr(), getPath(AaiConfig.MsbConsts.AAI_SITE_VNF_QUERY,
- "vnfId", vnfId));
- String resStr = response.readEntity(String.class);
+ private JsonObject getServiceInstanceByVnfId(String vnfId) {
+ String resStr = JerseyClient.newInstance()
+ .headers(headers)
+ .path(getPath(AaiConfig.AaiConsts.AAI_SITE_VNF_QUERY,
+ "vnfId", vnfId))
+ .get(MicroServiceConfig.getAaiAddr());
return getInfo(resStr, "service-instance");
}
- public JSONObject getSiteServiceInstance(String siteService) throws CorrelationException {
+ public JsonObject getSiteServiceInstance(String siteService) {
String vnfId = getSiteVNFId(siteService);
if (vnfId == null) {
return null;
}
- JSONObject serviceInstanceInfo = getServiceInstanceByVnfId(vnfId);
- String serviceInstancePath = serviceInstanceInfo.getString("related-link");
- Response response = get(getHostAddr(), getPath(serviceInstancePath));
- String res = response.readEntity(String.class);
- JSONObject instance = JSON.parseObject(res);
+ JsonObject serviceInstanceInfo = getServiceInstanceByVnfId(vnfId);
+ String serviceInstancePath = serviceInstanceInfo.get("related-link").getAsString();
+ String res = JerseyClient.newInstance()
+ .headers(headers)
+ .path(getPath(serviceInstancePath))
+ .get(MicroServiceConfig.getAaiAddr());
+ JsonObject instance = JsonParser.parseString(res).getAsJsonObject();
String[] params = new String[2];
Pattern pattern = Pattern.compile("/aai/v\\d+/business/customers/customer/(.+)" +
- "/service-subscriptions/service-subscription/(.+)" +
- "/service-instances/service-instance/(.+)");
+ "/service-subscriptions/service-subscription/(.+)" +
+ "/service-instances/service-instance/(.+)");
Matcher matcher = pattern.matcher(serviceInstancePath);
if (matcher.find()) {
params[0] = matcher.group(1);
params[1] = matcher.group(2);
}
- instance.put("globalSubscriberId", params[0]);
- instance.put("serviceType", params[1]);
- instance.put("vnfId", vnfId);
+ instance.addProperty("globalSubscriberId", params[0]);
+ instance.addProperty("serviceType", params[1]);
+ instance.addProperty("vnfId", vnfId);
return instance;
}
}