summaryrefslogtreecommitdiffstats
path: root/cps-service
diff options
context:
space:
mode:
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 fee4daa51a..d174085263 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 34735f8482..c65f827816 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 f71ff0b3be..b05385fbf4 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 bc62a23c52..7ad109d815 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 b8bfd4593e..d719b3d24e 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')