From aaa80aac8b362ee2adbf2a4b90d3397f4335b55a Mon Sep 17 00:00:00 2001 From: seanbeirne Date: Mon, 24 Nov 2025 13:44:00 +0000 Subject: [PATCH] Fix Sonarcube violations - Extracted NOT READY to static variable - Restructured Try catch blocks in controller - Resolved minor code smells Issue-ID: CPS-475 Change-Id: I25b7ac93e4d8bff46ab9281b55ac05e479ef2e31 Signed-off-by: seanbeirne --- .../ncmp/rest/controller/ProvMnsController.java | 113 +++++++++------------ .../impl/data/policyexecutor/PolicyExecutor.java | 2 +- .../org/onap/cps/ncmp/impl/dmi/DmiRestClient.java | 12 +-- 3 files changed, 56 insertions(+), 71 deletions(-) diff --git a/cps-ncmp-rest/src/main/java/org/onap/cps/ncmp/rest/controller/ProvMnsController.java b/cps-ncmp-rest/src/main/java/org/onap/cps/ncmp/rest/controller/ProvMnsController.java index fc7129cb50..76a2b57f56 100644 --- a/cps-ncmp-rest/src/main/java/org/onap/cps/ncmp/rest/controller/ProvMnsController.java +++ b/cps-ncmp-rest/src/main/java/org/onap/cps/ncmp/rest/controller/ProvMnsController.java @@ -79,13 +79,7 @@ public class ProvMnsController implements ProvMnS { final YangModelCmHandle yangModelCmHandle = inventoryPersistence.getYangModelCmHandle( alternateIdMatcher.getCmHandleIdByLongestMatchingAlternateId( requestPathParameters.toAlternateId(), "/")); - try { - checkTarget(yangModelCmHandle); - } catch (final ProvMnSException exception) { - final HttpStatus httpStatus = "NOT READY".equals(exception.getMessage()) - ? HttpStatus.NOT_ACCEPTABLE : HttpStatus.UNPROCESSABLE_ENTITY; - return errorResponseBuilder.buildErrorResponseGet(httpStatus, exception.getDetails()); - } + checkTarget(yangModelCmHandle); final UrlTemplateParameters urlTemplateParameters = parametersBuilder.createUrlTemplateParametersForRead( scope, filter, attributes, fields, dataNodeSelector, yangModelCmHandle, requestPathParameters); return dmiRestClient.synchronousGetOperation( @@ -93,6 +87,9 @@ public class ProvMnsController implements ProvMnS { } catch (final NoAlternateIdMatchFoundException noAlternateIdMatchFoundException) { final String reason = buildNotFoundMessage(requestPathParameters.toAlternateId()); return errorResponseBuilder.buildErrorResponseGet(HttpStatus.NOT_FOUND, reason); + } catch (final ProvMnSException exception) { + return errorResponseBuilder.buildErrorResponseGet( + getHttpStatusForProvMnSException(exception), exception.getDetails()); } } @@ -105,25 +102,14 @@ public class ProvMnsController implements ProvMnS { final YangModelCmHandle yangModelCmHandle = inventoryPersistence.getYangModelCmHandle( alternateIdMatcher.getCmHandleIdByLongestMatchingAlternateId( requestPathParameters.toAlternateId(), "/")); - try { - checkTarget(yangModelCmHandle); - } catch (final ProvMnSException exception) { - final HttpStatus httpStatus = "NOT READY".equals(exception.getMessage()) - ? HttpStatus.NOT_ACCEPTABLE : HttpStatus.UNPROCESSABLE_ENTITY; - return errorResponseBuilder.buildErrorResponsePatch(httpStatus, exception.getDetails()); - } - try { - policyExecutor.checkPermission(yangModelCmHandle, - OperationType.CREATE, - NO_AUTHORIZATION, - requestPathParameters.toAlternateId(), - jsonObjectMapper.asJsonString(policyExecutor.buildPatchOperationDetails( - requestPathParameters, patchItems)) - ); - } catch (final RuntimeException exception) { - // Policy Executor Denied Execution - return errorResponseBuilder.buildErrorResponsePatch(HttpStatus.NOT_ACCEPTABLE, exception.getMessage()); - } + checkTarget(yangModelCmHandle); + policyExecutor.checkPermission(yangModelCmHandle, + OperationType.CREATE, + NO_AUTHORIZATION, + requestPathParameters.toAlternateId(), + jsonObjectMapper.asJsonString( + policyExecutor.buildPatchOperationDetails(requestPathParameters, patchItems)) + ); final UrlTemplateParameters urlTemplateParameters = parametersBuilder.createUrlTemplateParametersForWrite(yangModelCmHandle, requestPathParameters); return dmiRestClient.synchronousPatchOperation(RequiredDmiService.DATA, patchItems, @@ -131,6 +117,11 @@ public class ProvMnsController implements ProvMnS { } catch (final NoAlternateIdMatchFoundException noAlternateIdMatchFoundException) { final String reason = buildNotFoundMessage(requestPathParameters.toAlternateId()); return errorResponseBuilder.buildErrorResponsePatch(HttpStatus.NOT_FOUND, reason); + } catch (final ProvMnSException exception) { + return errorResponseBuilder.buildErrorResponsePatch( + getHttpStatusForProvMnSException(exception), exception.getDetails()); + } catch (final RuntimeException exception) { + return errorResponseBuilder.buildErrorResponsePatch(HttpStatus.NOT_ACCEPTABLE, exception.getMessage()); } } @@ -142,31 +133,25 @@ public class ProvMnsController implements ProvMnS { final YangModelCmHandle yangModelCmHandle = inventoryPersistence.getYangModelCmHandle( alternateIdMatcher.getCmHandleIdByLongestMatchingAlternateId( requestPathParameters.toAlternateId(), "/")); - try { - checkTarget(yangModelCmHandle); - } catch (final ProvMnSException exception) { - final HttpStatus httpStatus = "NOT READY".equals(exception.getMessage()) - ? HttpStatus.NOT_ACCEPTABLE : HttpStatus.UNPROCESSABLE_ENTITY; - return errorResponseBuilder.buildErrorResponseDefault(httpStatus, exception.getDetails()); - } - try { - policyExecutor.checkPermission(yangModelCmHandle, - OperationType.CREATE, - NO_AUTHORIZATION, - requestPathParameters.toAlternateId(), - jsonObjectMapper.asJsonString(policyExecutor.buildCreateOperationDetails( - OperationType.CREATE, requestPathParameters, resource)) - ); - } catch (final RuntimeException exception) { - return errorResponseBuilder.buildErrorResponseDefault(HttpStatus.NOT_ACCEPTABLE, - exception.getMessage()); - } + checkTarget(yangModelCmHandle); + policyExecutor.checkPermission(yangModelCmHandle, + OperationType.CREATE, + NO_AUTHORIZATION, + requestPathParameters.toAlternateId(), + jsonObjectMapper.asJsonString( + policyExecutor.buildCreateOperationDetails(OperationType.CREATE, requestPathParameters, resource)) + ); final UrlTemplateParameters urlTemplateParameters = parametersBuilder.createUrlTemplateParametersForWrite(yangModelCmHandle, requestPathParameters); return dmiRestClient.synchronousPutOperation(RequiredDmiService.DATA, resource, urlTemplateParameters); } catch (final NoAlternateIdMatchFoundException noAlternateIdMatchFoundException) { final String reason = buildNotFoundMessage(requestPathParameters.toAlternateId()); return errorResponseBuilder.buildErrorResponseDefault(HttpStatus.NOT_FOUND, reason); + } catch (final ProvMnSException exception) { + return errorResponseBuilder.buildErrorResponseDefault( + getHttpStatusForProvMnSException(exception), exception.getDetails()); + } catch (final RuntimeException exception) { + return errorResponseBuilder.buildErrorResponseDefault(HttpStatus.NOT_ACCEPTABLE, exception.getMessage()); } } @@ -178,31 +163,26 @@ public class ProvMnsController implements ProvMnS { final YangModelCmHandle yangModelCmHandle = inventoryPersistence.getYangModelCmHandle( alternateIdMatcher.getCmHandleIdByLongestMatchingAlternateId( requestPathParameters.toAlternateId(), "/")); - try { - checkTarget(yangModelCmHandle); - } catch (final ProvMnSException exception) { - final HttpStatus httpStatus = "NOT READY".equals(exception.getMessage()) - ? HttpStatus.NOT_ACCEPTABLE : HttpStatus.UNPROCESSABLE_ENTITY; - return errorResponseBuilder.buildErrorResponseDefault(httpStatus, exception.getDetails()); - } - try { - policyExecutor.checkPermission(yangModelCmHandle, - OperationType.DELETE, - NO_AUTHORIZATION, - requestPathParameters.toAlternateId(), - jsonObjectMapper.asJsonString(policyExecutor.buildDeleteOperationDetails( - requestPathParameters.toAlternateId())) - ); - } catch (final RuntimeException exception) { - return errorResponseBuilder.buildErrorResponseDefault(HttpStatus.NOT_ACCEPTABLE, - exception.getMessage()); - } + checkTarget(yangModelCmHandle); + policyExecutor.checkPermission(yangModelCmHandle, + OperationType.DELETE, + NO_AUTHORIZATION, + requestPathParameters.toAlternateId(), + jsonObjectMapper.asJsonString( + policyExecutor.buildDeleteOperationDetails(requestPathParameters.toAlternateId())) + ); final UrlTemplateParameters urlTemplateParameters = parametersBuilder.createUrlTemplateParametersForWrite(yangModelCmHandle, requestPathParameters); return dmiRestClient.synchronousDeleteOperation(RequiredDmiService.DATA, urlTemplateParameters); } catch (final NoAlternateIdMatchFoundException noAlternateIdMatchFoundException) { final String reason = buildNotFoundMessage(requestPathParameters.toAlternateId()); return errorResponseBuilder.buildErrorResponseDefault(HttpStatus.NOT_FOUND, reason); + } catch (final ProvMnSException exception) { + return errorResponseBuilder.buildErrorResponseDefault( + getHttpStatusForProvMnSException(exception), exception.getDetails()); + } catch (final RuntimeException exception) { + return errorResponseBuilder.buildErrorResponseDefault(HttpStatus.NOT_ACCEPTABLE, + exception.getMessage()); } } @@ -224,4 +204,9 @@ public class ProvMnsController implements ProvMnS { return alternateId + " not found"; } + private HttpStatus getHttpStatusForProvMnSException(final ProvMnSException exception) { + return "NOT READY".equals(exception.getMessage()) + ? HttpStatus.NOT_ACCEPTABLE : HttpStatus.UNPROCESSABLE_ENTITY; + } + } diff --git a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/data/policyexecutor/PolicyExecutor.java b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/data/policyexecutor/PolicyExecutor.java index 8e21f9cae6..b477954e05 100644 --- a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/data/policyexecutor/PolicyExecutor.java +++ b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/data/policyexecutor/PolicyExecutor.java @@ -147,7 +147,7 @@ public class PolicyExecutor { case REMOVE -> operations.add( buildDeleteOperationDetails(requestPathParameters.toAlternateId())); default -> log.warn("Unsupported Patch Operation Type:{}", patchItem.getOp().getValue()); - }; + } } return new PatchOperationsDetails("Some Permission Id", CHANGE_REQUEST_FORMAT, operations); } diff --git a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/dmi/DmiRestClient.java b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/dmi/DmiRestClient.java index 17693a04c4..96199f94b5 100644 --- a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/dmi/DmiRestClient.java +++ b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/dmi/DmiRestClient.java @@ -276,12 +276,12 @@ public class DmiRestClient { final HttpStatus status = (HttpStatus) clientResponse.statusCode(); return clientResponse.bodyToMono(String.class) .defaultIfEmpty("") - .map(body -> { - return ResponseEntity - .status(status) - .headers(clientResponse.headers().asHttpHeaders()) - .body(body); - }); + .map(body -> + ResponseEntity + .status(status) + .headers(clientResponse.headers().asHttpHeaders()) + .body(body) + ); } } -- 2.16.6