summaryrefslogtreecommitdiffstats
path: root/cps-rest
diff options
context:
space:
mode:
Diffstat (limited to 'cps-rest')
-rw-r--r--cps-rest/docs/openapi/cpsAdmin.yml20
-rwxr-xr-xcps-rest/src/main/java/org/onap/cps/rest/controller/AdminRestController.java12
-rwxr-xr-xcps-rest/src/test/groovy/org/onap/cps/rest/controller/AdminRestControllerSpec.groovy13
-rw-r--r--cps-rest/src/test/groovy/org/onap/cps/rest/exceptions/CpsRestExceptionHandlerSpec.groovy4
4 files changed, 48 insertions, 1 deletions
diff --git a/cps-rest/docs/openapi/cpsAdmin.yml b/cps-rest/docs/openapi/cpsAdmin.yml
index a022ef1d94..869cb6e724 100644
--- a/cps-rest/docs/openapi/cpsAdmin.yml
+++ b/cps-rest/docs/openapi/cpsAdmin.yml
@@ -35,6 +35,26 @@ dataspaces:
'403':
$ref: 'components.yml#/components/responses/Forbidden'
+ delete:
+ description: Delete a dataspace
+ tags:
+ - cps-admin
+ summary: Delete a dataspace
+ operationId: deleteDataspace
+ parameters:
+ - $ref: 'components.yml#/components/parameters/dataspaceNameInQuery'
+ responses:
+ '204':
+ $ref: 'components.yml#/components/responses/NoContent'
+ '400':
+ $ref: 'components.yml#/components/responses/BadRequest'
+ '401':
+ $ref: 'components.yml#/components/responses/Unauthorized'
+ '403':
+ $ref: 'components.yml#/components/responses/Forbidden'
+ '409':
+ $ref: 'components.yml#/components/responses/Conflict'
+
schemaSet:
post:
description: Create a new schema set in the given dataspace
diff --git a/cps-rest/src/main/java/org/onap/cps/rest/controller/AdminRestController.java b/cps-rest/src/main/java/org/onap/cps/rest/controller/AdminRestController.java
index 55fdbbe87a..52e64a95bd 100755
--- a/cps-rest/src/main/java/org/onap/cps/rest/controller/AdminRestController.java
+++ b/cps-rest/src/main/java/org/onap/cps/rest/controller/AdminRestController.java
@@ -71,6 +71,18 @@ public class AdminRestController implements CpsAdminApi {
}
/**
+ * Delete a dataspace.
+ *
+ * @param dataspaceName name of dataspace to be deleted
+ * @return a {@Link ResponseEntity} of {@link HttpStatus} NO_CONTENT
+ */
+ @Override
+ public ResponseEntity<Void> deleteDataspace(final String dataspaceName) {
+ cpsAdminService.deleteDataspace(dataspaceName);
+ return new ResponseEntity<>(HttpStatus.NO_CONTENT);
+ }
+
+ /**
* Create a {@link SchemaSet}.
*
* @param multipartFile multipart file
diff --git a/cps-rest/src/test/groovy/org/onap/cps/rest/controller/AdminRestControllerSpec.groovy b/cps-rest/src/test/groovy/org/onap/cps/rest/controller/AdminRestControllerSpec.groovy
index 84da2db5d7..e8cfcfb6f6 100755
--- a/cps-rest/src/test/groovy/org/onap/cps/rest/controller/AdminRestControllerSpec.groovy
+++ b/cps-rest/src/test/groovy/org/onap/cps/rest/controller/AdminRestControllerSpec.groovy
@@ -311,6 +311,18 @@ class AdminRestControllerSpec extends Specification {
response.status == HttpStatus.NO_CONTENT.value()
}
+ def 'Delete dataspace.'() {
+ given: 'an endpoint'
+ def dataspaceEndpoint = "$basePath/v1/dataspaces"
+ when: 'delete dataspace endpoint is invoked'
+ def response = mvc.perform(delete(dataspaceEndpoint)
+ .param('dataspace-name', dataspaceName))
+ .andReturn().response
+ then: 'associated service method is invoked with expected parameter'
+ 1 * mockCpsAdminService.deleteDataspace(dataspaceName)
+ and: 'response code indicates success'
+ response.status == HttpStatus.NO_CONTENT.value()
+ }
def createMultipartFile(filename, content) {
return new MockMultipartFile("file", filename, "text/plain", content.getBytes())
@@ -333,4 +345,5 @@ class AdminRestControllerSpec extends Specification {
multipartFile.getInputStream() >> { throw new IOException() }
return multipartFile
}
+
}
diff --git a/cps-rest/src/test/groovy/org/onap/cps/rest/exceptions/CpsRestExceptionHandlerSpec.groovy b/cps-rest/src/test/groovy/org/onap/cps/rest/exceptions/CpsRestExceptionHandlerSpec.groovy
index 079a59c667..f5968442d7 100644
--- a/cps-rest/src/test/groovy/org/onap/cps/rest/exceptions/CpsRestExceptionHandlerSpec.groovy
+++ b/cps-rest/src/test/groovy/org/onap/cps/rest/exceptions/CpsRestExceptionHandlerSpec.groovy
@@ -37,6 +37,7 @@ import org.onap.cps.spi.exceptions.DataValidationException
import org.onap.cps.spi.exceptions.ModelValidationException
import org.onap.cps.spi.exceptions.NotFoundInDataspaceException
import org.onap.cps.spi.exceptions.SchemaSetInUseException
+import org.onap.cps.spi.exceptions.DataspaceInUseException
import org.spockframework.spring.SpringBean
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.beans.factory.annotation.Value
@@ -145,7 +146,8 @@ class CpsRestExceptionHandlerSpec extends Specification {
assertTestResponse(response, CONFLICT, exceptionThrown.getMessage(), exceptionThrown.getDetails())
where: 'the following exceptions are thrown'
exceptionThrown << [new DataInUseException(dataspaceName, existingObjectName),
- new SchemaSetInUseException(dataspaceName, existingObjectName)]
+ new SchemaSetInUseException(dataspaceName, existingObjectName),
+ new DataspaceInUseException(dataspaceName, errorDetails)]
}
/*