aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--cps-application/src/main/resources/application.yml1
-rw-r--r--cps-events/src/main/resources/schemas/cps.dataupdated/cps-data-updated-event-schema-1.0.0.json (renamed from cps-events/src/main/resources/schemas/updatenode/cps-data-updated-event-schema-1.0.0.json)0
-rw-r--r--cps-ncmp-events/src/main/resources/schemas/dmi/cm-events/avc-event-schema-1.0.0.json (renamed from cps-ncmp-events/src/main/resources/schemas/dmidataavc/avc-event-schema-1.0.0.json)0
-rw-r--r--cps-ncmp-events/src/main/resources/schemas/dmi/device-heartbeat/device-trust-level-event-schema-1.0.0.json (renamed from cps-ncmp-events/src/main/resources/schemas/trustlevel/device-trust-level-event-schema-1.0.0.json)0
-rw-r--r--cps-ncmp-events/src/main/resources/schemas/ncmp/async-m2m/data-operation-event-schema-1.0.0.json (renamed from cps-ncmp-events/src/main/resources/schemas/async/data-operation-event-schema-1.0.0.json)0
-rw-r--r--cps-ncmp-events/src/main/resources/schemas/ncmp/async-m2m/dmi-async-request-response-event-schema-v1.json (renamed from cps-ncmp-events/src/main/resources/schemas/dmi-async-request-response-event-schema-v1.json)1
-rw-r--r--cps-ncmp-events/src/main/resources/schemas/ncmp/async-m2m/ncmp-async-request-response-event-schema-v1.json (renamed from cps-ncmp-events/src/main/resources/schemas/ncmp-async-request-response-event-schema-v1.json)1
-rw-r--r--cps-ncmp-events/src/main/resources/schemas/ncmp/avc/avc-event-schema-1.0.0.json (renamed from cps-ncmp-events/src/main/resources/schemas/ncmpdataavc/avc-event-schema-1.0.0.json)0
-rw-r--r--cps-ncmp-events/src/main/resources/schemas/ncmp/avc/dmi-in-event-schema-1.0.0.json (renamed from cps-ncmp-events/src/main/resources/schemas/cmnotificationsubscription/dmi-in-event-schema-1.0.0.json)0
-rw-r--r--cps-ncmp-events/src/main/resources/schemas/ncmp/avc/dmi-out-event-schema-1.0.0.json (renamed from cps-ncmp-events/src/main/resources/schemas/cmnotificationsubscription/dmi-out-event-schema-1.0.0.json)0
-rw-r--r--cps-ncmp-events/src/main/resources/schemas/ncmp/avc/ncmp-in-event-schema-1.0.0.json (renamed from cps-ncmp-events/src/main/resources/schemas/cmnotificationsubscription/ncmp-in-event-schema-1.0.0.json)0
-rw-r--r--cps-ncmp-events/src/main/resources/schemas/ncmp/avc/ncmp-out-event-schema-1.0.0.json (renamed from cps-ncmp-events/src/main/resources/schemas/cmnotificationsubscription/ncmp-out-event-schema-1.0.0.json)0
-rw-r--r--cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/inventory/trustlevel/TrustLevelManager.java10
-rw-r--r--cps-ncmp-service/src/main/java/org/onap/cps/ncmp/utils/events/CmAvcEventPublisher.java14
-rw-r--r--cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/utils/events/MessagingBaseSpec.groovy7
-rw-r--r--cps-ri/src/main/java/org/onap/cps/ri/CpsDataPersistenceServiceImpl.java24
-rw-r--r--cps-service/src/main/java/org/onap/cps/impl/CpsQueryServiceImpl.java4
-rw-r--r--cps-service/src/main/java/org/onap/cps/spi/CpsDataPersistenceService.java14
-rw-r--r--cps-service/src/test/groovy/org/onap/cps/impl/CpsQueryServiceImplSpec.groovy5
-rw-r--r--csit/tests/cps-trust-level/cps-trust-level.robot12
-rw-r--r--docker-compose/config/grafana/postgresql-statistics-dashboard.json78
-rw-r--r--docker-compose/docker-compose.yml6
-rw-r--r--docs/deployment.rst16
-rw-r--r--integration-test/src/test/groovy/org/onap/cps/integration/functional/cps/QueryServiceIntegrationSpec.groovy6
-rw-r--r--integration-test/src/test/java/org/onap/cps/integration/KafkaTestContainer.java11
-rw-r--r--integration-test/src/test/resources/application.yml1
-rw-r--r--k6-tests/ncmp/common/passthrough-crud.js6
27 files changed, 129 insertions, 88 deletions
diff --git a/cps-application/src/main/resources/application.yml b/cps-application/src/main/resources/application.yml
index c10a26fe0b..6eb9e108be 100644
--- a/cps-application/src/main/resources/application.yml
+++ b/cps-application/src/main/resources/application.yml
@@ -106,6 +106,7 @@ app:
cm-subscription-dmi-out: ${CM_SUBSCRIPTION_DMI_OUT_TOPIC:dmi-ncmp-cm-avc-subscription}
cm-subscription-ncmp-out: ${CM_SUBSCRIPTION_NCMP_OUT_TOPIC:subscription-response}
cm-events-topic: ${NCMP_CM_EVENTS_TOPIC:cm-events}
+ inventory-events-topic: ncmp-inventory-events
lcm:
events:
topic: ${LCM_EVENTS_TOPIC:ncmp-events}
diff --git a/cps-events/src/main/resources/schemas/updatenode/cps-data-updated-event-schema-1.0.0.json b/cps-events/src/main/resources/schemas/cps.dataupdated/cps-data-updated-event-schema-1.0.0.json
index a3eaf63fa4..a3eaf63fa4 100644
--- a/cps-events/src/main/resources/schemas/updatenode/cps-data-updated-event-schema-1.0.0.json
+++ b/cps-events/src/main/resources/schemas/cps.dataupdated/cps-data-updated-event-schema-1.0.0.json
diff --git a/cps-ncmp-events/src/main/resources/schemas/dmidataavc/avc-event-schema-1.0.0.json b/cps-ncmp-events/src/main/resources/schemas/dmi/cm-events/avc-event-schema-1.0.0.json
index 474520d142..474520d142 100644
--- a/cps-ncmp-events/src/main/resources/schemas/dmidataavc/avc-event-schema-1.0.0.json
+++ b/cps-ncmp-events/src/main/resources/schemas/dmi/cm-events/avc-event-schema-1.0.0.json
diff --git a/cps-ncmp-events/src/main/resources/schemas/trustlevel/device-trust-level-event-schema-1.0.0.json b/cps-ncmp-events/src/main/resources/schemas/dmi/device-heartbeat/device-trust-level-event-schema-1.0.0.json
index e1796fbc73..e1796fbc73 100644
--- a/cps-ncmp-events/src/main/resources/schemas/trustlevel/device-trust-level-event-schema-1.0.0.json
+++ b/cps-ncmp-events/src/main/resources/schemas/dmi/device-heartbeat/device-trust-level-event-schema-1.0.0.json
diff --git a/cps-ncmp-events/src/main/resources/schemas/async/data-operation-event-schema-1.0.0.json b/cps-ncmp-events/src/main/resources/schemas/ncmp/async-m2m/data-operation-event-schema-1.0.0.json
index c2915187c7..c2915187c7 100644
--- a/cps-ncmp-events/src/main/resources/schemas/async/data-operation-event-schema-1.0.0.json
+++ b/cps-ncmp-events/src/main/resources/schemas/ncmp/async-m2m/data-operation-event-schema-1.0.0.json
diff --git a/cps-ncmp-events/src/main/resources/schemas/dmi-async-request-response-event-schema-v1.json b/cps-ncmp-events/src/main/resources/schemas/ncmp/async-m2m/dmi-async-request-response-event-schema-v1.json
index 2340a4bc4c..4db07bec95 100644
--- a/cps-ncmp-events/src/main/resources/schemas/dmi-async-request-response-event-schema-v1.json
+++ b/cps-ncmp-events/src/main/resources/schemas/ncmp/async-m2m/dmi-async-request-response-event-schema-v1.json
@@ -6,6 +6,7 @@
"DmiAsyncRequestResponseEvent": {
"description": "The payload for NCMP async request response event.",
"type": "object",
+ "javaType" : "org.onap.cps.ncmp.event.model.DmiAsyncRequestResponseEvent",
"properties": {
"eventId": {
"description": "The unique id identifying the event generated by DMI.",
diff --git a/cps-ncmp-events/src/main/resources/schemas/ncmp-async-request-response-event-schema-v1.json b/cps-ncmp-events/src/main/resources/schemas/ncmp/async-m2m/ncmp-async-request-response-event-schema-v1.json
index 51c2cf4d40..32b7becd05 100644
--- a/cps-ncmp-events/src/main/resources/schemas/ncmp-async-request-response-event-schema-v1.json
+++ b/cps-ncmp-events/src/main/resources/schemas/ncmp/async-m2m/ncmp-async-request-response-event-schema-v1.json
@@ -6,6 +6,7 @@
"NcmpAsyncRequestResponseEvent": {
"description": "The payload for CPS async request response event.",
"type": "object",
+ "javaType" : "org.onap.cps.ncmp.event.model.NcmpAsyncRequestResponseEvent",
"properties": {
"eventId": {
"description": "The unique id identifying the event generated by DMI.",
diff --git a/cps-ncmp-events/src/main/resources/schemas/ncmpdataavc/avc-event-schema-1.0.0.json b/cps-ncmp-events/src/main/resources/schemas/ncmp/avc/avc-event-schema-1.0.0.json
index d24ec2c737..d24ec2c737 100644
--- a/cps-ncmp-events/src/main/resources/schemas/ncmpdataavc/avc-event-schema-1.0.0.json
+++ b/cps-ncmp-events/src/main/resources/schemas/ncmp/avc/avc-event-schema-1.0.0.json
diff --git a/cps-ncmp-events/src/main/resources/schemas/cmnotificationsubscription/dmi-in-event-schema-1.0.0.json b/cps-ncmp-events/src/main/resources/schemas/ncmp/avc/dmi-in-event-schema-1.0.0.json
index 93ec216e3d..93ec216e3d 100644
--- a/cps-ncmp-events/src/main/resources/schemas/cmnotificationsubscription/dmi-in-event-schema-1.0.0.json
+++ b/cps-ncmp-events/src/main/resources/schemas/ncmp/avc/dmi-in-event-schema-1.0.0.json
diff --git a/cps-ncmp-events/src/main/resources/schemas/cmnotificationsubscription/dmi-out-event-schema-1.0.0.json b/cps-ncmp-events/src/main/resources/schemas/ncmp/avc/dmi-out-event-schema-1.0.0.json
index 0910de1529..0910de1529 100644
--- a/cps-ncmp-events/src/main/resources/schemas/cmnotificationsubscription/dmi-out-event-schema-1.0.0.json
+++ b/cps-ncmp-events/src/main/resources/schemas/ncmp/avc/dmi-out-event-schema-1.0.0.json
diff --git a/cps-ncmp-events/src/main/resources/schemas/cmnotificationsubscription/ncmp-in-event-schema-1.0.0.json b/cps-ncmp-events/src/main/resources/schemas/ncmp/avc/ncmp-in-event-schema-1.0.0.json
index f8b6c2e680..f8b6c2e680 100644
--- a/cps-ncmp-events/src/main/resources/schemas/cmnotificationsubscription/ncmp-in-event-schema-1.0.0.json
+++ b/cps-ncmp-events/src/main/resources/schemas/ncmp/avc/ncmp-in-event-schema-1.0.0.json
diff --git a/cps-ncmp-events/src/main/resources/schemas/cmnotificationsubscription/ncmp-out-event-schema-1.0.0.json b/cps-ncmp-events/src/main/resources/schemas/ncmp/avc/ncmp-out-event-schema-1.0.0.json
index 11dc4e1114..11dc4e1114 100644
--- a/cps-ncmp-events/src/main/resources/schemas/cmnotificationsubscription/ncmp-out-event-schema-1.0.0.json
+++ b/cps-ncmp-events/src/main/resources/schemas/ncmp/avc/ncmp-out-event-schema-1.0.0.json
diff --git a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/inventory/trustlevel/TrustLevelManager.java b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/inventory/trustlevel/TrustLevelManager.java
index f68bb3b543..692bf5caee 100644
--- a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/inventory/trustlevel/TrustLevelManager.java
+++ b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/inventory/trustlevel/TrustLevelManager.java
@@ -193,14 +193,14 @@ public class TrustLevelManager {
final TrustLevel newEffectiveTrustLevel) {
if (oldEffectiveTrustLevel.equals(newEffectiveTrustLevel)) {
log.debug("The Cm Handle: {} has already the same trust level: {}", notificationCandidateCmHandleId,
- newEffectiveTrustLevel);
+ newEffectiveTrustLevel);
} else {
log.info("The trust level for Cm Handle: {} is now: {} ", notificationCandidateCmHandleId,
- newEffectiveTrustLevel);
+ newEffectiveTrustLevel);
cmAvcEventPublisher.publishAvcEvent(notificationCandidateCmHandleId,
- AVC_CHANGED_ATTRIBUTE_NAME,
- oldEffectiveTrustLevel.name(),
- newEffectiveTrustLevel.name());
+ AVC_CHANGED_ATTRIBUTE_NAME,
+ oldEffectiveTrustLevel.name(),
+ newEffectiveTrustLevel.name());
}
}
diff --git a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/utils/events/CmAvcEventPublisher.java b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/utils/events/CmAvcEventPublisher.java
index 2a9717cc1a..bdc7899724 100644
--- a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/utils/events/CmAvcEventPublisher.java
+++ b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/utils/events/CmAvcEventPublisher.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.
@@ -38,8 +38,8 @@ public class CmAvcEventPublisher {
private final EventsPublisher<CloudEvent> eventsPublisher;
- @Value("${app.ncmp.avc.cm-events-topic}")
- private String avcTopic;
+ @Value("${app.ncmp.avc.inventory-events-topic}")
+ private String ncmpInventoryEventsTopicName;
/**
* Publish attribute value change event.
@@ -52,10 +52,10 @@ public class CmAvcEventPublisher {
final Map<String, String> extensions = createAvcEventExtensions(eventKey);
final CloudEvent avcCloudEvent =
- NcmpEvent.builder().type(AvcEvent.class.getTypeName())
- .data(avcEvent).extensions(extensions).build().asCloudEvent();
+ NcmpEvent.builder().type(AvcEvent.class.getTypeName())
+ .data(avcEvent).extensions(extensions).build().asCloudEvent();
- eventsPublisher.publishCloudEvent(avcTopic, eventKey, avcCloudEvent);
+ eventsPublisher.publishCloudEvent(ncmpInventoryEventsTopicName, eventKey, avcCloudEvent);
}
private AvcEvent buildAvcEvent(final String attributeName,
@@ -78,4 +78,4 @@ public class CmAvcEventPublisher {
extensions.put("correlationid", eventKey);
return extensions;
}
-}
+} \ No newline at end of file
diff --git a/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/utils/events/MessagingBaseSpec.groovy b/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/utils/events/MessagingBaseSpec.groovy
index 377a1a6637..d38d5442f2 100644
--- a/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/utils/events/MessagingBaseSpec.groovy
+++ b/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/utils/events/MessagingBaseSpec.groovy
@@ -1,6 +1,6 @@
/*
* ============LICENSE_START=======================================================
- * Copyright (c) 2023 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.
@@ -29,8 +29,7 @@ import org.springframework.kafka.core.KafkaTemplate
import org.springframework.kafka.support.serializer.JsonSerializer
import org.springframework.test.context.DynamicPropertyRegistry
import org.springframework.test.context.DynamicPropertySource
-import org.testcontainers.containers.KafkaContainer
-import org.testcontainers.utility.DockerImageName
+import org.testcontainers.kafka.ConfluentKafkaContainer
import spock.lang.Specification
class MessagingBaseSpec extends Specification {
@@ -43,7 +42,7 @@ class MessagingBaseSpec extends Specification {
kafkaTestContainer.stop()
}
- static kafkaTestContainer = new KafkaContainer(DockerImageName.parse('registry.nordix.org/onaptest/confluentinc/cp-kafka:6.2.1').asCompatibleSubstituteFor('confluentinc/cp-kafka'))
+ static kafkaTestContainer = new ConfluentKafkaContainer("confluentinc/cp-kafka:7.8.0")
def legacyEventKafkaTemplate = new KafkaTemplate<>(new DefaultKafkaProducerFactory<String, String>(eventProducerConfigProperties(JsonSerializer)))
diff --git a/cps-ri/src/main/java/org/onap/cps/ri/CpsDataPersistenceServiceImpl.java b/cps-ri/src/main/java/org/onap/cps/ri/CpsDataPersistenceServiceImpl.java
index 52fd7f2be1..ac6fe38ee7 100644
--- a/cps-ri/src/main/java/org/onap/cps/ri/CpsDataPersistenceServiceImpl.java
+++ b/cps-ri/src/main/java/org/onap/cps/ri/CpsDataPersistenceServiceImpl.java
@@ -1,6 +1,6 @@
/*
* ============LICENSE_START=======================================================
- * Copyright (C) 2021-2024 Nordix Foundation
+ * Copyright (C) 2021-2025 Nordix Foundation
* Modifications Copyright (C) 2021 Pantheon.tech
* Modifications Copyright (C) 2020-2022 Bell Canada.
* Modifications Copyright (C) 2022-2023 TechMahindra Ltd.
@@ -37,6 +37,7 @@ import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
+import java.util.Objects;
import java.util.Set;
import java.util.TreeMap;
import java.util.stream.Collectors;
@@ -230,6 +231,27 @@ public class CpsDataPersistenceServiceImpl implements CpsDataPersistenceService
}
@Override
+ public <T> Set<T> queryDataLeaf(final String dataspaceName, final String anchorName, final String cpsPath,
+ final Class<T> targetClass) {
+ final CpsPathQuery cpsPathQuery = getCpsPathQuery(cpsPath);
+ if (!cpsPathQuery.hasAttributeAxis()) {
+ throw new IllegalArgumentException(
+ "Only Cps Path Queries with attribute-axis are supported by queryDataLeaf");
+ }
+
+ final String attributeName = cpsPathQuery.getAttributeAxisAttributeName();
+ final List<DataNode> dataNodes = queryDataNodes(dataspaceName, anchorName, cpsPath,
+ FetchDescendantsOption.OMIT_DESCENDANTS);
+ return dataNodes.stream()
+ .map(dataNode -> {
+ final Object attributeValue = dataNode.getLeaves().get(attributeName);
+ return targetClass.isInstance(attributeValue) ? targetClass.cast(attributeValue) : null;
+ })
+ .filter(Objects::nonNull)
+ .collect(Collectors.toSet());
+ }
+
+ @Override
@Timed(value = "cps.data.persistence.service.datanode.query.anchors",
description = "Time taken to query data nodes across all anchors or list of anchors")
public List<DataNode> queryDataNodesAcrossAnchors(final String dataspaceName, final String cpsPath,
diff --git a/cps-service/src/main/java/org/onap/cps/impl/CpsQueryServiceImpl.java b/cps-service/src/main/java/org/onap/cps/impl/CpsQueryServiceImpl.java
index 2687d8faee..508a1b2449 100644
--- a/cps-service/src/main/java/org/onap/cps/impl/CpsQueryServiceImpl.java
+++ b/cps-service/src/main/java/org/onap/cps/impl/CpsQueryServiceImpl.java
@@ -1,6 +1,6 @@
/*
* ============LICENSE_START=======================================================
- * Copyright (C) 2021-2024 Nordix Foundation
+ * Copyright (C) 2021-2025 Nordix Foundation
* Modifications Copyright (C) 2022-2023 TechMahindra Ltd.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -54,7 +54,7 @@ public class CpsQueryServiceImpl implements CpsQueryService {
public <T> Set<T> queryDataLeaf(final String dataspaceName, final String anchorName, final String cpsPath,
final Class<T> targetClass) {
cpsValidator.validateNameCharacters(dataspaceName, anchorName);
- throw new UnsupportedOperationException("Query by attribute-axis not implemented yet!");
+ return cpsDataPersistenceService.queryDataLeaf(dataspaceName, anchorName, cpsPath, targetClass);
}
@Override
diff --git a/cps-service/src/main/java/org/onap/cps/spi/CpsDataPersistenceService.java b/cps-service/src/main/java/org/onap/cps/spi/CpsDataPersistenceService.java
index 5be5b1e2e0..a4f05cdb53 100644
--- a/cps-service/src/main/java/org/onap/cps/spi/CpsDataPersistenceService.java
+++ b/cps-service/src/main/java/org/onap/cps/spi/CpsDataPersistenceService.java
@@ -1,6 +1,6 @@
/*
* ============LICENSE_START=======================================================
- * Copyright (C) 2020-2024 Nordix Foundation.
+ * Copyright (C) 2020-2025 Nordix Foundation.
* Modifications Copyright (C) 2021 Pantheon.tech
* Modifications Copyright (C) 2022 Bell Canada
* Modifications Copyright (C) 2022-2023 TechMahindra Ltd.
@@ -27,6 +27,7 @@ import java.io.Serializable;
import java.util.Collection;
import java.util.List;
import java.util.Map;
+import java.util.Set;
import org.onap.cps.api.model.DataNode;
import org.onap.cps.api.parameters.FetchDescendantsOption;
import org.onap.cps.api.parameters.PaginationOption;
@@ -185,6 +186,17 @@ public interface CpsDataPersistenceService {
String cpsPath, FetchDescendantsOption fetchDescendantsOption);
/**
+ * Get data leaf for the given dataspace and anchor by cps path.
+ *
+ * @param dataspaceName dataspace name
+ * @param anchorName anchor name
+ * @param cpsPath cps path
+ * @param targetClass class of the expected data type
+ * @return a collection of data objects of expected type
+ */
+ <T> Set<T> queryDataLeaf(String dataspaceName, String anchorName, String cpsPath, Class<T> targetClass);
+
+ /**
* Get a datanode by dataspace name and cps path across all anchors.
*
* @param dataspaceName dataspace name
diff --git a/cps-service/src/test/groovy/org/onap/cps/impl/CpsQueryServiceImplSpec.groovy b/cps-service/src/test/groovy/org/onap/cps/impl/CpsQueryServiceImplSpec.groovy
index 237e4e4592..b15ee72370 100644
--- a/cps-service/src/test/groovy/org/onap/cps/impl/CpsQueryServiceImplSpec.groovy
+++ b/cps-service/src/test/groovy/org/onap/cps/impl/CpsQueryServiceImplSpec.groovy
@@ -1,6 +1,6 @@
/*
* ============LICENSE_START=======================================================
- * Copyright (C) 2021-2023 Nordix Foundation
+ * Copyright (C) 2021-2025 Nordix Foundation
* Modifications Copyright (C) 2023 TechMahindra Ltd.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -73,11 +73,10 @@ class CpsQueryServiceImplSpec extends Specification {
1 * mockCpsDataPersistenceService.countAnchorsForDataspaceAndCpsPath("some-dataspace", "/cps-path")
}
- // TODO will be implemented in CPS-2416
def 'Query data leaf.'() {
when: 'a query for a specific leaf is executed'
objectUnderTest.queryDataLeaf('some-dataspace', 'some-anchor', '/cps-path/@id', Object.class)
then: 'solution is not implemented yet'
- thrown(UnsupportedOperationException)
+ 1 * mockCpsDataPersistenceService.queryDataLeaf('some-dataspace', 'some-anchor', '/cps-path/@id', Object.class)
}
}
diff --git a/csit/tests/cps-trust-level/cps-trust-level.robot b/csit/tests/cps-trust-level/cps-trust-level.robot
index 810bcf4d12..98ec665a6c 100644
--- a/csit/tests/cps-trust-level/cps-trust-level.robot
+++ b/csit/tests/cps-trust-level/cps-trust-level.robot
@@ -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.
@@ -46,11 +46,11 @@ Register data node
Should Be Equal As Strings ${response.status_code} 200
Verify notification
- ${group_id}= Create Consumer auto_offset_reset=earliest
- Subscribe Topic topics=cm-events group_id=${group_id}
- ${result}= Poll group_id=${group_id} only_value=False poll_attempts=5
- ${headers} Set Variable ${result[0].headers()}
- ${payload} Set Variable ${result[0].value()}
+ ${group_id}= Create Consumer auto_offset_reset=earliest
+ Subscribe Topic topics=ncmp-inventory-events group_id=${group_id}
+ ${result}= Poll group_id=${group_id} only_value=False poll_attempts=5
+ ${headers} Set Variable ${result[0].headers()}
+ ${payload} Set Variable ${result[0].value()}
FOR ${header_key_value_pair} IN @{headers}
Compare Header Values ${header_key_value_pair[0]} ${header_key_value_pair[1]} "ce_specversion" "1.0"
Compare Header Values ${header_key_value_pair[0]} ${header_key_value_pair[1]} "ce_source" "NCMP"
diff --git a/docker-compose/config/grafana/postgresql-statistics-dashboard.json b/docker-compose/config/grafana/postgresql-statistics-dashboard.json
index 491649ea87..642294167e 100644
--- a/docker-compose/config/grafana/postgresql-statistics-dashboard.json
+++ b/docker-compose/config/grafana/postgresql-statistics-dashboard.json
@@ -107,7 +107,7 @@
{
"datasource": "PBFA97CFB590B2093",
"exemplar": true,
- "expr": "pg_static{app=\"$app\"}",
+ "expr": "pg_static{instance=\"$instance\"}",
"format": "time_series",
"interval": "",
"intervalFactor": 1,
@@ -184,7 +184,7 @@
{
"datasource": "PBFA97CFB590B2093",
"exemplar": true,
- "expr": "pg_settings_max_connections{app=\"$app\"}",
+ "expr": "pg_settings_max_connections{instance=\"$instance\"}",
"format": "time_series",
"interval": "",
"intervalFactor": 1,
@@ -261,7 +261,7 @@
{
"datasource": "PBFA97CFB590B2093",
"exemplar": true,
- "expr": "pg_settings_shared_buffers_bytes{app=\"$app\"}",
+ "expr": "pg_settings_shared_buffers_bytes{instance=\"$instance\"}",
"format": "time_series",
"interval": "",
"intervalFactor": 1,
@@ -338,7 +338,7 @@
{
"datasource": "PBFA97CFB590B2093",
"exemplar": true,
- "expr": "pg_settings_effective_cache_size_bytes{app=\"$app\"}",
+ "expr": "pg_settings_effective_cache_size_bytes{instance=\"$instance\"}",
"format": "time_series",
"interval": "",
"intervalFactor": 1,
@@ -415,7 +415,7 @@
{
"datasource": "PBFA97CFB590B2093",
"exemplar": true,
- "expr": "pg_settings_maintenance_work_mem_bytes{app=\"$app\"}",
+ "expr": "pg_settings_maintenance_work_mem_bytes{instance=\"$instance\"}",
"format": "time_series",
"interval": "",
"intervalFactor": 1,
@@ -492,7 +492,7 @@
{
"datasource": "PBFA97CFB590B2093",
"exemplar": true,
- "expr": "pg_settings_work_mem_bytes{app=\"$app\"}",
+ "expr": "pg_settings_work_mem_bytes{instance=\"$instance\"}",
"format": "time_series",
"interval": "",
"intervalFactor": 1,
@@ -570,7 +570,7 @@
{
"datasource": "PBFA97CFB590B2093",
"exemplar": true,
- "expr": "pg_settings_max_wal_size_bytes{app=\"$app\"}",
+ "expr": "pg_settings_max_wal_size_bytes{instance=\"$instance\"}",
"format": "time_series",
"interval": "",
"intervalFactor": 1,
@@ -647,7 +647,7 @@
{
"datasource": "PBFA97CFB590B2093",
"exemplar": true,
- "expr": "pg_settings_random_page_cost{app=\"$app\"}",
+ "expr": "pg_settings_random_page_cost{instance=\"$instance\"}",
"format": "time_series",
"interval": "",
"intervalFactor": 1,
@@ -724,7 +724,7 @@
{
"datasource": "PBFA97CFB590B2093",
"exemplar": true,
- "expr": "pg_settings_seq_page_cost{app=\"$app\"}",
+ "expr": "pg_settings_seq_page_cost{instance=\"$instance\"}",
"format": "time_series",
"interval": "",
"intervalFactor": 1,
@@ -801,7 +801,7 @@
{
"datasource": "PBFA97CFB590B2093",
"exemplar": true,
- "expr": "pg_settings_max_worker_processes{app=\"$app\"}",
+ "expr": "pg_settings_max_worker_processes{instance=\"$instance\"}",
"format": "time_series",
"interval": "",
"intervalFactor": 1,
@@ -878,7 +878,7 @@
{
"datasource": "PBFA97CFB590B2093",
"exemplar": true,
- "expr": "pg_settings_max_parallel_workers{app=\"$app\"}",
+ "expr": "pg_settings_max_parallel_workers{instance=\"$instance\"}",
"format": "time_series",
"interval": "",
"intervalFactor": 1,
@@ -989,7 +989,7 @@
{
"datasource": "PBFA97CFB590B2093",
"editorMode": "code",
- "expr": "pg_database_size_bytes{app=\"$app\", datname=\"$db\"}",
+ "expr": "pg_database_size_bytes{instance=\"$instance\", datname=\"$db\"}",
"legendFormat": "size",
"range": true,
"refId": "A"
@@ -1098,7 +1098,7 @@
{
"datasource": "PBFA97CFB590B2093",
"exemplar": true,
- "expr": "pg_stat_activity_count{app=\"$app\", datname=\"$db\"}",
+ "expr": "pg_stat_activity_count{instance=\"$instance\", datname=\"$db\"}",
"format": "time_series",
"interval": "",
"intervalFactor": 1,
@@ -1191,7 +1191,7 @@
{
"datasource": "PBFA97CFB590B2093",
"exemplar": true,
- "expr": "irate(pg_stat_database_xact_commit{app=\"$app\", datname=\"$db\"}[5m])",
+ "expr": "irate(pg_stat_database_xact_commit{instance=\"$instance\", datname=\"$db\"}[5m])",
"format": "time_series",
"interval": "",
"intervalFactor": 1,
@@ -1201,7 +1201,7 @@
{
"datasource": "PBFA97CFB590B2093",
"exemplar": true,
- "expr": "irate(pg_stat_database_xact_rollback{app=\"$app\", datname=\"$db\"}[5m])",
+ "expr": "irate(pg_stat_database_xact_rollback{instance=\"$instance\", datname=\"$db\"}[5m])",
"format": "time_series",
"interval": "",
"intervalFactor": 1,
@@ -1299,7 +1299,7 @@
{
"datasource": "PBFA97CFB590B2093",
"exemplar": true,
- "expr": "irate(pg_stat_database_tup_fetched{app=\"$app\", datname=\"$db\"}[5m])",
+ "expr": "irate(pg_stat_database_tup_fetched{instance=\"$instance\", datname=\"$db\"}[5m])",
"format": "time_series",
"interval": "",
"intervalFactor": 1,
@@ -1309,7 +1309,7 @@
{
"datasource": "PBFA97CFB590B2093",
"exemplar": true,
- "expr": "irate(pg_stat_database_tup_returned{app=\"$app\", datname=\"$db\"}[5m])",
+ "expr": "irate(pg_stat_database_tup_returned{instance=\"$instance\", datname=\"$db\"}[5m])",
"format": "time_series",
"interval": "",
"intervalFactor": 1,
@@ -1407,7 +1407,7 @@
{
"datasource": "PBFA97CFB590B2093",
"exemplar": true,
- "expr": "irate(pg_stat_database_tup_inserted{app=\"$app\", datname=\"$db\"}[5m])",
+ "expr": "irate(pg_stat_database_tup_inserted{instance=\"$instance\", datname=\"$db\"}[5m])",
"format": "time_series",
"interval": "",
"intervalFactor": 1,
@@ -1417,7 +1417,7 @@
{
"datasource": "PBFA97CFB590B2093",
"exemplar": true,
- "expr": "irate(pg_stat_database_tup_updated{app=\"$app\", datname=\"$db\"}[5m])",
+ "expr": "irate(pg_stat_database_tup_updated{instance=\"$instance\", datname=\"$db\"}[5m])",
"format": "time_series",
"interval": "",
"intervalFactor": 1,
@@ -1427,7 +1427,7 @@
{
"datasource": "PBFA97CFB590B2093",
"exemplar": true,
- "expr": "irate(pg_stat_database_tup_deleted{app=\"$app\", datname=\"$db\"}[5m])",
+ "expr": "irate(pg_stat_database_tup_deleted{instance=\"$instance\", datname=\"$db\"}[5m])",
"format": "time_series",
"interval": "",
"intervalFactor": 1,
@@ -1525,7 +1525,7 @@
{
"datasource": "PBFA97CFB590B2093",
"exemplar": true,
- "expr": "pg_stat_activity_max_tx_duration{app=\"$app\", datname=\"$db\"}",
+ "expr": "pg_stat_activity_max_tx_duration{instance=\"$instance\", datname=\"$db\"}",
"format": "time_series",
"interval": "",
"intervalFactor": 1,
@@ -1619,7 +1619,7 @@
{
"datasource": "PBFA97CFB590B2093",
"exemplar": true,
- "expr": "pg_stat_database_blks_hit{app=\"$app\", datname=\"$db\"} / (pg_stat_database_blks_read{app=\"$app\", datname=\"$db\"} + pg_stat_database_blks_hit{app=\"$app\", datname=\"$db\"})",
+ "expr": "pg_stat_database_blks_hit{instance=\"$instance\", datname=\"$db\"} / (pg_stat_database_blks_read{instance=\"$instance\", datname=\"$db\"} + pg_stat_database_blks_hit{instance=\"$instance\", datname=\"$db\"})",
"format": "time_series",
"interval": "",
"intervalFactor": 1,
@@ -1730,7 +1730,7 @@
{
"datasource": "PBFA97CFB590B2093",
"exemplar": true,
- "expr": "irate(pg_stat_bgwriter_buffers_backend_total{app=\"$app\"}[5m])",
+ "expr": "irate(pg_stat_bgwriter_buffers_backend_total{instance=\"$instance\"}[5m])",
"format": "time_series",
"interval": "",
"intervalFactor": 1,
@@ -1740,7 +1740,7 @@
{
"datasource": "PBFA97CFB590B2093",
"exemplar": true,
- "expr": "irate(pg_stat_bgwriter_buffers_alloc_total{app=\"$app\"}[5m])",
+ "expr": "irate(pg_stat_bgwriter_buffers_alloc_total{instance=\"$instance\"}[5m])",
"format": "time_series",
"interval": "",
"intervalFactor": 1,
@@ -1750,7 +1750,7 @@
{
"datasource": "PBFA97CFB590B2093",
"exemplar": true,
- "expr": "irate(pg_stat_bgwriter_buffers_backend_fsync_total{app=\"$app\"}[5m])",
+ "expr": "irate(pg_stat_bgwriter_buffers_backend_fsync_total{instance=\"$instance\"}[5m])",
"format": "time_series",
"interval": "",
"intervalFactor": 1,
@@ -1760,7 +1760,7 @@
{
"datasource": "PBFA97CFB590B2093",
"exemplar": true,
- "expr": "irate(pg_stat_bgwriter_buffers_checkpoint_total{app=\"$app\"}[5m])",
+ "expr": "irate(pg_stat_bgwriter_buffers_checkpoint_total{instance=\"$instance\"}[5m])",
"format": "time_series",
"interval": "",
"intervalFactor": 1,
@@ -1770,7 +1770,7 @@
{
"datasource": "PBFA97CFB590B2093",
"exemplar": true,
- "expr": "irate(pg_stat_bgwriter_buffers_clean_total{app=\"$app\"}[5m])",
+ "expr": "irate(pg_stat_bgwriter_buffers_clean_total{instance=\"$instance\"}[5m])",
"format": "time_series",
"interval": "",
"intervalFactor": 1,
@@ -1863,7 +1863,7 @@
{
"datasource": "PBFA97CFB590B2093",
"exemplar": true,
- "expr": "irate(pg_stat_database_conflicts{app=\"$app\", datname=\"$db\"}[5m])",
+ "expr": "irate(pg_stat_database_conflicts{instance=\"$instance\", datname=\"$db\"}[5m])",
"format": "time_series",
"interval": "",
"intervalFactor": 1,
@@ -1873,7 +1873,7 @@
{
"datasource": "PBFA97CFB590B2093",
"exemplar": true,
- "expr": "irate(pg_stat_database_deadlocks{app=\"$app\", datname=\"$db\"}[5m])",
+ "expr": "irate(pg_stat_database_deadlocks{instance=\"$instance\", datname=\"$db\"}[5m])",
"format": "time_series",
"interval": "",
"intervalFactor": 1,
@@ -1972,7 +1972,7 @@
{
"datasource": "PBFA97CFB590B2093",
"exemplar": true,
- "expr": "pg_locks_count{app=\"$app\", datname=\"$db\"}",
+ "expr": "pg_locks_count{instance=\"$instance\", datname=\"$db\"}",
"format": "time_series",
"interval": "",
"intervalFactor": 1,
@@ -2066,7 +2066,7 @@
{
"datasource": "PBFA97CFB590B2093",
"exemplar": true,
- "expr": "irate(pg_stat_database_temp_bytes{app=\"$app\", datname=\"$db\"}[5m])",
+ "expr": "irate(pg_stat_database_temp_bytes{instance=\"$instance\", datname=\"$db\"}[5m])",
"format": "time_series",
"interval": "",
"intervalFactor": 1,
@@ -2164,7 +2164,7 @@
{
"datasource": "PBFA97CFB590B2093",
"exemplar": true,
- "expr": "irate(pg_stat_bgwriter_checkpoint_write_time_total{app=\"$app\"}[5m])",
+ "expr": "irate(pg_stat_bgwriter_checkpoint_write_time_total{instance=\"$instance\"}[5m])",
"format": "time_series",
"interval": "",
"intervalFactor": 1,
@@ -2174,7 +2174,7 @@
{
"datasource": "PBFA97CFB590B2093",
"exemplar": true,
- "expr": "irate(pg_stat_bgwriter_checkpoint_sync_time_total{app=\"$app\"}[5m])",
+ "expr": "irate(pg_stat_bgwriter_checkpoint_sync_time_total{instance=\"$instance\"}[5m])",
"format": "time_series",
"interval": "",
"intervalFactor": 1,
@@ -2198,13 +2198,13 @@
"value": ""
},
"datasource": "PBFA97CFB590B2093",
- "definition": "label_values(pg_up, app)",
+ "definition": "label_values(pg_up, instance)",
"includeAll": false,
- "label": "App",
- "name": "app",
+ "label": "instance",
+ "name": "instance",
"options": [],
"query": {
- "query": "label_values(pg_up, app)",
+ "query": "label_values(pg_up, instance)",
"refId": "StandardVariableQuery"
},
"refresh": 1,
@@ -2217,13 +2217,13 @@
"value": "cpsdb"
},
"datasource": "PBFA97CFB590B2093",
- "definition": "label_values(pg_stat_database_tup_fetched{datname!~\"template.*|postgres\",app=\"$app\"},datname)",
+ "definition": "label_values(pg_stat_database_tup_fetched{datname!~\"template.*|postgres\",instance=\"$instance\"},datname)",
"includeAll": false,
"label": "Database",
"name": "db",
"options": [],
"query": {
- "query": "label_values(pg_stat_database_tup_fetched{datname!~\"template.*|postgres\",app=\"$app\"},datname)",
+ "query": "label_values(pg_stat_database_tup_fetched{datname!~\"template.*|postgres\",instance=\"$instance\"},datname)",
"refId": "StandardVariableQuery"
},
"refresh": 1,
diff --git a/docker-compose/docker-compose.yml b/docker-compose/docker-compose.yml
index 11a2c7912e..33ad108be1 100644
--- a/docker-compose/docker-compose.yml
+++ b/docker-compose/docker-compose.yml
@@ -96,7 +96,7 @@ services:
### if kafka is not required comment out zookeeper and kafka ###
zookeeper:
- image: confluentinc/cp-zookeeper:6.2.1
+ image: confluentinc/cp-zookeeper:7.8.0
container_name: ${ZOOKEEPER_CONTAINER_NAME:-zookeeper}
ports:
- ${ZOOKEEPER_PORT:-2181}:2181
@@ -104,7 +104,7 @@ services:
ZOOKEEPER_CLIENT_PORT: 2181
kafka:
- image: confluentinc/cp-kafka:6.2.1
+ image: confluentinc/cp-kafka:7.8.0
container_name: ${KAFKA_CONTAINER_NAME:-kafka}
ports:
- ${KAFKA_PORT:-9092}:9092
@@ -151,7 +151,7 @@ services:
KAFKA_BOOTSTRAP_SERVER: kafka:29092
NCMP_CONSUMER_GROUP_ID: ncmp-group
NCMP_ASYNC_M2M_TOPIC: ncmp-async-m2m
- MODULE_INITIAL_PROCESSING_DELAY_MS: 120000
+ MODULE_INITIAL_PROCESSING_DELAY_MS: 180000
MODULE_REFERENCES_DELAY_MS: 100
MODULE_RESOURCES_DELAY_MS: 1000
READ_DATA_FOR_CM_HANDLE_DELAY_MS: 300
diff --git a/docs/deployment.rst b/docs/deployment.rst
index 2af0dd0cd5..840ab8e116 100644
--- a/docs/deployment.rst
+++ b/docs/deployment.rst
@@ -22,14 +22,24 @@ set appropriately. For example, given a database with 2GB of memory, 512MB is a
CPS and NCMP Configuration
==========================
+CPU and Memory Requirements
+---------------------------
+
+The following are minimum requirements for NCMP:
+
+* For 20,000 CM-handles: 2 CPUs and 2 GB RAM per instance, with 70% heap allocation.
+* For 50,000 CM-handles: 3 CPUs and 3 GB RAM per instance, with 70% heap allocation.
+
JVM Memory Allocation
+^^^^^^^^^^^^^^^^^^^^^
-Allocating 75% of the container's memory to the JVM heap ensures efficient memory management.
-This helps the JVM make the best use of the allocated resources while leaving enough memory for other processes.
+When running with 2 GB or more memory per instance, allocating 70% of the JVM memory to the heap ensures efficient
+memory management. It is not recommended to go above 70%.
.. code-block:: yaml
- JAVA_TOOL_OPTIONS: "-XX:InitialRAMPercentage=75.0 -XX:MaxRAMPercentage=75.0"
+ JAVA_TOOL_OPTIONS: "-XX:InitialRAMPercentage=70.0 -XX:MaxRAMPercentage=70.0"
+
Load balancer configuration
===========================
diff --git a/integration-test/src/test/groovy/org/onap/cps/integration/functional/cps/QueryServiceIntegrationSpec.groovy b/integration-test/src/test/groovy/org/onap/cps/integration/functional/cps/QueryServiceIntegrationSpec.groovy
index e4d75aa378..d1b445f5a4 100644
--- a/integration-test/src/test/groovy/org/onap/cps/integration/functional/cps/QueryServiceIntegrationSpec.groovy
+++ b/integration-test/src/test/groovy/org/onap/cps/integration/functional/cps/QueryServiceIntegrationSpec.groovy
@@ -1,6 +1,6 @@
/*
* ============LICENSE_START=======================================================
- * Copyright (C) 2023-2024 Nordix Foundation
+ * Copyright (C) 2023-2025 Nordix Foundation
* Modifications Copyright (C) 2023-2025 TechMahindra Ltd
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the 'License');
@@ -27,7 +27,6 @@ import org.onap.cps.integration.base.FunctionalSpecBase
import org.onap.cps.api.parameters.FetchDescendantsOption
import org.onap.cps.api.parameters.PaginationOption
import org.onap.cps.api.exceptions.CpsPathException
-import spock.lang.Ignore
import static org.onap.cps.api.parameters.FetchDescendantsOption.DIRECT_CHILDREN_ONLY
import static org.onap.cps.api.parameters.FetchDescendantsOption.INCLUDE_ALL_DESCENDANTS
@@ -57,7 +56,6 @@ class QueryServiceIntegrationSpec extends FunctionalSpecBase {
'the AND is used where result does not exist' | '//books[@lang="English" and @price=1000]' || 0 | []
}
- @Ignore // TODO will be implemented in CPS-2416
def 'Query data leaf using CPS path for #scenario.'() {
when: 'query data leaf for bookstore container'
def result = objectUnderTest.queryDataLeaf(FUNCTIONAL_TEST_DATASPACE_1, BOOKSTORE_ANCHOR_1, cpsPath, Object.class)
@@ -70,7 +68,6 @@ class QueryServiceIntegrationSpec extends FunctionalSpecBase {
'non-existing path' | '/non-existing/@title' || 0
}
- @Ignore
def 'Query data leaf with type #leafType using CPS path.'() {
given: 'a cps path query for two books, returning only #leafName'
def cpsPath = '//books[@title="Matilda" or @title="Good Omens"]/@' + leafName
@@ -85,7 +82,6 @@ class QueryServiceIntegrationSpec extends FunctionalSpecBase {
'editions' | List.class || [[1988, 2000], [2006]]
}
- @Ignore
def 'Query data leaf using CPS path with ancestor axis.'() {
given: 'a cps path query that will return the names of the categories of two books'
def cpsPath = '//books[@title="Matilda" or @title="Good Omens"]/ancestor::categories/@name'
diff --git a/integration-test/src/test/java/org/onap/cps/integration/KafkaTestContainer.java b/integration-test/src/test/java/org/onap/cps/integration/KafkaTestContainer.java
index ff4aec4175..60c1637c5a 100644
--- a/integration-test/src/test/java/org/onap/cps/integration/KafkaTestContainer.java
+++ b/integration-test/src/test/java/org/onap/cps/integration/KafkaTestContainer.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.
@@ -25,8 +25,7 @@ import lombok.extern.slf4j.Slf4j;
import org.apache.kafka.clients.consumer.ConsumerConfig;
import org.apache.kafka.clients.consumer.KafkaConsumer;
import org.apache.kafka.common.serialization.StringDeserializer;
-import org.testcontainers.containers.KafkaContainer;
-import org.testcontainers.utility.DockerImageName;
+import org.testcontainers.kafka.ConfluentKafkaContainer;
/**
* The Apache Kafka test container wrapper.
@@ -35,14 +34,14 @@ import org.testcontainers.utility.DockerImageName;
* Avoid unnecessary resource and time consumption.
*/
@Slf4j
-public class KafkaTestContainer extends KafkaContainer {
+public class KafkaTestContainer extends ConfluentKafkaContainer {
- private static final String IMAGE_NAME_AND_VERSION = "registry.nordix.org/onaptest/confluentinc/cp-kafka:6.2.1";
+ private static final String IMAGE_NAME_AND_VERSION = "confluentinc/cp-kafka:7.8.0";
private static volatile KafkaTestContainer kafkaTestContainer;
private KafkaTestContainer() {
- super(DockerImageName.parse(IMAGE_NAME_AND_VERSION).asCompatibleSubstituteFor("confluentinc/cp-kafka"));
+ super(IMAGE_NAME_AND_VERSION);
}
/**
diff --git a/integration-test/src/test/resources/application.yml b/integration-test/src/test/resources/application.yml
index 8ede492ad1..e213a70a59 100644
--- a/integration-test/src/test/resources/application.yml
+++ b/integration-test/src/test/resources/application.yml
@@ -102,6 +102,7 @@ app:
cm-subscription-dmi-out: ${CM_SUBSCRIPTION_DMI_OUT_TOPIC:dmi-ncmp-cm-avc-subscription}
cm-subscription-ncmp-out: ${CM_SUBSCRIPTION_NCMP_OUT_TOPIC:subscription-response}
cm-events-topic: ${NCMP_CM_EVENTS_TOPIC:cm-events}
+ inventory-events-topic: ncmp-inventory-events
lcm:
events:
topic: ${LCM_EVENTS_TOPIC:ncmp-events}
diff --git a/k6-tests/ncmp/common/passthrough-crud.js b/k6-tests/ncmp/common/passthrough-crud.js
index 251ddf8890..a3d48fd590 100644
--- a/k6-tests/ncmp/common/passthrough-crud.js
+++ b/k6-tests/ncmp/common/passthrough-crud.js
@@ -29,7 +29,7 @@ import {
export function passthroughRead(useAlternateId) {
const cmHandleReference = getRandomCmHandleReference(useAlternateId);
- const resourceIdentifier = 'NRCellDU/attributes/cellLocalId';
+ const resourceIdentifier = 'ManagedElement=NRNode1/GNBDUFunction=1';
const datastoreName = 'ncmp-datastore:passthrough-operational';
const includeDescendants = true;
const url = generatePassthroughUrl(cmHandleReference, datastoreName, resourceIdentifier, includeDescendants);
@@ -38,7 +38,7 @@ export function passthroughRead(useAlternateId) {
export function passthroughWrite(useAlternateId) {
const cmHandleReference = getRandomCmHandleReference(useAlternateId);
- const resourceIdentifier = 'NRCellDU/attributes/cellLocalId';
+ const resourceIdentifier = 'ManagedElement=NRNode1/GNBDUFunction=1';
const datastoreName = 'ncmp-datastore:passthrough-running';
const includeDescendants = false;
const url = generatePassthroughUrl(cmHandleReference, datastoreName, resourceIdentifier, includeDescendants);
@@ -54,7 +54,7 @@ export function legacyBatchRead(cmHandleIds) {
const payload = JSON.stringify({
"operations": [
{
- "resourceIdentifier": "NRCellDU/attributes/cellLocalId",
+ "resourceIdentifier": "ManagedElement=NRNode1/GNBDUFunction=1",
"targetIds": cmHandleIds,
"datastore": "ncmp-datastore:passthrough-operational",
"options": "(fields=NRCellDU/attributes/cellLocalId)",