aboutsummaryrefslogtreecommitdiffstats
path: root/cps-service/src/main
diff options
context:
space:
mode:
authorDaniel Hanrahan <daniel.hanrahan@est.tech>2025-02-06 16:31:29 +0000
committerGerrit Code Review <gerrit@onap.org>2025-02-06 16:31:29 +0000
commit5e1fb6f6917d286d6deadc6a00b2de4a55b78f17 (patch)
treec7ca0841f06acff7c3de6ff51a7b051a1aa565fc /cps-service/src/main
parent2489064ffa94f76a5e49fed8e06d1299ec9cc671 (diff)
parent4ec2a5d944b4c2bad799e6610f03912f5c955b50 (diff)
Merge "Fix duplicated yang resource references V2"
Diffstat (limited to 'cps-service/src/main')
-rw-r--r--cps-service/src/main/java/org/onap/cps/api/CpsDataService.java4
-rw-r--r--cps-service/src/main/java/org/onap/cps/api/CpsModuleService.java14
-rw-r--r--cps-service/src/main/java/org/onap/cps/impl/CpsDataServiceImpl.java24
-rw-r--r--cps-service/src/main/java/org/onap/cps/impl/CpsModuleServiceImpl.java21
-rw-r--r--cps-service/src/main/java/org/onap/cps/init/AbstractModelLoader.java4
-rwxr-xr-xcps-service/src/main/java/org/onap/cps/spi/CpsModulePersistenceService.java35
-rw-r--r--cps-service/src/main/java/org/onap/cps/utils/YangParser.java16
-rw-r--r--cps-service/src/main/java/org/onap/cps/yang/TimedYangTextSchemaSourceSetBuilder.java4
8 files changed, 62 insertions, 60 deletions
diff --git a/cps-service/src/main/java/org/onap/cps/api/CpsDataService.java b/cps-service/src/main/java/org/onap/cps/api/CpsDataService.java
index 345bc8825b..41713746b7 100644
--- a/cps-service/src/main/java/org/onap/cps/api/CpsDataService.java
+++ b/cps-service/src/main/java/org/onap/cps/api/CpsDataService.java
@@ -314,13 +314,13 @@ public interface CpsDataService {
* @param dataspaceName source dataspace name
* @param sourceAnchorName source anchor name
* @param xpath xpath
- * @param yangResourcesNameToContentMap YANG resources (files) map where key is a name and value is content
+ * @param yangResourceContentPerName YANG resources (files) map where key is a name and value is content
* @param targetData target data to be compared in JSON string format
* @param fetchDescendantsOption defines the scope of data to fetch: defaulted to INCLUDE_ALL_DESCENDANTS
* @return list containing {@link DeltaReport} objects
*/
List<DeltaReport> getDeltaByDataspaceAnchorAndPayload(String dataspaceName, String sourceAnchorName, String xpath,
- Map<String, String> yangResourcesNameToContentMap,
+ Map<String, String> yangResourceContentPerName,
String targetData,
FetchDescendantsOption fetchDescendantsOption);
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 c6b8c60ab9..2494be4021 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
@@ -40,21 +40,21 @@ public interface CpsModuleService {
*
* @param dataspaceName dataspace name
* @param schemaSetName schema set name
- * @param yangResourcesNameToContentMap yang resources (files) as a mep where key is resource name
+ * @param yangResourceContentPerName yang resources (files) as a mep where key is resource name
* and value is content
*/
void createSchemaSet(String dataspaceName, String schemaSetName,
- Map<String, String> yangResourcesNameToContentMap);
+ Map<String, String> yangResourceContentPerName);
/**
* Create or upgrade a schema set from new modules and existing modules or only existing modules.
- * @param dataspaceName Dataspace name
- * @param schemaSetName schema set name
- * @param newModuleNameToContentMap YANG resources map where key is a module name and value is content
- * @param allModuleReferences All YANG resource module references
+ * @param dataspaceName Dataspace name
+ * @param schemaSetName schema set name
+ * @param yangResourceContentPerName YANG resources map where key is a name and value is content
+ * @param allModuleReferences All YANG resource module references
*/
void createSchemaSetFromModules(String dataspaceName, String schemaSetName,
- Map<String, String> newModuleNameToContentMap,
+ Map<String, String> yangResourceContentPerName,
Collection<ModuleReference> allModuleReferences);
/**
diff --git a/cps-service/src/main/java/org/onap/cps/impl/CpsDataServiceImpl.java b/cps-service/src/main/java/org/onap/cps/impl/CpsDataServiceImpl.java
index 71e6f79bb7..9f70ac9132 100644
--- a/cps-service/src/main/java/org/onap/cps/impl/CpsDataServiceImpl.java
+++ b/cps-service/src/main/java/org/onap/cps/impl/CpsDataServiceImpl.java
@@ -230,7 +230,7 @@ public class CpsDataServiceImpl implements CpsDataService {
@Override
public List<DeltaReport> getDeltaByDataspaceAnchorAndPayload(final String dataspaceName,
final String sourceAnchorName, final String xpath,
- final Map<String, String> yangResourcesNameToContentMap,
+ final Map<String, String> yangResourceContentPerName,
final String targetData,
final FetchDescendantsOption fetchDescendantsOption) {
@@ -243,7 +243,7 @@ public class CpsDataServiceImpl implements CpsDataService {
new ArrayList<>(rebuildSourceDataNodes(xpath, sourceAnchor, sourceDataNodes));
final Collection<DataNode> targetDataNodes =
- new ArrayList<>(buildTargetDataNodes(sourceAnchor, xpath, yangResourcesNameToContentMap, targetData));
+ new ArrayList<>(buildTargetDataNodes(sourceAnchor, xpath, yangResourceContentPerName, targetData));
return cpsDeltaService.getDeltaReports(sourceDataNodesRebuilt, targetDataNodes);
}
@@ -380,12 +380,12 @@ public class CpsDataServiceImpl implements CpsDataService {
}
private Collection<DataNode> buildTargetDataNodes(final Anchor sourceAnchor, final String xpath,
- final Map<String, String> yangResourcesNameToContentMap,
+ final Map<String, String> yangResourceContentPerName,
final String targetData) {
- if (yangResourcesNameToContentMap.isEmpty()) {
+ if (yangResourceContentPerName.isEmpty()) {
return buildDataNodesWithAnchorAndXpath(sourceAnchor, xpath, targetData, ContentType.JSON);
} else {
- return buildDataNodesWithYangResourceAndXpath(yangResourcesNameToContentMap, xpath,
+ return buildDataNodesWithYangResourceAndXpath(yangResourceContentPerName, xpath,
targetData, ContentType.JSON);
}
}
@@ -454,12 +454,12 @@ public class CpsDataServiceImpl implements CpsDataService {
}
private Collection<DataNode> buildDataNodesWithParentNodeXpath(
- final Map<String, String> yangResourcesNameToContentMap, final String xpath,
+ final Map<String, String> yangResourceContentPerName, final String xpath,
final String nodeData, final ContentType contentType) {
if (isRootNodeXpath(xpath)) {
final ContainerNode containerNode = yangParser.parseData(contentType, nodeData,
- yangResourcesNameToContentMap, PARENT_NODE_XPATH_FOR_ROOT_NODE_XPATH);
+ yangResourceContentPerName, PARENT_NODE_XPATH_FOR_ROOT_NODE_XPATH);
final Collection<DataNode> dataNodes = new DataNodeBuilder()
.withContainerNode(containerNode)
.buildCollection();
@@ -470,7 +470,7 @@ public class CpsDataServiceImpl implements CpsDataService {
}
final String normalizedParentNodeXpath = CpsPathUtil.getNormalizedXpath(xpath);
final ContainerNode containerNode =
- yangParser.parseData(contentType, nodeData, yangResourcesNameToContentMap, normalizedParentNodeXpath);
+ yangParser.parseData(contentType, nodeData, yangResourceContentPerName, normalizedParentNodeXpath);
final Collection<DataNode> dataNodes = new DataNodeBuilder()
.withParentNodeXpath(normalizedParentNodeXpath)
.withContainerNode(containerNode)
@@ -496,18 +496,18 @@ public class CpsDataServiceImpl implements CpsDataService {
}
private Collection<DataNode> buildDataNodesWithYangResourceAndXpath(
- final Map<String, String> yangResourcesNameToContentMap, final String xpath,
+ final Map<String, String> yangResourceContentPerName, final String xpath,
final String nodeData, final ContentType contentType) {
if (!isRootNodeXpath(xpath)) {
final String parentNodeXpath = CpsPathUtil.getNormalizedParentXpath(xpath);
if (parentNodeXpath.isEmpty()) {
- return buildDataNodesWithParentNodeXpath(yangResourcesNameToContentMap, ROOT_NODE_XPATH,
+ return buildDataNodesWithParentNodeXpath(yangResourceContentPerName, ROOT_NODE_XPATH,
nodeData, contentType);
}
- return buildDataNodesWithParentNodeXpath(yangResourcesNameToContentMap, parentNodeXpath,
+ return buildDataNodesWithParentNodeXpath(yangResourceContentPerName, parentNodeXpath,
nodeData, contentType);
}
- return buildDataNodesWithParentNodeXpath(yangResourcesNameToContentMap, xpath, nodeData, contentType);
+ return buildDataNodesWithParentNodeXpath(yangResourceContentPerName, xpath, nodeData, contentType);
}
private static boolean isRootNodeXpath(final String xpath) {
diff --git a/cps-service/src/main/java/org/onap/cps/impl/CpsModuleServiceImpl.java b/cps-service/src/main/java/org/onap/cps/impl/CpsModuleServiceImpl.java
index b16abcc31f..e50325c739 100644
--- a/cps-service/src/main/java/org/onap/cps/impl/CpsModuleServiceImpl.java
+++ b/cps-service/src/main/java/org/onap/cps/impl/CpsModuleServiceImpl.java
@@ -57,21 +57,21 @@ public class CpsModuleServiceImpl implements CpsModuleService {
@Timed(value = "cps.module.service.schemaset.create",
description = "Time taken to create (and store) a schemaset")
public void createSchemaSet(final String dataspaceName, final String schemaSetName,
- final Map<String, String> yangResourcesNameToContentMap) {
+ final Map<String, String> yangResourceContentPerName) {
cpsValidator.validateNameCharacters(dataspaceName);
- cpsModulePersistenceService.storeSchemaSet(dataspaceName, schemaSetName, yangResourcesNameToContentMap);
+ cpsModulePersistenceService.createSchemaSet(dataspaceName, schemaSetName, yangResourceContentPerName);
final YangTextSchemaSourceSet yangTextSchemaSourceSet =
- timedYangTextSchemaSourceSetBuilder.getYangTextSchemaSourceSet(yangResourcesNameToContentMap);
+ timedYangTextSchemaSourceSetBuilder.getYangTextSchemaSourceSet(yangResourceContentPerName);
yangTextSchemaSourceSetCache.updateCache(dataspaceName, schemaSetName, yangTextSchemaSourceSet);
}
@Override
public void createSchemaSetFromModules(final String dataspaceName, final String schemaSetName,
- final Map<String, String> newModuleNameToContentMap,
+ final Map<String, String> yangResourceContentPerName,
final Collection<ModuleReference> allModuleReferences) {
cpsValidator.validateNameCharacters(dataspaceName);
- cpsModulePersistenceService.storeSchemaSetFromModules(dataspaceName, schemaSetName,
- newModuleNameToContentMap, allModuleReferences);
+ cpsModulePersistenceService.createSchemaSetFromNewAndExistingModules(dataspaceName, schemaSetName,
+ yangResourceContentPerName, allModuleReferences);
}
@Override
@@ -83,7 +83,7 @@ public class CpsModuleServiceImpl implements CpsModuleService {
@Override
public SchemaSet getSchemaSet(final String dataspaceName, final String schemaSetName) {
cpsValidator.validateNameCharacters(dataspaceName);
- final var yangTextSchemaSourceSet = yangTextSchemaSourceSetCache
+ final YangTextSchemaSourceSet yangTextSchemaSourceSet = yangTextSchemaSourceSetCache
.get(dataspaceName, schemaSetName);
return SchemaSet.builder().name(schemaSetName).dataspaceName(dataspaceName)
.moduleReferences(yangTextSchemaSourceSet.getModuleReferences()).build();
@@ -130,15 +130,14 @@ public class CpsModuleServiceImpl implements CpsModuleService {
@Override
public void upgradeSchemaSetFromModules(final String dataspaceName, final String schemaSetName,
- final Map<String, String> newModuleNameToContentMap,
+ final Map<String, String> newYangResourceContentPerModule,
final Collection<ModuleReference> allModuleReferences) {
cpsValidator.validateNameCharacters(dataspaceName);
- cpsModulePersistenceService.updateSchemaSetFromModules(dataspaceName, schemaSetName,
- newModuleNameToContentMap, allModuleReferences);
+ cpsModulePersistenceService.updateSchemaSetFromNewAndExistingModules(dataspaceName, schemaSetName,
+ newYangResourceContentPerModule, allModuleReferences);
yangTextSchemaSourceSetCache.removeFromCache(dataspaceName, schemaSetName);
}
-
@Override
public Collection<ModuleReference> getYangResourceModuleReferences(final String dataspaceName) {
cpsValidator.validateNameCharacters(dataspaceName);
diff --git a/cps-service/src/main/java/org/onap/cps/init/AbstractModelLoader.java b/cps-service/src/main/java/org/onap/cps/init/AbstractModelLoader.java
index e864633f25..a80239039a 100644
--- a/cps-service/src/main/java/org/onap/cps/init/AbstractModelLoader.java
+++ b/cps-service/src/main/java/org/onap/cps/init/AbstractModelLoader.java
@@ -1,6 +1,6 @@
/*
* ============LICENSE_START=======================================================
- * Copyright (C) 2023-2024 Nordix Foundation
+ * Copyright (C) 2023-2025 Nordix Foundation
* Modifications Copyright (C) 2024 TechMahindra Ltd.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -77,7 +77,7 @@ public abstract class AbstractModelLoader implements ModelLoader {
} catch (final AlreadyDefinedException alreadyDefinedException) {
log.warn("Creating new schema set failed as schema set already exists");
} catch (final Exception exception) {
- log.error("Creating schema set failed: {} ", exception.getMessage());
+ log.error("Creating schema set {} failed: {} ", schemaSetName, exception.getMessage());
throw new ModelOnboardingException("Creating schema set failed", exception.getMessage());
}
}
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 86ad50252d..02e1b6c754 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
@@ -36,34 +36,37 @@ public interface CpsModulePersistenceService {
/**
* Stores Schema Set.
*
- * @param dataspaceName dataspace name
- * @param schemaSetName schema set name
- * @param yangResourcesNameToContentMap YANG resources (files) map where key is a name and value is content
+ * @param dataspaceName dataspace name
+ * @param schemaSetName schema set name
+ * @param yangResourceContentPerName a map of YANG resources map where key is a name and value is content
*/
- void storeSchemaSet(String dataspaceName, String schemaSetName, Map<String, String> yangResourcesNameToContentMap);
+ void createSchemaSet(String dataspaceName, String schemaSetName, Map<String, String> yangResourceContentPerName);
/**
* Stores a new schema set from new modules and existing modules.
*
- * @param dataspaceName Dataspace name
- * @param schemaSetName Schema set name
- * @param newModuleNameToContentMap YANG resources map where key is a module name and value is content
- * @param allModuleReferences All YANG resources module references
+ * @param dataspaceName dataspace name
+ * @param schemaSetName Schema set name
+ * @param newYangResourceContentPerName a map of only the new YANG resources
+ * the key is a name and value is its content
+ * @param allModuleReferences all YANG resources module references
*/
- void storeSchemaSetFromModules(String dataspaceName, String schemaSetName,
- Map<String, String> newModuleNameToContentMap, Collection<ModuleReference> allModuleReferences);
+ void createSchemaSetFromNewAndExistingModules(String dataspaceName, String schemaSetName,
+ Map<String, String> newYangResourceContentPerName,
+ Collection<ModuleReference> allModuleReferences);
/**
* Update an existing schema set from new modules and existing modules.
*
- * @param dataspaceName Dataspace name
+ * @param dataspaceName dataspace name
* @param schemaSetName Schema set name
- * @param newModuleNameToContentMap YANG resources map where key is a module name and value is content
- * @param allModuleReferences All YANG resources module references
+ * @param newYangResourcesPerName a map of only the new YANG resources
+ * the key is a module name and value is its content
+ * @param allModuleReferences all YANG resources module references
*/
- void updateSchemaSetFromModules(final String dataspaceName, final String schemaSetName,
- final Map<String, String> newModuleNameToContentMap,
- final Collection<ModuleReference> allModuleReferences);
+ void updateSchemaSetFromNewAndExistingModules(String dataspaceName, String schemaSetName,
+ Map<String, String> newYangResourcesPerName,
+ Collection<ModuleReference> allModuleReferences);
/**
* Checks whether a schema set exists in the specified dataspace.
diff --git a/cps-service/src/main/java/org/onap/cps/utils/YangParser.java b/cps-service/src/main/java/org/onap/cps/utils/YangParser.java
index 08f450e2f1..5dfeb2fb3f 100644
--- a/cps-service/src/main/java/org/onap/cps/utils/YangParser.java
+++ b/cps-service/src/main/java/org/onap/cps/utils/YangParser.java
@@ -1,6 +1,6 @@
/*
* ============LICENSE_START=======================================================
- * Copyright (C) 2024 Nordix Foundation.
+ * Copyright (C) 2024-2025 Nordix Foundation.
* Modifications Copyright (C) 2024 TechMahindra Ltd.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -71,17 +71,17 @@ public class YangParser {
/**
* Parses data into (normalized) ContainerNode according to schema context for the given yang resource.
*
- * @param nodeData data string
- * @param yangResourcesNameToContentMap yang resource to content map
- * @return the NormalizedNode object
+ * @param nodeData data string
+ * @param yangResourceContentPerName yang resource content per name
+ * @return the NormalizedNode object
*/
@Timed(value = "cps.utils.yangparser.nodedata.with.parent.with.yangResourceMap.parse",
description = "Time taken to parse node data with a parent")
public ContainerNode parseData(final ContentType contentType,
final String nodeData,
- final Map<String, String> yangResourcesNameToContentMap,
+ final Map<String, String> yangResourceContentPerName,
final String parentNodeXpath) {
- final SchemaContext schemaContext = getSchemaContext(yangResourcesNameToContentMap);
+ final SchemaContext schemaContext = getSchemaContext(yangResourceContentPerName);
return yangParserHelper.parseData(contentType, nodeData, schemaContext, parentNodeXpath, VALIDATE_AND_PARSE);
}
@@ -114,8 +114,8 @@ public class YangParser {
anchor.getSchemaSetName()).getSchemaContext();
}
- private SchemaContext getSchemaContext(final Map<String, String> yangResourcesNameToContentMap) {
- return timedYangTextSchemaSourceSetBuilder.getYangTextSchemaSourceSet(yangResourcesNameToContentMap)
+ private SchemaContext getSchemaContext(final Map<String, String> yangResourceContentPerName) {
+ return timedYangTextSchemaSourceSetBuilder.getYangTextSchemaSourceSet(yangResourceContentPerName)
.getSchemaContext();
}
diff --git a/cps-service/src/main/java/org/onap/cps/yang/TimedYangTextSchemaSourceSetBuilder.java b/cps-service/src/main/java/org/onap/cps/yang/TimedYangTextSchemaSourceSetBuilder.java
index 013faff0c8..9b2ac944dc 100644
--- a/cps-service/src/main/java/org/onap/cps/yang/TimedYangTextSchemaSourceSetBuilder.java
+++ b/cps-service/src/main/java/org/onap/cps/yang/TimedYangTextSchemaSourceSetBuilder.java
@@ -30,8 +30,8 @@ public class TimedYangTextSchemaSourceSetBuilder {
@Timed(value = "cps.yangtextschemasourceset.build",
description = "Time taken to build a yang text schema source set")
public YangTextSchemaSourceSet getYangTextSchemaSourceSet(
- final Map<String, String> yangResourcesNameToContentMap) {
- return YangTextSchemaSourceSetBuilder.of(yangResourcesNameToContentMap);
+ final Map<String, String> yangResourceContentPerName) {
+ return YangTextSchemaSourceSetBuilder.of(yangResourceContentPerName);
}
}