2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2017 - 2019 AT&T Intellectual Property. All rights reserved.
6 * Modifications Copyright (C) 2019 Nokia.
7 * ================================================================================
8 * Licensed under the Apache License, Version 2.0 (the "License");
9 * you may not use this file except in compliance with the License.
10 * You may obtain a copy of the License at
12 * http://www.apache.org/licenses/LICENSE-2.0
14 * Unless required by applicable law or agreed to in writing, software
15 * distributed under the License is distributed on an "AS IS" BASIS,
16 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17 * See the License for the specific language governing permissions and
18 * limitations under the License.
19 * ============LICENSE_END=========================================================
22 package org.onap.vid.controller;
24 import static org.onap.vid.utils.Logging.getMethodName;
26 import com.fasterxml.jackson.databind.ObjectMapper;
27 import java.io.IOException;
28 import java.util.List;
30 import java.util.UUID;
31 import java.util.stream.Collectors;
32 import javax.servlet.http.HttpServletRequest;
33 import javax.ws.rs.DefaultValue;
34 import javax.ws.rs.QueryParam;
35 import javax.ws.rs.WebApplicationException;
36 import javax.ws.rs.core.Response;
37 import org.apache.commons.lang3.tuple.ImmutablePair;
38 import org.apache.commons.lang3.tuple.Pair;
39 import org.onap.portalsdk.core.controller.RestrictedBaseController;
40 import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate;
41 import org.onap.portalsdk.core.util.SystemProperties;
42 import org.onap.vid.aai.AaiGetVnfResponse;
43 import org.onap.vid.aai.AaiResponse;
44 import org.onap.vid.aai.AaiResponseTranslator.PortMirroringConfigData;
45 import org.onap.vid.aai.ServiceInstancesSearchResults;
46 import org.onap.vid.aai.SubscriberFilteredResults;
47 import org.onap.vid.aai.model.AaiGetInstanceGroupsByCloudRegion;
48 import org.onap.vid.aai.model.AaiGetOperationalEnvironments.OperationalEnvironmentList;
49 import org.onap.vid.aai.model.AaiGetPnfs.Pnf;
50 import org.onap.vid.aai.model.AaiGetTenatns.GetTenantsResponse;
51 import org.onap.vid.aai.util.AAIRestInterface;
52 import org.onap.vid.model.VersionByInvariantIdsRequest;
53 import org.onap.vid.properties.Features;
54 import org.onap.vid.roles.Role;
55 import org.onap.vid.roles.RoleProvider;
56 import org.onap.vid.roles.RoleValidator;
57 import org.onap.vid.services.AaiService;
58 import org.onap.vid.utils.SystemPropertiesWrapper;
59 import org.onap.vid.utils.Unchecked;
60 import org.springframework.beans.factory.annotation.Autowired;
61 import org.springframework.http.HttpStatus;
62 import org.springframework.http.MediaType;
63 import org.springframework.http.ResponseEntity;
64 import org.springframework.web.bind.annotation.PathVariable;
65 import org.springframework.web.bind.annotation.RequestBody;
66 import org.springframework.web.bind.annotation.RequestMapping;
67 import org.springframework.web.bind.annotation.RequestMethod;
68 import org.springframework.web.bind.annotation.RequestParam;
69 import org.springframework.web.bind.annotation.RestController;
70 import org.springframework.web.servlet.HandlerMapping;
71 import org.springframework.web.servlet.ModelAndView;
72 import org.togglz.core.manager.FeatureManager;
76 public class AaiController extends RestrictedBaseController {
78 private static final EELFLoggerDelegate LOGGER = EELFLoggerDelegate.getLogger(AaiController.class);
79 private static final String FROM_APP_ID = "VidAaiController";
81 private AaiService aaiService;
82 private AAIRestInterface aaiRestInterface;
83 private RoleProvider roleProvider;
84 private SystemPropertiesWrapper systemPropertiesWrapper;
85 private FeatureManager featureManager;
89 public AaiController(AaiService aaiService,
90 AAIRestInterface aaiRestInterface,
91 RoleProvider roleProvider,
92 SystemPropertiesWrapper systemPropertiesWrapper,
93 FeatureManager featureManager
96 this.aaiService = aaiService;
97 this.aaiRestInterface = aaiRestInterface;
98 this.roleProvider = roleProvider;
99 this.systemPropertiesWrapper = systemPropertiesWrapper;
100 this.featureManager = featureManager;
103 @RequestMapping(value = {"/subscriberSearch"}, method = RequestMethod.GET)
104 public ModelAndView welcome() {
105 LOGGER.debug(EELFLoggerDelegate.debugLogger, "<== AaiController welcome start");
106 return new ModelAndView(getViewName());
109 @RequestMapping(value = {"/aai_get_aic_zones"}, method = RequestMethod.GET)
110 public ResponseEntity<String> getAicZones() throws IOException {
111 LOGGER.debug(EELFLoggerDelegate.debugLogger, "<== getAicZones controller start");
112 AaiResponse response = aaiService.getAaiZones();
113 return aaiResponseToResponseEntity(response);
116 @RequestMapping(value = {
117 "/aai_get_aic_zone_for_pnf/{globalCustomerId}/{serviceType}/{serviceId}"}, method = RequestMethod.GET)
118 public ResponseEntity<String> getAicZoneForPnf(@PathVariable("globalCustomerId") String globalCustomerId,
119 @PathVariable("serviceType") String serviceType, @PathVariable("serviceId") String serviceId) throws IOException {
120 LOGGER.debug(EELFLoggerDelegate.debugLogger, "<== getAicZoneForPnf controller start");
121 AaiResponse response = aaiService.getAicZoneForPnf(globalCustomerId, serviceType, serviceId);
122 return aaiResponseToResponseEntity(response);
125 @RequestMapping(value = {"/aai_get_instance_groups_by_vnf_instance_id/{vnfInstanceId}"}, method = RequestMethod.GET)
126 public ResponseEntity<String> getInstanceGroupsByVnfInstanceId(@PathVariable("vnfInstanceId") String vnfInstanceId) throws IOException {
127 AaiResponse response = aaiService.getInstanceGroupsByVnfInstanceId(vnfInstanceId);
128 return aaiResponseToResponseEntity(response);
131 @RequestMapping(value = {"/getuserID"}, method = RequestMethod.GET)
132 public ResponseEntity<String> getUserID(HttpServletRequest request) {
134 String userId = new ControllersUtils(systemPropertiesWrapper).extractUserId(request);
136 return new ResponseEntity<>(userId, HttpStatus.OK);
139 @RequestMapping(value = "/aai_get_services", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
140 public ResponseEntity<String> doGetServices(HttpServletRequest request) throws IOException {
141 RoleValidator roleValidator = RoleValidator.by(roleProvider.getUserRoles(request));
143 AaiResponse subscriberList = aaiService.getServices(roleValidator);
144 return aaiResponseToResponseEntity(subscriberList);
148 @RequestMapping(value = {"/aai_get_version_by_invariant_id"}, method = RequestMethod.POST)
149 public ResponseEntity<String> getVersionByInvariantId(@RequestBody VersionByInvariantIdsRequest versions) {
150 Response result = aaiService.getVersionByInvariantId(versions.versions);
152 return new ResponseEntity<>(result.readEntity(String.class), HttpStatus.OK);
156 private ResponseEntity<String> aaiResponseToResponseEntity(AaiResponse aaiResponseData)
158 ResponseEntity<String> responseEntity;
159 if (aaiResponseData.getHttpCode() == 200) {
160 responseEntity = new ResponseEntity<>(new ObjectMapper().writeValueAsString(aaiResponseData.getT()),
163 responseEntity = new ResponseEntity<>(aaiResponseData.getErrorMessage(),
164 HttpStatus.valueOf(aaiResponseData.getHttpCode()));
167 return responseEntity;
170 @RequestMapping(value = "/aai_get_service_instance/{service-instance-id}/{service-instance-type}", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
171 public ResponseEntity<String> doGetServiceInstance(@PathVariable("service-instance-id") String serviceInstanceId,
172 @PathVariable("service-instance-type") String serviceInstanceType) {
173 Response resp = null;
175 if (serviceInstanceType.equalsIgnoreCase("Service Instance Id")) {
177 "search/nodes-query?search-node-type=service-instance&filter=service-instance-id:EQUALS:"
178 + serviceInstanceId, false);
181 "search/nodes-query?search-node-type=service-instance&filter=service-instance-name:EQUALS:"
182 + serviceInstanceId, false);
184 return convertResponseToResponseEntity(resp);
187 @RequestMapping(value = "/aai_get_service_subscription/{global-customer-id}/{service-subscription-id}", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
188 public ResponseEntity<String> doGetServices(@PathVariable("global-customer-id") String globalCustomerId,
189 @PathVariable("service-subscription-id") String serviceSubscriptionId) {
190 Response resp = doAaiGet("business/customers/customer/" + globalCustomerId
191 + "/service-subscriptions/service-subscription/" + serviceSubscriptionId + "?depth=0", false);
192 return convertResponseToResponseEntity(resp);
195 @RequestMapping(value = "/aai_get_subscribers", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
196 public ResponseEntity<String> doGetSubscriberList(HttpServletRequest request,
197 @DefaultValue("n") @QueryParam("fullSet") String fullSet) throws IOException {
198 return getFullSubscriberList(request);
201 @RequestMapping(value = "/get_system_prop_vnf_prov_status", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
202 public ResponseEntity<String> getTargetProvStatus() {
203 String p = SystemProperties.getProperty("aai.vnf.provstatus");
204 return new ResponseEntity<>(p, HttpStatus.OK);
207 @RequestMapping(value = "/get_operational_environments", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
208 public AaiResponse<OperationalEnvironmentList> getOperationalEnvironments(
209 @RequestParam(value = "operationalEnvironmentType", required = false) String operationalEnvironmentType,
210 @RequestParam(value = "operationalEnvironmentStatus", required = false) String operationalEnvironmentStatus) {
211 LOGGER.debug(EELFLoggerDelegate.debugLogger, "start {}({}, {})", getMethodName(), operationalEnvironmentType,
212 operationalEnvironmentStatus);
213 AaiResponse<OperationalEnvironmentList> response = aaiService
214 .getOperationalEnvironments(operationalEnvironmentType, operationalEnvironmentStatus);
215 if (response.getHttpCode() != 200) {
216 String errorMessage = getAaiErrorMessage(response.getErrorMessage());
217 if (errorMessage != null) {
218 response = new AaiResponse<>(response.getT(), errorMessage, response.getHttpCode());
222 LOGGER.debug(EELFLoggerDelegate.debugLogger, "end {}() => {}", getMethodName(), response);
226 @RequestMapping(value = "/aai_get_full_subscribers", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
227 public ResponseEntity<String> getFullSubscriberList(HttpServletRequest request) throws IOException {
228 ObjectMapper objectMapper = new ObjectMapper();
229 ResponseEntity<String> responseEntity;
230 RoleValidator roleValidator = RoleValidator.by(roleProvider.getUserRoles(request));
231 SubscriberFilteredResults subscriberList = aaiService.getFullSubscriberList(roleValidator);
232 if (subscriberList.getHttpCode() == 200) {
233 responseEntity = new ResponseEntity<>(objectMapper.writeValueAsString(subscriberList.getSubscriberList()),
236 responseEntity = new ResponseEntity<>(subscriberList.getErrorMessage(),
237 HttpStatus.valueOf(subscriberList.getHttpCode()));
240 return responseEntity;
244 @RequestMapping(value = "/get_vnf_data_by_globalid_and_service_type/{globalCustomerId}/{serviceType}",
245 method = RequestMethod.GET,
246 produces = MediaType.APPLICATION_JSON_VALUE)
247 public ResponseEntity<String> getVnfDataByGlobalIdAndServiceType(
248 @PathVariable("globalCustomerId") String globalCustomerId,
249 @PathVariable("serviceType") String serviceType) throws IOException {
251 AaiResponse<AaiGetVnfResponse> resp = aaiService.getVNFData(globalCustomerId, serviceType);
252 return aaiResponseToResponseEntity(resp);
255 @RequestMapping(value = "/aai_refresh_subscribers", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
256 public ResponseEntity<String> doRefreshSubscriberList() {
257 return refreshSubscriberList();
260 @RequestMapping(value = "/aai_refresh_full_subscribers", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
261 public ResponseEntity<String> doRefreshFullSubscriberList() {
262 return refreshSubscriberList();
265 protected ResponseEntity<String> refreshSubscriberList() {
266 Response resp = getSubscribers();
267 return convertResponseToResponseEntity(resp);
270 @RequestMapping(value = "/aai_sub_details/{subscriberId}", method = RequestMethod.GET)
271 public ResponseEntity<String> getSubscriberDetails(HttpServletRequest request, @PathVariable("subscriberId") String subscriberId,
272 @RequestParam(value="omitServiceInstances", required = false, defaultValue = "false") boolean omitServiceInstances) throws IOException {
273 ObjectMapper objectMapper = new ObjectMapper();
274 ResponseEntity responseEntity;
275 List<Role> roles = roleProvider.getUserRoles(request);
276 RoleValidator roleValidator = RoleValidator.by(roles);
277 AaiResponse subscriberData = aaiService.getSubscriberData(subscriberId, roleValidator, featureManager.isActive(Features.FLAG_1906_AAI_SUB_DETAILS_REDUCE_DEPTH) && omitServiceInstances);
278 String httpMessage = subscriberData.getT() != null ?
279 objectMapper.writeValueAsString(subscriberData.getT()) :
280 subscriberData.getErrorMessage();
282 responseEntity = new ResponseEntity<>(httpMessage, HttpStatus.valueOf(subscriberData.getHttpCode()));
283 return responseEntity;
286 @RequestMapping(value = "/search_service_instances", method = RequestMethod.GET)
287 public ResponseEntity<String> SearchServiceInstances(HttpServletRequest request,
288 @RequestParam(value = "subscriberId", required = false) String subscriberId,
289 @RequestParam(value = "serviceInstanceIdentifier", required = false) String instanceIdentifier,
290 @RequestParam(value = "project", required = false) List<String> projects,
291 @RequestParam(value = "owningEntity", required = false) List<String> owningEntities) throws IOException {
292 ObjectMapper objectMapper = new ObjectMapper();
293 ResponseEntity responseEntity;
295 List<Role> roles = roleProvider.getUserRoles(request);
296 RoleValidator roleValidator = RoleValidator.by(roles);
298 AaiResponse<ServiceInstancesSearchResults> searchResult = aaiService
299 .getServiceInstanceSearchResults(subscriberId, instanceIdentifier, roleValidator, owningEntities, projects);
301 String httpMessage = searchResult.getT() != null ?
302 objectMapper.writeValueAsString(searchResult.getT()) :
303 searchResult.getErrorMessage();
305 if (searchResult.getT().serviceInstances.isEmpty()) {
306 responseEntity = new ResponseEntity<>(httpMessage, HttpStatus.NOT_FOUND);
309 responseEntity = new ResponseEntity<>(httpMessage, HttpStatus.valueOf(searchResult.getHttpCode()));
312 return responseEntity;
315 @RequestMapping(value = "/aai_sub_viewedit/{namedQueryId}/{globalCustomerId}/{serviceType}/{serviceInstance}", method = RequestMethod.GET)
316 public ResponseEntity<String> viewEditGetComponentList(
317 @PathVariable("namedQueryId") String namedQueryId,
318 @PathVariable("globalCustomerId") String globalCustomerId,
319 @PathVariable("serviceType") String serviceType,
320 @PathVariable("serviceInstance") String serviceInstance) {
322 String componentListPayload = getComponentListPutPayload(namedQueryId, globalCustomerId, serviceType,
325 Response resp = doAaiPost("search/named-query", componentListPayload, false);
326 return convertResponseToResponseEntity(resp);
329 @RequestMapping(value = "/aai_get_models_by_service_type/{namedQueryId}/{globalCustomerId}/{serviceType}", method = RequestMethod.GET)
330 public ResponseEntity<String> viewEditGetComponentList(
331 @PathVariable("namedQueryId") String namedQueryId,
332 @PathVariable("globalCustomerId") String globalCustomerId,
333 @PathVariable("serviceType") String serviceType) {
335 String componentListPayload = getModelsByServiceTypePayload(namedQueryId, globalCustomerId, serviceType);
337 Response resp = doAaiPost("search/named-query", componentListPayload, false);
338 return convertResponseToResponseEntity(resp);
341 @RequestMapping(value = "/aai_get_vnf_instances/{globalCustomerId}/{serviceType}/{modelVersionId}/{modelInvariantId}/{cloudRegion}", method = RequestMethod.GET)
342 public ResponseEntity<String> getNodeTemplateInstances(
343 @PathVariable("globalCustomerId") String globalCustomerId,
344 @PathVariable("serviceType") String serviceType,
345 @PathVariable("modelVersionId") String modelVersionId,
346 @PathVariable("modelInvariantId") String modelInvariantId,
347 @PathVariable("cloudRegion") String cloudRegion) {
349 AaiResponse<String> resp = aaiService
350 .getNodeTemplateInstances(globalCustomerId, serviceType, modelVersionId, modelInvariantId, cloudRegion);
351 return new ResponseEntity<>(resp.getT(), HttpStatus.valueOf(resp.getHttpCode()));
354 @RequestMapping(value = "/aai_get_network_collection_details/{serviceInstanceId}", method = RequestMethod.GET)
355 public ResponseEntity<String> getNetworkCollectionDetails(
356 @PathVariable("serviceInstanceId") String serviceInstanceId) throws IOException {
357 com.fasterxml.jackson.databind.ObjectMapper objectMapper = new com.fasterxml.jackson.databind.ObjectMapper();
358 AaiResponse<String> resp = aaiService.getNetworkCollectionDetails(serviceInstanceId);
360 String httpMessage = resp.getT() != null ?
361 objectMapper.writeValueAsString(resp.getT()) :
362 resp.getErrorMessage();
363 return new ResponseEntity<>(httpMessage, HttpStatus.valueOf(resp.getHttpCode()));
366 @RequestMapping(value = "/aai_get_instance_groups_by_cloudregion/{cloudOwner}/{cloudRegionId}/{networkFunction}", method = RequestMethod.GET)
367 public ResponseEntity<String> getInstanceGroupsByCloudRegion(@PathVariable("cloudOwner") String cloudOwner,
368 @PathVariable("cloudRegionId") String cloudRegionId,
369 @PathVariable("networkFunction") String networkFunction) throws IOException {
370 com.fasterxml.jackson.databind.ObjectMapper objectMapper = new com.fasterxml.jackson.databind.ObjectMapper();
371 AaiResponse<AaiGetInstanceGroupsByCloudRegion> resp = aaiService
372 .getInstanceGroupsByCloudRegion(cloudOwner, cloudRegionId, networkFunction);
374 String httpMessage = resp.getT() != null ?
375 objectMapper.writeValueAsString(resp.getT()) :
376 resp.getErrorMessage();
377 return new ResponseEntity<>(httpMessage, HttpStatus.valueOf(resp.getHttpCode()));
380 @RequestMapping(value = "/aai_get_by_uri/**", method = RequestMethod.GET)
381 public ResponseEntity<String> getByUri(HttpServletRequest request) {
383 String restOfTheUrl = (String) request.getAttribute(
384 HandlerMapping.PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE);
385 String formattedUri = restOfTheUrl.replaceFirst("/aai_get_by_uri/", "").replaceFirst("^aai/v[\\d]+/", "");
387 Response resp = doAaiGet(formattedUri, false);
389 return convertResponseToResponseEntity(resp);
392 @RequestMapping(value = "/aai_get_configuration/{configuration_id}", method = RequestMethod.GET)
393 public ResponseEntity<String> getSpecificConfiguration(@PathVariable("configuration_id") String configurationId) {
395 Response resp = doAaiGet("network/configurations/configuration/" + configurationId, false);
397 return convertResponseToResponseEntity(resp);
400 @RequestMapping(value = "/aai_get_service_instance_pnfs/{globalCustomerId}/{serviceType}/{serviceInstanceId}", method = RequestMethod.GET)
401 public List<String> getServiceInstanceAssociatedPnfs(
402 @PathVariable("globalCustomerId") String globalCustomerId,
403 @PathVariable("serviceType") String serviceType,
404 @PathVariable("serviceInstanceId") String serviceInstanceId) {
406 return aaiService.getServiceInstanceAssociatedPnfs(globalCustomerId, serviceType, serviceInstanceId);
409 @RequestMapping(value = "/aai_get_pnfs/pnf/{pnf_id}", method = RequestMethod.GET)
410 public ResponseEntity getSpecificPnf(@PathVariable("pnf_id") String pnfId) {
411 ResponseEntity<Pnf> re;
413 AaiResponse<Pnf> resp = aaiService.getSpecificPnf(pnfId);
414 re = new ResponseEntity<>(resp.getT(), HttpStatus.valueOf(resp.getHttpCode()));
415 } catch (Exception e) {
416 return new ResponseEntity<>(e.getMessage(), HttpStatus.INTERNAL_SERVER_ERROR);
421 @RequestMapping(value = "/aai_get_tenants/{global-customer-id}/{service-type}", method = RequestMethod.GET)
422 public ResponseEntity<String> viewEditGetTenantsFromServiceType(HttpServletRequest request,
423 @PathVariable("global-customer-id") String globalCustomerId, @PathVariable("service-type") String serviceType) {
425 ResponseEntity responseEntity;
427 ObjectMapper objectMapper = new ObjectMapper();
428 List<Role> roles = roleProvider.getUserRoles(request);
429 RoleValidator roleValidator = RoleValidator.by(roles);
430 AaiResponse<GetTenantsResponse[]> response = aaiService
431 .getTenants(globalCustomerId, serviceType, roleValidator);
432 if (response.getHttpCode() == 200) {
433 responseEntity = new ResponseEntity<>(objectMapper.writeValueAsString(response.getT()),
436 responseEntity = new ResponseEntity<>(response.getErrorMessage(),
437 HttpStatus.valueOf(response.getHttpCode()));
439 } catch (Exception e) {
440 responseEntity = new ResponseEntity<>("Unable to proccess getTenants reponse",
441 HttpStatus.INTERNAL_SERVER_ERROR);
443 return responseEntity;
446 @RequestMapping(value = "/aai_get_pnf_instances/{globalCustomerId}/{serviceType}/{modelVersionId}/{modelInvariantId}/{cloudRegion}/{equipVendor}/{equipModel}", method = RequestMethod.GET)
447 public ResponseEntity<String> getPnfInstances(
448 @PathVariable("globalCustomerId") String globalCustomerId,
449 @PathVariable("serviceType") String serviceType,
450 @PathVariable("modelVersionId") String modelVersionId,
451 @PathVariable("modelInvariantId") String modelInvariantId,
452 @PathVariable("cloudRegion") String cloudRegion,
453 @PathVariable("equipVendor") String equipVendor,
454 @PathVariable("equipModel") String equipModel) {
456 AaiResponse<String> resp = aaiService
457 .getPNFData(globalCustomerId, serviceType, modelVersionId, modelInvariantId, cloudRegion, equipVendor,
459 return new ResponseEntity<>(resp.getT(), HttpStatus.valueOf(resp.getHttpCode()));
462 @RequestMapping(value = "/aai_getPortMirroringConfigsData", method = RequestMethod.GET)
463 public Map<String, PortMirroringConfigData> getPortMirroringConfigsData(
464 @RequestParam("configurationIds") List<String> configurationIds) {
466 return configurationIds.stream()
467 .map(id -> ImmutablePair.of(id, aaiService.getPortMirroringConfigData(id)))
468 .collect(Collectors.toMap(Pair::getKey, Pair::getValue));
471 @RequestMapping(value = "/aai_getPortMirroringSourcePorts", method = RequestMethod.GET)
472 public Map<String, Object> getPortMirroringSourcePorts(
473 @RequestParam("configurationIds") List<String> configurationIds) {
475 return configurationIds.stream()
476 .map(id -> ImmutablePair.of(id, aaiService.getPortMirroringSourcePorts(id)))
477 .collect(Collectors.toMap(Pair::getKey, Pair::getValue));
480 private ResponseEntity<String> convertResponseToResponseEntity(Response resp) {
481 ResponseEntity<String> respEnt;
483 respEnt = new ResponseEntity<>("Failed to fetch data from A&AI, check server logs for details.",
484 HttpStatus.INTERNAL_SERVER_ERROR);
486 respEnt = new ResponseEntity<>(resp.readEntity(String.class), HttpStatus.valueOf(resp.getStatus()));
491 private Response getSubscribers() {
495 Response resp = doAaiGet("business/customers?subscriber-type=INFRA&depth=" + depth, false);
498 .debug(EELFLoggerDelegate.debugLogger, "<== getSubscribers() resp=" + resp.getStatusInfo().toString());
503 protected Response doAaiGet(String uri, boolean xml) {
504 String methodName = "getSubscriberList";
505 String transId = UUID.randomUUID().toString();
506 LOGGER.debug(EELFLoggerDelegate.debugLogger, "<== " + methodName + " start");
508 Response resp = null;
511 resp = aaiRestInterface.RestGet(FROM_APP_ID, transId, Unchecked.toURI(uri), xml).getResponse();
513 } catch (WebApplicationException e) {
514 final String message = e.getResponse().readEntity(String.class);
515 LOGGER.info(EELFLoggerDelegate.errorLogger, "<== " + "." + methodName + message);
516 LOGGER.debug(EELFLoggerDelegate.debugLogger, "<== " + "." + methodName + message);
517 } catch (Exception e) {
518 LOGGER.info(EELFLoggerDelegate.errorLogger, "<== " + "." + methodName + e.toString());
519 LOGGER.debug(EELFLoggerDelegate.debugLogger, "<== " + "." + methodName + e.toString());
525 protected Response doAaiPost(String uri, String payload, boolean xml) {
526 String methodName = "getSubscriberList";
527 LOGGER.debug(EELFLoggerDelegate.debugLogger, "<== " + methodName + " start");
529 Response resp = null;
532 resp = aaiRestInterface.RestPost(FROM_APP_ID, uri, payload, xml);
534 } catch (Exception e) {
535 LOGGER.info(EELFLoggerDelegate.errorLogger, "<== " + "." + methodName + e.toString());
536 LOGGER.debug(EELFLoggerDelegate.debugLogger, "<== " + "." + methodName + e.toString());
542 private String getComponentListPutPayload(String namedQueryId, String globalCustomerId, String serviceType,
543 String serviceInstance) {
546 " \"instance-filters\": {" +
547 " \"instance-filter\": [" +
550 " \"global-customer-id\": \"" + globalCustomerId + "\"" +
552 " \"service-instance\": {" +
553 " \"service-instance-id\": \"" + serviceInstance + "\"" +
555 " \"service-subscription\": {" +
556 " \"service-type\": \"" + serviceType + "\"" +
561 " \"query-parameters\": {" +
562 " \"named-query\": {" +
563 " \"named-query-uuid\": \"" + namedQueryId + "\"" +
570 private String getModelsByServiceTypePayload(String namedQueryId, String globalCustomerId, String serviceType) {
571 // TODO Auto-generated method stub
573 " \"instance-filters\": {" +
574 " \"instance-filter\": [" +
577 " \"global-customer-id\": \"" + globalCustomerId + "\"" +
579 " \"service-subscription\": {" +
580 " \"service-type\": \"" + serviceType + "\"" +
585 " \"query-parameters\": {" +
586 " \"named-query\": {" +
587 " \"named-query-uuid\": \"" + namedQueryId + "\"" +
594 private String getAaiErrorMessage(String message) {
596 org.json.JSONObject json = new org.json.JSONObject(message);
597 json = json.getJSONObject("requestError").getJSONObject("serviceException");
599 return json.getString("messageId") + ": " + json.getString("text");
601 } catch (Exception e) {