summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorleventecsanyi <levente.csanyi@est.tech>2023-04-05 11:42:30 +0200
committerleventecsanyi <levente.csanyi@est.tech>2023-04-17 12:06:01 +0200
commitfff80c048f90ad6b58a00329e514f0c2e5c41dd5 (patch)
treec710d2222d04afb9ce49cee29e88c4ccbb659b10
parentc4a18054d489a83efb99a8975585631e5ecd0b10 (diff)
Define an interface to accept collection of cm handles for Get operation.
- Added REST endpoint (Not Implemented yet) - Created unit test Issue-ID: CPS-1555 Change-Id: I24ce8d663602c08cc207f4657289631439d3fb9e Signed-off-by: leventecsanyi <levente.csanyi@est.tech>
-rw-r--r--openapi/components.yml12
-rw-r--r--openapi/openapi.yml36
-rw-r--r--src/main/java/org/onap/cps/ncmp/dmi/rest/controller/DmiRestController.java15
-rw-r--r--src/test/groovy/org/onap/cps/ncmp/dmi/rest/controller/DmiRestControllerSpec.groovy15
4 files changed, 74 insertions, 4 deletions
diff --git a/openapi/components.yml b/openapi/components.yml
index 1e35c028..2bddd8b9 100644
--- a/openapi/components.yml
+++ b/openapi/components.yml
@@ -1,5 +1,5 @@
# ============LICENSE_START=======================================================
-# Copyright (C) 2021-2022 Nordix Foundation
+# Copyright (C) 2021-2023 Nordix Foundation
# Modifications Copyright (C) 2022 Bell Canada
# ================================================================================
# Licensed under the Apache License, Version 2.0 (the "License");
@@ -164,6 +164,16 @@ components:
status: 500
message: Internal Server Error
details: Internal Server Error occured
+ NotImplemented:
+ description: Not Implemented
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorMessage'
+ example:
+ status: 501
+ message: Not Implemented
+ details: Method Not Implemented
parameters:
cmHandleInPath:
name: cmHandle
diff --git a/openapi/openapi.yml b/openapi/openapi.yml
index 38d5cef5..24854e9c 100644
--- a/openapi/openapi.yml
+++ b/openapi/openapi.yml
@@ -119,8 +119,8 @@ paths:
post:
tags:
- dmi-plugin
- summary: Get resource data from passthrough operational or running for cm handles
- description: Get resource data from passthrough operational or running for cm handles
+ summary: Get resource data from passthrough operational or running for a cm handle
+ description: Get resource data from passthrough operational or running for a cm handle
operationId: dataAccessPassthrough
parameters:
- $ref: 'components.yml#/components/parameters/datastoreName'
@@ -148,4 +148,34 @@ paths:
'400':
$ref: 'components.yml#/components/responses/BadRequest'
'500':
- $ref: 'components.yml#/components/responses/ServerError' \ No newline at end of file
+ $ref: 'components.yml#/components/responses/ServerError'
+
+ /v1/ch/batch/data/ds/{datastore-name}:
+ post:
+ tags:
+ - dmi-plugin
+ summary: Get a collection of CMHandles
+ description: Get a collection of cm handles by datastore (not implemented)
+ operationId: getResourceDataByCmHandles
+ parameters:
+ - $ref: 'components.yml#/components/parameters/datastoreName'
+ - $ref: 'components.yml#/components/parameters/topicParamInQuery'
+ requestBody:
+ description: Contains collection of cm handles with it's private properties and requestId
+ content:
+ application/json:
+ schema:
+ type: object
+ responses:
+ '200':
+ description: OK
+ content:
+ application/json:
+ schema:
+ type: object
+ '400':
+ $ref: 'components.yml#/components/responses/BadRequest'
+ '500':
+ $ref: 'components.yml#/components/responses/ServerError'
+ '501':
+ $ref: 'components.yml#/components/responses/NotImplemented' \ No newline at end of file
diff --git a/src/main/java/org/onap/cps/ncmp/dmi/rest/controller/DmiRestController.java b/src/main/java/org/onap/cps/ncmp/dmi/rest/controller/DmiRestController.java
index f952e224..da0ac3e1 100644
--- a/src/main/java/org/onap/cps/ncmp/dmi/rest/controller/DmiRestController.java
+++ b/src/main/java/org/onap/cps/ncmp/dmi/rest/controller/DmiRestController.java
@@ -105,6 +105,21 @@ public class DmiRestController implements DmiPluginApi, DmiPluginInternalApi {
}
/**
+ * This method is not implemented for ONAP DMI plugin.
+ *
+ * @param datastoreName name of the data store
+ * @param body list of cm-handles
+ * @param topic Kafka topic name
+ * @return (@ code ResponseEntity) response entity
+ */
+ @Override
+ public ResponseEntity<Void> getResourceDataByCmHandles(final String datastoreName,
+ final Object body,
+ final String topic) {
+ return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED);
+ }
+
+ /**
* This method fetches the resource for given cm handle using pass through operational or running datastore.
* It filters the response on the basis of options query parameters and returns response. Passthrough Running
* supports both read and write operation whereas passthrough operational does not support write operations.
diff --git a/src/test/groovy/org/onap/cps/ncmp/dmi/rest/controller/DmiRestControllerSpec.groovy b/src/test/groovy/org/onap/cps/ncmp/dmi/rest/controller/DmiRestControllerSpec.groovy
index 2be0b59c..acc8b63b 100644
--- a/src/test/groovy/org/onap/cps/ncmp/dmi/rest/controller/DmiRestControllerSpec.groovy
+++ b/src/test/groovy/org/onap/cps/ncmp/dmi/rest/controller/DmiRestControllerSpec.groovy
@@ -311,4 +311,19 @@ class DmiRestControllerSpec extends Specification {
'? needs to be encoded as %3F' | 'idWith%3F'
}
+
+ def 'Get resource data for a collection of cm handles (unimplemented).'() {
+ given: 'an endpoint for adding a batch of cm handle Ids'
+ def url = "$basePathV1/ch/batch/data/ds/test-datastore?topic=test"
+ and: 'a request body'
+ def body = '{"CmHandles": []}'
+ when: 'the endpoint is invoked'
+ def response = mvc.perform(
+ post(url)
+ .contentType(MediaType.APPLICATION_JSON)
+ .content(body)
+ ).andReturn().response
+ then: 'the response status code is 501'
+ assert response.status == 501
+ }
}