summaryrefslogtreecommitdiffstats
path: root/cps-service
diff options
context:
space:
mode:
authorNiamh Core <niamh.core@est.tech>2021-08-18 10:40:26 +0000
committerGerrit Code Review <gerrit@onap.org>2021-08-18 10:40:26 +0000
commit24112c0a500e94dc6068be71105874f8d81678b7 (patch)
tree5db8eb2edc8938d72f98529e61a8210020bda111 /cps-service
parentddf661254f711d78b480b8f5623632443a8f6ebc (diff)
parent4c52e1a31c1424a954b2a1540117b4fbb443c578 (diff)
Merge "CPS-508: Create anchor/schemaset from new modules and existing modules"
Diffstat (limited to 'cps-service')
-rw-r--r--cps-service/src/main/java/org/onap/cps/api/CpsModuleService.java12
-rw-r--r--cps-service/src/main/java/org/onap/cps/api/impl/CpsModuleServiceImpl.java9
-rwxr-xr-xcps-service/src/main/java/org/onap/cps/spi/CpsAdminPersistenceService.java1
-rwxr-xr-xcps-service/src/main/java/org/onap/cps/spi/CpsModulePersistenceService.java12
-rw-r--r--cps-service/src/test/groovy/org/onap/cps/api/impl/CpsModuleServiceImplSpec.groovy13
5 files changed, 45 insertions, 2 deletions
diff --git a/cps-service/src/main/java/org/onap/cps/api/CpsModuleService.java b/cps-service/src/main/java/org/onap/cps/api/CpsModuleService.java
index fee4daa51..d17408526 100644
--- a/cps-service/src/main/java/org/onap/cps/api/CpsModuleService.java
+++ b/cps-service/src/main/java/org/onap/cps/api/CpsModuleService.java
@@ -46,6 +46,18 @@ public interface CpsModuleService {
@NonNull Map<String, String> yangResourcesNameToContentMap);
/**
+ * Create a schema set from new modules and existing modules.
+ *
+ * @param dataspaceName Dataspace name
+ * @param schemaSetName schema set name
+ * @param newYangResourcesModuleNameToContentMap YANG resources map where key is a module name and value is content
+ * @param moduleReferenceList List of YANG resources module references
+ */
+ void createSchemaSetFromModules(@NonNull String dataspaceName, @NonNull String schemaSetName,
+ @NonNull Map<String, String> newYangResourcesModuleNameToContentMap,
+ @NonNull List<ModuleReference> moduleReferenceList);
+
+ /**
* Read schema set in the given dataspace.
*
* @param dataspaceName dataspace name
diff --git a/cps-service/src/main/java/org/onap/cps/api/impl/CpsModuleServiceImpl.java b/cps-service/src/main/java/org/onap/cps/api/impl/CpsModuleServiceImpl.java
index 34735f848..c65f82781 100644
--- a/cps-service/src/main/java/org/onap/cps/api/impl/CpsModuleServiceImpl.java
+++ b/cps-service/src/main/java/org/onap/cps/api/impl/CpsModuleServiceImpl.java
@@ -51,6 +51,15 @@ public class CpsModuleServiceImpl implements CpsModuleService {
}
@Override
+ public void createSchemaSetFromModules(final String dataspaceName, final String schemaSetName,
+ final Map<String, String> newYangResourcesModuleNameToContentMap,
+ final List<ModuleReference> moduleReferenceList) {
+ cpsModulePersistenceService.storeSchemaSetFromModules(dataspaceName, schemaSetName,
+ newYangResourcesModuleNameToContentMap, moduleReferenceList);
+
+ }
+
+ @Override
public SchemaSet getSchemaSet(final String dataspaceName, final String schemaSetName) {
final var yangTextSchemaSourceSet = yangTextSchemaSourceSetCache
.get(dataspaceName, schemaSetName);
diff --git a/cps-service/src/main/java/org/onap/cps/spi/CpsAdminPersistenceService.java b/cps-service/src/main/java/org/onap/cps/spi/CpsAdminPersistenceService.java
index f71ff0b3b..b05385fbf 100755
--- a/cps-service/src/main/java/org/onap/cps/spi/CpsAdminPersistenceService.java
+++ b/cps-service/src/main/java/org/onap/cps/spi/CpsAdminPersistenceService.java
@@ -49,7 +49,6 @@ public interface CpsAdminPersistenceService {
*/
void createAnchor(@NonNull String dataspaceName, @NonNull String schemaSetName, @NonNull String anchorName);
-
/**
* Read all anchors in the given a dataspace.
*
diff --git a/cps-service/src/main/java/org/onap/cps/spi/CpsModulePersistenceService.java b/cps-service/src/main/java/org/onap/cps/spi/CpsModulePersistenceService.java
index bc62a23c5..7ad109d81 100755
--- a/cps-service/src/main/java/org/onap/cps/spi/CpsModulePersistenceService.java
+++ b/cps-service/src/main/java/org/onap/cps/spi/CpsModulePersistenceService.java
@@ -43,6 +43,18 @@ public interface CpsModulePersistenceService {
@NonNull Map<String, String> yangResourcesNameToContentMap);
/**
+ * Stores a schema set from new modules and existing modules.
+ *
+ * @param dataspaceName Dataspace name
+ * @param schemaSetName Schema set name
+ * @param newYangResourcesModuleNameToContentMap YANG resources map where key is a module name and value is content
+ * @param moduleReferenceList List of YANG resources module references
+ */
+ void storeSchemaSetFromModules(@NonNull String dataspaceName, @NonNull String schemaSetName,
+ @NonNull Map<String, String> newYangResourcesModuleNameToContentMap,
+ @NonNull List<ModuleReference> moduleReferenceList);
+
+ /**
* Deletes Schema Set.
*
* @param dataspaceName dataspace name
diff --git a/cps-service/src/test/groovy/org/onap/cps/api/impl/CpsModuleServiceImplSpec.groovy b/cps-service/src/test/groovy/org/onap/cps/api/impl/CpsModuleServiceImplSpec.groovy
index b8bfd4593..d719b3d24 100644
--- a/cps-service/src/test/groovy/org/onap/cps/api/impl/CpsModuleServiceImplSpec.groovy
+++ b/cps-service/src/test/groovy/org/onap/cps/api/impl/CpsModuleServiceImplSpec.groovy
@@ -52,7 +52,7 @@ class CpsModuleServiceImplSpec extends Specification {
@Autowired
CpsModuleServiceImpl objectUnderTest
- def 'Create schema set'() {
+ def 'Create schema set.'() {
given: 'Valid yang resource as name-to-content map'
def yangResourcesNameToContentMap = TestUtils.getYangResourcesAsMap('bookstore.yang')
when: 'Create schema set method is invoked'
@@ -61,6 +61,17 @@ class CpsModuleServiceImplSpec extends Specification {
1 * mockModuleStoreService.storeSchemaSet('someDataspace', 'someSchemaSet', yangResourcesNameToContentMap)
}
+ def 'Create schema set from new modules and existing modules.'() {
+ given: 'a list of existing modules module reference'
+ def moduleReferenceForExistingModule = new ModuleReference("test", "test.org", "2021-10-12")
+ def listOfExistingModulesModuleReference = [moduleReferenceForExistingModule]
+ when: 'create schema set from modules method is invoked'
+ objectUnderTest.createSchemaSetFromModules("someDataspaceName", "someSchemaSetName", [newModule: "newContent"], listOfExistingModulesModuleReference)
+ then: 'processing is delegated to persistence service'
+ 1 * mockModuleStoreService.storeSchemaSetFromModules("someDataspaceName", "someSchemaSetName", [newModule: "newContent"], listOfExistingModulesModuleReference)
+
+ }
+
def 'Create schema set from invalid resources'() {
given: 'Invalid yang resource as name-to-content map'
def yangResourcesNameToContentMap = TestUtils.getYangResourcesAsMap('invalid.yang')