diff options
Diffstat (limited to 'src/main/java/org/onap/nbi/apis/serviceinventory')
7 files changed, 167 insertions, 183 deletions
diff --git a/src/main/java/org/onap/nbi/apis/serviceinventory/AaiClient.java b/src/main/java/org/onap/nbi/apis/serviceinventory/AaiClient.java index 0becb02..8682d84 100644 --- a/src/main/java/org/onap/nbi/apis/serviceinventory/AaiClient.java +++ b/src/main/java/org/onap/nbi/apis/serviceinventory/AaiClient.java @@ -10,6 +10,7 @@ * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the * specific language governing permissions and limitations under the License. */ + package org.onap.nbi.apis.serviceinventory; import java.util.LinkedHashMap; @@ -48,26 +49,23 @@ public class AaiClient extends BaseClient { private static final Logger LOGGER = LoggerFactory.getLogger(AaiClient.class); private static final String X_TRANSACTION_ID = "X-TransactionId"; - private String aaiServiceUrl; private String aaiServiceCustomerUrl; private String aaiServicesUrl; private String aaiServicesInstancesUrl; private String aaiHealthCheckUrl; - @PostConstruct private void setUpAndlogAAIUrl() { - aaiServiceUrl = new StringBuilder().append(aaiHost) - .append(OnapComponentsUrlPaths.AAI_GET_SERVICE).toString(); - aaiServiceCustomerUrl = new StringBuilder().append(aaiHost) - .append(OnapComponentsUrlPaths.AAI_GET_SERVICE_CUSTOMER).toString(); + aaiServiceUrl = new StringBuilder().append(aaiHost).append(OnapComponentsUrlPaths.AAI_GET_SERVICE).toString(); + aaiServiceCustomerUrl = + new StringBuilder().append(aaiHost).append(OnapComponentsUrlPaths.AAI_GET_SERVICE_CUSTOMER).toString(); aaiServicesUrl = new StringBuilder().append(aaiHost) - .append(OnapComponentsUrlPaths.AAI_GET_SERVICES_FOR_CUSTOMER_PATH).toString(); + .append(OnapComponentsUrlPaths.AAI_GET_SERVICES_FOR_CUSTOMER_PATH).toString(); aaiServicesInstancesUrl = new StringBuilder().append(aaiHost) - .append(OnapComponentsUrlPaths.AAI_GET_SERVICE_INSTANCES_PATH).toString(); - aaiHealthCheckUrl = new StringBuilder().append(aaiHost) - .append(OnapComponentsUrlPaths.AAI_HEALTH_CHECK).toString(); + .append(OnapComponentsUrlPaths.AAI_GET_SERVICE_INSTANCES_PATH).toString(); + aaiHealthCheckUrl = + new StringBuilder().append(aaiHost).append(OnapComponentsUrlPaths.AAI_HEALTH_CHECK).toString(); LOGGER.info("AAI service url : " + aaiServiceUrl); LOGGER.info("AAI services url : " + aaiServicesUrl); @@ -76,7 +74,6 @@ public class AaiClient extends BaseClient { } - private HttpHeaders buildRequestHeaderForAAI() { HttpHeaders httpHeaders = new HttpHeaders(); diff --git a/src/main/java/org/onap/nbi/apis/serviceinventory/BaseClient.java b/src/main/java/org/onap/nbi/apis/serviceinventory/BaseClient.java index adae4ec..1a72a29 100644 --- a/src/main/java/org/onap/nbi/apis/serviceinventory/BaseClient.java +++ b/src/main/java/org/onap/nbi/apis/serviceinventory/BaseClient.java @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + package org.onap.nbi.apis.serviceinventory; import org.slf4j.Logger; @@ -30,51 +31,47 @@ public abstract class BaseClient { private static final Logger LOGGER = LoggerFactory.getLogger(BaseClient.class); - @Autowired private RestTemplate restTemplate; - - protected ResponseEntity<Object> callApiGet(String callURL, HttpHeaders httpHeaders) { - - if(LOGGER.isDebugEnabled()){ - LOGGER.debug("log request : "+callURL+ " "+httpHeaders); + if (LOGGER.isDebugEnabled()) { + LOGGER.debug("log request : " + callURL + " " + httpHeaders); } ResponseEntity<Object> response = null; - response = restTemplate.exchange(callURL, HttpMethod.GET, - new HttpEntity<>("parameters", httpHeaders), Object.class); + response = restTemplate.exchange(callURL, HttpMethod.GET, new HttpEntity<>("parameters", httpHeaders), + Object.class); - if(LOGGER.isDebugEnabled()){ - LOGGER.debug("response body : {}",response.getBody().toString()); + if (LOGGER.isDebugEnabled()) { + LOGGER.debug("response body : {}", response.getBody().toString()); } LOGGER.info("response status : {}", response.getStatusCodeValue()); if (LOGGER.isWarnEnabled() && !response.getStatusCode().equals(HttpStatus.OK)) { - LOGGER.warn("HTTP call on {} returns {}, {}", callURL , response.getStatusCodeValue() ,response.getBody().toString()); + LOGGER.warn("HTTP call on {} returns {}, {}", callURL, response.getStatusCodeValue(), + response.getBody().toString()); } return response; } - protected ResponseEntity<String> callApiGetHealthCheck(String callURL, HttpHeaders httpHeaders) { - - if(LOGGER.isDebugEnabled()){ - LOGGER.debug("log request : "+callURL+ " "+httpHeaders); + if (LOGGER.isDebugEnabled()) { + LOGGER.debug("log request : " + callURL + " " + httpHeaders); } ResponseEntity<String> response = null; - response = restTemplate.exchange(callURL, HttpMethod.GET, - new HttpEntity<>("parameters", httpHeaders), String.class); + response = restTemplate.exchange(callURL, HttpMethod.GET, new HttpEntity<>("parameters", httpHeaders), + String.class); - if(LOGGER.isDebugEnabled()){ - LOGGER.debug("response body : {}",response.getBody().toString()); + if (LOGGER.isDebugEnabled()) { + LOGGER.debug("response body : {}", response.getBody().toString()); } LOGGER.info("response status : {}", response.getStatusCodeValue()); if (LOGGER.isWarnEnabled() && !response.getStatusCode().equals(HttpStatus.OK)) { - LOGGER.warn("HTTP call on {} returns {}, {}", callURL , response.getStatusCodeValue() ,response.getBody().toString()); + LOGGER.warn("HTTP call on {} returns {}, {}", callURL, response.getStatusCodeValue(), + response.getBody().toString()); } return response; } diff --git a/src/main/java/org/onap/nbi/apis/serviceinventory/NbiClient.java b/src/main/java/org/onap/nbi/apis/serviceinventory/NbiClient.java index 7da073d..52f19cc 100644 --- a/src/main/java/org/onap/nbi/apis/serviceinventory/NbiClient.java +++ b/src/main/java/org/onap/nbi/apis/serviceinventory/NbiClient.java @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + package org.onap.nbi.apis.serviceinventory; import java.util.LinkedHashMap; diff --git a/src/main/java/org/onap/nbi/apis/serviceinventory/ServiceInventoryResource.java b/src/main/java/org/onap/nbi/apis/serviceinventory/ServiceInventoryResource.java index eda6f96..19ffac5 100644 --- a/src/main/java/org/onap/nbi/apis/serviceinventory/ServiceInventoryResource.java +++ b/src/main/java/org/onap/nbi/apis/serviceinventory/ServiceInventoryResource.java @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + package org.onap.nbi.apis.serviceinventory; import java.util.LinkedHashMap; @@ -58,5 +59,4 @@ public class ServiceInventoryResource extends ResourceManagement { } - } diff --git a/src/main/java/org/onap/nbi/apis/serviceinventory/ServiceInventoryService.java b/src/main/java/org/onap/nbi/apis/serviceinventory/ServiceInventoryService.java index 4abc3e8..7936d37 100644 --- a/src/main/java/org/onap/nbi/apis/serviceinventory/ServiceInventoryService.java +++ b/src/main/java/org/onap/nbi/apis/serviceinventory/ServiceInventoryService.java @@ -11,6 +11,7 @@ * or implied. See the License for the specific language governing permissions and limitations under * the License. */ + package org.onap.nbi.apis.serviceinventory; import java.util.ArrayList; @@ -32,182 +33,169 @@ import org.springframework.util.StringUtils; @Service public class ServiceInventoryService { - @Autowired - NbiClient nbiClient; + @Autowired + NbiClient nbiClient; - @Autowired - AaiClient aaiClient; + @Autowired + AaiClient aaiClient; - @Autowired - GetServiceInventoryJsonTransformer getServiceInventoryJsonTransformer; + @Autowired + GetServiceInventoryJsonTransformer getServiceInventoryJsonTransformer; - @Autowired - FindServiceInventoryJsonTransformer findServiceInventoryJsonTransformer; + @Autowired + FindServiceInventoryJsonTransformer findServiceInventoryJsonTransformer; - private static final Logger LOGGER = LoggerFactory.getLogger(ServiceInventoryService.class); + private static final Logger LOGGER = LoggerFactory.getLogger(ServiceInventoryService.class); + public Map get(String serviceId, MultiValueMap<String, String> params) { - public Map get(String serviceId, MultiValueMap<String, String> params) { + Map serviceResponse = aaiClient.getService(serviceId); + if (serviceResponse != null) { + addVnfsToResponse(serviceResponse); + LinkedHashMap serviceInventoryResponse = + (LinkedHashMap) getServiceInventoryJsonTransformer.transform(serviceResponse); + addrelatedPartyIdIdandSpecName(serviceId, serviceInventoryResponse); + String href = "service/" + serviceId; + serviceInventoryResponse.put("href", href); + return serviceInventoryResponse; + } else { + throw new BackendFunctionalException(HttpStatus.NOT_FOUND, "no catalog service found", + "no catalog service found"); + } - Map serviceResponse = aaiClient.getService(serviceId); - if (serviceResponse != null) { - addVnfsToResponse(serviceResponse); - LinkedHashMap serviceInventoryResponse = - (LinkedHashMap) getServiceInventoryJsonTransformer.transform(serviceResponse); - addrelatedPartyIdIdandSpecName(serviceId, serviceInventoryResponse); - String href = "service/" + serviceId; - serviceInventoryResponse.put("href", href ); - return serviceInventoryResponse; - } else { - throw new BackendFunctionalException(HttpStatus.NOT_FOUND, "no catalog service found", - "no catalog service found"); } - } + private String getCustomerId(String clientId) { + if (StringUtils.isEmpty(clientId)) { + return "generic"; + } else { + return clientId; + } - private String getCustomerId(String clientId) { - - if (StringUtils.isEmpty(clientId)) { - return "generic"; - } else { - return clientId; } - } + private String getServiceName(String serviceSpecificationName, String serviceSpecificationId) { - private String getServiceName(String serviceSpecificationName, String serviceSpecificationId) { + if (StringUtils.isEmpty(serviceSpecificationName)) { + Map serviceSpecification = nbiClient.getServiceSpecification(serviceSpecificationId); + return (String) serviceSpecification.get("name"); + } else { + return serviceSpecificationName; + } - if (StringUtils.isEmpty(serviceSpecificationName)) { - Map serviceSpecification = nbiClient.getServiceSpecification(serviceSpecificationId); - return (String) serviceSpecification.get("name"); - } else { - return serviceSpecificationName; } - } - - private void addrelatedPartyIdIdandSpecName(String serviceId, - LinkedHashMap serviceInventoryResponse) { - - String customerId; - String serviceSpecName; - LinkedHashMap relatedParty = (LinkedHashMap) serviceInventoryResponse.get("relatedParty"); - LinkedHashMap serviceSpecification = - (LinkedHashMap) serviceInventoryResponse.get("serviceSpecification"); - Map servicecustomerResponse = aaiClient.getServiceCustomer(serviceId); - if (servicecustomerResponse != null) { - List<LinkedHashMap> serviceCustomerResults = - (List<LinkedHashMap>) servicecustomerResponse.get("results"); - - if (!CollectionUtils.isEmpty(serviceCustomerResults)) { - for (LinkedHashMap serviceCustomerResult : serviceCustomerResults) { - String url = (String) serviceCustomerResult.get("url"); - String[] pathObjects = url.split("/"); - customerId = pathObjects[6]; - serviceSpecName = pathObjects[9]; - relatedParty.put("id", customerId); - serviceSpecification.put("name", serviceSpecName); + private void addrelatedPartyIdIdandSpecName(String serviceId, LinkedHashMap serviceInventoryResponse) { + + String customerId; + String serviceSpecName; + LinkedHashMap relatedParty = (LinkedHashMap) serviceInventoryResponse.get("relatedParty"); + LinkedHashMap serviceSpecification = (LinkedHashMap) serviceInventoryResponse.get("serviceSpecification"); + Map servicecustomerResponse = aaiClient.getServiceCustomer(serviceId); + if (servicecustomerResponse != null) { + List<LinkedHashMap> serviceCustomerResults = (List<LinkedHashMap>) servicecustomerResponse.get("results"); + + if (!CollectionUtils.isEmpty(serviceCustomerResults)) { + for (LinkedHashMap serviceCustomerResult : serviceCustomerResults) { + String url = (String) serviceCustomerResult.get("url"); + String[] pathObjects = url.split("/"); + customerId = pathObjects[6]; + serviceSpecName = pathObjects[9]; + relatedParty.put("id", customerId); + serviceSpecification.put("name", serviceSpecName); + } + } else { + LOGGER.warn("no service instance found for serviceId {}", serviceId); + } + } else { + LOGGER.warn("no service instance found for serviceId {}", serviceId); } - } else { - LOGGER.warn("no service instance found for serviceId {}", serviceId); - } - } else { - LOGGER.warn("no service instance found for serviceId {}", serviceId); } - } - - private void addVnfsToResponse(Map serviceResponse) { - - List<Map> vnfs = new ArrayList<>(); - LinkedHashMap relationShip = (LinkedHashMap) serviceResponse.get("relationship-list"); - if (relationShip != null) { - List<LinkedHashMap> relationsList = (List<LinkedHashMap>) relationShip.get("relationship"); - if (relationsList != null) { - for (LinkedHashMap relation : relationsList) { - String relatedLink = (String) relation.get("related-link"); - Map vnf = aaiClient.getVNF(relatedLink); - if (vnf != null) { - vnfs.add(vnf); - } + + private void addVnfsToResponse(Map serviceResponse) { + + List<Map> vnfs = new ArrayList<>(); + LinkedHashMap relationShip = (LinkedHashMap) serviceResponse.get("relationship-list"); + if (relationShip != null) { + List<LinkedHashMap> relationsList = (List<LinkedHashMap>) relationShip.get("relationship"); + if (relationsList != null) { + for (LinkedHashMap relation : relationsList) { + String relatedLink = (String) relation.get("related-link"); + Map vnf = aaiClient.getVNF(relatedLink); + if (vnf != null) { + vnfs.add(vnf); + } + } + serviceResponse.put("vnfs", vnfs); + } } - serviceResponse.put("vnfs", vnfs); - } - } - } - - - public List<LinkedHashMap> find(MultiValueMap<String, String> params) { - - String clientId = params.getFirst("relatedParty.id"); - String serviceSpecId = params.getFirst("serviceSpecification.id"); - String serviceSpecName = params.getFirst("serviceSpecification.name"); - String customerId = getCustomerId(clientId); - String serviceName; - List<LinkedHashMap> serviceInstances = new ArrayList<>(); - if (StringUtils.isEmpty(serviceSpecId) && StringUtils.isEmpty(serviceSpecName)) { - handleFindWithNoServiceParam(customerId, serviceInstances); - } else { - serviceName = getServiceName(serviceSpecName, serviceSpecId); - buildServiceInstances(serviceInstances, customerId, serviceName); } - List<LinkedHashMap> serviceInventoryResponse = new ArrayList<>(); - if (!CollectionUtils.isEmpty(serviceInstances)) { - serviceInventoryResponse = findServiceInventoryJsonTransformer.transform(serviceInstances); - for (LinkedHashMap serviceInventory : serviceInventoryResponse) { - String href = "service/" + serviceInventory.get("id"); - serviceInventory.put("href", href); - LinkedHashMap party = (LinkedHashMap) serviceInventory.get("relatedParty"); - party.put("id", customerId); - } - } else { - LOGGER.warn("no service instance found for customer {} ", customerId); - } - return serviceInventoryResponse; - - - } - - private void handleFindWithNoServiceParam(String customerId, - List<LinkedHashMap> serviceInstances) { - Map servicesInAaiForCustomer = aaiClient.getServicesInAaiForCustomer(customerId); - if (servicesInAaiForCustomer != null) { - List<LinkedHashMap> servicesInAAI = - (List<LinkedHashMap>) servicesInAaiForCustomer.get("service-subscription"); - for (LinkedHashMap service : servicesInAAI) { - String serviceType = (String) service.get("service-type"); - buildServiceInstances(serviceInstances, customerId, serviceType); - } - } else { - LOGGER.warn("no service instance found for customer {} ", customerId); - } - } - private void buildServiceInstances(List<LinkedHashMap> serviceInstances, String customerId, - String serviceType) { + public List<LinkedHashMap> find(MultiValueMap<String, String> params) { + + String clientId = params.getFirst("relatedParty.id"); + String serviceSpecId = params.getFirst("serviceSpecification.id"); + String serviceSpecName = params.getFirst("serviceSpecification.name"); + String customerId = getCustomerId(clientId); + String serviceName; + List<LinkedHashMap> serviceInstances = new ArrayList<>(); + if (StringUtils.isEmpty(serviceSpecId) && StringUtils.isEmpty(serviceSpecName)) { + handleFindWithNoServiceParam(customerId, serviceInstances); + } else { + serviceName = getServiceName(serviceSpecName, serviceSpecId); + buildServiceInstances(serviceInstances, customerId, serviceName); + } + List<LinkedHashMap> serviceInventoryResponse = new ArrayList<>(); + if (!CollectionUtils.isEmpty(serviceInstances)) { + serviceInventoryResponse = findServiceInventoryJsonTransformer.transform(serviceInstances); + for (LinkedHashMap serviceInventory : serviceInventoryResponse) { + String href = "service/" + serviceInventory.get("id"); + serviceInventory.put("href", href); + LinkedHashMap party = (LinkedHashMap) serviceInventory.get("relatedParty"); + party.put("id", customerId); + } + } else { + LOGGER.warn("no service instance found for customer {} ", customerId); + } + return serviceInventoryResponse; - Map serviceInstancesInAaiForCustomer = - aaiClient.getServiceInstancesInAaiForCustomer(customerId, serviceType); - if (serviceInstancesInAaiForCustomer != null) { - List<LinkedHashMap> serviceInstancesForServiceType = - (List<LinkedHashMap>) serviceInstancesInAaiForCustomer.get("service-instance"); + } - if (!CollectionUtils.isEmpty(serviceInstancesForServiceType)) { - // add service type for jolt - for (LinkedHashMap serviceInstanceForServiceType : serviceInstancesForServiceType) { - serviceInstanceForServiceType.put("service-type", serviceType); + private void handleFindWithNoServiceParam(String customerId, List<LinkedHashMap> serviceInstances) { + Map servicesInAaiForCustomer = aaiClient.getServicesInAaiForCustomer(customerId); + if (servicesInAaiForCustomer != null) { + List<LinkedHashMap> servicesInAAI = + (List<LinkedHashMap>) servicesInAaiForCustomer.get("service-subscription"); + for (LinkedHashMap service : servicesInAAI) { + String serviceType = (String) service.get("service-type"); + buildServiceInstances(serviceInstances, customerId, serviceType); + } + } else { + LOGGER.warn("no service instance found for customer {} ", customerId); } - serviceInstances.addAll(serviceInstancesForServiceType); - } else { - LOGGER.warn("no service instance found for customer {} and service type {}", customerId, - serviceType); - } - } else { - LOGGER.warn("no service instance found for customer {} and service type {}", customerId, - serviceType); } + private void buildServiceInstances(List<LinkedHashMap> serviceInstances, String customerId, String serviceType) { + + Map serviceInstancesInAaiForCustomer = aaiClient.getServiceInstancesInAaiForCustomer(customerId, serviceType); + if (serviceInstancesInAaiForCustomer != null) { + List<LinkedHashMap> serviceInstancesForServiceType = + (List<LinkedHashMap>) serviceInstancesInAaiForCustomer.get("service-instance"); + + if (!CollectionUtils.isEmpty(serviceInstancesForServiceType)) { + // add service type for jolt + for (LinkedHashMap serviceInstanceForServiceType : serviceInstancesForServiceType) { + serviceInstanceForServiceType.put("service-type", serviceType); + } + serviceInstances.addAll(serviceInstancesForServiceType); + } else { + LOGGER.warn("no service instance found for customer {} and service type {}", customerId, serviceType); + } + } else { + LOGGER.warn("no service instance found for customer {} and service type {}", customerId, serviceType); + } - } + } } diff --git a/src/main/java/org/onap/nbi/apis/serviceinventory/jolt/FindServiceInventoryJsonTransformer.java b/src/main/java/org/onap/nbi/apis/serviceinventory/jolt/FindServiceInventoryJsonTransformer.java index 70fe0c8..122dffe 100644 --- a/src/main/java/org/onap/nbi/apis/serviceinventory/jolt/FindServiceInventoryJsonTransformer.java +++ b/src/main/java/org/onap/nbi/apis/serviceinventory/jolt/FindServiceInventoryJsonTransformer.java @@ -11,6 +11,7 @@ * or implied. See the License for the specific language governing permissions and limitations under * the License. */ + package org.onap.nbi.apis.serviceinventory.jolt; import com.bazaarvoice.jolt.Chainr; @@ -37,7 +38,7 @@ public class FindServiceInventoryJsonTransformer { public List<LinkedHashMap> transform(List<LinkedHashMap> serviceSpec) { try { - return (List<LinkedHashMap>)chainr.transform(serviceSpec); + return (List<LinkedHashMap>) chainr.transform(serviceSpec); } catch (JoltException joE) { LOGGER.error("Unable to transform SDC response with JOLT Transformer", joE); throw new TechnicalException("Error while parsing ONAP response"); diff --git a/src/main/java/org/onap/nbi/apis/serviceinventory/jolt/GetServiceInventoryJsonTransformer.java b/src/main/java/org/onap/nbi/apis/serviceinventory/jolt/GetServiceInventoryJsonTransformer.java index b1d2566..09acd54 100644 --- a/src/main/java/org/onap/nbi/apis/serviceinventory/jolt/GetServiceInventoryJsonTransformer.java +++ b/src/main/java/org/onap/nbi/apis/serviceinventory/jolt/GetServiceInventoryJsonTransformer.java @@ -11,6 +11,7 @@ * or implied. See the License for the specific language governing permissions and limitations under * the License. */ + package org.onap.nbi.apis.serviceinventory.jolt; import java.util.List; @@ -29,7 +30,6 @@ public class GetServiceInventoryJsonTransformer { private static final Logger LOGGER = LoggerFactory.getLogger(GetServiceInventoryJsonTransformer.class); - public GetServiceInventoryJsonTransformer() { List<Object> specs = JsonUtils.classpathToList("/jolt/getServiceInventory.json"); this.chainr = Chainr.fromSpec(specs); |