headers.add("Accept", "application/json");
}
+ /**
+ * Query the logic link information for AAI. This method is based on the API:
+ * https://<AAI host>:<AAI port>/aai/v14/network/network-resources/network-resource/{networkId}/pnfs/pnf/{pnfName}/p-interfaces?interface-name={ifName}&operational-status={status}
+ * provided by AAI.
+ *
+ * @param networkId
+ * @param pnfName
+ * @param ifName
+ * @param status
+ * @return the ID of the logic link
+ */
public String getLogicLink(String networkId, String pnfName, String ifName, String status) {
Map<String, String> params = new HashMap<>();
params.put("networkId", networkId);
return extractValueFromJsonArray(linkInfo.getJSONArray("relationship-data"), "logical-link.link-name");
}
+ /**
+ * Query all the instances related to a terminal point. This method is mainly based on the API:
+ * https://<AAI host>:<AAI port>/aai/v14/network/connectivities?connectivity-id={connectivityId}
+ * and
+ * https://<AAI host>:<AAI port>/aai/v14/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}
+ * provided by AAI. The path for getting the required instance information is: p-interface → vpn-vpnbinding → connectivity → service instance
+ *
+ * @param networkId
+ * @param pnfName
+ * @param ifName
+ * @param status
+ * @return all related service instances in JSONArray format
+ */
public JSONArray getServiceInstances(String networkId, String pnfName, String ifName, String status) {
try {
JSONObject vpnBindingInfo = getVpnBindingInfo(networkId, pnfName, ifName, status);
}
}
- public JSONObject getVpnBindingInfo(String networkId, String pnfName,
- String ifName, String status) throws CorrelationException {
+ private JSONObject getVpnBindingInfo(String networkId, String pnfName,
+ String ifName, String status) throws CorrelationException {
Map<String, String> params = new HashMap();
params.put("networkId", networkId);
params.put("pnfName", pnfName);
return getInfo(JSONObject.toJSONString(response.getEntity()), "p-interface", "vpn-binding");
}
- public JSONObject getConnectivityInfo(String vpnId) throws CorrelationException {
+ private JSONObject getConnectivityInfo(String vpnId) throws CorrelationException {
Response response = get(getHostAddr(), getPath(AaiConfig.MsbConsts.AAI_CONN_ADDR, "vpnId", vpnId));
if (response.getStatusInfo().getFamily() != Response.Status.Family.SUCCESSFUL) {
throw new CorrelationException("Failed to connect to AAI. Cause: "
return getInfo(JSONObject.toJSONString(response.getEntity()), "vpn-binding", "connectivity");
}
- public JSONObject getServiceInstanceByConn(String connectivityId) throws CorrelationException {
+ private JSONObject getServiceInstanceByConn(String connectivityId) throws CorrelationException {
Response response = get(getHostAddr(), getPath(AaiConfig.MsbConsts.AAI_SERVICE_INSTANCE_ADDR_4_CCVPN,
"connectivityId", connectivityId));
if (response.getStatusInfo().getFamily() != Response.Status.Family.SUCCESSFUL) {
return getInfo(JSONObject.toJSONString(response.getEntity()), "connectivity", "service-instance");
}
- public JSONArray getServiceInstances(String globalCustomerId, String serviceType) throws CorrelationException {
+ private JSONArray getServiceInstances(String globalCustomerId, String serviceType) throws CorrelationException {
Map<String, String> params = new HashMap();
params.put("global-customer-id", globalCustomerId);
params.put("service-type", serviceType);
return ret;
}
- public Response get(String host, String path) {
+ private Response get(String host, String path) {
Client client = ClientBuilder.newClient();
WebTarget target = client.target(host).path(path);
return target.request().headers(getAaiHeaders()).get();
}
- public Response patch(String host, String path, Map<String, Object> body) {
+ private Response patch(String host, String path, Map<String, Object> body) {
Client client = ClientBuilder.newClient();
WebTarget target = client.target(host).path(path);
return target.request().headers(getAaiHeaders()).method("PATCH", Entity.json(body));
}
@Test
- public void test_getServiceInstances_1() throws CorrelationException {
+ public void test_getServiceInstances_1() throws Exception {
mockGetMethod();
EasyMock.expect(response.getEntity()).andReturn(data.getJSONObject("service-instances-by-service-type"));
EasyMock.expect(response.getStatusInfo()).andReturn(Response.Status.OK);
PowerMock.replayAll();
- JSONArray instances = aai.getServiceInstances("custom-1", "service-type-1");
+ JSONArray instances = (JSONArray)Whitebox.invokeMethod(aai, "getServiceInstances",
+ "custom-1", "service-type-1");
PowerMock.verifyAll();
}
@Test
- public void test_getServiceInstances_1_exception() throws CorrelationException {
+ public void test_getServiceInstances_1_exception() throws Exception {
mockGetMethod();
EasyMock.expect(response.getEntity()).andReturn(data.getJSONObject("service-instances-by-service-type"));
EasyMock.expect(response.getStatusInfo()).andReturn(Response.Status.NOT_FOUND).times(2);
PowerMock.replayAll();
- JSONArray instances = aai.getServiceInstances("custom-1", "service-type-1");
+ JSONArray instances = (JSONArray)Whitebox.invokeMethod(aai, "getServiceInstances",
+ "custom-1", "service-type-1");
PowerMock.verifyAll();