Get data job result
- extended openapi
- added not-implemented http error for result endpoint
- added testware
- added stub implementation
- fixed writeDataJob bug in stub
Issue-ID: CPS-2296
Signed-off-by: leventecsanyi <levente.csanyi@est.tech>
Change-Id: I9398cb73b635bec360df886372690187ff54e0d4
diff --git a/dmi-service/openapi/openapi-datajob.yml b/dmi-service/openapi/openapi-datajob.yml
index 68ee3ec..aa93623 100644
--- a/dmi-service/openapi/openapi-datajob.yml
+++ b/dmi-service/openapi/openapi-datajob.yml
@@ -74,6 +74,20 @@
responses:
"501":
$ref: '#/components/responses/NotImplemented'
+ /v1/dataJob/{requestId}/dataProducerJob/{dataProducerJobId}/result:
+ get:
+ description: Retrieve the result of a data job.
+ operationId: getDataJobResult
+ parameters:
+ - $ref: '#/components/parameters/requestIdInPath'
+ - $ref: '#/components/parameters/dataProducerJobIdInPath'
+ - $ref: '#/components/parameters/dataProducerIdInQuery'
+ - $ref: '#/components/parameters/destinationInQuery'
+ tags:
+ - dmi-datajob
+ responses:
+ "501":
+ $ref: '#/components/responses/NotImplemented'
components:
parameters:
@@ -101,6 +115,14 @@
schema:
type: string
example: some-data-producer-identifier
+ destinationInQuery:
+ name: destination
+ in: query
+ description: The destination of the results (Kafka topic name or s3 bucket name)
+ required: true
+ schema:
+ type: string
+ example: some-destination
schemas:
ErrorMessage:
type: object
diff --git a/dmi-service/src/main/java/org/onap/cps/ncmp/dmi/datajobs/rest/controller/DmiDatajobsRestController.java b/dmi-service/src/main/java/org/onap/cps/ncmp/dmi/datajobs/rest/controller/DmiDatajobsRestController.java
index 8cf9f1f..928ec6b 100644
--- a/dmi-service/src/main/java/org/onap/cps/ncmp/dmi/datajobs/rest/controller/DmiDatajobsRestController.java
+++ b/dmi-service/src/main/java/org/onap/cps/ncmp/dmi/datajobs/rest/controller/DmiDatajobsRestController.java
@@ -34,13 +34,13 @@
/**
* This method is not implemented for ONAP DMI plugin.
*
- * @param requestId Identifier for the overall Datajob (required)
- * @param subjobReadRequest Operation body (optional)
- * @return (@ code ResponseEntity) response entity
+ * @param requestId Identifier for the overall Datajob (required)
+ * @param subjobReadRequest Operation body (optional)
+ * @return (@ code ResponseEntity) Response entity
*/
@Override
public ResponseEntity<Void> readDataJob(final String requestId,
- final SubjobReadRequest subjobReadRequest) {
+ final SubjobReadRequest subjobReadRequest) {
return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED);
}
@@ -48,23 +48,23 @@
/**
* This method is not implemented for ONAP DMI plugin.
*
- * @param requestId Identifier for the overall Datajob (required)
- * @param subjobWriteRequest Operation body (optional)
- * @return (@ code ResponseEntity) response entity
+ * @param requestId Identifier for the overall Datajob (required)
+ * @param subjobWriteRequest Operation body (optional)
+ * @return (@ code ResponseEntity) Response entity
*/
@Override
public ResponseEntity<Void> writeDataJob(final String requestId,
- final SubjobWriteRequest subjobWriteRequest) {
+ final SubjobWriteRequest subjobWriteRequest) {
return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED);
}
/**
* This method is not implemented for ONAP DMI plugin.
*
- * @param requestId Identifier for the overall Datajob (required)
- * @param dataProducerJobId Identifier for the data producer job (required)
- * @param dataProducerId Identifier for the data producer as a query parameter (required)
- * @return ResponseEntity(Void) response entity indicating the method is not implemented
+ * @param requestId Identifier for the overall Datajob (required)
+ * @param dataProducerJobId Identifier for the data producer job (required)
+ * @param dataProducerId Identifier for the data producer as a query parameter (required)
+ * @return ResponseEntity Response entity indicating the method is not implemented
*/
@Override
public ResponseEntity<Void> getDataJobStatus(final String requestId,
@@ -72,4 +72,21 @@
final String dataProducerId) {
return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED);
}
+
+ /**
+ * This method is not implemented for ONAP DMI plugin.
+ *
+ * @param requestId Identifier for the overall Datajob (required)
+ * @param dataProducerJobId Identifier for the data producer job (required)
+ * @param dataProducerId Identifier for the data producer as a query parameter (required)
+ * @param destination The destination of the results, Kafka topic name or s3 bucket name (required)
+ * @return ResponseEntity Response entity indicating the method is not implemented
+ */
+ @Override
+ public ResponseEntity<Void> getDataJobResult(final String requestId,
+ final String dataProducerJobId,
+ final String dataProducerId,
+ final String destination) {
+ return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED);
+ }
}
diff --git a/dmi-service/src/test/groovy/org/onap/cps/ncmp/dmi/datajobs/rest/controller/DmiDatajobsRestControllerSpec.groovy b/dmi-service/src/test/groovy/org/onap/cps/ncmp/dmi/datajobs/rest/controller/DmiDatajobsRestControllerSpec.groovy
index 69d2ebd..6c05f6f 100644
--- a/dmi-service/src/test/groovy/org/onap/cps/ncmp/dmi/datajobs/rest/controller/DmiDatajobsRestControllerSpec.groovy
+++ b/dmi-service/src/test/groovy/org/onap/cps/ncmp/dmi/datajobs/rest/controller/DmiDatajobsRestControllerSpec.groovy
@@ -79,4 +79,16 @@
then: 'response value is Not Implemented'
response.status == HttpStatus.NOT_IMPLEMENTED.value()
}
+
+ def 'get result request should return 501 HTTP Status' () {
+ given: 'URL to get the result of a data job'
+ def getStatus = "${basePathV1}/dataJob/some-identifier/dataProducerJob/some-producer-job-identifier/result?dataProducerId=some-data-producer-identifier&destination=some-destination"
+ when: 'the request is performed'
+ def response = mvc.perform(
+ get(getStatus)
+ .contentType('application/json')
+ ).andReturn().response
+ then: 'response value is Not Implemented'
+ response.status == HttpStatus.NOT_IMPLEMENTED.value()
+ }
}