summaryrefslogtreecommitdiffstats
path: root/cps-ncmp-service/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'cps-ncmp-service/src/main/java')
-rw-r--r--cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/cache/HazelcastCacheConfig.java9
-rw-r--r--cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/datajobs/DmiSubJobRequestHandler.java9
-rw-r--r--cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/inventory/CmHandleQueryServiceImpl.java2
-rw-r--r--cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/inventory/InventoryPersistenceImpl.java2
-rw-r--r--cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/inventory/sync/DmiModelOperations.java19
-rw-r--r--cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/inventory/sync/ModuleOperationsUtils.java9
-rw-r--r--cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/inventory/sync/ModuleSyncService.java54
-rw-r--r--cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/inventory/sync/ModuleSyncTasks.java2
8 files changed, 52 insertions, 54 deletions
diff --git a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/cache/HazelcastCacheConfig.java b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/cache/HazelcastCacheConfig.java
index 75007e2e35..1a7ef758d8 100644
--- a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/cache/HazelcastCacheConfig.java
+++ b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/cache/HazelcastCacheConfig.java
@@ -1,6 +1,6 @@
/*
* ============LICENSE_START========================================================
- * Copyright (C) 2023-2024 Nordix Foundation
+ * Copyright (C) 2023-2025 Nordix Foundation
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -25,7 +25,6 @@ import com.hazelcast.config.MapConfig;
import com.hazelcast.config.NamedConfig;
import com.hazelcast.config.NearCacheConfig;
import com.hazelcast.config.QueueConfig;
-import com.hazelcast.config.RestEndpointGroup;
import com.hazelcast.config.SetConfig;
import com.hazelcast.core.Hazelcast;
import com.hazelcast.core.HazelcastInstance;
@@ -61,7 +60,6 @@ public class HazelcastCacheConfig {
config.setClusterName(clusterName);
config.setClassLoader(Dataspace.class.getClassLoader());
configureDataStructures(namedConfig, config);
- exposeClusterInformation(config);
updateDiscoveryMode(config);
return config;
}
@@ -130,9 +128,4 @@ public class HazelcastCacheConfig {
}
}
- protected void exposeClusterInformation(final Config config) {
- config.getNetworkConfig().getRestApiConfig().setEnabled(true)
- .enableGroups(RestEndpointGroup.HEALTH_CHECK, RestEndpointGroup.CLUSTER_READ);
- }
-
}
diff --git a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/datajobs/DmiSubJobRequestHandler.java b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/datajobs/DmiSubJobRequestHandler.java
index a118d53e7e..d74863a710 100644
--- a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/datajobs/DmiSubJobRequestHandler.java
+++ b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/datajobs/DmiSubJobRequestHandler.java
@@ -1,6 +1,6 @@
/*
* ============LICENSE_START=======================================================
- * Copyright (C) 2024 Nordix Foundation
+ * Copyright (C) 2024-2025 Nordix Foundation
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -79,8 +79,11 @@ public class DmiSubJobRequestHandler {
jsonObjectMapper.asJsonString(subJobWriteRequest),
OperationType.CREATE,
authorization);
- final SubJobWriteResponse subJobWriteResponse = jsonObjectMapper
- .convertToValueType(responseEntity.getBody(), SubJobWriteResponse.class);
+ final Map<String, String> responseAsKeyValuePairs = jsonObjectMapper
+ .convertToValueType(responseEntity.getBody(), Map.class);
+ final String subJobId = responseAsKeyValuePairs.get("subJobId");
+ final SubJobWriteResponse subJobWriteResponse = new SubJobWriteResponse(subJobId,
+ producerKey.dmiServiceName(), producerKey.dataProducerIdentifier());
log.debug("Sub job write response: {}", subJobWriteResponse);
subJobWriteResponses.add(subJobWriteResponse);
});
diff --git a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/inventory/CmHandleQueryServiceImpl.java b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/inventory/CmHandleQueryServiceImpl.java
index 59d0f9704e..ae913ddfe7 100644
--- a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/inventory/CmHandleQueryServiceImpl.java
+++ b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/inventory/CmHandleQueryServiceImpl.java
@@ -38,7 +38,6 @@ import org.onap.cps.api.CpsQueryService;
import org.onap.cps.api.model.DataNode;
import org.onap.cps.api.parameters.FetchDescendantsOption;
import org.onap.cps.cpspath.parser.CpsPathUtil;
-import org.onap.cps.impl.utils.CpsValidator;
import org.onap.cps.ncmp.api.inventory.DataStoreSyncState;
import org.onap.cps.ncmp.api.inventory.models.CmHandleState;
import org.onap.cps.ncmp.api.inventory.models.TrustLevel;
@@ -46,6 +45,7 @@ import org.onap.cps.ncmp.impl.inventory.models.ModelledDmiServiceLeaves;
import org.onap.cps.ncmp.impl.inventory.models.PropertyType;
import org.onap.cps.ncmp.impl.inventory.trustlevel.TrustLevelCacheConfig;
import org.onap.cps.ncmp.impl.utils.YangDataConverter;
+import org.onap.cps.utils.CpsValidator;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Component;
diff --git a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/inventory/InventoryPersistenceImpl.java b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/inventory/InventoryPersistenceImpl.java
index e7ec9cd13c..e145c62921 100644
--- a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/inventory/InventoryPersistenceImpl.java
+++ b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/inventory/InventoryPersistenceImpl.java
@@ -45,13 +45,13 @@ import org.onap.cps.api.model.DataNode;
import org.onap.cps.api.model.ModuleDefinition;
import org.onap.cps.api.model.ModuleReference;
import org.onap.cps.api.parameters.FetchDescendantsOption;
-import org.onap.cps.impl.utils.CpsValidator;
import org.onap.cps.ncmp.api.exceptions.CmHandleNotFoundException;
import org.onap.cps.ncmp.api.inventory.models.CompositeState;
import org.onap.cps.ncmp.api.inventory.models.CompositeStateBuilder;
import org.onap.cps.ncmp.impl.inventory.models.YangModelCmHandle;
import org.onap.cps.ncmp.impl.utils.YangDataConverter;
import org.onap.cps.utils.ContentType;
+import org.onap.cps.utils.CpsValidator;
import org.onap.cps.utils.JsonObjectMapper;
import org.springframework.stereotype.Component;
diff --git a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/inventory/sync/DmiModelOperations.java b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/inventory/sync/DmiModelOperations.java
index 1e24671f8d..2cc4375447 100644
--- a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/inventory/sync/DmiModelOperations.java
+++ b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/inventory/sync/DmiModelOperations.java
@@ -1,6 +1,6 @@
/*
* ============LICENSE_START=======================================================
- * Copyright (C) 2021-2024 Nordix Foundation
+ * Copyright (C) 2021-2025 Nordix Foundation
* Modifications Copyright (C) 2022 Bell Canada
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -61,13 +61,14 @@ public class DmiModelOperations {
* Retrieves module references.
*
* @param yangModelCmHandle the yang model cm handle
+ * @param targetModuleSetTag module set tag to send to dmi
* @return module references
*/
@Timed(value = "cps.ncmp.inventory.module.references.from.dmi",
description = "Time taken to get all module references for a cm handle from dmi")
- public List<ModuleReference> getModuleReferences(final YangModelCmHandle yangModelCmHandle) {
- final DmiRequestBody dmiRequestBody = DmiRequestBody.builder()
- .moduleSetTag(yangModelCmHandle.getModuleSetTag()).build();
+ public List<ModuleReference> getModuleReferences(final YangModelCmHandle yangModelCmHandle,
+ final String targetModuleSetTag) {
+ final DmiRequestBody dmiRequestBody = DmiRequestBody.builder().moduleSetTag(targetModuleSetTag).build();
dmiRequestBody.asDmiProperties(yangModelCmHandle.getDmiProperties());
final ResponseEntity<Object> dmiFetchModulesResponseEntity = getResourceFromDmiWithJsonData(
yangModelCmHandle.resolveDmiServiceName(MODEL),
@@ -79,18 +80,20 @@ public class DmiModelOperations {
* Retrieve yang resources from dmi for any modules that CPS-NCMP hasn't cached before.
*
* @param yangModelCmHandle the yangModelCmHandle
+ * @param targetModuleSetTag module set tag to send to dmi
* @param newModuleReferences the unknown module references
* @return yang resources as map of module name to yang(re)source
*/
@Timed(value = "cps.ncmp.inventory.yang.resources.from.dmi",
description = "Time taken to get list of yang resources from dmi")
public Map<String, String> getNewYangResourcesFromDmi(final YangModelCmHandle yangModelCmHandle,
+ final String targetModuleSetTag,
final Collection<ModuleReference> newModuleReferences) {
if (newModuleReferences.isEmpty()) {
return Collections.emptyMap();
}
final String jsonWithDataAndDmiProperties = getRequestBodyToFetchYangResources(newModuleReferences,
- yangModelCmHandle.getDmiProperties(), yangModelCmHandle.getModuleSetTag());
+ yangModelCmHandle.getDmiProperties(), targetModuleSetTag);
final ResponseEntity<Object> responseEntity = getResourceFromDmiWithJsonData(
yangModelCmHandle.resolveDmiServiceName(MODEL),
jsonWithDataAndDmiProperties,
@@ -123,13 +126,13 @@ public class DmiModelOperations {
private static String getRequestBodyToFetchYangResources(final Collection<ModuleReference> newModuleReferences,
final List<YangModelCmHandle.Property> dmiProperties,
- final String moduleSetTag) {
+ final String targetModuleSetTag) {
final JsonArray moduleReferencesAsJson = getModuleReferencesAsJson(newModuleReferences);
final JsonObject data = new JsonObject();
data.add("modules", moduleReferencesAsJson);
final JsonObject jsonRequestObject = new JsonObject();
- if (!moduleSetTag.isEmpty()) {
- jsonRequestObject.addProperty("moduleSetTag", moduleSetTag);
+ if (!targetModuleSetTag.isEmpty()) {
+ jsonRequestObject.addProperty("moduleSetTag", targetModuleSetTag);
}
jsonRequestObject.add("data", data);
jsonRequestObject.add("cmHandleProperties", toJsonObject(dmiProperties));
diff --git a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/inventory/sync/ModuleOperationsUtils.java b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/inventory/sync/ModuleOperationsUtils.java
index e9f3d9b475..80e41652ee 100644
--- a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/inventory/sync/ModuleOperationsUtils.java
+++ b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/inventory/sync/ModuleOperationsUtils.java
@@ -1,6 +1,6 @@
/*
* ============LICENSE_START=======================================================
- * Copyright (C) 2022-2024 Nordix Foundation
+ * Copyright (C) 2022-2025 Nordix Foundation
* Modifications Copyright (C) 2022 Bell Canada
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -189,7 +189,12 @@ public class ModuleOperationsUtils {
.getLockReasonCategory()));
}
- public static String getTargetModuleSetTagFromLockReason(final CompositeState.LockReason lockReason) {
+ public static String getTargetModuleSetTagForUpgrade(final YangModelCmHandle yangModelCmHandle) {
+ final CompositeState.LockReason lockReason = yangModelCmHandle.getCompositeState().getLockReason();
+ return getTargetModuleSetTagFromLockReason(lockReason);
+ }
+
+ private static String getTargetModuleSetTagFromLockReason(final CompositeState.LockReason lockReason) {
return getLockedCompositeStateDetails(lockReason).getOrDefault(MODULE_SET_TAG_KEY, "");
}
diff --git a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/inventory/sync/ModuleSyncService.java b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/inventory/sync/ModuleSyncService.java
index 6c1dc731c6..f929d6708c 100644
--- a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/inventory/sync/ModuleSyncService.java
+++ b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/inventory/sync/ModuleSyncService.java
@@ -36,7 +36,6 @@ import org.onap.cps.api.CpsAnchorService;
import org.onap.cps.api.CpsDataService;
import org.onap.cps.api.CpsModuleService;
import org.onap.cps.api.exceptions.AlreadyDefinedException;
-import org.onap.cps.api.exceptions.DuplicatedYangResourceException;
import org.onap.cps.api.model.ModuleReference;
import org.onap.cps.ncmp.impl.inventory.models.YangModelCmHandle;
import org.onap.cps.utils.ContentType;
@@ -67,14 +66,14 @@ public class ModuleSyncService {
*/
public void syncAndCreateSchemaSetAndAnchor(final YangModelCmHandle yangModelCmHandle) {
final String cmHandleId = yangModelCmHandle.getId();
- final String moduleSetTag = yangModelCmHandle.getModuleSetTag();
- final String schemaSetName = getSchemaSetName(cmHandleId, moduleSetTag);
- syncAndCreateSchemaSet(yangModelCmHandle, schemaSetName);
+ final String targetModuleSetTag = yangModelCmHandle.getModuleSetTag();
+ final String schemaSetName = getSchemaSetNameForModuleSetTag(cmHandleId, targetModuleSetTag);
+ syncAndCreateSchemaSet(yangModelCmHandle, schemaSetName, targetModuleSetTag);
try {
cpsAnchorService.createAnchor(NFP_OPERATIONAL_DATASTORE_DATASPACE_NAME, schemaSetName, cmHandleId);
} catch (final AlreadyDefinedException alreadyDefinedException) {
- log.warn("Ignoring (anchor) already exist exception for {}. Exception details: ",
- yangModelCmHandle.getId(), alreadyDefinedException);
+ log.warn("Ignoring (Anchor) already exists exception for {}. Exception details: {}", cmHandleId,
+ alreadyDefinedException.getDetails());
}
}
@@ -86,28 +85,29 @@ public class ModuleSyncService {
public void syncAndUpgradeSchemaSet(final YangModelCmHandle yangModelCmHandle) {
final String cmHandleId = yangModelCmHandle.getId();
final String sourceModuleSetTag = yangModelCmHandle.getModuleSetTag();
- final String targetModuleSetTag = ModuleOperationsUtils.getTargetModuleSetTagFromLockReason(
- yangModelCmHandle.getCompositeState().getLockReason());
+ final String targetModuleSetTag = ModuleOperationsUtils.getTargetModuleSetTagForUpgrade(yangModelCmHandle);
+ final String schemaSetName = getSchemaSetNameForModuleSetTag(cmHandleId, targetModuleSetTag);
if (sourceModuleSetTag.isEmpty() && targetModuleSetTag.isEmpty()) {
- final ModuleDelta moduleDelta = getModuleDelta(yangModelCmHandle);
+ final ModuleDelta moduleDelta = getModuleDelta(yangModelCmHandle, targetModuleSetTag);
cpsModuleService.upgradeSchemaSetFromModules(NFP_OPERATIONAL_DATASTORE_DATASPACE_NAME,
- cmHandleId, moduleDelta.newModuleNameToContentMap, moduleDelta.allModuleReferences);
+ schemaSetName, moduleDelta.newModuleNameToContentMap, moduleDelta.allModuleReferences);
} else {
- final String targetSchemaSetName = getSchemaSetName(cmHandleId, targetModuleSetTag);
- syncAndCreateSchemaSet(yangModelCmHandle, targetSchemaSetName);
- cpsAnchorService.updateAnchorSchemaSet(NFP_OPERATIONAL_DATASTORE_DATASPACE_NAME, cmHandleId,
- targetSchemaSetName);
+ syncAndCreateSchemaSet(yangModelCmHandle, schemaSetName, targetModuleSetTag);
+ cpsAnchorService.updateAnchorSchemaSet(NFP_OPERATIONAL_DATASTORE_DATASPACE_NAME, cmHandleId, schemaSetName);
setCmHandleModuleSetTag(yangModelCmHandle, targetModuleSetTag);
log.info("Upgrading schema set for CM handle ID: {}, Source Tag: {}, Target Tag: {}",
cmHandleId, sourceModuleSetTag, targetModuleSetTag);
}
}
- private void syncAndCreateSchemaSet(final YangModelCmHandle yangModelCmHandle, final String schemaSetName) {
+ private void syncAndCreateSchemaSet(final YangModelCmHandle yangModelCmHandle,
+ final String schemaSetName,
+ final String targetModuleSetTag) {
if (isNewSchemaSet(schemaSetName)) {
- final ModuleDelta moduleDelta = getModuleDelta(yangModelCmHandle);
+ final String cmHandleId = yangModelCmHandle.getId();
+ final ModuleDelta moduleDelta = getModuleDelta(yangModelCmHandle, targetModuleSetTag);
try {
- log.info("Creating Schema Set {} for CM Handle {}", schemaSetName, yangModelCmHandle.getId());
+ log.info("Creating Schema Set {} for CM Handle {}", schemaSetName, cmHandleId);
cpsModuleService.createSchemaSetFromModules(
NFP_OPERATIONAL_DATASTORE_DATASPACE_NAME,
schemaSetName,
@@ -117,15 +117,8 @@ public class ModuleSyncService {
log.info("Successfully created Schema Set {} for CM Handle {}", schemaSetName,
yangModelCmHandle.getId());
} catch (final AlreadyDefinedException alreadyDefinedException) {
- log.warn("Ignoring already exist (schema set) exception for {}. Exception details: ",
- yangModelCmHandle.getId(), alreadyDefinedException);
- } catch (final DuplicatedYangResourceException duplicatedYangResourceException) {
- log.warn("Duplicate Yang Resource {} creation for {}. "
- + "CM Handle will be LOCKED (for retry). Exception details: ",
- duplicatedYangResourceException.getName(),
- yangModelCmHandle.getId(),
- duplicatedYangResourceException);
- throw duplicatedYangResourceException;
+ log.warn("Ignoring (Schema Set) already exists exception for {}. Exception details: {}", cmHandleId,
+ alreadyDefinedException.getDetails());
}
}
}
@@ -134,13 +127,14 @@ public class ModuleSyncService {
return !cpsModuleService.schemaSetExists(NFP_OPERATIONAL_DATASTORE_DATASPACE_NAME, schemaSetName);
}
- private ModuleDelta getModuleDelta(final YangModelCmHandle yangModelCmHandle) {
+ private ModuleDelta getModuleDelta(final YangModelCmHandle yangModelCmHandle,
+ final String targetModuleSetTag) {
final Collection<ModuleReference> allModuleReferences =
- dmiModelOperations.getModuleReferences(yangModelCmHandle);
+ dmiModelOperations.getModuleReferences(yangModelCmHandle, targetModuleSetTag);
final Collection<ModuleReference> newModuleReferences =
cpsModuleService.identifyNewModuleReferences(allModuleReferences);
final Map<String, String> newYangResources = dmiModelOperations.getNewYangResourcesFromDmi(yangModelCmHandle,
- newModuleReferences);
+ targetModuleSetTag, newModuleReferences);
log.debug("Module delta calculated for CM handle ID: {}. All references: {}. New modules: {}",
yangModelCmHandle.getId(), allModuleReferences, newYangResources.keySet());
return new ModuleDelta(allModuleReferences, newYangResources);
@@ -153,7 +147,7 @@ public class ModuleSyncService {
jsonForUpdate, OffsetDateTime.now(), ContentType.JSON);
}
- private static String getSchemaSetName(final String cmHandleId, final String moduleSetTag) {
+ private static String getSchemaSetNameForModuleSetTag(final String cmHandleId, final String moduleSetTag) {
return moduleSetTag.isEmpty() ? cmHandleId : moduleSetTag;
}
diff --git a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/inventory/sync/ModuleSyncTasks.java b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/inventory/sync/ModuleSyncTasks.java
index b63496753e..f039cf3c02 100644
--- a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/inventory/sync/ModuleSyncTasks.java
+++ b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/inventory/sync/ModuleSyncTasks.java
@@ -114,7 +114,7 @@ public class ModuleSyncTasks {
compositeState.setLockReason(null);
return CmHandleState.READY;
} catch (final Exception e) {
- log.warn("Processing of {} failed,reason : ", yangModelCmHandle.getId(), e);
+ log.warn("Processing of {} failed, reason: {}.", yangModelCmHandle.getId(), e.getMessage());
final LockReasonCategory lockReasonCategory = inUpgrade
? LockReasonCategory.MODULE_UPGRADE_FAILED
: LockReasonCategory.MODULE_SYNC_FAILED;