From 0ed77bfc78fbb1f33fe6708234759dab2413e0f7 Mon Sep 17 00:00:00 2001 From: danielhanrahan Date: Mon, 10 Jul 2023 10:47:36 +0100 Subject: [PATCH] NCMP fails to start if /subscription-registry already exists cpsDataService only throws AlreadyDefinedException, not AlreadyDefinedExceptionBatch. This causes NcmpStartupException to be thrown during startup, if /subscription-registry exists. Issue-ID: CPS-1783 Signed-off-by: danielhanrahan Change-Id: I5667d891f855ef47ca2475891f9216be102932ed --- .../src/main/java/org/onap/cps/ncmp/init/SubscriptionModelLoader.java | 3 ++- .../groovy/org/onap/cps/ncmp/init/SubscriptionModelLoaderSpec.groovy | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/init/SubscriptionModelLoader.java b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/init/SubscriptionModelLoader.java index af9ee721c..1be5b2cc6 100644 --- a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/init/SubscriptionModelLoader.java +++ b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/init/SubscriptionModelLoader.java @@ -31,6 +31,7 @@ import org.onap.cps.api.CpsDataService; import org.onap.cps.api.CpsModuleService; import org.onap.cps.ncmp.api.impl.exception.NcmpStartUpException; import org.onap.cps.spi.exceptions.AlreadyDefinedException; +import org.onap.cps.spi.exceptions.AlreadyDefinedExceptionBatch; import org.onap.cps.spi.model.Dataspace; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.SpringApplication; @@ -157,7 +158,7 @@ public class SubscriptionModelLoader implements ModelLoader { final String nodeData = "{\"" + dataNodeName + "\":{}}"; try { cpsDataService.saveData(dataspaceName, anchorName, nodeData, OffsetDateTime.now()); - } catch (final AlreadyDefinedException exception) { + } catch (final AlreadyDefinedExceptionBatch exception) { log.info("Creating new data node '{}' failed as data node already exists", dataNodeName); } catch (final Exception exception) { log.debug("Creating data node for subscription model failed: {}", exception.getMessage()); diff --git a/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/init/SubscriptionModelLoaderSpec.groovy b/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/init/SubscriptionModelLoaderSpec.groovy index b4e7813db..128895bae 100644 --- a/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/init/SubscriptionModelLoaderSpec.groovy +++ b/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/init/SubscriptionModelLoaderSpec.groovy @@ -28,6 +28,7 @@ import org.onap.cps.api.CpsDataService import org.onap.cps.api.CpsModuleService import org.onap.cps.ncmp.api.impl.exception.NcmpStartUpException import org.onap.cps.spi.exceptions.AlreadyDefinedException +import org.onap.cps.spi.exceptions.AlreadyDefinedExceptionBatch import org.onap.cps.spi.exceptions.DataValidationException import org.onap.cps.spi.exceptions.SchemaSetNotFoundException import org.onap.cps.spi.model.Dataspace @@ -198,7 +199,7 @@ class SubscriptionModelLoaderSpec extends Specification { def 'Create top level node fails due to an AlreadyDefined exception'() { given: 'the saving of the node data will throw an Already Defined exception' mockCpsDataService.saveData(*_) >> - { throw AlreadyDefinedException.forDataNode('/xpath', "sampleContextName", null) } + { throw new AlreadyDefinedExceptionBatch(['/xpath']) } when: 'the method to onboard model is called' objectUnderTest.onboardSubscriptionModel(yangResourceToContentMap) then: 'no exception thrown' -- 2.16.6