Deprecate use of basic subscription model 29/136829/11
authoremaclee <lee.anjella.macabuhay@est.tech>
Tue, 12 Dec 2023 12:00:23 +0000 (12:00 +0000)
committerPriyank Maheshwari <priyank.maheshwari@est.tech>
Tue, 19 Dec 2023 15:28:38 +0000 (15:28 +0000)
- Checked all subscription related files and Removed use of basic subscription model as much as possible
  that will not break the entire code,
  other files still has references on it but will and shall be removed on
  further implementation of the subscription epic story
- Created new YangModel Event (YangModelCmDataSubscriptionEvent.java)for the new model as changing the old one affects many files

Issue-ID: CPS-1973
Signed-off-by: emaclee <lee.anjella.macabuhay@est.tech>
Change-Id: I7d3866780261110d3bb71c4807f39edc2703d0dc

cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/yangmodels/YangModelCmDataSubscriptionEvent.java [new file with mode: 0644]
cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/init/AbstractModelLoaderSpec.groovy

diff --git a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/yangmodels/YangModelCmDataSubscriptionEvent.java b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/yangmodels/YangModelCmDataSubscriptionEvent.java
new file mode 100644 (file)
index 0000000..e527d99
--- /dev/null
@@ -0,0 +1,76 @@
+/*
+ *  ============LICENSE_START=======================================================
+ *  Copyright (C) 2023 Nordix Foundation
+ *  ================================================================================
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *
+ *  SPDX-License-Identifier: Apache-2.0
+ *  ============LICENSE_END=========================================================
+ */
+
+
+package org.onap.cps.ncmp.api.impl.yangmodels;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonInclude.Include;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+
+/**
+ * Subscription event model to persist data into DB.
+ * Yang model subscription event
+ */
+@Getter
+@Setter
+@NoArgsConstructor
+@JsonInclude(Include.NON_NULL)
+@EqualsAndHashCode(onlyExplicitlyIncluded = true)
+public class YangModelCmDataSubscriptionEvent {
+
+    @EqualsAndHashCode.Include
+    @JsonProperty("name")
+    private String name;
+
+    private List<CmHandle> cmHandles;
+
+    @AllArgsConstructor
+    @Data
+    @JsonInclude(JsonInclude.Include.NON_NULL)
+    public static class CmHandle {
+
+        @JsonProperty()
+        private final String id;
+
+        private final List<Filter> filters;
+    }
+
+    @AllArgsConstructor
+    @Data
+    @JsonInclude(JsonInclude.Include.NON_NULL)
+    public static class Filter {
+
+        @JsonProperty()
+        private final String id;
+
+        @JsonProperty()
+        private final List<String> subscribers;
+    }
+}
+
+
index 3b1c25b..f9ecd63 100644 (file)
@@ -51,7 +51,7 @@ class AbstractModelLoaderSpec extends Specification {
     def loggingListAppender
 
     void setup() {
-        yangResourceToContentMap = objectUnderTest.createYangResourcesToContentMap('subscription.yang')
+        yangResourceToContentMap = objectUnderTest.createYangResourcesToContentMap('cm-data-subscriptions@2023-11-13.yang')
         logger.setLevel(Level.DEBUG)
         loggingListAppender = new ListAppender()
         logger.addAppender(loggingListAppender)
@@ -91,7 +91,7 @@ class AbstractModelLoaderSpec extends Specification {
 
     def 'Create schema set.'() {
         when: 'creating a schema set'
-            objectUnderTest.createSchemaSet('some dataspace','new name','subscription.yang')
+            objectUnderTest.createSchemaSet('some dataspace','new name','cm-data-subscriptions@2023-11-13.yang')
         then: 'the operation is delegated to the admin service'
             1 * mockCpsModuleService.createSchemaSet('some dataspace','new name',_)
     }
@@ -100,7 +100,7 @@ class AbstractModelLoaderSpec extends Specification {
         given: 'the module service throws an already defined exception'
             mockCpsModuleService.createSchemaSet(*_) >>  { throw AlreadyDefinedException.forSchemaSet('name','context',null) }
         when: 'attempt to create a schema set'
-            objectUnderTest.createSchemaSet('some dataspace','new name','subscription.yang')
+            objectUnderTest.createSchemaSet('some dataspace','new name','cm-data-subscriptions@2023-11-13.yang')
         then: 'the exception is ignored i.e. no exception thrown up'
             noExceptionThrown()
         and: 'the exception message is logged'