Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Currently, in CPS, it is only possible to create a dataspace that will hold YANG modules and allow the service to create instances of the models via anchors.

It will be advantageous to provide a function that allows the deletion of the created dataspace provided that all anchors in that dataspace have also been deleted. 

To realise 'Delete dataspace' functionality, the following must be implemented:

  1. REST Endpoint in CPS-Core

  2. Java API method in CPS-Service

  3. Data Persistence Service

Implementation Proposal

REST layers

cpsAdmin.yml

    • Create delete function to endpoint

AdminRestController.java

    • Implement a method to delete a dataspace with a dataspace name of type String as a parameter
    • Invokes cpsAdminService
    • Returns code 404 if the dataspace given does not exist

Service layers

cpsAdminService.java

    • Create abstract method 

void deleteDataspace {String dataspaceName)

cpsAdminServiceImpl.java

    • Invokes cpsAdminPersistenceService for method deleteDataspace

Persistence layers

cpsAdminPersistenceService.java

    • Create abstract method

void deleteDataspace {String dataspaceName)

cpsAdminPersistenceServiceImpl.java

    • Invoke method dataspaceRepository.getByName(String dataspaceName) to get dataspace entity
      • Throws 'DataspaceNotFoundException' if dataspace does not exist 
    • Invoke method 'getAnchors()' to confirm that dataspace has no anchors
      • If dataspace is not empty, throw exception 'DataspaceNotEmptyException' (?)
    • Using JPA, delete dataspace


Gliffy Diagram
size1200
displayNameFlow for create dataspace
nameFlow for create dataspace
pagePin9

Issues

#IssueNotesDecision
1Abandoned SchemaSets

Question: Will the SchemaSets be automatically deleted once all anchors using them have been deleted?

SchemaSets are not automatically deleted once the anchors using them have been deleted