Revert "Update error response for ncmp endpoints" 88/139488/1
authorToineSiebelink <toine.siebelink@est.tech>
Wed, 20 Nov 2024 08:21:23 +0000 (08:21 +0000)
committerToineSiebelink <toine.siebelink@est.tech>
Wed, 20 Nov 2024 08:21:23 +0000 (08:21 +0000)
This reverts commit 7e6fee9321e4f13cc4a0d81f83fc3693309cb5d7.

Reason for revert: This patch is causing blocking issues at ESH see CPS-2509
Issue-ID: CPS-2509
Change-Id: Ie1bd26ccca4abcac09faf35e2b97491dab32b14d
Signed-off-by: ToineSiebelink <toine.siebelink@est.tech>
15 files changed:
cps-ncmp-rest/docs/openapi/components.yaml
cps-ncmp-rest/docs/openapi/ncmp.yml
cps-ncmp-rest/src/main/java/org/onap/cps/ncmp/rest/controller/NetworkCmProxyRestExceptionHandler.java
cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/NcmpResponseStatus.java
cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/exceptions/CmHandleNotFoundException.java [deleted file]
cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/inventory/NetworkCmProxyInventoryFacade.java
cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/inventory/CmHandleQueryService.java
cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/inventory/InventoryPersistence.java
cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/inventory/InventoryPersistenceImpl.java
cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/impl/inventory/CmHandleRegistrationServicePropertyHandlerSpec.groovy
cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/impl/inventory/CmHandleRegistrationServiceSpec.groovy
cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/impl/inventory/InventoryPersistenceImplSpec.groovy
cps-ncmp-service/src/test/resources/dataOperationResponseEvent.json
docs/api/swagger/ncmp/openapi-inventory.yaml
docs/api/swagger/ncmp/openapi.yaml

index 637a138..e564c6b 100644 (file)
@@ -516,7 +516,7 @@ components:
     outputAlternateIdOptionInQuery:
       name: outputAlternateId
       in: query
-      description: Boolean parameter to determine if returned value(s) will be cm handle ids or alternate ids for a given query
+      description: Boolean parameter to determine if returned value(s) will be cm handle Ids or alternate Ids for a given query
       required: false
       schema:
         type: boolean
index 15b8b37..4624bc1 100755 (executable)
@@ -417,7 +417,7 @@ getCmHandleStateById:
 
 searchCmHandleIds:
   post:
-    description: Execute cm handle query search and return a list of cm handle references. Any number of conditions can be applied. To be included in the result a cm handle must fulfill ALL the conditions. An empty collection will be returned in the case that the cm handle does not match a condition. For more on cm handle query search please refer to <a href="https://docs.onap.org/projects/onap-cps/en/latest/ncmp-cmhandle-querying.html">cm handle query search Read the Docs</a>.<br/>By supplying a CPS Path it is possible to query on any data related to the cm handle. For more on CPS Path please refer to <a href="https://docs.onap.org/projects/onap-cps/en/latest/cps-path.html">CPS Path Read the Docs</a>. The cm handle ancestor is automatically returned for this query.
+    description: Execute cm handle query search and return a list of cm handle references. Any number of conditions can be applied. To be included in the result a cm-handle must fulfill ALL the conditions. An empty collection will be returned in the case that the cm handle does not match a condition. For more on cm handle query search please refer to <a href="https://docs.onap.org/projects/onap-cps/en/latest/ncmp-cmhandle-querying.html">cm handle query search Read the Docs</a>.<br/>By supplying a CPS Path it is possible to query on any data related to the cm handle. For more on CPS Path please refer to <a href="https://docs.onap.org/projects/onap-cps/en/latest/cps-path.html">CPS Path Read the Docs</a>. The cm handle ancestor is automatically returned for this query.
     tags:
       - network-cm-proxy
     summary: Execute cm handle query upon a given set of query parameters
index 7255743..6910003 100644 (file)
@@ -26,7 +26,6 @@ import lombok.extern.slf4j.Slf4j;
 import org.onap.cps.ncmp.api.data.exceptions.InvalidDatastoreException;
 import org.onap.cps.ncmp.api.data.exceptions.InvalidOperationException;
 import org.onap.cps.ncmp.api.data.exceptions.OperationNotSupportedException;
-import org.onap.cps.ncmp.api.exceptions.CmHandleNotFoundException;
 import org.onap.cps.ncmp.api.exceptions.DmiClientRequestException;
 import org.onap.cps.ncmp.api.exceptions.DmiRequestException;
 import org.onap.cps.ncmp.api.exceptions.InvalidTopicException;
@@ -91,8 +90,8 @@ public class NetworkCmProxyRestExceptionHandler {
         return buildErrorResponse(HttpStatus.CONFLICT, exception);
     }
 
-    @ExceptionHandler({CmHandleNotFoundException.class, DataNodeNotFoundException.class})
-    public static ResponseEntity<Object> cmHandleNotFoundExceptions(final Exception exception) {
+    @ExceptionHandler({DataNodeNotFoundException.class})
+    public static ResponseEntity<Object> handleNotFoundExceptions(final Exception exception) {
         return buildErrorResponse(HttpStatus.NOT_FOUND, exception);
     }
 
index be22752..8cfad7d 100644 (file)
@@ -27,14 +27,14 @@ public enum NcmpResponseStatus {
 
     SUCCESS("0", "Successfully applied changes"),
     CM_DATA_SUBSCRIPTION_ACCEPTED("1", "ACCEPTED"),
-    CM_HANDLES_NOT_FOUND("100", "cm handle reference(s) not found"),
+    CM_HANDLES_NOT_FOUND("100", "cm handle id(s) not found"),
     CM_HANDLES_NOT_READY("101", "cm handle(s) not ready"),
     DMI_SERVICE_NOT_RESPONDING("102", "dmi plugin service is not responding"),
     UNABLE_TO_READ_RESOURCE_DATA("103", "dmi plugin service is not able to read resource data"),
     CM_DATA_SUBSCRIPTION_REJECTED("104", "REJECTED"),
     UNKNOWN_ERROR("108", "Unknown error"),
     CM_HANDLE_ALREADY_EXIST("109", "cm-handle already exists"),
-    CM_HANDLE_INVALID_ID("110", "cm handle reference has an invalid character(s) in id"),
+    CM_HANDLE_INVALID_ID("110", "cm-handle has an invalid character(s) in id"),
     ALTERNATE_ID_ALREADY_ASSOCIATED("111", "alternate id already associated"),
     MESSAGE_TOO_LARGE("112", "message too large");
 
diff --git a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/exceptions/CmHandleNotFoundException.java b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/exceptions/CmHandleNotFoundException.java
deleted file mode 100644 (file)
index 715e1a0..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- *  ============LICENSE_START=======================================================
- *  Copyright (C) 2024 Nordix Foundation
- *  ================================================================================
- *  Licensed under the Apache License, Version 2.0 (the "License");
- *  you may not use this file except in compliance with the License.
- *  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on 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.
- *
- *  SPDX-License-Identifier: Apache-2.0
- *  ============LICENSE_END=========================================================
- */
-
-package org.onap.cps.ncmp.api.exceptions;
-
-public class CmHandleNotFoundException extends NcmpException {
-
-    private static final String CM_HANDLE_NOT_FOUND_DETAILS_FORMAT =
-        "No cm handles found with reference %s";
-
-    /**
-     * Constructor.
-     *
-     * @param cmHandleReference cm handle reference either cm handle id or alternate id
-     */
-    public CmHandleNotFoundException(final String cmHandleReference) {
-        super("Cm handle not found", String.format(CM_HANDLE_NOT_FOUND_DETAILS_FORMAT,
-            cmHandleReference));
-    }
-
-}
index f0547d3..a899687 100644 (file)
@@ -78,7 +78,7 @@ public class NetworkCmProxyInventoryFacade {
      * Get all cm handle references by DMI plugin identifier.
      *
      * @param dmiPluginIdentifier DMI plugin identifier
-     * @param outputAlternateId   boolean for cm handle reference type either
+     * @param outputAlternateId   Boolean for cm handle reference type either
      *                            cm handle id (false) or alternate id (true)
      * @return collection of cm handle references
      */
@@ -91,7 +91,7 @@ public class NetworkCmProxyInventoryFacade {
      * Get all cm handle IDs by various properties.
      *
      * @param cmHandleQueryServiceParameters cm handle query parameters
-     * @param outputAlternateId              boolean for cm handle reference type either
+     * @param outputAlternateId              Boolean for cm handle reference type either
      *                                       cm handle id (false) or alternate id (true)
      * @return                               collection of cm handle references
      */
@@ -162,7 +162,7 @@ public class NetworkCmProxyInventoryFacade {
      * Retrieve cm handle ids for the given query parameters.
      *
      * @param cmHandleQueryApiParameters cm handle query parameters
-     * @param outputAlternateId boolean for cm handle reference type either cmHandleId (false) or AlternateId (true)
+     * @param outputAlternateId Boolean for cm handle reference type either cmHandleId (false) or AlternateId (true)
      * @return cm handle ids
      */
     public Collection<String> executeCmHandleIdSearch(final CmHandleQueryApiParameters cmHandleQueryApiParameters,
index 415153d..74c0492 100644 (file)
@@ -103,8 +103,8 @@ public interface CmHandleQueryService {
      * Get collection of all cm handles references by DMI plugin identifier and alternate id output option.
      *
      * @param dmiPluginIdentifier DMI plugin identifier
-     * @param outputAlternateId   boolean for cm handle reference type either cmHandleId (false) or AlternateId (true)
-     * @return collection of cm handle references
+     * @param outputAlternateId   Boolean for cm handle reference type either cmHandleId (false) or AlternateId (true)
+     * @return collection of cm handle ids
      */
     Collection<String> getCmHandleReferencesByDmiPluginIdentifier(String dmiPluginIdentifier,
                                                                   boolean outputAlternateId);
index 562cb6e..61d7df9 100644 (file)
@@ -157,12 +157,12 @@ public interface InventoryPersistence extends NcmpPersistence {
      * get CM handles that has given module names.
      *
      * @param moduleNamesForQuery module names
-     * @param outputAlternateId  boolean for cm handle reference type either
+     * @param outputAlternateIds  Boolean for cm handle reference type either
      *                            cm handle id (false or null) or alternate id (true)
-     * @return Collection of CM handle references
+     * @return Collection of CM handle Ids
      */
     Collection<String> getCmHandleReferencesWithGivenModules(Collection<String> moduleNamesForQuery,
-                                                             boolean outputAlternateId);
+                                                             boolean outputAlternateIds);
 
     /**
      * Check database if cm handle id exists if not return false.
index e468ed1..c4765ff 100644 (file)
@@ -40,7 +40,6 @@ import org.onap.cps.api.CpsAnchorService;
 import org.onap.cps.api.CpsDataService;
 import org.onap.cps.api.CpsModuleService;
 import org.onap.cps.impl.utils.CpsValidator;
-import org.onap.cps.ncmp.api.exceptions.CmHandleNotFoundException;
 import org.onap.cps.ncmp.api.inventory.models.CompositeState;
 import org.onap.cps.ncmp.api.inventory.models.CompositeStateBuilder;
 import org.onap.cps.ncmp.impl.inventory.models.YangModelCmHandle;
@@ -194,7 +193,8 @@ public class InventoryPersistenceImpl extends NcmpPersistenceImpl implements Inv
         final Collection<DataNode> dataNodes = cmHandleQueryService
             .queryNcmpRegistryByCpsPath(cpsPathForCmHandleByAlternateId, OMIT_DESCENDANTS);
         if (dataNodes.isEmpty()) {
-            throw new CmHandleNotFoundException(alternateId);
+            throw new DataNodeNotFoundException(NCMP_DATASPACE_NAME, NCMP_DMI_REGISTRY_ANCHOR,
+                cpsPathForCmHandleByAlternateId);
         }
         return dataNodes.iterator().next();
     }
@@ -218,8 +218,8 @@ public class InventoryPersistenceImpl extends NcmpPersistenceImpl implements Inv
 
     @Override
     public Collection<String> getCmHandleReferencesWithGivenModules(final Collection<String> moduleNamesForQuery,
-                                                                    final boolean outputAlternateId) {
-        if (outputAlternateId) {
+                                                                    final boolean outputAlternateIds) {
+        if (outputAlternateIds) {
             final Collection<String> cmHandleIds =
                 cpsAnchorService.queryAnchorNames(NFP_OPERATIONAL_DATASTORE_DATASPACE_NAME, moduleNamesForQuery);
             return getAlternateIdsFromDataNodes(getCmHandleDataNodes(cmHandleIds));
index 6213258..1beab20 100644 (file)
@@ -162,9 +162,9 @@ class CmHandleRegistrationServicePropertyHandlerSpec extends Specification {
             }
         where:
             scenario                   | cmHandleId               | exception                                                                                           || expectedError        | expectedErrorText
-            'Cm Handle does not exist' | 'cmHandleId'             | new DataNodeNotFoundException(NCMP_DATASPACE_NAME, NCMP_DMI_REGISTRY_ANCHOR)                        || CM_HANDLES_NOT_FOUND | 'cm handle reference(s) not found'
+            'Cm Handle does not exist' | 'cmHandleId'             | new DataNodeNotFoundException(NCMP_DATASPACE_NAME, NCMP_DMI_REGISTRY_ANCHOR)                        || CM_HANDLES_NOT_FOUND | 'cm handle id(s) not found'
             'Unknown'                  | 'cmHandleId'             | new RuntimeException('Failed')                                                                      || UNKNOWN_ERROR        | 'Failed'
-            'Invalid cm handle id'     | 'cmHandleId with spaces' | new DataValidationException('Name Validation Error.', cmHandleId + 'contains an invalid character') || CM_HANDLE_INVALID_ID | 'cm handle reference has an invalid character(s) in id'
+            'Invalid cm handle id'     | 'cmHandleId with spaces' | new DataValidationException('Name Validation Error.', cmHandleId + 'contains an invalid character') || CM_HANDLE_INVALID_ID | 'cm-handle has an invalid character(s) in id'
     }
 
     def 'Multiple update operations in a single request'() {
@@ -193,7 +193,7 @@ class CmHandleRegistrationServicePropertyHandlerSpec extends Specification {
                 assert it.status == Status.FAILURE
                 assert it.cmHandle == cmHandleId
                 assert it.ncmpResponseStatus == CM_HANDLES_NOT_FOUND
-                assert it.errorText == 'cm handle reference(s) not found'
+                assert it.errorText == 'cm handle id(s) not found'
             }
         then: 'the replace list method is called twice'
             2 * mockInventoryPersistence.replaceListContent(cmHandleXpath, _)
index a69721b..70e26d9 100644 (file)
@@ -399,10 +399,10 @@ class CmHandleRegistrationServiceSpec extends Specification {
         and: 'the cm handle state is not updated to "DELETED"'
             0 * mockLcmEventsCmHandleStateHandler.updateCmHandleStateBatch(_, CmHandleState.DELETED)
         where:
-        scenario                     | deleteListElementException                || expectedError        | expectedErrorText
-        'cm-handle does not exist'   | new DataNodeNotFoundException('', '', '') || CM_HANDLES_NOT_FOUND | 'cm handle reference(s) not found'
-        'cm-handle has invalid name' | new DataValidationException('', '')       || CM_HANDLE_INVALID_ID | 'cm handle reference has an invalid character(s) in id'
-        'an unexpected exception'    | new RuntimeException('Failed')            || UNKNOWN_ERROR        | 'Failed'
+        scenario                     | cmHandleId             | deleteListElementException                || expectedError        | expectedErrorText
+        'cm-handle does not exist'   | 'cmhandle'             | new DataNodeNotFoundException('', '', '') || CM_HANDLES_NOT_FOUND | 'cm handle id(s) not found'
+        'cm-handle has invalid name' | 'cm handle with space' | new DataValidationException('', '')       || CM_HANDLE_INVALID_ID | 'cm-handle has an invalid character(s) in id'
+        'an unexpected exception'    | 'cmhandle'             | new RuntimeException('Failed')            || UNKNOWN_ERROR        | 'Failed'
     }
 
     def 'Set Cm Handle Data Sync Enabled Flag where data sync flag is  #scenario'() {
index ce4a449..00f092f 100644 (file)
@@ -28,11 +28,11 @@ import org.onap.cps.api.CpsDataService
 import org.onap.cps.api.CpsModuleService
 import org.onap.cps.impl.utils.CpsValidator
 import org.onap.cps.ncmp.api.inventory.models.CompositeState
-import org.onap.cps.ncmp.api.exceptions.CmHandleNotFoundException
 import org.onap.cps.ncmp.impl.inventory.models.CmHandleState
 import org.onap.cps.ncmp.impl.inventory.models.YangModelCmHandle
 import org.onap.cps.spi.CascadeDeleteAllowed
 import org.onap.cps.spi.FetchDescendantsOption
+import org.onap.cps.spi.exceptions.DataNodeNotFoundException
 import org.onap.cps.spi.model.DataNode
 import org.onap.cps.spi.model.ModuleDefinition
 import org.onap.cps.spi.model.ModuleReference
@@ -327,9 +327,8 @@ class InventoryPersistenceImplSpec extends Specification {
         when: 'getting the cm handle data node'
             objectUnderTest.getCmHandleDataNodeByAlternateId('alternate id')
         then: 'no data found exception thrown'
-            def thrownException = thrown(CmHandleNotFoundException)
-            assert thrownException.getMessage().contains('Cm handle not found')
-            assert thrownException.getDetails().contains('No cm handles found with reference alternate id')
+            def thrownException = thrown(DataNodeNotFoundException)
+            assert thrownException.getMessage().contains('DataNode not found')
     }
 
     def 'Get multiple cm handle data nodes by alternate ids, passing empty collection'() {
index 827250f..611d47d 100644 (file)
@@ -1 +1 @@
-[{"operationId":"operational-14","ids":["unknown-cm-handle"],"resourceIdentifier":"some resource identifier","options":"some option","statusCode":"100","statusMessage":"cm handle reference(s) not found"},{"operationId":"operational-14","ids":["non-ready-cm-handle"],"resourceIdentifier":"some resource identifier","options":"some option","statusCode":"101","statusMessage":"cm handle(s) not ready"},{"operationId":"running-12","ids":["non-ready-cm-handle"],"resourceIdentifier":"some resource identifier","options":"some option","statusCode":"101","statusMessage":"cm handle(s) not ready"}]
\ No newline at end of file
+[{"operationId":"operational-14","ids":["unknown-cm-handle"],"resourceIdentifier":"some resource identifier","options":"some option","statusCode":"100","statusMessage":"cm handle id(s) not found"},{"operationId":"operational-14","ids":["non-ready-cm-handle"],"resourceIdentifier":"some resource identifier","options":"some option","statusCode":"101","statusMessage":"cm handle(s) not ready"},{"operationId":"running-12","ids":["non-ready-cm-handle"],"resourceIdentifier":"some resource identifier","options":"some option","statusCode":"101","statusMessage":"cm handle(s) not ready"}]
\ No newline at end of file
index ab83ed2..d358719 100644 (file)
@@ -97,7 +97,7 @@ paths:
           example: my-dmi-plugin
           type: string
       - description: Boolean parameter to determine if returned value(s) will be cm
-          handle ids or alternate ids for a given query
+          handle Ids or alternate Ids for a given query
         in: query
         name: outputAlternateId
         required: false
@@ -145,7 +145,7 @@ paths:
       operationId: searchCmHandleIds
       parameters:
       - description: Boolean parameter to determine if returned value(s) will be cm
-          handle ids or alternate ids for a given query
+          handle Ids or alternate Ids for a given query
         in: query
         name: outputAlternateId
         required: false
@@ -202,7 +202,7 @@ components:
         type: string
     outputAlternateIdOptionInQuery:
       description: Boolean parameter to determine if returned value(s) will be cm
-        handle ids or alternate ids for a given query
+        handle Ids or alternate Ids for a given query
       in: query
       name: outputAlternateId
       required: false
index e7256c0..aa84e43 100644 (file)
@@ -1130,10 +1130,10 @@ paths:
   /v1/ch/id-searches:
     post:
       description: Execute cm handle query search and return a list of cm handle references.
-        Any number of conditions can be applied. To be included in the result a cm
-        handle must fulfill ALL the conditions. An empty collection will be returned
-        in the case that the cm handle does not match a condition. For more on cm
-        handle query search please refer to <a href="https://docs.onap.org/projects/onap-cps/en/latest/ncmp-cmhandle-querying.html">cm
+        Any number of conditions can be applied. To be included in the result a cm-handle
+        must fulfill ALL the conditions. An empty collection will be returned in the
+        case that the cm handle does not match a condition. For more on cm handle
+        query search please refer to <a href="https://docs.onap.org/projects/onap-cps/en/latest/ncmp-cmhandle-querying.html">cm
         handle query search Read the Docs</a>.<br/>By supplying a CPS Path it is possible
         to query on any data related to the cm handle. For more on CPS Path please
         refer to <a href="https://docs.onap.org/projects/onap-cps/en/latest/cps-path.html">CPS
@@ -1142,7 +1142,7 @@ paths:
       operationId: searchCmHandleIds
       parameters:
       - description: Boolean parameter to determine if returned value(s) will be cm
-          handle ids or alternate ids for a given query
+          handle Ids or alternate Ids for a given query
         in: query
         name: outputAlternateId
         required: false
@@ -1619,7 +1619,7 @@ components:
         type: string
     outputAlternateIdOptionInQuery:
       description: Boolean parameter to determine if returned value(s) will be cm
-        handle ids or alternate ids for a given query
+        handle Ids or alternate Ids for a given query
       in: query
       name: outputAlternateId
       required: false