From 71e676dd1cd2ed4ae348cb686dfd6ed96a4fc5b4 Mon Sep 17 00:00:00 2001 From: bmiklos Date: Thu, 14 Jul 2022 17:15:43 +0200 Subject: Refractor code to use the new LcmEvent schema -Old schema deleted and comments from tests are removed -EventDateTimeFormatter utility added -From LcmEventsCreator.populateLcmEvent the NcmpServiceCmHandle param removed and tests are fixed accordingly -Changes made in test of the LcmEventsCreator for payload testing to make it more clear Issue-ID: CPS-1147 Change-Id: Id87c81f2755a6617a0fc68ba92a3d0e3170fd20f Signed-off-by: bmiklos --- .../lcm/LcmEventsCmHandleStateHandlerImpl.java | 6 +-- .../ncmp/api/impl/event/lcm/LcmEventsCreator.java | 53 ++++++++++------------ .../api/impl/event/lcm/LcmEventsPublisher.java | 18 ++++---- .../ncmp/api/impl/event/lcm/LcmEventsService.java | 12 ++--- .../api/impl/utils/EventDateTimeFormatter.java | 42 +++++++++++++++++ 5 files changed, 83 insertions(+), 48 deletions(-) create mode 100644 cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/utils/EventDateTimeFormatter.java (limited to 'cps-ncmp-service/src/main/java/org/onap') diff --git a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/event/lcm/LcmEventsCmHandleStateHandlerImpl.java b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/event/lcm/LcmEventsCmHandleStateHandlerImpl.java index 111d5dcd5..650251f5a 100644 --- a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/event/lcm/LcmEventsCmHandleStateHandlerImpl.java +++ b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/event/lcm/LcmEventsCmHandleStateHandlerImpl.java @@ -32,7 +32,7 @@ import org.onap.cps.ncmp.api.inventory.CmHandleState; import org.onap.cps.ncmp.api.inventory.CompositeStateUtils; import org.onap.cps.ncmp.api.inventory.InventoryPersistence; import org.onap.cps.ncmp.api.models.NcmpServiceCmHandle; -import org.onap.ncmp.cmhandle.lcm.event.NcmpEvent; +import org.onap.ncmp.cmhandle.event.lcm.LcmEvent; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; @@ -96,7 +96,7 @@ public class LcmEventsCmHandleStateHandlerImpl implements LcmEventsCmHandleState final NcmpServiceCmHandle ncmpServiceCmHandle = YangDataConverter.convertYangModelCmHandleToNcmpServiceCmHandle(yangModelCmHandle); final String cmHandleId = ncmpServiceCmHandle.getCmHandleId(); - final NcmpEvent ncmpEvent = lcmEventsCreator.populateLcmEvent(cmHandleId, ncmpServiceCmHandle); - lcmEventsService.publishLcmEvent(cmHandleId, ncmpEvent); + final LcmEvent lcmEvent = lcmEventsCreator.populateLcmEvent(cmHandleId); + lcmEventsService.publishLcmEvent(cmHandleId, lcmEvent); } } diff --git a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/event/lcm/LcmEventsCreator.java b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/event/lcm/LcmEventsCreator.java index 783b29951..085494aef 100644 --- a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/event/lcm/LcmEventsCreator.java +++ b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/event/lcm/LcmEventsCreator.java @@ -20,14 +20,11 @@ package org.onap.cps.ncmp.api.impl.event.lcm; -import java.time.ZonedDateTime; -import java.time.format.DateTimeFormatter; -import java.util.List; 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.NcmpEvent; +import org.onap.cps.ncmp.api.impl.utils.EventDateTimeFormatter; +import org.onap.ncmp.cmhandle.event.lcm.Event; +import org.onap.ncmp.cmhandle.event.lcm.LcmEvent; import org.springframework.stereotype.Component; @@ -38,42 +35,38 @@ import org.springframework.stereotype.Component; @Component public class LcmEventsCreator { - /** - * Populate NcmpEvent. + * Populate LcmEvent. * - * @param cmHandleId Cm Handle Identifier - * @param ncmpServiceCmHandle Ncmp CmHandle Data - * @return Populated NcmpEvent + * @param cmHandleId Cm Handle Identifier + * @return Populated Lcm Event */ - public NcmpEvent populateLcmEvent(final String cmHandleId, final NcmpServiceCmHandle ncmpServiceCmHandle) { - return createLcmEvent(cmHandleId, ncmpServiceCmHandle); + public LcmEvent populateLcmEvent(final String cmHandleId) { + return createLcmEvent(cmHandleId); } - private NcmpEvent createLcmEvent(final String cmHandleId, final NcmpServiceCmHandle ncmpServiceCmHandle) { - final NcmpEvent ncmpEvent = lcmEventHeader(cmHandleId); - ncmpEvent.setEvent(lcmEventPayload(cmHandleId, ncmpServiceCmHandle)); - return ncmpEvent; + private LcmEvent createLcmEvent(final String cmHandleId) { + final LcmEvent lcmEvent = lcmEventHeader(cmHandleId); + lcmEvent.setEvent(lcmEventPayload(cmHandleId)); + return lcmEvent; } - private Event lcmEventPayload(final String eventCorrelationId, final NcmpServiceCmHandle ncmpServiceCmHandle) { + private Event lcmEventPayload(final String eventCorrelationId) { final Event event = new Event(); event.setCmHandleId(eventCorrelationId); - event.setCmhandleState( - Event.CmhandleState.fromValue(ncmpServiceCmHandle.getCompositeState().getCmHandleState().toString())); - event.setCmhandleProperties(List.of(ncmpServiceCmHandle.getPublicProperties())); return event; } - private NcmpEvent lcmEventHeader(final String eventCorrelationId) { - final NcmpEvent ncmpEvent = new NcmpEvent(); - ncmpEvent.setEventId(UUID.randomUUID().toString()); - ncmpEvent.setEventCorrelationId(eventCorrelationId); - ncmpEvent.setEventTime(ZonedDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSZ"))); - ncmpEvent.setEventSource("org.onap.ncmp"); - ncmpEvent.setEventType("org.onap.ncmp.cmhandle-lcm-event"); - ncmpEvent.setEventSchema("org.onap.ncmp:cmhandle-lcm-event:v1"); - return ncmpEvent; + private LcmEvent lcmEventHeader(final String eventCorrelationId) { + final LcmEvent lcmEvent = new LcmEvent(); + lcmEvent.setEventId(UUID.randomUUID().toString()); + lcmEvent.setEventCorrelationId(eventCorrelationId); + lcmEvent.setEventTime(EventDateTimeFormatter.getCurrentDateTime()); + lcmEvent.setEventSource("org.onap.ncmp"); + lcmEvent.setEventType("org.onap.ncmp.cmhandle-lcm-event"); + lcmEvent.setEventSchema("org.onap.ncmp:cmhandle-lcm-event"); + lcmEvent.setEventSchemaVersion("v1"); + return lcmEvent; } } diff --git a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/event/lcm/LcmEventsPublisher.java b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/event/lcm/LcmEventsPublisher.java index 2a946b100..eda881767 100644 --- a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/event/lcm/LcmEventsPublisher.java +++ b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/event/lcm/LcmEventsPublisher.java @@ -22,7 +22,7 @@ package org.onap.cps.ncmp.api.impl.event.lcm; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.onap.ncmp.cmhandle.lcm.event.NcmpEvent; +import org.onap.ncmp.cmhandle.event.lcm.LcmEvent; import org.springframework.kafka.core.KafkaTemplate; import org.springframework.kafka.support.SendResult; import org.springframework.stereotype.Service; @@ -38,18 +38,18 @@ import org.springframework.util.concurrent.ListenableFutureCallback; @RequiredArgsConstructor public class LcmEventsPublisher { - private final KafkaTemplate lcmEventKafkaTemplate; + private final KafkaTemplate lcmEventKafkaTemplate; /** * LCM Event publisher. * * @param topicName valid topic name * @param eventKey message key - * @param ncmpEvent message payload + * @param lcmEvent message payload */ - public void publishEvent(final String topicName, final String eventKey, final NcmpEvent ncmpEvent) { - final ListenableFuture> lcmEventFuture = - lcmEventKafkaTemplate.send(topicName, eventKey, ncmpEvent); + public void publishEvent(final String topicName, final String eventKey, final LcmEvent lcmEvent) { + final ListenableFuture> lcmEventFuture = + lcmEventKafkaTemplate.send(topicName, eventKey, lcmEvent); lcmEventFuture.addCallback(new ListenableFutureCallback<>() { @Override @@ -58,9 +58,9 @@ public class LcmEventsPublisher { } @Override - public void onSuccess(final SendResult result) { - log.debug("Successfully published event to topic : {} , NcmpEvent : {}", - result.getRecordMetadata().topic(), result.getProducerRecord().value()); + public void onSuccess(final SendResult sendResult) { + log.debug("Successfully published event to topic : {} , LcmEvent : {}", + sendResult.getRecordMetadata().topic(), sendResult.getProducerRecord().value()); } }); } diff --git a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/event/lcm/LcmEventsService.java b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/event/lcm/LcmEventsService.java index d9c9b9a1c..762b21ef3 100644 --- a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/event/lcm/LcmEventsService.java +++ b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/event/lcm/LcmEventsService.java @@ -22,12 +22,12 @@ package org.onap.cps.ncmp.api.impl.event.lcm; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.onap.ncmp.cmhandle.lcm.event.NcmpEvent; +import org.onap.ncmp.cmhandle.event.lcm.LcmEvent; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; /** - * NcmpEventService to call the publisher and publish on the dedicated topic. + * LcmEventsService to call the publisher and publish on the dedicated topic. */ @Slf4j @@ -44,14 +44,14 @@ public class LcmEventsService { private boolean notificationsEnabled; /** - * Publish the NcmpEvent to the public topic. + * Publish the LcmEvent to the public topic. * * @param cmHandleId Cm Handle Id - * @param ncmpEvent Ncmp Event + * @param lcmEvent Lcm Event */ - public void publishLcmEvent(final String cmHandleId, final NcmpEvent ncmpEvent) { + public void publishLcmEvent(final String cmHandleId, final LcmEvent lcmEvent) { if (notificationsEnabled) { - lcmEventsPublisher.publishEvent(topicName, cmHandleId, ncmpEvent); + lcmEventsPublisher.publishEvent(topicName, cmHandleId, lcmEvent); } else { log.debug("Notifications disabled."); } diff --git a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/utils/EventDateTimeFormatter.java b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/utils/EventDateTimeFormatter.java new file mode 100644 index 000000000..acc4057d9 --- /dev/null +++ b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/utils/EventDateTimeFormatter.java @@ -0,0 +1,42 @@ +/* + * ============LICENSE_START======================================================= + * Copyright (C) 2022 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.utils; + +import java.time.ZonedDateTime; +import java.time.format.DateTimeFormatter; +import lombok.AccessLevel; +import lombok.NoArgsConstructor; + +@NoArgsConstructor(access = AccessLevel.PRIVATE) +public class EventDateTimeFormatter { + + private static final String DATE_TIME_FORMAT = "yyyy-MM-dd'T'HH:mm:ss.SSSZ"; + + /** + * Gets current date time. + * + * @return the current date time + */ + public static String getCurrentDateTime() { + return ZonedDateTime.now() + .format(DateTimeFormatter.ofPattern(DATE_TIME_FORMAT)); + } +} -- cgit 1.2.3-korg