aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--checkstyle/pom.xml2
-rw-r--r--cps-application/pom.xml2
-rw-r--r--cps-bom/pom.xml2
-rw-r--r--cps-dependencies/pom.xml2
-rw-r--r--cps-events/pom.xml2
-rw-r--r--cps-ncmp-events/pom.xml2
-rw-r--r--cps-ncmp-rest-stub/cps-ncmp-rest-stub-app/pom.xml2
-rw-r--r--cps-ncmp-rest-stub/cps-ncmp-rest-stub-service/pom.xml2
-rw-r--r--cps-ncmp-rest-stub/pom.xml2
-rw-r--r--cps-ncmp-rest/pom.xml2
-rw-r--r--cps-ncmp-service/pom.xml2
-rw-r--r--cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/inventory/NetworkCmProxyInventoryFacade.java9
-rw-r--r--cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/inventory/CmHandleQueryServiceImpl.java4
-rw-r--r--cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/inventory/trustlevel/TrustLevelCacheConfig.java10
-rw-r--r--cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/inventory/trustlevel/TrustLevelManager.java58
-rw-r--r--cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/impl/inventory/CmHandleQueryServiceImplSpec.groovy4
-rw-r--r--cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/impl/inventory/NetworkCmProxyInventoryFacadeSpec.groovy7
-rw-r--r--cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/impl/inventory/trustlevel/TrustLevelCacheConfigSpec.groovy10
-rw-r--r--cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/impl/inventory/trustlevel/TrustLevelManagerSpec.groovy109
-rw-r--r--cps-parent/pom.xml2
-rw-r--r--cps-path-parser/pom.xml2
-rw-r--r--cps-rest/pom.xml2
-rw-r--r--cps-ri/pom.xml2
-rw-r--r--cps-service/pom.xml2
-rw-r--r--integration-test/pom.xml2
-rw-r--r--jacoco-report/pom.xml2
-rw-r--r--k6-tests/ncmp/common/utils.js24
-rw-r--r--policy-executor-stub/pom.xml2
-rw-r--r--pom.xml2
-rw-r--r--spotbugs/pom.xml2
-rw-r--r--version.properties4
31 files changed, 181 insertions, 100 deletions
diff --git a/checkstyle/pom.xml b/checkstyle/pom.xml
index e278126d64..d6fbcd98d5 100644
--- a/checkstyle/pom.xml
+++ b/checkstyle/pom.xml
@@ -26,7 +26,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>org.onap.cps</groupId>
<artifactId>checkstyle</artifactId>
- <version>3.5.6-SNAPSHOT</version>
+ <version>3.6.0-SNAPSHOT</version>
<profiles>
<profile>
diff --git a/cps-application/pom.xml b/cps-application/pom.xml
index 2546559214..5ac2202e85 100644
--- a/cps-application/pom.xml
+++ b/cps-application/pom.xml
@@ -28,7 +28,7 @@
<parent>
<groupId>org.onap.cps</groupId>
<artifactId>cps-parent</artifactId>
- <version>3.5.6-SNAPSHOT</version>
+ <version>3.6.0-SNAPSHOT</version>
<relativePath>../cps-parent/pom.xml</relativePath>
</parent>
diff --git a/cps-bom/pom.xml b/cps-bom/pom.xml
index 97f10643b7..1bb8308e07 100644
--- a/cps-bom/pom.xml
+++ b/cps-bom/pom.xml
@@ -25,7 +25,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>org.onap.cps</groupId>
<artifactId>cps-bom</artifactId>
- <version>3.5.6-SNAPSHOT</version>
+ <version>3.6.0-SNAPSHOT</version>
<packaging>pom</packaging>
<description>This artifact contains dependencyManagement declarations of all published CPS components.</description>
diff --git a/cps-dependencies/pom.xml b/cps-dependencies/pom.xml
index 524bc469ed..6befccb1fa 100644
--- a/cps-dependencies/pom.xml
+++ b/cps-dependencies/pom.xml
@@ -27,7 +27,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>org.onap.cps</groupId>
<artifactId>cps-dependencies</artifactId>
- <version>3.5.6-SNAPSHOT</version>
+ <version>3.6.0-SNAPSHOT</version>
<packaging>pom</packaging>
<name>${project.groupId}:${project.artifactId}</name>
diff --git a/cps-events/pom.xml b/cps-events/pom.xml
index ec245fcedd..9d49f181fb 100644
--- a/cps-events/pom.xml
+++ b/cps-events/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.onap.cps</groupId>
<artifactId>cps-parent</artifactId>
- <version>3.5.6-SNAPSHOT</version>
+ <version>3.6.0-SNAPSHOT</version>
<relativePath>../cps-parent/pom.xml</relativePath>
</parent>
diff --git a/cps-ncmp-events/pom.xml b/cps-ncmp-events/pom.xml
index 57d2f55d74..bb45493554 100644
--- a/cps-ncmp-events/pom.xml
+++ b/cps-ncmp-events/pom.xml
@@ -23,7 +23,7 @@
<parent>
<groupId>org.onap.cps</groupId>
<artifactId>cps-parent</artifactId>
- <version>3.5.6-SNAPSHOT</version>
+ <version>3.6.0-SNAPSHOT</version>
<relativePath>../cps-parent/pom.xml</relativePath>
</parent>
diff --git a/cps-ncmp-rest-stub/cps-ncmp-rest-stub-app/pom.xml b/cps-ncmp-rest-stub/cps-ncmp-rest-stub-app/pom.xml
index 5b27792580..690ec01b8f 100644
--- a/cps-ncmp-rest-stub/cps-ncmp-rest-stub-app/pom.xml
+++ b/cps-ncmp-rest-stub/cps-ncmp-rest-stub-app/pom.xml
@@ -22,7 +22,7 @@
<parent>
<groupId>org.onap.cps</groupId>
<artifactId>cps-ncmp-rest-stub</artifactId>
- <version>3.5.6-SNAPSHOT</version>
+ <version>3.6.0-SNAPSHOT</version>
</parent>
<artifactId>cps-ncmp-rest-stub-app</artifactId>
diff --git a/cps-ncmp-rest-stub/cps-ncmp-rest-stub-service/pom.xml b/cps-ncmp-rest-stub/cps-ncmp-rest-stub-service/pom.xml
index fb72176e27..bba80cdcf1 100644
--- a/cps-ncmp-rest-stub/cps-ncmp-rest-stub-service/pom.xml
+++ b/cps-ncmp-rest-stub/cps-ncmp-rest-stub-service/pom.xml
@@ -21,7 +21,7 @@
<parent>
<groupId>org.onap.cps</groupId>
<artifactId>cps-ncmp-rest-stub</artifactId>
- <version>3.5.6-SNAPSHOT</version>
+ <version>3.6.0-SNAPSHOT</version>
</parent>
<artifactId>cps-ncmp-rest-stub-service</artifactId>
diff --git a/cps-ncmp-rest-stub/pom.xml b/cps-ncmp-rest-stub/pom.xml
index bd79f7c1ef..056e52a4f0 100644
--- a/cps-ncmp-rest-stub/pom.xml
+++ b/cps-ncmp-rest-stub/pom.xml
@@ -22,7 +22,7 @@
<parent>
<groupId>org.onap.cps</groupId>
<artifactId>cps-parent</artifactId>
- <version>3.5.6-SNAPSHOT</version>
+ <version>3.6.0-SNAPSHOT</version>
<relativePath>../cps-parent/pom.xml</relativePath>
</parent>
diff --git a/cps-ncmp-rest/pom.xml b/cps-ncmp-rest/pom.xml
index 4d4ac5a5ce..4e2c48dd6f 100644
--- a/cps-ncmp-rest/pom.xml
+++ b/cps-ncmp-rest/pom.xml
@@ -27,7 +27,7 @@
<parent>
<groupId>org.onap.cps</groupId>
<artifactId>cps-parent</artifactId>
- <version>3.5.6-SNAPSHOT</version>
+ <version>3.6.0-SNAPSHOT</version>
<relativePath>../cps-parent/pom.xml</relativePath>
</parent>
diff --git a/cps-ncmp-service/pom.xml b/cps-ncmp-service/pom.xml
index c0cf2728e6..eb0aed1e7c 100644
--- a/cps-ncmp-service/pom.xml
+++ b/cps-ncmp-service/pom.xml
@@ -27,7 +27,7 @@
<parent>
<groupId>org.onap.cps</groupId>
<artifactId>cps-parent</artifactId>
- <version>3.5.6-SNAPSHOT</version>
+ <version>3.6.0-SNAPSHOT</version>
<relativePath>../cps-parent/pom.xml</relativePath>
</parent>
diff --git a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/inventory/NetworkCmProxyInventoryFacade.java b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/inventory/NetworkCmProxyInventoryFacade.java
index ec440f4905..c05754da91 100644
--- a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/inventory/NetworkCmProxyInventoryFacade.java
+++ b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/inventory/NetworkCmProxyInventoryFacade.java
@@ -168,7 +168,7 @@ public class NetworkCmProxyInventoryFacade {
validateCmHandleQueryParameters(cmHandleQueryServiceParameters, CmHandleQueryConditions.ALL_CONDITION_NAMES);
final Collection<NcmpServiceCmHandle> ncmpServiceCmHandles =
parameterizedCmHandleQueryService.queryCmHandles(cmHandleQueryServiceParameters);
- ncmpServiceCmHandles.forEach(this::applyCurrentTrustLevel);
+ trustLevelManager.applyEffectiveTrustLevels(ncmpServiceCmHandles);
return ncmpServiceCmHandles;
}
@@ -209,7 +209,7 @@ public class NetworkCmProxyInventoryFacade {
final String cmHandleId = alternateIdMatcher.getCmHandleId(cmHandleReference);
final NcmpServiceCmHandle ncmpServiceCmHandle = YangDataConverter.toNcmpServiceCmHandle(
inventoryPersistence.getYangModelCmHandle(cmHandleId));
- applyCurrentTrustLevel(ncmpServiceCmHandle);
+ trustLevelManager.applyEffectiveTrustLevel(ncmpServiceCmHandle);
return ncmpServiceCmHandle;
}
@@ -236,9 +236,4 @@ public class NetworkCmProxyInventoryFacade {
return inventoryPersistence.getYangModelCmHandle(cmHandleId).getCompositeState();
}
- private void applyCurrentTrustLevel(final NcmpServiceCmHandle ncmpServiceCmHandle) {
- ncmpServiceCmHandle.setCurrentTrustLevel(trustLevelManager
- .getEffectiveTrustLevel(ncmpServiceCmHandle.getCmHandleId()));
- }
-
}
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 1490d69881..4491044d89 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
@@ -62,7 +62,7 @@ public class CmHandleQueryServiceImpl implements CmHandleQueryService {
private final Map<String, TrustLevel> trustLevelPerDmiPlugin;
@Qualifier(TrustLevelCacheConfig.TRUST_LEVEL_PER_CM_HANDLE)
- private final Map<String, TrustLevel> trustLevelPerCmHandle;
+ private final Map<String, TrustLevel> trustLevelPerCmHandleId;
private final CpsValidator cpsValidator;
@@ -164,7 +164,7 @@ public class CmHandleQueryServiceImpl implements CmHandleQueryService {
getCmHandleReferencesMapByDmiPluginIdentifier(dmiPluginIdentifier);
for (final Map.Entry<String, String> candidateCmHandleReference : candidateCmHandleReferences.entrySet()) {
final TrustLevel candidateCmHandleTrustLevel =
- trustLevelPerCmHandle.get(candidateCmHandleReference.getKey());
+ trustLevelPerCmHandleId.get(candidateCmHandleReference.getKey());
final TrustLevel effectiveTrustlevel =
candidateCmHandleTrustLevel.getEffectiveTrustLevel(dmiTrustLevel);
if (targetTrustLevel.equals(effectiveTrustlevel)) {
diff --git a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/inventory/trustlevel/TrustLevelCacheConfig.java b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/inventory/trustlevel/TrustLevelCacheConfig.java
index 06ca67e57e..f9ad3ff937 100644
--- a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/inventory/trustlevel/TrustLevelCacheConfig.java
+++ b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/inventory/trustlevel/TrustLevelCacheConfig.java
@@ -21,7 +21,7 @@
package org.onap.cps.ncmp.impl.inventory.trustlevel;
import com.hazelcast.config.MapConfig;
-import java.util.Map;
+import com.hazelcast.map.IMap;
import org.onap.cps.ncmp.api.inventory.models.TrustLevel;
import org.onap.cps.ncmp.impl.cache.HazelcastCacheConfig;
import org.springframework.context.annotation.Bean;
@@ -33,7 +33,7 @@ public class TrustLevelCacheConfig extends HazelcastCacheConfig {
public static final String TRUST_LEVEL_PER_DMI_PLUGIN = "trustLevelPerDmiPlugin";
public static final String TRUST_LEVEL_PER_CM_HANDLE = "trustLevelPerCmHandle";
- private static final MapConfig trustLevelPerCmHandleCacheConfig =
+ private static final MapConfig trustLevelPerCmHandleIdCacheConfig =
createMapConfig("trustLevelPerCmHandleCacheConfig");
private static final MapConfig trustLevelPerDmiPluginCacheConfig =
@@ -45,8 +45,8 @@ public class TrustLevelCacheConfig extends HazelcastCacheConfig {
* @return configured map of cm handle name as keys to trust-level for values.
*/
@Bean(TRUST_LEVEL_PER_CM_HANDLE)
- public Map<String, TrustLevel> trustLevelPerCmHandle() {
- return getOrCreateHazelcastInstance(trustLevelPerCmHandleCacheConfig).getMap(TRUST_LEVEL_PER_CM_HANDLE);
+ public IMap<String, TrustLevel> trustLevelPerCmHandleId() {
+ return getOrCreateHazelcastInstance(trustLevelPerCmHandleIdCacheConfig).getMap(TRUST_LEVEL_PER_CM_HANDLE);
}
/**
@@ -55,7 +55,7 @@ public class TrustLevelCacheConfig extends HazelcastCacheConfig {
* @return configured map of dmi-plugin name as keys to trust-level for values.
*/
@Bean(TRUST_LEVEL_PER_DMI_PLUGIN)
- public Map<String, TrustLevel> trustLevelPerDmiPlugin() {
+ public IMap<String, TrustLevel> trustLevelPerDmiPlugin() {
return getOrCreateHazelcastInstance(
trustLevelPerDmiPluginCacheConfig).getMap(TRUST_LEVEL_PER_DMI_PLUGIN);
}
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 9b0cc3a0c0..a10e8ba308 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
@@ -20,11 +20,16 @@
package org.onap.cps.ncmp.impl.inventory.trustlevel;
+import com.hazelcast.map.IMap;
import java.util.Collection;
+import java.util.Collections;
import java.util.Map;
+import java.util.Set;
+import java.util.stream.Collectors;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.onap.cps.ncmp.api.inventory.models.DmiPluginRegistration;
+import org.onap.cps.ncmp.api.inventory.models.NcmpServiceCmHandle;
import org.onap.cps.ncmp.api.inventory.models.TrustLevel;
import org.onap.cps.ncmp.impl.inventory.InventoryPersistence;
import org.onap.cps.ncmp.impl.inventory.models.YangModelCmHandle;
@@ -39,10 +44,10 @@ import org.springframework.stereotype.Service;
public class TrustLevelManager {
@Qualifier(TrustLevelCacheConfig.TRUST_LEVEL_PER_CM_HANDLE)
- private final Map<String, TrustLevel> trustLevelPerCmHandle;
+ private final IMap<String, TrustLevel> trustLevelPerCmHandleId;
@Qualifier(TrustLevelCacheConfig.TRUST_LEVEL_PER_DMI_PLUGIN)
- private final Map<String, TrustLevel> trustLevelPerDmiPlugin;
+ private final IMap<String, TrustLevel> trustLevelPerDmiPlugin;
private final InventoryPersistence inventoryPersistence;
private final CmAvcEventPublisher cmAvcEventPublisher;
@@ -72,14 +77,14 @@ public class TrustLevelManager {
public void registerCmHandles(final Map<String, TrustLevel> cmHandlesToBeCreated) {
for (final Map.Entry<String, TrustLevel> entry : cmHandlesToBeCreated.entrySet()) {
final String cmHandleId = entry.getKey();
- if (trustLevelPerCmHandle.containsKey(cmHandleId)) {
+ if (trustLevelPerCmHandleId.containsKey(cmHandleId)) {
log.warn("Cm handle: {} already registered", cmHandleId);
} else {
TrustLevel initialTrustLevel = entry.getValue();
if (initialTrustLevel == null) {
initialTrustLevel = TrustLevel.COMPLETE;
}
- trustLevelPerCmHandle.put(cmHandleId, initialTrustLevel);
+ trustLevelPerCmHandleId.put(cmHandleId, initialTrustLevel);
if (TrustLevel.NONE.equals(initialTrustLevel)) {
cmAvcEventPublisher.publishAvcEvent(cmHandleId,
AVC_CHANGED_ATTRIBUTE_NAME,
@@ -104,7 +109,7 @@ public class TrustLevelManager {
final TrustLevel oldDmiTrustLevel = trustLevelPerDmiPlugin.get(dmiServiceName);
trustLevelPerDmiPlugin.put(dmiServiceName, newDmiTrustLevel);
for (final String affectedCmHandleId : affectedCmHandleIds) {
- final TrustLevel cmHandleTrustLevel = trustLevelPerCmHandle.get(affectedCmHandleId);
+ final TrustLevel cmHandleTrustLevel = trustLevelPerCmHandleId.get(affectedCmHandleId);
final TrustLevel oldEffectiveTrustLevel = cmHandleTrustLevel.getEffectiveTrustLevel(oldDmiTrustLevel);
final TrustLevel newEffectiveTrustLevel = cmHandleTrustLevel.getEffectiveTrustLevel(newDmiTrustLevel);
sendAvcNotificationIfRequired(affectedCmHandleId, oldEffectiveTrustLevel, newEffectiveTrustLevel);
@@ -123,25 +128,42 @@ public class TrustLevelManager {
final String dmiServiceName = getDmiServiceName(cmHandleId);
final TrustLevel dmiTrustLevel = trustLevelPerDmiPlugin.get(dmiServiceName);
- final TrustLevel oldCmHandleTrustLevel = trustLevelPerCmHandle.get(cmHandleId);
+ final TrustLevel oldCmHandleTrustLevel = trustLevelPerCmHandleId.get(cmHandleId);
final TrustLevel oldEffectiveTrustLevel = oldCmHandleTrustLevel.getEffectiveTrustLevel(dmiTrustLevel);
final TrustLevel newEffectiveTrustLevel = newCmHandleTrustLevel.getEffectiveTrustLevel(dmiTrustLevel);
- trustLevelPerCmHandle.put(cmHandleId, newCmHandleTrustLevel);
+ trustLevelPerCmHandleId.put(cmHandleId, newCmHandleTrustLevel);
sendAvcNotificationIfRequired(cmHandleId, oldEffectiveTrustLevel, newEffectiveTrustLevel);
}
/**
- * Select effective trust level among device and dmi plugin.
+ * Apply effective trust levels for a collection of cm handles.
+ * Effective trust level is the trust level of the cm handle or its dmi plugin, whichever is lower.
*
- * @param cmHandleId cm handle id
- * @return TrustLevel effective trust level
+ * @param ncmpServiceCmHandles a collection of cm handles to apply trust levels to
*/
- public TrustLevel getEffectiveTrustLevel(final String cmHandleId) {
- final TrustLevel dmiTrustLevel = TrustLevel.COMPLETE; // TODO: CPS-2375
- final TrustLevel cmHandleTrustLevel = trustLevelPerCmHandle.getOrDefault(cmHandleId, TrustLevel.NONE);
- return dmiTrustLevel.getEffectiveTrustLevel(cmHandleTrustLevel);
+ public void applyEffectiveTrustLevels(final Collection<NcmpServiceCmHandle> ncmpServiceCmHandles) {
+ final Set<String> cmHandleIds = getCmHandleIds(ncmpServiceCmHandles);
+ final Map<String, TrustLevel> trustLevelPerCmHandleIdInBatch = trustLevelPerCmHandleId.getAll(cmHandleIds);
+ for (final NcmpServiceCmHandle ncmpServiceCmHandle : ncmpServiceCmHandles) {
+ final String cmHandleId = ncmpServiceCmHandle.getCmHandleId();
+ final TrustLevel dmiTrustLevel = TrustLevel.COMPLETE; // TODO: CPS-2375
+ final TrustLevel cmHandleTrustLevel = trustLevelPerCmHandleIdInBatch.getOrDefault(cmHandleId,
+ TrustLevel.NONE);
+ final TrustLevel effectiveTrustLevel = dmiTrustLevel.getEffectiveTrustLevel(cmHandleTrustLevel);
+ ncmpServiceCmHandle.setCurrentTrustLevel(effectiveTrustLevel);
+ }
+ }
+
+ /**
+ * Apply effective trust level to a cm handle.
+ * Effective trust level is the trust level of the cm handle or its dmi plugin, whichever is lower.
+ *
+ * @param ncmpServiceCmHandle cm handle to apply trust level to
+ */
+ public void applyEffectiveTrustLevel(final NcmpServiceCmHandle ncmpServiceCmHandle) {
+ applyEffectiveTrustLevels(Collections.singletonList(ncmpServiceCmHandle));
}
/**
@@ -151,12 +173,18 @@ public class TrustLevelManager {
*/
public void removeCmHandles(final Collection<String> cmHandleIds) {
for (final String cmHandleId : cmHandleIds) {
- if (trustLevelPerCmHandle.remove(cmHandleId) == null) {
+ if (trustLevelPerCmHandleId.remove(cmHandleId) == null) {
log.debug("Removed Cm handle: {} is not in trust level cache", cmHandleId);
}
}
}
+ private Set<String> getCmHandleIds(final Collection<NcmpServiceCmHandle> ncmpServiceCmHandles) {
+ return ncmpServiceCmHandles.stream()
+ .map(NcmpServiceCmHandle::getCmHandleId)
+ .collect(Collectors.toUnmodifiableSet());
+ }
+
private String getDmiServiceName(final String cmHandleId) {
final YangModelCmHandle yangModelCmHandle = inventoryPersistence.getYangModelCmHandle(cmHandleId);
return yangModelCmHandle.resolveDmiServiceName(RequiredDmiService.DATA);
diff --git a/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/impl/inventory/CmHandleQueryServiceImplSpec.groovy b/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/impl/inventory/CmHandleQueryServiceImplSpec.groovy
index ce08156fec..9d26d23881 100644
--- a/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/impl/inventory/CmHandleQueryServiceImplSpec.groovy
+++ b/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/impl/inventory/CmHandleQueryServiceImplSpec.groovy
@@ -43,11 +43,11 @@ class CmHandleQueryServiceImplSpec extends Specification {
def trustLevelPerDmiPlugin = [:]
- def trustLevelPerCmHandle = [ 'PNFDemo': TrustLevel.COMPLETE, 'PNFDemo2': TrustLevel.NONE, 'PNFDemo4': TrustLevel.NONE ]
+ def trustLevelPerCmHandleId = [ 'PNFDemo': TrustLevel.COMPLETE, 'PNFDemo2': TrustLevel.NONE, 'PNFDemo4': TrustLevel.NONE ]
def mockCpsValidator = Mock(CpsValidator)
- def objectUnderTest = new CmHandleQueryServiceImpl(mockCpsDataService, mockCpsQueryService, trustLevelPerDmiPlugin, trustLevelPerCmHandle, mockCpsValidator)
+ def objectUnderTest = new CmHandleQueryServiceImpl(mockCpsDataService, mockCpsQueryService, trustLevelPerDmiPlugin, trustLevelPerCmHandleId, mockCpsValidator)
@Shared
def static sampleDataNodes = [new DataNode()]
diff --git a/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/impl/inventory/NetworkCmProxyInventoryFacadeSpec.groovy b/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/impl/inventory/NetworkCmProxyInventoryFacadeSpec.groovy
index 282bd9e89b..dc93747085 100644
--- a/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/impl/inventory/NetworkCmProxyInventoryFacadeSpec.groovy
+++ b/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/impl/inventory/NetworkCmProxyInventoryFacadeSpec.groovy
@@ -121,10 +121,9 @@ class NetworkCmProxyInventoryFacadeSpec extends Specification {
def alternateId = 'some-alternate-id'
def yangModelCmHandle = new YangModelCmHandle(id: 'some-cm-handle', dmiServiceName: dmiServiceName, dmiProperties: dmiProperties,
publicProperties: publicProperties, compositeState: compositeState, moduleSetTag: moduleSetTag, alternateId: alternateId)
- mockAlternateIdMatcher.getCmHandleId(cmHandleRef) >> 'some-cm-handle'
+ 1 * mockAlternateIdMatcher.getCmHandleId(cmHandleRef) >> 'some-cm-handle'
1 * mockInventoryPersistence.getYangModelCmHandle('some-cm-handle') >> yangModelCmHandle
- and: 'a trust level for the cm handle in the cache'
- mockTrustLevelManager.getEffectiveTrustLevel(*_) >> TrustLevel.COMPLETE
+ 1 * mockTrustLevelManager.applyEffectiveTrustLevel(_) >> { args -> args[0].currentTrustLevel = TrustLevel.COMPLETE }
when: 'getting cm handle details for a given cm handle id from ncmp service'
def result = objectUnderTest.getNcmpServiceCmHandle(cmHandleRef)
then: 'the result is a ncmpServiceCmHandle'
@@ -251,7 +250,7 @@ class NetworkCmProxyInventoryFacadeSpec extends Specification {
spiedJsonObjectMapper.convertToValueType(cmHandleQueryApiParameters, CmHandleQueryServiceParameters.class))
>> [new NcmpServiceCmHandle(cmHandleId: 'ch-0'), new NcmpServiceCmHandle(cmHandleId: 'ch-1')]
and: 'a trust level for cm handles'
- mockTrustLevelManager.getEffectiveTrustLevel(*_) >> TrustLevel.COMPLETE
+ 1 * mockTrustLevelManager.applyEffectiveTrustLevels(_) >> { args -> args[0].forEach{it.currentTrustLevel = TrustLevel.COMPLETE } }
when: 'execute cm handle search is called'
def result = objectUnderTest.executeCmHandleSearch(cmHandleQueryApiParameters)
then: 'result consists of the two cm handles returned by the CPS Data Service'
diff --git a/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/impl/inventory/trustlevel/TrustLevelCacheConfigSpec.groovy b/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/impl/inventory/trustlevel/TrustLevelCacheConfigSpec.groovy
index 9391fa0f44..20b1c1c335 100644
--- a/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/impl/inventory/trustlevel/TrustLevelCacheConfigSpec.groovy
+++ b/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/impl/inventory/trustlevel/TrustLevelCacheConfigSpec.groovy
@@ -22,8 +22,10 @@ package org.onap.cps.ncmp.impl.inventory.trustlevel
import com.hazelcast.config.Config
import com.hazelcast.core.Hazelcast
+import com.hazelcast.map.IMap
import org.onap.cps.ncmp.api.inventory.models.TrustLevel
import org.springframework.beans.factory.annotation.Autowired
+import org.springframework.beans.factory.annotation.Qualifier
import org.springframework.boot.test.context.SpringBootTest
import spock.lang.Specification
@@ -31,10 +33,12 @@ import spock.lang.Specification
class TrustLevelCacheConfigSpec extends Specification {
@Autowired
- private Map<String, TrustLevel> trustLevelPerDmiPlugin
+ @Qualifier(TrustLevelCacheConfig.TRUST_LEVEL_PER_DMI_PLUGIN)
+ private IMap<String, TrustLevel> trustLevelPerDmiPlugin
@Autowired
- private Map<String, TrustLevel> trustLevelPerCmHandle
+ @Qualifier(TrustLevelCacheConfig.TRUST_LEVEL_PER_CM_HANDLE)
+ private IMap<String, TrustLevel> trustLevelPerCmHandleId
def cleanupSpec() {
Hazelcast.getHazelcastInstanceByName('cps-and-ncmp-hazelcast-instance-test-config').shutdown()
@@ -51,7 +55,7 @@ class TrustLevelCacheConfigSpec extends Specification {
def 'Hazelcast cache for trust level per cm handle'() {
expect: 'system is able to create an instance of the trust level per cm handle cache'
- assert null != trustLevelPerCmHandle
+ assert null != trustLevelPerCmHandleId
and: 'there is at least 1 instance'
assert Hazelcast.allHazelcastInstances.size() > 0
and: 'Hazelcast cache instance for trust level is present'
diff --git a/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/impl/inventory/trustlevel/TrustLevelManagerSpec.groovy b/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/impl/inventory/trustlevel/TrustLevelManagerSpec.groovy
index e0f5f9c4f8..4f41f2cbb1 100644
--- a/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/impl/inventory/trustlevel/TrustLevelManagerSpec.groovy
+++ b/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/impl/inventory/trustlevel/TrustLevelManagerSpec.groovy
@@ -20,30 +20,49 @@
package org.onap.cps.ncmp.impl.inventory.trustlevel
+import com.hazelcast.core.Hazelcast
+import com.hazelcast.map.IMap
import org.onap.cps.ncmp.api.inventory.models.DmiPluginRegistration
+import org.onap.cps.ncmp.api.inventory.models.NcmpServiceCmHandle
import org.onap.cps.ncmp.api.inventory.models.TrustLevel
import org.onap.cps.ncmp.impl.inventory.InventoryPersistence
import org.onap.cps.ncmp.impl.inventory.models.YangModelCmHandle
import org.onap.cps.ncmp.utils.events.CmAvcEventPublisher
-import spock.lang.Ignore
import spock.lang.Specification
class TrustLevelManagerSpec extends Specification {
- def trustLevelPerCmHandle = [:]
- def trustLevelPerDmiPlugin = [:]
+ TrustLevelManager objectUnderTest
+
+ def hazelcastInstance
+ IMap<String, TrustLevel> trustLevelPerCmHandleId
+ IMap<String, TrustLevel> trustLevelPerDmiPlugin
def mockInventoryPersistence = Mock(InventoryPersistence)
def mockAttributeValueChangeEventPublisher = Mock(CmAvcEventPublisher)
- def objectUnderTest = new TrustLevelManager(trustLevelPerCmHandle, trustLevelPerDmiPlugin, mockInventoryPersistence, mockAttributeValueChangeEventPublisher)
+
+ def setup() {
+ hazelcastInstance = Hazelcast.newHazelcastInstance()
+ trustLevelPerCmHandleId = hazelcastInstance.getMap("trustLevelPerCmHandle")
+ trustLevelPerDmiPlugin = hazelcastInstance.getMap("trustLevelPerCmHandle")
+ objectUnderTest = new TrustLevelManager(trustLevelPerCmHandleId, trustLevelPerDmiPlugin, mockInventoryPersistence, mockAttributeValueChangeEventPublisher)
+ }
+
+ def cleanup() {
+ hazelcastInstance.shutdown()
+ }
def 'Initial dmi registration'() {
given: 'a dmi plugin'
- def dmiPluginRegistration = new DmiPluginRegistration(dmiPlugin: 'dmi-1')
+ def dmiPluginRegistration = new DmiPluginRegistration(dmiPlugin: dmiPlugin, dmiDataPlugin: dmiDataPlugin)
when: 'method to register to the cache is called'
objectUnderTest.registerDmiPlugin(dmiPluginRegistration)
then: 'dmi plugin in the cache and trusted'
- assert trustLevelPerDmiPlugin.get('dmi-1') == TrustLevel.COMPLETE
+ assert trustLevelPerDmiPlugin.get(expectedDmiPlugin) == TrustLevel.COMPLETE
+ where: 'the following parameters are used'
+ dmiPlugin | dmiDataPlugin || expectedDmiPlugin
+ 'dmi-1' | '' || 'dmi-1'
+ '' | 'dmi-2' || 'dmi-2'
}
def 'Initial cm handle registration'() {
@@ -54,8 +73,21 @@ class TrustLevelManagerSpec extends Specification {
then: 'no notification sent'
0 * mockAttributeValueChangeEventPublisher.publishAvcEvent(*_)
and: 'both cm handles are in the cache and are trusted'
- assert trustLevelPerCmHandle.get('ch-1') == TrustLevel.COMPLETE
- assert trustLevelPerCmHandle.get('ch-2') == TrustLevel.COMPLETE
+ assert trustLevelPerCmHandleId.get('ch-1') == TrustLevel.COMPLETE
+ assert trustLevelPerCmHandleId.get('ch-2') == TrustLevel.COMPLETE
+ }
+
+ def 'Initial cm handle registration where a cm handle is already in the cache'() {
+ given: 'a trusted cm handle'
+ def cmHandleModelsToBeCreated = ['ch-1': TrustLevel.NONE]
+ and: 'the cm handle id already in the cache'
+ trustLevelPerCmHandleId.put('ch-1', TrustLevel.COMPLETE)
+ when: 'method to register to the cache is called'
+ objectUnderTest.registerCmHandles(cmHandleModelsToBeCreated)
+ then: 'no notification sent'
+ 0 * mockAttributeValueChangeEventPublisher.publishAvcEvent(*_)
+ and: 'cm handle cache is not updated'
+ assert trustLevelPerCmHandleId.get('ch-1') == TrustLevel.COMPLETE
}
def 'Initial cm handle registration with a cm handle that is not trusted'() {
@@ -71,7 +103,7 @@ class TrustLevelManagerSpec extends Specification {
given: 'a trusted dmi plugin'
trustLevelPerDmiPlugin.put('my-dmi', TrustLevel.COMPLETE)
and: 'a trusted cm handle'
- trustLevelPerCmHandle.put('ch-1', TrustLevel.COMPLETE)
+ trustLevelPerCmHandleId.put('ch-1', TrustLevel.COMPLETE)
when: 'the update is handled'
objectUnderTest.updateDmi('my-dmi', ['ch-1'], TrustLevel.NONE)
then: 'notification is sent'
@@ -84,7 +116,7 @@ class TrustLevelManagerSpec extends Specification {
given: 'a trusted dmi plugin'
trustLevelPerDmiPlugin.put('my-dmi', TrustLevel.COMPLETE)
and: 'a trusted cm handle'
- trustLevelPerCmHandle.put('ch-1', TrustLevel.COMPLETE)
+ trustLevelPerCmHandleId.put('ch-1', TrustLevel.COMPLETE)
when: 'the update is handled'
objectUnderTest.updateDmi('my-dmi', ['ch-1'], TrustLevel.COMPLETE)
then: 'no notification is sent'
@@ -95,7 +127,7 @@ class TrustLevelManagerSpec extends Specification {
def 'CmHandle trust level updated'() {
given: 'a non trusted cm handle'
- trustLevelPerCmHandle.put('ch-1', TrustLevel.NONE)
+ trustLevelPerCmHandleId.put('ch-1', TrustLevel.NONE)
and: 'a trusted dmi plugin'
trustLevelPerDmiPlugin.put('my-dmi', TrustLevel.COMPLETE)
and: 'inventory persistence service returns yang model cm handle'
@@ -103,14 +135,14 @@ class TrustLevelManagerSpec extends Specification {
when: 'update of CmHandle to COMPLETE trust level handled'
objectUnderTest.updateCmHandleTrustLevel('ch-1', TrustLevel.COMPLETE)
then: 'the cm handle in the cache is trusted'
- assert trustLevelPerCmHandle.get('ch-1', TrustLevel.COMPLETE)
+ assert trustLevelPerCmHandleId.get('ch-1', TrustLevel.COMPLETE)
and: 'notification is sent'
1 * mockAttributeValueChangeEventPublisher.publishAvcEvent('ch-1', 'trustLevel', 'NONE', 'COMPLETE')
}
def 'CmHandle trust level updated with same value'() {
given: 'a non trusted cm handle'
- trustLevelPerCmHandle.put('ch-1', TrustLevel.NONE)
+ trustLevelPerCmHandleId.put('ch-1', TrustLevel.NONE)
and: 'a trusted dmi plugin'
trustLevelPerDmiPlugin.put('my-dmi', TrustLevel.COMPLETE)
and: 'inventory persistence service returns yang model cm handle'
@@ -118,7 +150,7 @@ class TrustLevelManagerSpec extends Specification {
when: 'update of CmHandle trust to the same level (NONE)'
objectUnderTest.updateCmHandleTrustLevel('ch-1', TrustLevel.NONE)
then: 'the cm handle in the cache is not trusted'
- assert trustLevelPerCmHandle.get('ch-1', TrustLevel.NONE)
+ assert trustLevelPerCmHandleId.get('ch-1', TrustLevel.NONE)
and: 'no notification is sent'
0 * mockAttributeValueChangeEventPublisher.publishAvcEvent(*_)
}
@@ -127,40 +159,63 @@ class TrustLevelManagerSpec extends Specification {
given: 'a non trusted dmi'
trustLevelPerDmiPlugin.put('my-dmi', TrustLevel.NONE)
and: 'a non trusted CmHandle'
- trustLevelPerCmHandle.put('ch-1', TrustLevel.NONE)
+ trustLevelPerCmHandleId.put('ch-1', TrustLevel.NONE)
when: 'restore the dmi trust level to COMPLETE'
objectUnderTest.updateDmi('my-dmi', ['ch-1'], TrustLevel.COMPLETE)
then: 'the cm handle in the cache is still NONE'
- assert trustLevelPerCmHandle.get('ch-1') == TrustLevel.NONE
+ assert trustLevelPerCmHandleId.get('ch-1') == TrustLevel.NONE
and: 'no notification is sent'
0 * mockAttributeValueChangeEventPublisher.publishAvcEvent(*_)
}
- @Ignore
- // TODO: CPS-2375
- def 'Select effective trust level among CmHandle and dmi plugin'() {
+ def 'Apply effective trust level among CmHandle and dmi plugin'() {
given: 'a non trusted dmi'
trustLevelPerDmiPlugin.put('my-dmi', TrustLevel.NONE)
and: 'a trusted CmHandle'
- trustLevelPerCmHandle.put('ch-1', TrustLevel.COMPLETE)
+ trustLevelPerCmHandleId.put('ch-1', TrustLevel.COMPLETE)
+ and: 'a cm handle object'
+ def ncmpServiceCmHandle = new NcmpServiceCmHandle(cmHandleId: 'ch-1')
when: 'effective trust level selected'
- def effectiveTrustLevel = objectUnderTest.getEffectiveTrustLevel('ch-1')
+ objectUnderTest.applyEffectiveTrustLevel(ncmpServiceCmHandle)
then: 'effective trust level is trusted'
- assert effectiveTrustLevel == TrustLevel.NONE
+ // FIXME CPS-2375: the expected behaviour is to return the lower TrustLevel (NONE)
+ assert ncmpServiceCmHandle.currentTrustLevel == TrustLevel.COMPLETE
+ }
+
+ def 'Apply effective trust levels from CmHandle batch'() {
+ given: 'a non trusted dmi'
+ trustLevelPerDmiPlugin.put('my-dmi', TrustLevel.NONE)
+ and: 'a trusted CmHandle'
+ trustLevelPerCmHandleId.put('ch-1', TrustLevel.COMPLETE)
+ and: 'a not trusted CmHandle'
+ trustLevelPerCmHandleId.put('ch-2', TrustLevel.NONE)
+ and: 'cm handle objects'
+ def ncmpServiceCmHandle1 = new NcmpServiceCmHandle(cmHandleId: 'ch-1')
+ def ncmpServiceCmHandle2 = new NcmpServiceCmHandle(cmHandleId: 'ch-2')
+ when: 'effective trust level selected'
+ objectUnderTest.applyEffectiveTrustLevels([ncmpServiceCmHandle1, ncmpServiceCmHandle2])
+ then: 'effective trust levels are correctly applied'
+ // FIXME CPS-2375: the expected behaviour is to return the lower TrustLevel (NONE)
+ assert ncmpServiceCmHandle1.currentTrustLevel == TrustLevel.COMPLETE
+ assert ncmpServiceCmHandle2.currentTrustLevel == TrustLevel.NONE
}
- def 'Select effective trust level when the trust level caches are empty (restart case)'() {
- expect: 'effective trust level is NONE when cm-1 does not exist in the cache'
- assert objectUnderTest.getEffectiveTrustLevel('ch-1') == TrustLevel.NONE
+ def 'Apply effective trust level when the trust level caches are empty (restart case)'() {
+ given: 'a cm-handle that is not in the cache'
+ def ncmpServiceCmHandle = new NcmpServiceCmHandle(cmHandleId: 'ch-1')
+ when: 'effective trust level is applied'
+ objectUnderTest.applyEffectiveTrustLevel(ncmpServiceCmHandle)
+ then:
+ assert ncmpServiceCmHandle.currentTrustLevel == TrustLevel.NONE
}
def 'CmHandle trust level removed'() {
given: 'a cm handle'
- trustLevelPerCmHandle.put('ch-1', TrustLevel.COMPLETE)
+ trustLevelPerCmHandleId.put('ch-1', TrustLevel.COMPLETE)
when: 'the remove is handled'
objectUnderTest.removeCmHandles(['ch-1'])
then: 'cm handle removed from the cache'
- assert trustLevelPerCmHandle.get('ch-1') == null
+ assert trustLevelPerCmHandleId.get('ch-1') == null
}
}
diff --git a/cps-parent/pom.xml b/cps-parent/pom.xml
index 18c414c754..458acc595f 100644
--- a/cps-parent/pom.xml
+++ b/cps-parent/pom.xml
@@ -27,7 +27,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>org.onap.cps</groupId>
<artifactId>cps-parent</artifactId>
- <version>3.5.6-SNAPSHOT</version>
+ <version>3.6.0-SNAPSHOT</version>
<packaging>pom</packaging>
<properties>
diff --git a/cps-path-parser/pom.xml b/cps-path-parser/pom.xml
index 9021bf6e50..469357462e 100644
--- a/cps-path-parser/pom.xml
+++ b/cps-path-parser/pom.xml
@@ -23,7 +23,7 @@
<parent>
<groupId>org.onap.cps</groupId>
<artifactId>cps-parent</artifactId>
- <version>3.5.6-SNAPSHOT</version>
+ <version>3.6.0-SNAPSHOT</version>
<relativePath>../cps-parent/pom.xml</relativePath>
</parent>
diff --git a/cps-rest/pom.xml b/cps-rest/pom.xml
index 32dce45a8f..b04daf03bd 100644
--- a/cps-rest/pom.xml
+++ b/cps-rest/pom.xml
@@ -27,7 +27,7 @@
<parent>
<groupId>org.onap.cps</groupId>
<artifactId>cps-parent</artifactId>
- <version>3.5.6-SNAPSHOT</version>
+ <version>3.6.0-SNAPSHOT</version>
<relativePath>../cps-parent/pom.xml</relativePath>
</parent>
diff --git a/cps-ri/pom.xml b/cps-ri/pom.xml
index 96039b6b84..f18c2505fd 100644
--- a/cps-ri/pom.xml
+++ b/cps-ri/pom.xml
@@ -26,7 +26,7 @@
<parent>
<groupId>org.onap.cps</groupId>
<artifactId>cps-parent</artifactId>
- <version>3.5.6-SNAPSHOT</version>
+ <version>3.6.0-SNAPSHOT</version>
<relativePath>../cps-parent/pom.xml</relativePath>
</parent>
diff --git a/cps-service/pom.xml b/cps-service/pom.xml
index eecf7a1c8b..7dda1327e0 100644
--- a/cps-service/pom.xml
+++ b/cps-service/pom.xml
@@ -30,7 +30,7 @@
<parent>
<groupId>org.onap.cps</groupId>
<artifactId>cps-parent</artifactId>
- <version>3.5.6-SNAPSHOT</version>
+ <version>3.6.0-SNAPSHOT</version>
<relativePath>../cps-parent/pom.xml</relativePath>
</parent>
diff --git a/integration-test/pom.xml b/integration-test/pom.xml
index 7c0461847d..531d353b0c 100644
--- a/integration-test/pom.xml
+++ b/integration-test/pom.xml
@@ -23,7 +23,7 @@
<parent>
<groupId>org.onap.cps</groupId>
<artifactId>cps-parent</artifactId>
- <version>3.5.6-SNAPSHOT</version>
+ <version>3.6.0-SNAPSHOT</version>
<relativePath>../cps-parent/pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/jacoco-report/pom.xml b/jacoco-report/pom.xml
index b2fa75ebc2..be1d42788d 100644
--- a/jacoco-report/pom.xml
+++ b/jacoco-report/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.onap.cps</groupId>
<artifactId>cps-parent</artifactId>
- <version>3.5.6-SNAPSHOT</version>
+ <version>3.6.0-SNAPSHOT</version>
<relativePath>../cps-parent/pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/k6-tests/ncmp/common/utils.js b/k6-tests/ncmp/common/utils.js
index 8abe54c0cb..b937b4beb3 100644
--- a/k6-tests/ncmp/common/utils.js
+++ b/k6-tests/ncmp/common/utils.js
@@ -87,18 +87,18 @@ export function makeCustomSummaryReport(testResults, scenarioConfig) {
const summaryCsvLines = [
'#,Test Name,Unit,Fs Requirement,Current Expectation,Actual',
makeSummaryCsvLine('0', 'HTTP request failures for all tests', 'rate of failed requests', 'http_req_failed', 0, testResults, scenarioConfig),
- makeSummaryCsvLine('1', 'Registration of CM-handles', 'CM-handles/second', 'cmhandles_created_per_second', 70, testResults, scenarioConfig),
- makeSummaryCsvLine('2', 'De-registration of CM-handles', 'CM-handles/second', 'cmhandles_deleted_per_second', 90, testResults, scenarioConfig),
- makeSummaryCsvLine('3a', 'CM-handle ID search with No filter', 'milliseconds', 'id_search_nofilter_duration', 400, testResults, scenarioConfig),
- makeSummaryCsvLine('3b', 'CM-handle ID search with Module filter', 'milliseconds', 'id_search_module_duration', 200, testResults, scenarioConfig),
- makeSummaryCsvLine('3c', 'CM-handle ID search with Property filter', 'milliseconds', 'id_search_property_duration', 1300, testResults, scenarioConfig),
- makeSummaryCsvLine('3d', 'CM-handle ID search with Cps Path filter', 'milliseconds', 'id_search_cpspath_duration', 1300, testResults, scenarioConfig),
- makeSummaryCsvLine('3e', 'CM-handle ID search with Trust Level filter', 'milliseconds', 'id_search_trustlevel_duration', 10000, testResults, scenarioConfig),
- makeSummaryCsvLine('4a', 'CM-handle search with No filter', 'milliseconds', 'cm_search_nofilter_duration', 14000, testResults, scenarioConfig),
- makeSummaryCsvLine('4b', 'CM-handle search with Module filter', 'milliseconds', 'cm_search_module_duration', 16000, testResults, scenarioConfig),
- makeSummaryCsvLine('4c', 'CM-handle search with Property filter', 'milliseconds', 'cm_search_property_duration', 16000, testResults, scenarioConfig),
- makeSummaryCsvLine('4d', 'CM-handle search with Cps Path filter', 'milliseconds', 'cm_search_cpspath_duration', 16000, testResults, scenarioConfig),
- makeSummaryCsvLine('4e', 'CM-handle search with Trust Level filter', 'milliseconds', 'cm_search_trustlevel_duration', 26000, testResults, scenarioConfig),
+ makeSummaryCsvLine('1', 'Registration of CM-handles', 'CM-handles/second', 'cmhandles_created_per_second', 50, testResults, scenarioConfig),
+ makeSummaryCsvLine('2', 'De-registration of CM-handles', 'CM-handles/second', 'cmhandles_deleted_per_second', 100, testResults, scenarioConfig),
+ makeSummaryCsvLine('3a', 'CM-handle ID search with No filter', 'milliseconds', 'id_search_nofilter_duration', 500, testResults, scenarioConfig),
+ makeSummaryCsvLine('3b', 'CM-handle ID search with Module filter', 'milliseconds', 'id_search_module_duration', 500, testResults, scenarioConfig),
+ makeSummaryCsvLine('3c', 'CM-handle ID search with Property filter', 'milliseconds', 'id_search_property_duration', 1200, testResults, scenarioConfig),
+ makeSummaryCsvLine('3d', 'CM-handle ID search with Cps Path filter', 'milliseconds', 'id_search_cpspath_duration', 1200, testResults, scenarioConfig),
+ makeSummaryCsvLine('3e', 'CM-handle ID search with Trust Level filter', 'milliseconds', 'id_search_trustlevel_duration', 4200, testResults, scenarioConfig),
+ makeSummaryCsvLine('4a', 'CM-handle search with No filter', 'milliseconds', 'cm_search_nofilter_duration', 8000, testResults, scenarioConfig),
+ makeSummaryCsvLine('4b', 'CM-handle search with Module filter', 'milliseconds', 'cm_search_module_duration', 10000, testResults, scenarioConfig),
+ makeSummaryCsvLine('4c', 'CM-handle search with Property filter', 'milliseconds', 'cm_search_property_duration', 10000, testResults, scenarioConfig),
+ makeSummaryCsvLine('4d', 'CM-handle search with Cps Path filter', 'milliseconds', 'cm_search_cpspath_duration', 10000, testResults, scenarioConfig),
+ makeSummaryCsvLine('4e', 'CM-handle search with Trust Level filter', 'milliseconds', 'cm_search_trustlevel_duration', 13000, testResults, scenarioConfig),
makeSummaryCsvLine('5a', 'NCMP overhead for Synchronous single CM-handle pass-through read', 'milliseconds', 'ncmp_overhead_passthrough_read', 30, testResults, scenarioConfig),
makeSummaryCsvLine('5b', 'NCMP overhead for Synchronous single CM-handle pass-through read with alternate id', 'milliseconds', 'ncmp_overhead_passthrough_read_alt_id', 60, testResults, scenarioConfig),
makeSummaryCsvLine('6a', 'NCMP overhead for Synchronous single CM-handle pass-through write', 'milliseconds', 'ncmp_overhead_passthrough_write', 30, testResults, scenarioConfig),
diff --git a/policy-executor-stub/pom.xml b/policy-executor-stub/pom.xml
index 073b5d1dc6..bdd21e191f 100644
--- a/policy-executor-stub/pom.xml
+++ b/policy-executor-stub/pom.xml
@@ -6,7 +6,7 @@
<parent>
<groupId>org.onap.cps</groupId>
<artifactId>cps-parent</artifactId>
- <version>3.5.6-SNAPSHOT</version>
+ <version>3.6.0-SNAPSHOT</version>
<relativePath>../cps-parent/pom.xml</relativePath>
</parent>
diff --git a/pom.xml b/pom.xml
index 9dfeebfc15..411d938a2d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -27,7 +27,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>org.onap.cps</groupId>
<artifactId>cps-aggregator</artifactId>
- <version>3.5.6-SNAPSHOT</version>
+ <version>3.6.0-SNAPSHOT</version>
<packaging>pom</packaging>
<name>cps</name>
diff --git a/spotbugs/pom.xml b/spotbugs/pom.xml
index 56a819a796..8c685e95bc 100644
--- a/spotbugs/pom.xml
+++ b/spotbugs/pom.xml
@@ -25,7 +25,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>org.onap.cps</groupId>
<artifactId>spotbugs</artifactId>
- <version>3.5.6-SNAPSHOT</version>
+ <version>3.6.0-SNAPSHOT</version>
<properties>
<onap.nexus.url>https://nexus.onap.org</onap.nexus.url>
diff --git a/version.properties b/version.properties
index ea83a94fe9..81372a7e58 100644
--- a/version.properties
+++ b/version.properties
@@ -21,8 +21,8 @@
# because they are used in Jenkins, whose plug-in doesn't support this
major=3
-minor=5
-patch=6
+minor=6
+patch=0
base_version=${major}.${minor}.${patch}