Merge "CmHandle delete is failing with InternalServerError: Null key is not allowed...
[cps.git] / cps-service / src / main / java / org / onap / cps / api / impl / CpsModuleServiceImpl.java
index 444c895..14b949e 100644 (file)
@@ -1,6 +1,6 @@
 /*
  *  ============LICENSE_START=======================================================
- *  Copyright (C) 2020-2023 Nordix Foundation
+ *  Copyright (C) 2020-2024 Nordix Foundation
  *  Modifications Copyright (C) 2020-2021 Pantheon.tech
  *  Modifications Copyright (C) 2022 Bell Canada
  *  Modifications Copyright (C) 2022 TechMahindra Ltd
@@ -28,7 +28,7 @@ import java.util.Collection;
 import java.util.Map;
 import java.util.stream.Collectors;
 import lombok.RequiredArgsConstructor;
-import org.onap.cps.api.CpsAdminService;
+import org.onap.cps.api.CpsAnchorService;
 import org.onap.cps.api.CpsModuleService;
 import org.onap.cps.spi.CascadeDeleteAllowed;
 import org.onap.cps.spi.CpsModulePersistenceService;
@@ -49,7 +49,7 @@ public class CpsModuleServiceImpl implements CpsModuleService {
 
     private final CpsModulePersistenceService cpsModulePersistenceService;
     private final YangTextSchemaSourceSetCache yangTextSchemaSourceSetCache;
-    private final CpsAdminService cpsAdminService;
+    private final CpsAnchorService cpsAnchorService;
     private final CpsValidator cpsValidator;
     private final TimedYangTextSchemaSourceSetBuilder timedYangTextSchemaSourceSetBuilder;
 
@@ -66,13 +66,12 @@ public class CpsModuleServiceImpl implements CpsModuleService {
     }
 
     @Override
-    public void createOrUpgradeSchemaSetFromModules(final String dataspaceName, final String schemaSetName,
-        final Map<String, String> newModuleNameToContentMap,
-        final Collection<ModuleReference> allModuleReferences) {
+    public void createSchemaSetFromModules(final String dataspaceName, final String schemaSetName,
+                                           final Map<String, String> newModuleNameToContentMap,
+                                           final Collection<ModuleReference> allModuleReferences) {
         cpsValidator.validateNameCharacters(dataspaceName, schemaSetName);
         cpsModulePersistenceService.storeSchemaSetFromModules(dataspaceName, schemaSetName,
             newModuleNameToContentMap, allModuleReferences);
-
     }
 
     @Override
@@ -98,12 +97,12 @@ public class CpsModuleServiceImpl implements CpsModuleService {
     public void deleteSchemaSet(final String dataspaceName, final String schemaSetName,
                                 final CascadeDeleteAllowed cascadeDeleteAllowed) {
         cpsValidator.validateNameCharacters(dataspaceName, schemaSetName);
-        final Collection<Anchor> anchors = cpsAdminService.getAnchors(dataspaceName, schemaSetName);
+        final Collection<Anchor> anchors = cpsAnchorService.getAnchors(dataspaceName, schemaSetName);
         if (!anchors.isEmpty() && isCascadeDeleteProhibited(cascadeDeleteAllowed)) {
             throw new SchemaSetInUseException(dataspaceName, schemaSetName);
         }
         for (final Anchor anchor : anchors) {
-            cpsAdminService.deleteAnchor(dataspaceName, anchor.getName());
+            cpsAnchorService.deleteAnchor(dataspaceName, anchor.getName());
         }
         cpsModulePersistenceService.deleteSchemaSet(dataspaceName, schemaSetName);
         yangTextSchemaSourceSetCache.removeFromCache(dataspaceName, schemaSetName);
@@ -115,16 +114,27 @@ public class CpsModuleServiceImpl implements CpsModuleService {
     public void deleteSchemaSetsWithCascade(final String dataspaceName, final Collection<String> schemaSetNames) {
         cpsValidator.validateNameCharacters(dataspaceName);
         cpsValidator.validateNameCharacters(schemaSetNames);
-        final Collection<String> anchorNames = cpsAdminService.getAnchors(dataspaceName, schemaSetNames)
+        final Collection<String> anchorNames = cpsAnchorService.getAnchors(dataspaceName, schemaSetNames)
             .stream().map(Anchor::getName).collect(Collectors.toSet());
-        cpsAdminService.deleteAnchors(dataspaceName, anchorNames);
-        cpsModulePersistenceService.deleteUnusedYangResourceModules();
+        cpsAnchorService.deleteAnchors(dataspaceName, anchorNames);
         cpsModulePersistenceService.deleteSchemaSets(dataspaceName, schemaSetNames);
+        cpsModulePersistenceService.deleteUnusedYangResourceModules();
         for (final String schemaSetName : schemaSetNames) {
             yangTextSchemaSourceSetCache.removeFromCache(dataspaceName, schemaSetName);
         }
     }
 
+    @Override
+    public void upgradeSchemaSetFromModules(final String dataspaceName, final String schemaSetName,
+                                            final Map<String, String> newModuleNameToContentMap,
+                                            final Collection<ModuleReference> allModuleReferences) {
+        cpsValidator.validateNameCharacters(dataspaceName, schemaSetName);
+        cpsModulePersistenceService.updateSchemaSetFromModules(dataspaceName, schemaSetName,
+                newModuleNameToContentMap, allModuleReferences);
+        yangTextSchemaSourceSetCache.removeFromCache(dataspaceName, schemaSetName);
+    }
+
+
     @Override
     public Collection<ModuleReference> getYangResourceModuleReferences(final String dataspaceName) {
         cpsValidator.validateNameCharacters(dataspaceName);
@@ -145,6 +155,15 @@ public class CpsModuleServiceImpl implements CpsModuleService {
         return cpsModulePersistenceService.getYangResourceDefinitions(dataspaceName, anchorName);
     }
 
+    @Override
+    public Collection<ModuleDefinition> getModuleDefinitionsByAnchorAndModule(final String dataspaceName,
+                                                                              final String anchorName,
+                                                                              final String moduleName,
+                                                                              final String moduleRevision) {
+        return cpsModulePersistenceService.getYangResourceDefinitionsByAnchorAndModule(dataspaceName, anchorName,
+            moduleName, moduleRevision);
+    }
+
     @Override
     public Collection<ModuleReference> identifyNewModuleReferences(
         final Collection<ModuleReference> moduleReferencesToCheck) {