Merge "Introducing DELETING and DELETED Cmhandle State"
authorJoseph Keenan <joseph.keenan@est.tech>
Mon, 27 Jun 2022 10:08:47 +0000 (10:08 +0000)
committerGerrit Code Review <gerrit@onap.org>
Mon, 27 Jun 2022 10:08:47 +0000 (10:08 +0000)
14 files changed:
cps-ncmp-events/src/main/resources/schemas/ncmp-event-schema-v1.json
cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/NetworkCmProxyDataServiceImpl.java
cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/NetworkCmProxyDataServicePropertyHandler.java
cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/event/NcmpEventsCreator.java
cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/event/NcmpEventsService.java
cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/inventory/sync/ModuleSyncWatchdog.java
cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/NetworkCmProxyDataServiceImplRegistrationSpec.groovy
cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/NetworkCmProxyDataServiceImplSpec.groovy
cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/NetworkCmProxyDataServicePropertyHandlerSpec.groovy
cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/event/NcmpEventsCreatorSpec.groovy
cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/event/NcmpEventsPublisherSpec.groovy
cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/event/NcmpEventsServiceSpec.groovy
cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/inventory/sync/ModuleSyncSpec.groovy
cps-ncmp-service/src/test/resources/expectedNcmpEvent.json

index 235a6aa..8685034 100644 (file)
           "description": "cmHandle id",
           "type": "string"
         },
-        "operation": {
-          "description": "The name of the Operation that triggered this event.",
-          "type": "string",
-          "enum": ["CREATE", "UPDATE", "DELETE"]
-        },
         "cmhandle-state": {
           "description": "State of cmHandle.",
           "type": "string",
index 2c7d92e..f8cab4f 100755 (executable)
@@ -31,7 +31,6 @@ import static org.onap.cps.ncmp.api.impl.constants.DmiRegistryConstants.NO_TIMES
 import static org.onap.cps.ncmp.api.impl.operations.DmiRequestBody.OperationEnum;
 import static org.onap.cps.spi.CascadeDeleteAllowed.CASCADE_DELETE_ALLOWED;
 import static org.onap.cps.utils.CmHandleQueryRestParametersValidator.validateCmHandleQueryParameters;
-import static org.onap.ncmp.cmhandle.lcm.event.Event.Operation.DELETE;
 
 import java.util.ArrayList;
 import java.util.Collection;
@@ -47,7 +46,6 @@ import org.onap.cps.api.CpsDataService;
 import org.onap.cps.api.CpsModuleService;
 import org.onap.cps.ncmp.api.NetworkCmProxyCmHandlerQueryService;
 import org.onap.cps.ncmp.api.NetworkCmProxyDataService;
-import org.onap.cps.ncmp.api.impl.event.NcmpEventsService;
 import org.onap.cps.ncmp.api.impl.operations.DmiDataOperations;
 import org.onap.cps.ncmp.api.impl.operations.DmiOperations;
 import org.onap.cps.ncmp.api.impl.utils.YangDataConverter;
@@ -95,8 +93,6 @@ public class NetworkCmProxyDataServiceImpl implements NetworkCmProxyDataService
 
     private final NetworkCmProxyCmHandlerQueryService networkCmProxyCmHandlerQueryService;
 
-    private final NcmpEventsService ncmpEventsService;
-
     @Override
     public DmiPluginRegistrationResponse updateDmiRegistrationAndSyncModule(
             final DmiPluginRegistration dmiPluginRegistration) {
@@ -265,8 +261,6 @@ public class NetworkCmProxyDataServiceImpl implements NetworkCmProxyDataService
                 cpsDataService.deleteListOrListElement(NCMP_DATASPACE_NAME, NCMP_DMI_REGISTRY_ANCHOR,
                         "/dmi-registry/cm-handles[@id='" + cmHandle + "']", NO_TIMESTAMP);
                 cmHandleRegistrationResponses.add(CmHandleRegistrationResponse.createSuccessResponse(cmHandle));
-                log.debug("Publishing LCM Delete Event for cmHandleId : {}", cmHandle);
-                ncmpEventsService.publishNcmpEvent(cmHandle, DELETE);
             } catch (final DataNodeNotFoundException dataNodeNotFoundException) {
                 log.error("Unable to find dataNode for cmHandleId : {} , caused by : {}",
                         cmHandle, dataNodeNotFoundException.getMessage());
index 1eef4c2..aae2f20 100644 (file)
@@ -27,7 +27,6 @@ import static org.onap.cps.ncmp.api.impl.constants.DmiRegistryConstants.NCMP_DAT
 import static org.onap.cps.ncmp.api.impl.constants.DmiRegistryConstants.NCMP_DMI_REGISTRY_ANCHOR;
 import static org.onap.cps.ncmp.api.impl.constants.DmiRegistryConstants.NCMP_DMI_REGISTRY_PARENT;
 import static org.onap.cps.ncmp.api.impl.constants.DmiRegistryConstants.NO_TIMESTAMP;
-import static org.onap.ncmp.cmhandle.lcm.event.Event.Operation.UPDATE;
 
 import com.google.common.collect.ImmutableMap;
 import java.util.ArrayList;
@@ -41,7 +40,6 @@ import java.util.regex.Pattern;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.onap.cps.api.CpsDataService;
-import org.onap.cps.ncmp.api.impl.event.NcmpEventsService;
 import org.onap.cps.ncmp.api.models.CmHandleRegistrationResponse;
 import org.onap.cps.ncmp.api.models.CmHandleRegistrationResponse.RegistrationError;
 import org.onap.cps.ncmp.api.models.NcmpServiceCmHandle;
@@ -64,8 +62,6 @@ public class NetworkCmProxyDataServicePropertyHandler {
 
     private final CpsDataService cpsDataService;
 
-    private final NcmpEventsService ncmpEventsService;
-
     /**
      * Iterates over incoming ncmpServiceCmHandles and update the dataNodes based on the updated attributes.
      * The attributes which are not passed will remain as is.
@@ -109,7 +105,6 @@ public class NetworkCmProxyDataServicePropertyHandler {
     private void processUpdates(final DataNode existingCmHandleDataNode, final NcmpServiceCmHandle incomingCmHandle) {
         if (!incomingCmHandle.getPublicProperties().isEmpty()) {
             updateProperties(existingCmHandleDataNode, PUBLIC_PROPERTY, incomingCmHandle.getPublicProperties());
-            publishLcmEventOnPublicPropertiesUpdate(incomingCmHandle.getCmHandleId());
         }
         if (!incomingCmHandle.getDmiProperties().isEmpty()) {
             updateProperties(existingCmHandleDataNode, DMI_PROPERTY, incomingCmHandle.getDmiProperties());
@@ -185,11 +180,6 @@ public class NetworkCmProxyDataServicePropertyHandler {
         return new DataNodeBuilder().withXpath(xpath).withLeaves(ImmutableMap.copyOf(updatedLeaves)).build();
     }
 
-    private void publishLcmEventOnPublicPropertiesUpdate(final String cmHandleId) {
-        log.debug("Publishing LCM Update event for cmHandleId : {}", cmHandleId);
-        ncmpEventsService.publishNcmpEvent(cmHandleId, UPDATE);
-    }
-
     enum PropertyType {
         DMI_PROPERTY("additional-properties"), PUBLIC_PROPERTY("public-properties");
 
index 3fca1ba..df41eba 100644 (file)
@@ -20,8 +20,6 @@
 
 package org.onap.cps.ncmp.api.impl.event;
 
-import static org.onap.ncmp.cmhandle.lcm.event.Event.Operation.DELETE;
-
 import java.time.ZonedDateTime;
 import java.time.format.DateTimeFormatter;
 import java.util.List;
@@ -29,7 +27,6 @@ import java.util.UUID;
 import lombok.extern.slf4j.Slf4j;
 import org.onap.cps.ncmp.api.models.NcmpServiceCmHandle;
 import org.onap.ncmp.cmhandle.lcm.event.Event;
-import org.onap.ncmp.cmhandle.lcm.event.Event.Operation;
 import org.onap.ncmp.cmhandle.lcm.event.NcmpEvent;
 import org.springframework.stereotype.Component;
 
@@ -46,33 +43,25 @@ public class NcmpEventsCreator {
      * Populate NcmpEvent.
      *
      * @param cmHandleId          Cm Handle Identifier
-     * @param operation           Relevant Operation
      * @param ncmpServiceCmHandle Ncmp CmHandle Data
      * @return Populated NcmpEvent
      */
-    public NcmpEvent populateNcmpEvent(final String cmHandleId, final Operation operation,
-            final NcmpServiceCmHandle ncmpServiceCmHandle) {
-        return createNcmpEvent(cmHandleId, operation, ncmpServiceCmHandle);
+    public NcmpEvent populateNcmpEvent(final String cmHandleId, final NcmpServiceCmHandle ncmpServiceCmHandle) {
+        return createNcmpEvent(cmHandleId, ncmpServiceCmHandle);
     }
 
-    private NcmpEvent createNcmpEvent(final String cmHandleId, final Operation operation,
-            final NcmpServiceCmHandle ncmpServiceCmHandle) {
+    private NcmpEvent createNcmpEvent(final String cmHandleId, final NcmpServiceCmHandle ncmpServiceCmHandle) {
         final NcmpEvent ncmpEvent = ncmpEventHeader(cmHandleId);
-        ncmpEvent.setEvent(ncmpEventPayload(cmHandleId, operation, ncmpServiceCmHandle));
+        ncmpEvent.setEvent(ncmpEventPayload(cmHandleId, ncmpServiceCmHandle));
         return ncmpEvent;
     }
 
-    private Event ncmpEventPayload(final String eventCorrelationId, final Operation operation,
-            final NcmpServiceCmHandle ncmpServiceCmHandle) {
+    private Event ncmpEventPayload(final String eventCorrelationId, final NcmpServiceCmHandle ncmpServiceCmHandle) {
         final Event event = new Event();
-        event.setOperation(operation);
         event.setCmHandleId(eventCorrelationId);
-
-        if (!DELETE.equals(operation)) {
-            event.setCmhandleState(Event.CmhandleState.fromValue(
-                    ncmpServiceCmHandle.getCompositeState().getCmHandleState().toString()));
-            event.setCmhandleProperties(List.of(ncmpServiceCmHandle.getPublicProperties()));
-        }
+        event.setCmhandleState(
+                Event.CmhandleState.fromValue(ncmpServiceCmHandle.getCompositeState().getCmHandleState().toString()));
+        event.setCmhandleProperties(List.of(ncmpServiceCmHandle.getPublicProperties()));
         return event;
     }
 
index 3cd4068..6804ac0 100644 (file)
@@ -25,7 +25,6 @@ import lombok.extern.slf4j.Slf4j;
 import org.onap.cps.ncmp.api.impl.utils.YangDataConverter;
 import org.onap.cps.ncmp.api.inventory.InventoryPersistence;
 import org.onap.cps.ncmp.api.models.NcmpServiceCmHandle;
-import org.onap.ncmp.cmhandle.lcm.event.Event.Operation;
 import org.onap.ncmp.cmhandle.lcm.event.NcmpEvent;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
@@ -52,16 +51,12 @@ public class NcmpEventsService {
      * Publish the NcmpEvent to the public topic.
      *
      * @param cmHandleId Cm Handle Id
-     * @param operation  Relevant operation(CREATE,UPDATE or DELETE)
      */
-    public void publishNcmpEvent(final String cmHandleId, final Operation operation) {
+    public void publishNcmpEvent(final String cmHandleId) {
 
-        NcmpServiceCmHandle ncmpServiceCmHandle = new NcmpServiceCmHandle();
-        if (Operation.DELETE != operation) {
-            ncmpServiceCmHandle = YangDataConverter.convertYangModelCmHandleToNcmpServiceCmHandle(
-                    inventoryPersistence.getYangModelCmHandle(cmHandleId));
-        }
-        final NcmpEvent ncmpEvent = ncmpEventsCreator.populateNcmpEvent(cmHandleId, operation, ncmpServiceCmHandle);
+        final NcmpServiceCmHandle ncmpServiceCmHandle = YangDataConverter.convertYangModelCmHandleToNcmpServiceCmHandle(
+                inventoryPersistence.getYangModelCmHandle(cmHandleId));
+        final NcmpEvent ncmpEvent = ncmpEventsCreator.populateNcmpEvent(cmHandleId, ncmpServiceCmHandle);
         ncmpEventsPublisher.publishEvent(topicName, cmHandleId, ncmpEvent);
 
     }
index 9cfa0a0..c920649 100644 (file)
 
 package org.onap.cps.ncmp.api.inventory.sync;
 
-import static org.onap.ncmp.cmhandle.lcm.event.Event.Operation.CREATE;
-
 import java.util.List;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
-import org.onap.cps.ncmp.api.impl.event.NcmpEventsService;
 import org.onap.cps.ncmp.api.impl.yangmodels.YangModelCmHandle;
 import org.onap.cps.ncmp.api.inventory.CmHandleState;
 import org.onap.cps.ncmp.api.inventory.CompositeState;
@@ -47,11 +44,8 @@ public class ModuleSyncWatchdog {
 
     private final ModuleSyncService moduleSyncService;
 
-    private final NcmpEventsService ncmpEventsService;
-
     /**
      * Execute Cm Handle poll which changes the cm handle state from 'ADVISED' to 'READY'.
-     * Also publish the LCM Create Event when cm handle state is moved to 'READY'.
      */
     @Scheduled(fixedDelayString = "${timers.advised-modules-sync.sleep-time-ms:30000}")
     public void executeAdvisedCmHandlePoll() {
@@ -72,10 +66,6 @@ public class ModuleSyncWatchdog {
             inventoryPersistence.saveCmHandleState(cmHandleId, compositeState);
             log.info("{} is now in {} state", cmHandleId,
                 advisedCmHandle.getCompositeState().getCmHandleState());
-            if (compositeState.getCmHandleState() == CmHandleState.READY) {
-                log.debug("Publishing LCM Create Event for cmHandleId : {}", cmHandleId);
-                ncmpEventsService.publishNcmpEvent(cmHandleId, CREATE);
-            }
             advisedCmHandle = syncUtils.getAnAdvisedCmHandle();
         }
         log.debug("No Cm-Handles currently found in an ADVISED state");
index 8a45e66..5357c42 100644 (file)
@@ -23,8 +23,6 @@ package org.onap.cps.ncmp.api.impl
 
 import com.fasterxml.jackson.databind.ObjectMapper
 import org.onap.cps.ncmp.api.NetworkCmProxyCmHandlerQueryService
-import org.onap.cps.ncmp.api.impl.event.NcmpEventsService
-import org.onap.cps.ncmp.api.impl.yangmodels.YangModelCmHandle
 import org.onap.cps.api.CpsAdminService
 import org.onap.cps.api.CpsDataService
 import org.onap.cps.api.CpsModuleService
@@ -67,8 +65,6 @@ class NetworkCmProxyDataServiceImplRegistrationSpec extends Specification {
     def mockInventoryPersistence = Mock(InventoryPersistence)
     def mockModuleSyncService = Mock(ModuleSyncService)
     def stubbedNetworkCmProxyCmHandlerQueryService = Stub(NetworkCmProxyCmHandlerQueryService)
-    def mockNcmpEventsService = Mock(NcmpEventsService)
-
     def noTimestamp = null
     def objectUnderTest = getObjectUnderTest()
 
@@ -352,6 +348,6 @@ class NetworkCmProxyDataServiceImplRegistrationSpec extends Specification {
     def getObjectUnderTest() {
         return Spy(new NetworkCmProxyDataServiceImpl(mockCpsDataService, spiedJsonObjectMapper, mockDmiDataOperations,
             mockCpsModuleService, mockCpsAdminService, mockNetworkCmProxyDataServicePropertyHandler, mockInventoryPersistence,
-            mockModuleSyncService, stubbedNetworkCmProxyCmHandlerQueryService, mockNcmpEventsService))
+            mockModuleSyncService, stubbedNetworkCmProxyCmHandlerQueryService))
     }
 }
index 783fabb..d58fe6a 100644 (file)
@@ -23,7 +23,6 @@
 package org.onap.cps.ncmp.api.impl
 
 import org.onap.cps.ncmp.api.NetworkCmProxyCmHandlerQueryService
-import org.onap.cps.ncmp.api.impl.event.NcmpEventsService
 import org.onap.cps.ncmp.api.impl.yangmodels.YangModelCmHandle
 import org.onap.cps.ncmp.api.inventory.CmHandleState
 import org.onap.cps.ncmp.api.inventory.CompositeState
@@ -67,7 +66,6 @@ class NetworkCmProxyDataServiceImplSpec extends Specification {
     def mockModuleSyncService = Mock(ModuleSyncService)
     def mockDmiPluginRegistration = Mock(DmiPluginRegistration)
     def mockCpsCmHandlerQueryService = Mock(NetworkCmProxyCmHandlerQueryService)
-    def mockNcmpEventsService = Mock(NcmpEventsService)
 
     def NO_TOPIC = null
     def NO_REQUEST_ID = null
@@ -78,7 +76,7 @@ class NetworkCmProxyDataServiceImplSpec extends Specification {
 
     def objectUnderTest = new NetworkCmProxyDataServiceImpl(mockCpsDataService, spiedJsonObjectMapper, mockDmiDataOperations,
         mockCpsModuleService, mockCpsAdminService, nullNetworkCmProxyDataServicePropertyHandler, mockInventoryPersistence,
-        mockModuleSyncService, mockCpsCmHandlerQueryService, mockNcmpEventsService)
+        mockModuleSyncService, mockCpsCmHandlerQueryService)
 
     def cmHandleXPath = "/dmi-registry/cm-handles[@id='testCmHandle']"
 
index 0cf04a9..3efc9c4 100644 (file)
 
 package org.onap.cps.ncmp.api.impl
 
-import org.onap.cps.ncmp.api.impl.event.NcmpEventsService
 import org.onap.cps.spi.exceptions.DataValidationException
 
 import static org.onap.cps.ncmp.api.models.CmHandleRegistrationResponse.RegistrationError.CM_HANDLE_DOES_NOT_EXIST
 import static org.onap.cps.ncmp.api.models.CmHandleRegistrationResponse.RegistrationError.CM_HANDLE_INVALID_ID
 import static org.onap.cps.ncmp.api.models.CmHandleRegistrationResponse.RegistrationError.UNKNOWN_ERROR
 import static org.onap.cps.ncmp.api.models.CmHandleRegistrationResponse.Status
-import static org.onap.ncmp.cmhandle.lcm.event.Event.Operation.UPDATE
 
 import org.onap.cps.api.CpsDataService
 import org.onap.cps.ncmp.api.models.NcmpServiceCmHandle
@@ -41,9 +39,8 @@ import spock.lang.Specification
 class NetworkCmProxyDataServicePropertyHandlerSpec extends Specification {
 
     def mockCpsDataService = Mock(CpsDataService)
-    def mockNcmpEventsService = Mock(NcmpEventsService)
 
-    def objectUnderTest = new NetworkCmProxyDataServicePropertyHandler(mockCpsDataService, mockNcmpEventsService)
+    def objectUnderTest = new NetworkCmProxyDataServicePropertyHandler(mockCpsDataService)
     def dataspaceName = 'NCMP-Admin'
     def anchorName = 'ncmp-dmi-registry'
     def static cmHandleId = 'myHandle1'
@@ -70,8 +67,6 @@ class NetworkCmProxyDataServicePropertyHandlerSpec extends Specification {
                     assert args[3].leaves.containsAll(convertToProperties(expectedPropertiesAfterUpdate))
                 }
             }
-        and: 'ncmp event is published'
-            1 * mockNcmpEventsService.publishNcmpEvent(cmHandleId, UPDATE)
         where: 'following public properties updates are made'
             scenario                          | updatedPublicProperties      || expectedPropertiesAfterUpdate
             'property added'                  | ['newPubProp1': 'pub-val']   || [['publicProp3': 'publicValue3'], ['publicProp4': 'publicValue4'], ['newPubProp1': 'pub-val']]
@@ -94,8 +89,6 @@ class NetworkCmProxyDataServicePropertyHandlerSpec extends Specification {
                     assert args[3].leaves.containsAll(convertToProperties(expectedPropertiesAfterUpdate))
                 }
             }
-        and: 'ncmp event is not published on dmi properties update'
-            0 * mockNcmpEventsService.publishNcmpEvent(_, _)
         where: 'following DMI properties updates are made'
             scenario                          | updatedDmiProperties                || expectedPropertiesAfterUpdate                                                                                           | expectedCallsToReplaceMethod
             'property added'                  | ['newAdditionalProp1': 'add-value'] || [['additionalProp1': 'additionalValue1'], ['additionalProp2': 'additionalValue2'], ['newAdditionalProp1': 'add-value']] | 1
@@ -121,8 +114,6 @@ class NetworkCmProxyDataServicePropertyHandlerSpec extends Specification {
                     assert arg[2].contains("@name='publicProp")
                 }
             }
-        and: 'ncmp event is published with updated public properties'
-            1 * mockNcmpEventsService.publishNcmpEvent(cmHandleId, UPDATE)
         where: 'following public properties updates are made'
             scenario                              | originalPropertyDataNodes || expectedCallsToDeleteDataNode
             '2 original properties, both removed' | propertyDataNodes         || 2
@@ -145,8 +136,6 @@ class NetworkCmProxyDataServicePropertyHandlerSpec extends Specification {
                 assert it.registrationError == expectedError
                 assert it.errorText == expectedErrorText
             }
-        and: 'ncmp event is not published'
-            0 * mockNcmpEventsService.publishNcmpEvent(_, _)
         where:
             scenario                   | cmHandleId               | exception                                                                                           || expectedError            | expectedErrorText
             'Cm Handle does not exist' | 'cmHandleId'             | new DataNodeNotFoundException('NCMP-Admin', 'ncmp-dmi-registry')                                    || CM_HANDLE_DOES_NOT_EXIST | 'cm-handle does not exist'
@@ -183,8 +172,6 @@ class NetworkCmProxyDataServicePropertyHandlerSpec extends Specification {
             }
         then: 'the replace list method is called twice'
             2 * mockCpsDataService.replaceListContent(dataspaceName, anchorName, cmHandleXpath, _, noTimeStamp)
-        and: 'the ncmp event is published'
-            2 * mockNcmpEventsService.publishNcmpEvent(cmHandleId, UPDATE)
     }
 
     def convertToProperties(expectedPropertiesAfterUpdateAsMap) {
index ae38714..24362ee 100644 (file)
@@ -25,10 +25,6 @@ import org.onap.cps.ncmp.api.inventory.CompositeStateBuilder
 import org.onap.cps.ncmp.api.models.NcmpServiceCmHandle
 import spock.lang.Specification
 
-import static org.onap.ncmp.cmhandle.lcm.event.Event.Operation.CREATE
-import static org.onap.ncmp.cmhandle.lcm.event.Event.Operation.DELETE
-import static org.onap.ncmp.cmhandle.lcm.event.Event.Operation.UPDATE
-
 class NcmpEventsCreatorSpec extends Specification {
 
     def objectUnderTest = new NcmpEventsCreator()
@@ -39,19 +35,12 @@ class NcmpEventsCreatorSpec extends Specification {
             def ncmpServiceCmHandle = new NcmpServiceCmHandle(cmHandleId: cmHandleId, compositeState: new CompositeStateBuilder().withCmHandleState(CmHandleState.READY).build(),
                 publicProperties: ['publicProperty1': 'value1', 'publicProperty2': 'value2'])
         when: 'the event is populated'
-            def result = objectUnderTest.populateNcmpEvent(cmHandleId, operation, ncmpServiceCmHandle)
+            def result = objectUnderTest.populateNcmpEvent(cmHandleId, ncmpServiceCmHandle)
         then: 'event header is mapped correctly'
             assert result.eventSource == 'org.onap.ncmp'
             assert result.eventCorrelationId == cmHandleId
         and: 'event payload is mapped correctly'
-            assert result.event.operation == operation
-            assert (result.event.cmhandleProperties != null) ? result.event.cmhandleProperties.size() : 0 == cmHandlePropertiesListSize
-            assert (result.event.cmhandleProperties != null) ? result.event.cmhandleProperties[0] : null == cmHandleProperties
-        where: 'the following operations are used'
-            operation | cmHandlePropertiesListSize | cmHandleProperties
-            CREATE    | 1                          | ['publicProperty1': 'value1', 'publicProperty2': 'value2']
-            UPDATE    | 1                          | ['publicProperty1': 'value1', 'publicProperty2': 'value2']
-            DELETE    | 0                          | null
-
+            assert result.event.cmhandleProperties.size() == 1
+            assert result.event.cmhandleProperties[0] == ['publicProperty1': 'value1', 'publicProperty2': 'value2']
     }
 }
index 774a465..fa486d0 100644 (file)
@@ -60,7 +60,7 @@ class NcmpEventsPublisherSpec extends MessagingSpec {
                 eventSource: URI.create('org.onap.ncmp'),
                 eventTime: '2022-12-31T20:30:40.000+0000',
                 eventType: 'org.onap.ncmp.cmhandle.lcm.event',
-                event: new Event(cmHandleId: 'cmhandle-test', cmhandleState: 'READY', operation: 'CREATE', cmhandleProperties: [['publicProperty1': 'value1'], ['publicProperty2': 'value2']]))
+                event: new Event(cmHandleId: 'cmhandle-test', cmhandleState: 'READY', cmhandleProperties: [['publicProperty1': 'value1'], ['publicProperty2': 'value2']]))
         and: 'we have an expected NcmpEvent'
             def expectedJsonString = TestUtils.getResourceFileContent('expectedNcmpEvent.json')
             def expectedNcmpEvent = jsonObjectMapper.convertJsonString(expectedJsonString, NcmpEvent.class)
index 9774235..e265fef 100644 (file)
@@ -26,10 +26,6 @@ import org.onap.cps.ncmp.api.inventory.InventoryPersistence
 import org.onap.ncmp.cmhandle.lcm.event.NcmpEvent
 import spock.lang.Specification
 
-import static org.onap.ncmp.cmhandle.lcm.event.Event.Operation.CREATE
-import static org.onap.ncmp.cmhandle.lcm.event.Event.Operation.DELETE
-import static org.onap.ncmp.cmhandle.lcm.event.Event.Operation.UPDATE
-
 class NcmpEventsServiceSpec extends Specification {
 
     def mockInventoryPersistence = Mock(InventoryPersistence)
@@ -40,23 +36,21 @@ class NcmpEventsServiceSpec extends Specification {
 
     def 'Create and Publish event for #operation'() {
         given: 'a cm handle id and operation and responses are mocked'
-            mockResponses('test-cm-handle-id', operation, 'test-topic')
+            mockResponses('test-cm-handle-id', 'test-topic')
         when: 'service is called to publish ncmp event'
-            objectUnderTest.publishNcmpEvent('test-cm-handle-id', operation)
+            objectUnderTest.publishNcmpEvent('test-cm-handle-id')
         then: 'no exception is thrown'
             noExceptionThrown()
-        where: 'for following operations'
-            operation << [CREATE, UPDATE, DELETE]
     }
 
-    def mockResponses(cmHandleId, operation, topicName) {
+    def mockResponses(cmHandleId, topicName) {
 
         def yangModelCmHandle = new YangModelCmHandle(id: cmHandleId, publicProperties: [new YangModelCmHandle.Property('publicProperty1', 'value1')], dmiProperties: [])
         def ncmpEvent = new NcmpEvent(eventId: UUID.randomUUID().toString(), eventCorrelationId: cmHandleId)
         def ncmpServiceCmhandle = YangDataConverter.convertYangModelCmHandleToNcmpServiceCmHandle(yangModelCmHandle)
 
         mockInventoryPersistence.getYangModelCmHandle(cmHandleId) >> yangModelCmHandle
-        mockNcmpEventsMapper.populateNcmpEvent(cmHandleId, operation, ncmpServiceCmhandle) >> ncmpEvent
+        mockNcmpEventsMapper.populateNcmpEvent(cmHandleId, ncmpServiceCmhandle) >> ncmpEvent
         mockNcmpEventsPublisher.publishEvent(topicName, cmHandleId, ncmpEvent) >> {}
     }
 
index 8752bff..614783e 100644 (file)
@@ -21,9 +21,6 @@
 
 package org.onap.cps.ncmp.api.inventory.sync
 
-import static org.onap.ncmp.cmhandle.lcm.event.Event.Operation.CREATE
-
-import org.onap.cps.ncmp.api.impl.event.NcmpEventsService
 import org.onap.cps.ncmp.api.impl.yangmodels.YangModelCmHandle
 import org.onap.cps.ncmp.api.inventory.CmHandleState
 import org.onap.cps.ncmp.api.inventory.CompositeState
@@ -40,11 +37,9 @@ class ModuleSyncSpec extends Specification {
 
     def mockModuleSyncService = Mock(ModuleSyncService)
 
-    def mockNcmpEventsService = Mock(NcmpEventsService)
-
     def cmHandleState = CmHandleState.ADVISED
 
-    def objectUnderTest = new ModuleSyncWatchdog(mockInventoryPersistence, mockSyncUtils, mockModuleSyncService, mockNcmpEventsService)
+    def objectUnderTest = new ModuleSyncWatchdog(mockInventoryPersistence, mockSyncUtils, mockModuleSyncService)
 
     def 'Schedule a Cm-Handle Sync for ADVISED Cm-Handles'() {
         given: 'cm handles in an advised state'
@@ -72,9 +67,6 @@ class ModuleSyncSpec extends Specification {
             assert compositeState2.getCmHandleState() == CmHandleState.READY
         and: 'the second cm handle state is updated'
             1 * mockInventoryPersistence.saveCmHandleState('some-cm-handle-2', compositeState2)
-        and: 'the ncmp event will be published for both cmHandles'
-            1 * mockNcmpEventsService.publishNcmpEvent('some-cm-handle', CREATE)
-            1 * mockNcmpEventsService.publishNcmpEvent('some-cm-handle-2', CREATE)
     }
 
     def 'Schedule a Cm-Handle Sync for ADVISED Cm-Handle with failure'() {
@@ -95,8 +87,6 @@ class ModuleSyncSpec extends Specification {
             1 * mockSyncUtils.updateLockReasonDetailsAndAttempts(compositeState, LockReasonCategory.LOCKED_MISBEHAVING ,'some exception')
         and: 'the cm handle state is updated'
             1 * mockInventoryPersistence.saveCmHandleState('some-cm-handle', compositeState)
-        and: 'the ncmp event is not published'
-            0 * mockNcmpEventsService.publishNcmpEvent(_, _)
 
     }
 
index 903bc3a..3d457a0 100644 (file)
@@ -7,7 +7,6 @@
   "eventSchema": "org.onap.ncmp.cmhandle.lcm.event:v1",
   "event": {
     "cmHandleId": "cmhandle-test",
-    "operation": "CREATE",
     "cmhandle-state": "READY",
     "cmhandle-properties": [
       {