* ============LICENSE_START=======================================================
* org.onap.holmes.common.aai
* ================================================================================
- * Copyright (C) 2018-2019 Huawei. All rights reserved.
+ * Copyright (C) 2018-2020 Huawei. 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 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
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");
+ JsonObject resObj = JsonParser.parseString(resStr).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(), "vnf-instance");
- 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+/business/customers/customer/(.+)" +
- "/service-subscriptions/service-subscription/(.+)" +
- "/vnf-instances/vnf-instance/(.+)");
+ Pattern pattern = Pattern.compile("/aai/v\\d+/network/generic-vnfs/generic-vnf/(.+)");
Matcher matcher = pattern.matcher(vnfPath);
if (matcher.find()) {
- vnfId = matcher.group(3);
+ vnfId = matcher.group(1);
}
return vnfId;
return null;
}
- private JSONObject getServiceInstanceByVnfId(String vnfId) throws CorrelationException {
+ 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);
return getInfo(resStr, "service-instance");
}
- public JSONObject getSiteServiceInstance(String siteService) throws CorrelationException {
+ public JsonObject getSiteServiceInstance(String siteService) throws CorrelationException {
String vnfId = getSiteVNFId(siteService);
- JSONObject serviceInstanceInfo = getServiceInstanceByVnfId(vnfId);
- String serviceInstancePath = serviceInstanceInfo.getString("related-link");
+ if (vnfId == null) {
+ return null;
+ }
+ JsonObject serviceInstanceInfo = getServiceInstanceByVnfId(vnfId);
+ String serviceInstancePath = serviceInstanceInfo.get("related-link").getAsString();
Response response = get(getHostAddr(), getPath(serviceInstancePath));
String res = response.readEntity(String.class);
- JSONObject instance = JSON.parseObject(res);
+ 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/(.+)" +
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;
}
}