X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;ds=sidebyside;f=cps-ncmp-rest%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Fcps%2Fncmp%2Frest%2Fcontroller%2FNetworkCmProxyInventoryController.java;h=5467eeffcae6921f20e47185ca316695e6fe673a;hb=HEAD;hp=cd61c5a4a5801b34106a097f9fd14c3cf8eb3435;hpb=4bc19fe118ca7d81891c12d40719a569bc528a21;p=cps.git diff --git a/cps-ncmp-rest/src/main/java/org/onap/cps/ncmp/rest/controller/NetworkCmProxyInventoryController.java b/cps-ncmp-rest/src/main/java/org/onap/cps/ncmp/rest/controller/NetworkCmProxyInventoryController.java old mode 100755 new mode 100644 index cd61c5a4a5..055ac7e4b8 --- a/cps-ncmp-rest/src/main/java/org/onap/cps/ncmp/rest/controller/NetworkCmProxyInventoryController.java +++ b/cps-ncmp-rest/src/main/java/org/onap/cps/ncmp/rest/controller/NetworkCmProxyInventoryController.java @@ -1,7 +1,7 @@ /* * ============LICENSE_START======================================================= * Copyright (C) 2021-2022 Bell Canada - * Modifications Copyright (C) 2022-2023 Nordix Foundation + * Modifications Copyright (C) 2022-2025 OpenInfra Foundation Europe. 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. @@ -27,16 +27,22 @@ import java.util.Collection; import java.util.List; import java.util.stream.Collectors; import lombok.RequiredArgsConstructor; -import org.onap.cps.ncmp.api.NetworkCmProxyDataService; -import org.onap.cps.ncmp.api.models.CmHandleQueryServiceParameters; -import org.onap.cps.ncmp.api.models.CmHandleRegistrationResponse; -import org.onap.cps.ncmp.api.models.CmHandleRegistrationResponse.Status; -import org.onap.cps.ncmp.api.models.DmiPluginRegistrationResponse; +import org.onap.cps.ncmp.api.inventory.NetworkCmProxyInventoryFacade; +import org.onap.cps.ncmp.api.inventory.models.CmHandleQueryApiParameters; +import org.onap.cps.ncmp.api.inventory.models.CmHandleQueryServiceParameters; +import org.onap.cps.ncmp.api.inventory.models.CmHandleRegistrationResponse; +import org.onap.cps.ncmp.api.inventory.models.CmHandleRegistrationResponse.Status; +import org.onap.cps.ncmp.api.inventory.models.DmiPluginRegistrationResponse; import org.onap.cps.ncmp.rest.api.NetworkCmProxyInventoryApi; import org.onap.cps.ncmp.rest.model.CmHandleQueryParameters; import org.onap.cps.ncmp.rest.model.CmHandlerRegistrationErrorResponse; import org.onap.cps.ncmp.rest.model.DmiPluginRegistrationErrorResponse; import org.onap.cps.ncmp.rest.model.RestDmiPluginRegistration; +import org.onap.cps.ncmp.rest.model.RestOutputCmHandle; +import org.onap.cps.ncmp.rest.util.CountCmHandleSearchExecution; +import org.onap.cps.ncmp.rest.util.DeprecationHelper; +import org.onap.cps.ncmp.rest.util.NcmpRestInputMapper; +import org.onap.cps.ncmp.rest.util.RestOutputCmHandleMapper; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.RequestMapping; @@ -47,29 +53,69 @@ import org.springframework.web.bind.annotation.RestController; @RequiredArgsConstructor public class NetworkCmProxyInventoryController implements NetworkCmProxyInventoryApi { - private final NetworkCmProxyDataService networkCmProxyDataService; + private final NetworkCmProxyInventoryFacade networkCmProxyInventoryFacade; private final NcmpRestInputMapper ncmpRestInputMapper; + private final DeprecationHelper deprecationHelper; + private final RestOutputCmHandleMapper restOutputCmHandleMapper; + /** + * Get all cm handle references under a registered DMI plugin. + * + * @param cmHandleQueryParameters DMI plugin identifier + * @param outputAlternateId Boolean for cm handle reference type either + * cm handle id (False) or alternate id (True) + * @return list of cm handle IDs + */ @Override - public ResponseEntity> searchCmHandleIds(final CmHandleQueryParameters cmHandleQueryParameters) { + @CountCmHandleSearchExecution(methodName = "searchCmHandleIds", interfaceName = "CPS-NCMP-I-01", + description = "Search for cm handle ids within CPS-NCMP-I-01 interface") + public ResponseEntity> searchCmHandleIds(final CmHandleQueryParameters cmHandleQueryParameters, + final Boolean outputAlternateId) { final CmHandleQueryServiceParameters cmHandleQueryServiceParameters = ncmpRestInputMapper .toCmHandleQueryServiceParameters(cmHandleQueryParameters); - final Collection cmHandleIds = networkCmProxyDataService - .executeCmHandleIdSearchForInventory(cmHandleQueryServiceParameters); + final Collection cmHandleIds = networkCmProxyInventoryFacade + .southboundCmHandleIdSearch(cmHandleQueryServiceParameters, outputAlternateId); return ResponseEntity.ok(List.copyOf(cmHandleIds)); } + /** + * Execute cm handle query search and return a list of cm handle details. Any number of conditions can be applied. + * + * @param cmHandleQueryParameters the cm handle query parameters + * @param includeCmHandlePropertiesInQuery boolean value to determine the inclusion of additional properties + * @return collection of cm handles + */ + @Override + public ResponseEntity> searchCmHandles( + final CmHandleQueryParameters cmHandleQueryParameters, + final Boolean includeCmHandlePropertiesInQuery) { + final CmHandleQueryApiParameters cmHandleQueryApiParameters = + deprecationHelper.mapOldConditionProperties(cmHandleQueryParameters); + final boolean includeCmHandlePropertiesParameter = Boolean.TRUE.equals(includeCmHandlePropertiesInQuery); + final List restOutputCmHandles = + networkCmProxyInventoryFacade.southboundCmHandleSearch(cmHandleQueryApiParameters) + .map(handle -> restOutputCmHandleMapper + .toRestOutputCmHandle(handle, includeCmHandlePropertiesParameter)) + .collectList().block(); + return ResponseEntity.ok(restOutputCmHandles); + } + /** * Get all cm-handle IDs under a registered DMI plugin. * * @param dmiPluginIdentifier DMI plugin identifier + * @param outputAlternateId Boolean for cm handle reference type either + * cm handle id (False) or alternate id (True) * @return list of cm handle IDs */ @Override - public ResponseEntity> getAllCmHandleIdsForRegisteredDmi(final String dmiPluginIdentifier) { + public ResponseEntity> getAllCmHandleReferencesForRegisteredDmi(final String dmiPluginIdentifier, + final Boolean outputAlternateId) { + final Collection cmHandleIds = - networkCmProxyDataService.getAllCmHandleIdsByDmiPluginIdentifier(dmiPluginIdentifier); + networkCmProxyInventoryFacade.getAllCmHandleReferencesByDmiPluginIdentifier(dmiPluginIdentifier, + outputAlternateId); return ResponseEntity.ok(List.copyOf(cmHandleIds)); } @@ -84,7 +130,7 @@ public class NetworkCmProxyInventoryController implements NetworkCmProxyInventor public ResponseEntity updateDmiPluginRegistration( final @Valid RestDmiPluginRegistration restDmiPluginRegistration) { final DmiPluginRegistrationResponse dmiPluginRegistrationResponse = - networkCmProxyDataService.updateDmiRegistrationAndSyncModule( + networkCmProxyInventoryFacade.updateDmiRegistration( ncmpRestInputMapper.toDmiPluginRegistration(restDmiPluginRegistration)); final DmiPluginRegistrationErrorResponse failedRegistrationErrorResponse = getFailureRegistrationResponse(dmiPluginRegistrationResponse); @@ -96,8 +142,9 @@ public class NetworkCmProxyInventoryController implements NetworkCmProxyInventor private boolean allRegistrationsSuccessful( final DmiPluginRegistrationErrorResponse dmiPluginRegistrationErrorResponse) { return dmiPluginRegistrationErrorResponse.getFailedCreatedCmHandles().isEmpty() - && dmiPluginRegistrationErrorResponse.getFailedUpdatedCmHandles().isEmpty() - && dmiPluginRegistrationErrorResponse.getFailedRemovedCmHandles().isEmpty(); + && dmiPluginRegistrationErrorResponse.getFailedUpdatedCmHandles().isEmpty() + && dmiPluginRegistrationErrorResponse.getFailedRemovedCmHandles().isEmpty() + && dmiPluginRegistrationErrorResponse.getFailedUpgradeCmHandles().isEmpty(); } private DmiPluginRegistrationErrorResponse getFailureRegistrationResponse( @@ -110,16 +157,16 @@ public class NetworkCmProxyInventoryController implements NetworkCmProxyInventor getFailedResponses(dmiPluginRegistrationResponse.getUpdatedCmHandles())); dmiPluginRegistrationErrorResponse.setFailedRemovedCmHandles( getFailedResponses(dmiPluginRegistrationResponse.getRemovedCmHandles())); - + dmiPluginRegistrationErrorResponse.setFailedUpgradeCmHandles( + getFailedResponses(dmiPluginRegistrationResponse.getUpgradedCmHandles())); return dmiPluginRegistrationErrorResponse; } private List getFailedResponses( - final List cmHandleRegistrationResponseList) { + final List cmHandleRegistrationResponseList) { return cmHandleRegistrationResponseList.stream() - .filter(cmHandleRegistrationResponse -> cmHandleRegistrationResponse.getStatus() == Status.FAILURE) - .map(this::toCmHandleRegistrationErrorResponse) - .collect(Collectors.toList()); + .filter(cmHandleRegistrationResponse -> cmHandleRegistrationResponse.getStatus() == Status.FAILURE) + .map(this::toCmHandleRegistrationErrorResponse).collect(Collectors.toList()); } private CmHandlerRegistrationErrorResponse toCmHandleRegistrationErrorResponse(