From a31d1f3f489fdc6f68aecfaf66bf02cf6148f173 Mon Sep 17 00:00:00 2001 From: Ravi Pendurty Date: Mon, 31 Jan 2022 11:07:35 +0530 Subject: refactor devicemanager-core PerformanceDataProvider and Event classes Issue-ID: CCSDK-3574 Signed-off-by: Ravi Pendurty Change-Id: I0c8f800001a01cc638caa702571b32824dbddca9 Signed-off-by: Ravi Pendurty --- .../ne/service/PerformanceDataProvider.java | 3 +- .../types/EventlogNotificationBuilder.java | 46 -------------------- .../types/FaultNotificationBuilder2.java | 49 ---------------------- .../util/InconsistentPMDataException.java | 43 +++++++++++++++++++ .../sdnr/wt/devicemanager/util/PmUtil.java | 42 +++++++++++++++++++ .../DeviceManagerDatabaseNotificationService.java | 1 - .../EventlogNotificationBuilder.java | 46 ++++++++++++++++++++ .../impl/PerformanceManagerTask.java | 30 ++++++------- 8 files changed, 145 insertions(+), 115 deletions(-) delete mode 100644 sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/types/EventlogNotificationBuilder.java delete mode 100644 sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/types/FaultNotificationBuilder2.java create mode 100644 sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/util/InconsistentPMDataException.java create mode 100644 sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/util/PmUtil.java create mode 100644 sdnr/wt/devicemanager-core/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/eventdatahandler/EventlogNotificationBuilder.java (limited to 'sdnr') diff --git a/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/ne/service/PerformanceDataProvider.java b/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/ne/service/PerformanceDataProvider.java index 925339b32..faad89aa1 100644 --- a/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/ne/service/PerformanceDataProvider.java +++ b/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/ne/service/PerformanceDataProvider.java @@ -20,6 +20,7 @@ package org.onap.ccsdk.features.sdnr.wt.devicemanager.ne.service; import java.util.Optional; import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.PerformanceDataLtp; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.util.InconsistentPMDataException; /** * Identify the NE as provider for performance data according to microwave model. @@ -33,7 +34,7 @@ public interface PerformanceDataProvider extends NetworkElementService { public void next(); - public Optional getLtpHistoricalPerformanceData(); + public Optional getLtpHistoricalPerformanceData() throws InconsistentPMDataException; public String pmStatusToString(); diff --git a/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/types/EventlogNotificationBuilder.java b/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/types/EventlogNotificationBuilder.java deleted file mode 100644 index 105453ea6..000000000 --- a/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/types/EventlogNotificationBuilder.java +++ /dev/null @@ -1,46 +0,0 @@ -/* - * ============LICENSE_START======================================================================== - * ONAP : ccsdk feature sdnr wt - * ================================================================================================= - * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved. - * ================================================================================================= - * 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. - * ============LICENSE_END========================================================================== - */ -package org.onap.ccsdk.features.sdnr.wt.devicemanager.types; - -import org.eclipse.jdt.annotation.Nullable; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.DateAndTime; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.EventlogBuilder; -import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId; - -/** - * Add specific constructor - */ -public class EventlogNotificationBuilder extends EventlogBuilder { - - public EventlogNotificationBuilder(NodeId nodeId, @Nullable Integer counter, @Nullable DateAndTime timeStamp, - @Nullable String objectId, @Nullable String attributeName, @Nullable String newValue) { - - setNodeId(nodeId.getValue()); - if (counter != null) { - setCounter(counter); - } - if (timeStamp != null) { - setTimestamp(timeStamp); - } - setObjectId(objectId); - setAttributeName(attributeName); - setNewValue(newValue); - - } - -} diff --git a/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/types/FaultNotificationBuilder2.java b/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/types/FaultNotificationBuilder2.java deleted file mode 100644 index 5ccc664b4..000000000 --- a/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/types/FaultNotificationBuilder2.java +++ /dev/null @@ -1,49 +0,0 @@ -/* - * ============LICENSE_START======================================================================== - * ONAP : ccsdk feature sdnr wt - * ================================================================================================= - * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved. - * ================================================================================================= - * 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. - * ============LICENSE_END========================================================================== - */ -package org.onap.ccsdk.features.sdnr.wt.devicemanager.types; - -import org.eclipse.jdt.annotation.Nullable; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.DateAndTime; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.FaultlogBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.SeverityType; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.SourceType; -import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId; - -/** - * Add specific constructor - */ -public class FaultNotificationBuilder2 extends FaultlogBuilder { - - public FaultNotificationBuilder2(NodeId nodeId, @Nullable Integer counter, @Nullable DateAndTime timeStamp, - @Nullable String objectId, @Nullable String problem, @Nullable SeverityType severity, - SourceType sourceType) { - - setNodeId(nodeId.getValue()); - if (counter != null) { - setCounter(counter); - } - if (timeStamp != null) { - setTimestamp(timeStamp); - } - setObjectId(objectId); - setProblem(problem); - setSeverity(severity); - setSourceType(sourceType); - } - -} diff --git a/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/util/InconsistentPMDataException.java b/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/util/InconsistentPMDataException.java new file mode 100644 index 000000000..1869ec673 --- /dev/null +++ b/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/util/InconsistentPMDataException.java @@ -0,0 +1,43 @@ +/* + * ============LICENSE_START======================================================= + * ONAP : ccsdk features + * ================================================================================ + * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property. + * All rights reserved. + * ================================================================================ + * 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. + * ============LICENSE_END========================================================= + * + */ +package org.onap.ccsdk.features.sdnr.wt.devicemanager.util; + +public class InconsistentPMDataException extends Exception { + + private static final long serialVersionUID = 1L; + + public InconsistentPMDataException() { + super(); + } + + public InconsistentPMDataException(String message) { + super(message); + } + + public InconsistentPMDataException(String message, Throwable cause) { + super(message, cause); + } + + public InconsistentPMDataException(Throwable cause) { + super(cause); + } +} diff --git a/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/util/PmUtil.java b/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/util/PmUtil.java new file mode 100644 index 000000000..6a0f716a6 --- /dev/null +++ b/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/util/PmUtil.java @@ -0,0 +1,42 @@ +/* + * ============LICENSE_START======================================================= + * ONAP : ccsdk features + * ================================================================================ + * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property. + * All rights reserved. + * ================================================================================ + * 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. + * ============LICENSE_END========================================================= + * + */ +package org.onap.ccsdk.features.sdnr.wt.devicemanager.util; + +import org.eclipse.jdt.annotation.NonNull; +import org.eclipse.jdt.annotation.Nullable; +import org.opendaylight.yangtools.yang.binding.DataObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class PmUtil { + + private static final Logger LOG = LoggerFactory.getLogger(PmUtil.class); + + static public @NonNull T throwIfDataObjectNull(@Nullable T dataObject, String msg) + throws InconsistentPMDataException { + if (dataObject == null) { + LOG.debug(msg); + throw new InconsistentPMDataException(msg); + } + return dataObject; + } +} diff --git a/sdnr/wt/devicemanager-core/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/eventdatahandler/DeviceManagerDatabaseNotificationService.java b/sdnr/wt/devicemanager-core/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/eventdatahandler/DeviceManagerDatabaseNotificationService.java index 94694cd90..3d570e59a 100644 --- a/sdnr/wt/devicemanager-core/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/eventdatahandler/DeviceManagerDatabaseNotificationService.java +++ b/sdnr/wt/devicemanager-core/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/eventdatahandler/DeviceManagerDatabaseNotificationService.java @@ -34,7 +34,6 @@ import org.onap.ccsdk.features.sdnr.wt.devicemanager.toggleAlarmFilter.Deviceman import org.onap.ccsdk.features.sdnr.wt.devicemanager.toggleAlarmFilter.NotificationDelayFilter; import org.onap.ccsdk.features.sdnr.wt.devicemanager.toggleAlarmFilter.NotificationDelayedListener; import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.EquipmentData; -import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.EventlogNotificationBuilder; import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.FaultData; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.DateAndTime; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.EventlogEntity; diff --git a/sdnr/wt/devicemanager-core/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/eventdatahandler/EventlogNotificationBuilder.java b/sdnr/wt/devicemanager-core/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/eventdatahandler/EventlogNotificationBuilder.java new file mode 100644 index 000000000..3afa493b5 --- /dev/null +++ b/sdnr/wt/devicemanager-core/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/eventdatahandler/EventlogNotificationBuilder.java @@ -0,0 +1,46 @@ +/* + * ============LICENSE_START======================================================================== + * ONAP : ccsdk feature sdnr wt + * ================================================================================================= + * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved. + * ================================================================================================= + * 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. + * ============LICENSE_END========================================================================== + */ +package org.onap.ccsdk.features.sdnr.wt.devicemanager.eventdatahandler; + +import org.eclipse.jdt.annotation.Nullable; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.DateAndTime; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.EventlogBuilder; +import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId; + +/** + * Add specific constructor + */ +public class EventlogNotificationBuilder extends EventlogBuilder { + + public EventlogNotificationBuilder(NodeId nodeId, @Nullable Integer counter, @Nullable DateAndTime timeStamp, + @Nullable String objectId, @Nullable String attributeName, @Nullable String newValue) { + + setNodeId(nodeId.getValue()); + if (counter != null) { + setCounter(counter); + } + if (timeStamp != null) { + setTimestamp(timeStamp); + } + setObjectId(objectId); + setAttributeName(attributeName); + setNewValue(newValue); + + } + +} diff --git a/sdnr/wt/devicemanager-core/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/performancemanager/impl/PerformanceManagerTask.java b/sdnr/wt/devicemanager-core/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/performancemanager/impl/PerformanceManagerTask.java index 8fe6b9565..0b5b331be 100644 --- a/sdnr/wt/devicemanager-core/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/performancemanager/impl/PerformanceManagerTask.java +++ b/sdnr/wt/devicemanager-core/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/performancemanager/impl/PerformanceManagerTask.java @@ -51,7 +51,7 @@ public class PerformanceManagerTask implements Runnable { /** * Constructor of PM Task - * + * * @param seconds seconds to call PM Task * @param microwaveHistoricalPerformanceWriterService DB Service to load PM data to * @param netconfNetworkElementService to write into log @@ -60,7 +60,7 @@ public class PerformanceManagerTask implements Runnable { public PerformanceManagerTask(long seconds, DataProvider microwaveHistoricalPerformanceWriterService, NetconfNetworkElementService netconfNetworkElementService) { - LOG.debug("Init task {}", PerformanceManagerTask.class.getSimpleName()); + LOG.info("Init task {} handling time {} seconds", PerformanceManagerTask.class.getSimpleName(), seconds); this.seconds = seconds; this.databaseService = microwaveHistoricalPerformanceWriterService; this.scheduler = Executors.newSingleThreadScheduledExecutor(); @@ -87,7 +87,7 @@ public class PerformanceManagerTask implements Runnable { try { scheduler.awaitTermination(10, TimeUnit.SECONDS); } catch (InterruptedException e) { - LOG.debug("Schdule stopped.", e); + LOG.debug("Scheduler stopped.", e); // Restore interrupted state... Thread.currentThread().interrupt(); } @@ -96,7 +96,7 @@ public class PerformanceManagerTask implements Runnable { /** * Add NE/Mountpoint to PM Processig - * + * * @param mountPointNodeName to be added * @param ne that is connected to the mountpoint */ @@ -110,7 +110,7 @@ public class PerformanceManagerTask implements Runnable { /** * Remove mountpoint/NE from PM process - * + * * @param mountPointNodeName that has to be removed */ public void deRegistration(String mountPointNodeName) { @@ -122,7 +122,6 @@ public class PerformanceManagerTask implements Runnable { } } - /*-------------------------------------------------------------- * Task to read PM data from NE */ @@ -140,7 +139,7 @@ public class PerformanceManagerTask implements Runnable { } LOG.debug("{} start {} Start with mountpoint {}", LOGMARKER, tickCounter, mountpointName); - //Proceed to next NE/Interface + // Proceed to next NE/Interface getNextInterface(mountpointName); LOG.debug("{} {} Next interface to handle {}", LOGMARKER, tickCounter, @@ -155,16 +154,11 @@ public class PerformanceManagerTask implements Runnable { databaseService.doWritePerformanceData(allPm.get().getList()); } LOG.debug("{} {} PM List end.", LOGMARKER, tickCounter); - } catch (Exception e) { - StringBuffer msg = new StringBuffer(); - msg.append(e.getMessage()); - msg.append(" - "); - msg.append(e.getCause().toString()); - msg.append(" - "); - msg.append(actualNE.pmStatusToString()); - String msgString = msg.toString(); - LOG.warn("{} {} PM read/write failed. Write log entry {}", LOGMARKER, tickCounter, msgString); - netconfNetworkElementService.writeToEventLog(mountpointName, "PM Problem", msgString); + } catch (Throwable e) { + LOG.debug("{} {} PM Exception", LOGMARKER, tickCounter); + String msg = new StringBuffer().append(e.getMessage()).toString(); + LOG.warn("{} {} PM read/write failed. Write log entry {}", LOGMARKER, tickCounter, msg); + netconfNetworkElementService.writeToEventLog(mountpointName, "PM Problem", msg); } } @@ -239,7 +233,7 @@ public class PerformanceManagerTask implements Runnable { } } } - } //while + } // while if (actualNE != null && !queue.containsValue(actualNE)) { LOG.debug("{} {} NE Removed duringprocessing B", LOGMARKER, tickCounter); -- cgit 1.2.3-korg