diff options
Diffstat (limited to 'cps-service')
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') |