- public JSONArray getServiceInstances(String networkId, String pnfName, String ifName, String status) {
- try {
- JSONObject vpnBindingInfo = getVpnBindingInfo(networkId, pnfName, ifName, status);
- String vpnBindingId = extractValueFromJsonArray(vpnBindingInfo.getJSONArray("relationship-data"),
- "vpn-binding.vpn-id");
- JSONObject connectivityInfo = getConnectivityInfo(vpnBindingId);
- String connectivityId = extractValueFromJsonArray(connectivityInfo.getJSONArray("relationship-data"),
- "connectivity. connectivity-id");
- JSONObject serviceInstanceInfo = getServiceInstanceByConn(connectivityId);
- String serviceInstancePath = serviceInstanceInfo.getString("related-link");
- serviceInstancePath = serviceInstancePath.substring(0, serviceInstancePath.lastIndexOf('/'));
-
- String[] params = new String[2];
-
- Pattern pattern = Pattern.compile("/aai/v\\d+/business/customers/customer/(.+)/service-subscriptions/service-subscription/(.+)");
- Matcher matcher = pattern.matcher(serviceInstancePath);
- if (matcher.find()) {
- params[0] = matcher.group(1);
- params[1] = matcher.group(2);
- }
+ public JsonObject getServiceInstance(String networkId, String pnfName, String ifName, String status) {
+ JsonObject vpnBindingInfo = getVpnBindingInfo(networkId, pnfName, ifName, status);
+ if (vpnBindingInfo == null) {
+ log.warn(String.format("VPN binding information is missing from AAI. " +
+ "Method: [getServiceInstance], params: [networkId - %s, pnfName - %s, " +
+ "ifName - %s, status - %s].", networkId, pnfName, ifName, status));
+ return EMPTY_JSON;
+ }
+ String vpnBindingId = extractValueFromJsonArray(vpnBindingInfo.get("relationship-data").getAsJsonArray(),
+ "vpn-binding.vpn-id");
+ JsonObject connectivityInfo = getConnectivityInfo(vpnBindingId);
+ if (connectivityInfo == null) {
+ log.warn(String.format("Connectivity information is missing from AAI. " +
+ "Method: [getServiceInstance], params: [networkId - %s, pnfName - %s, " +
+ "ifName - %s, status - %s].", networkId, pnfName, ifName, status));
+ return EMPTY_JSON;
+ }
+ String connectivityId = extractValueFromJsonArray(connectivityInfo.get("relationship-data").getAsJsonArray(),
+ "connectivity.connectivity-id");
+ JsonObject serviceInstanceInfo = getServiceInstanceByConn(connectivityId);
+ if (serviceInstanceInfo == null) {
+ log.warn(String.format("Service instance information is missing from AAI. " +
+ "Method: [getServiceInstance], params: [networkId - %s, pnfName - %s, " +
+ "ifName - %s, status - %s].", networkId, pnfName, ifName, status));
+ return EMPTY_JSON;
+ }
+ String serviceInstancePath = serviceInstanceInfo.get("related-link").getAsString();