diff options
author | 2021-04-19 12:46:16 +0200 | |
---|---|---|
committer | 2021-04-20 08:01:27 +0200 | |
commit | 05fe114a5969727c32cd9f1051cd7b9fde0344d5 (patch) | |
tree | 4cb505cd98ddb5b9c6f188f9febe93b07cf743db /sdnr/wt/devicemanager-core/model/src/main | |
parent | 6ae7e8a1bae83d407b22d8b066dd0bcca730e1bb (diff) |
Reorganization of devicemanager directory structure
Organized into core, onap and o-ran-sc directories
Issue-ID: CCSDK-3242
Signed-off-by: Ravi Pendurty <ravi.pendurty@highstreet-technologies.com>
Change-Id: I3c23710f990a2d96ba01104c97315fc8c6b1921b
Signed-off-by: Ravi Pendurty <ravi.pendurty@highstreet-technologies.com>
Signed-off-by: Michael DÜrre <michael.duerre@highstreet-technologies.com>
Diffstat (limited to 'sdnr/wt/devicemanager-core/model/src/main')
36 files changed, 2533 insertions, 0 deletions
diff --git a/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/ne/factory/FactoryRegistration.java b/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/ne/factory/FactoryRegistration.java new file mode 100644 index 000000000..ebe263bf9 --- /dev/null +++ b/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/ne/factory/FactoryRegistration.java @@ -0,0 +1,23 @@ +/* + * ============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.ne.factory; + +import org.opendaylight.yangtools.concepts.ObjectRegistration; + +public interface FactoryRegistration<T> extends ObjectRegistration<T> { +} diff --git a/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/ne/factory/NetworkElementFactory.java b/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/ne/factory/NetworkElementFactory.java new file mode 100644 index 000000000..c28b9245b --- /dev/null +++ b/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/ne/factory/NetworkElementFactory.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.ne.factory; + +import java.util.Optional; +import org.eclipse.jdt.annotation.NonNull; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.ne.service.NetworkElement; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.DeviceManagerServiceProvider; +import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfAccessor; + +public interface NetworkElementFactory { + + /** + * Called after connect of device. Decide if devicemanger should be started to manage device. + * @param accessor function to access device and get information from mountpoint + * @param serviceProvider provides base device manager services. + * @return Empty or NetworkElement object + */ + Optional<NetworkElement> create(@NonNull NetconfAccessor accessor, + @NonNull DeviceManagerServiceProvider serviceProvider); + + /** + * Called directly after factory registration to allow initialization + * @param serviceProvider provides base device manager services. + */ + default void init(DeviceManagerServiceProvider serviceProvider) { + } + + +} diff --git a/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/ne/service/DeviceMonitoredNe.java b/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/ne/service/DeviceMonitoredNe.java new file mode 100644 index 000000000..e86559cd4 --- /dev/null +++ b/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/ne/service/DeviceMonitoredNe.java @@ -0,0 +1,49 @@ +/* + * ============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.ne.service; + +/** + * @author herbert + * + */ +public interface DeviceMonitoredNe extends NetworkElementService { + + /** + * Prepare subsequent check calls + */ + public void prepareCheck(); + + /** + * Test connection to mediator, by getting data that have to be called from NE + * + * @return true if connection working, false if not + */ + public boolean checkIfConnectionToMediatorIsOk(); + + /** + * Test connection to NE via mediator, by getting data that have to be called from NE + * + * @return true if connection working, false if not + */ + public boolean checkIfConnectionToNeIsOk(); + + +} diff --git a/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/ne/service/InventoryProvider.java b/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/ne/service/InventoryProvider.java new file mode 100644 index 000000000..27c2e3b2d --- /dev/null +++ b/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/ne/service/InventoryProvider.java @@ -0,0 +1,34 @@ +/* + * ============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.ne.service; + +import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.InventoryInformationDcae; + +/** + * Provide Inventory information + * + * @author herbert + * + */ +public interface InventoryProvider extends NetworkElementService { + + public InventoryInformationDcae getInventoryInformation(); + + public InventoryInformationDcae getInventoryInformation(String layerProtocolFilter); + +} diff --git a/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/ne/service/NetworkElement.java b/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/ne/service/NetworkElement.java new file mode 100644 index 000000000..7f07db266 --- /dev/null +++ b/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/ne/service/NetworkElement.java @@ -0,0 +1,47 @@ +/* + * ============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.ne.service; + +import java.util.Optional; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.NetworkElementDeviceType; +import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId; + +public interface NetworkElement extends NetworkElementService { + + /** Register networkelement at all services **/ + void register(); + + /** Deregister networkelement at all services **/ + void deregister(); + + /** Do a warmstart of the handler e.g.clean up database and refresh alarm status **/ + void warmstart(); + + /** node-id also nodeName, mountpointName. Uuid. **/ + NodeId getNodeId(); + + /** self selected device type **/ + NetworkElementDeviceType getDeviceType(); + + /** + * Provide optional service interface. Services: InventoryProvider.class DeviceMonitoredNe.class + **/ + <L extends NetworkElementService> Optional<L> getService(Class<L> clazz); + +} diff --git a/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/ne/service/NetworkElementService.java b/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/ne/service/NetworkElementService.java new file mode 100644 index 000000000..4525b9e9f --- /dev/null +++ b/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/ne/service/NetworkElementService.java @@ -0,0 +1,31 @@ +/* + * ============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.ne.service; + +import java.util.Optional; +import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfAccessor; + +/** + * Marker interface for service interface of a network element + */ +public interface NetworkElementService { + + /** provide acessor **/ + Optional<NetconfAccessor> getAcessor(); + +} 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 new file mode 100644 index 000000000..925339b32 --- /dev/null +++ b/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/ne/service/PerformanceDataProvider.java @@ -0,0 +1,40 @@ +/* + * ============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.ne.service; + +import java.util.Optional; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.PerformanceDataLtp; + +/** + * Identify the NE as provider for performance data according to microwave model. + */ + +public interface PerformanceDataProvider extends NetworkElementService { + + public void resetPMIterator(); + + public boolean hasNext(); + + public void next(); + + public Optional<PerformanceDataLtp> getLtpHistoricalPerformanceData(); + + public String pmStatusToString(); + +} diff --git a/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/service/AaiService.java b/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/service/AaiService.java new file mode 100644 index 000000000..eca19a8c0 --- /dev/null +++ b/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/service/AaiService.java @@ -0,0 +1,35 @@ +/* + * ============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.service; + +/** + * Forward to Active and Available Inventory + */ +public interface AaiService extends DeviceManagerService { + + /** + * @param mountPointNodeName + */ + void onDeviceRegistered(String mountPointNodeName); + + /** + * @param mountPointNodeName + */ + void onDeviceUnregistered(String mountPointNodeName); + +} diff --git a/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/service/DeviceManagerService.java b/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/service/DeviceManagerService.java new file mode 100644 index 000000000..fa5945ab1 --- /dev/null +++ b/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/service/DeviceManagerService.java @@ -0,0 +1,25 @@ +/* + * ============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.service; + +/** + * Marker Interface for common devicemanager services + */ +public interface DeviceManagerService { + +} diff --git a/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/service/DeviceManagerServiceProvider.java b/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/service/DeviceManagerServiceProvider.java new file mode 100644 index 000000000..163f80839 --- /dev/null +++ b/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/service/DeviceManagerServiceProvider.java @@ -0,0 +1,70 @@ +/* + * ============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.service; + +import org.eclipse.jdt.annotation.NonNull; +import org.onap.ccsdk.features.sdnr.wt.common.configuration.ConfigurationFileRepresentation; +import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.DataProvider; +import org.onap.ccsdk.features.sdnr.wt.websocketmanager.model.WebsocketManagerService; + +public interface DeviceManagerServiceProvider { + + /** @return Get a dataprovider **/ + @NonNull + DataProvider getDataProvider(); + + /** @return Get notification service **/ + @NonNull + NotificationService getNotificationService(); + + /** @return Get ws notification service **/ + @NonNull + WebsocketManagerService getWebsocketService(); + + /** @return Get service for handling fault **/ + @NonNull + FaultService getFaultService(); + + /** @return Get service for handling fault **/ + @NonNull + EquipmentService getEquipmentService(); + + /** @return Get Active and available inventory service */ + @NonNull + AaiService getAaiService(); + + /** @return MaintenanceService object for maintenance service */ + @NonNull + MaintenanceService getMaintenanceService(); + + /** @return related service instance */ + @NonNull + PerformanceManager getPerformanceManagerService(); + + /** @return Event Handling service */ + @NonNull + EventHandlingService getEventHandlingService(); + + /** @return Get configuration descriptor */ + @NonNull + ConfigurationFileRepresentation getConfigurationFileRepresentation(); + + /** @return Get VES Collector Service for publishing VES messages to the VES Collector */ + @NonNull + VESCollectorService getVESCollectorService(); +} diff --git a/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/service/EquipmentService.java b/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/service/EquipmentService.java new file mode 100644 index 000000000..323140191 --- /dev/null +++ b/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/service/EquipmentService.java @@ -0,0 +1,39 @@ +/* + * ============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.service; + +import org.eclipse.jdt.annotation.NonNull; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.EquipmentData; +import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId; + +/** + * @author herbert + * + */ +public interface EquipmentService extends DeviceManagerService { + + /** + * Write equipment to database + * + * @param nodeId + * @param equipment with all equipment entities (card, subrack) of device + */ + void writeEquipment(NodeId nodeId, @NonNull EquipmentData equipment); + +} diff --git a/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/service/EventHandlingService.java b/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/service/EventHandlingService.java new file mode 100644 index 000000000..5cb9b9f21 --- /dev/null +++ b/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/service/EventHandlingService.java @@ -0,0 +1,61 @@ +/* + * ============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.service; + +import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.NetconfNode; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.NetworkElementDeviceType; + +/** + * Event Forwarding for central event management by devicemanager + */ +public interface EventHandlingService { + + /** + * @param mountPointNodeName + * @param deviceType + */ + void connectIndication(String mountPointNodeName, NetworkElementDeviceType deviceType); + + /** + * @param mountPointNodeName + */ + void deRegistration(String mountPointNodeName); + + /** + * + * @param registrationName + * @param attribute + * @param attributeNewValue + * @param nNode + */ + void updateRegistration(String registrationName, String attribute, String attributeNewValue, NetconfNode nNode); + + /** + * @param nodeIdString + * @param nNode + */ + void registration(String nodeIdString, NetconfNode nNode); + + /** + * @param objectId + * @param msg + * @param value + */ + void writeEventLog(String objectId, String msg, String value); + +} diff --git a/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/service/FaultService.java b/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/service/FaultService.java new file mode 100644 index 000000000..f414b4b15 --- /dev/null +++ b/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/service/FaultService.java @@ -0,0 +1,61 @@ +/* + * ============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.service; + +import org.eclipse.jdt.annotation.NonNull; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.FaultData; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.FaultlogEntity; +import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId; + +/** + * + */ +public interface FaultService extends DeviceManagerService { + + /** + * Notify fault information to devicemanager + * + * @param faultNotification to send + */ + void faultNotification(@NonNull FaultlogEntity faultNotification); + + //void faultNotification(@NonNull NodeId nodeId,Notification notification, QName type, DateAndTime timeStamp); + /** + * Remove current problems of node + * + * @param nodeId of node + * @return number of removed entries + */ + int removeAllCurrentProblemsOfNode(@NonNull NodeId nodeId); + + /** + * Write initial list of problems of node + * + * @param nodeId of node + * @param resultList + */ + void initCurrentProblemStatus(@NonNull NodeId nodeId, FaultData resultList); + + /** + * @param nodeId of node + * @param objectId of element to be removed + * @return number of removed items + */ + int removeObjectsCurrentProblemsOfNode(@NonNull NodeId nodeId, @NonNull String objectId); + +} diff --git a/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/service/MaintenanceService.java b/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/service/MaintenanceService.java new file mode 100644 index 000000000..8a2ffd880 --- /dev/null +++ b/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/service/MaintenanceService.java @@ -0,0 +1,44 @@ +/* + * ============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.service; + +public interface MaintenanceService extends DeviceManagerService { + + /** + * Verify maintenance state of given object according to the filter settings. The object is specified by the + * criteria provided in the parameters. The data _id (uuid) is equal to the mountpointReference. + * + * @param mountpointReference used as reference, to query the data from database. + * @param objectIdRef first level id in onf core model, delivered by notification objectid + * @param problem problem name of device, delivered in problem notification + * @return boolean indication + */ + boolean isONFObjectInMaintenance(String mountpointReference, String objectIdRef, String problem); + + /** + * @param mountPointNodeName + */ + void createIfNotExists(String mountPointNodeName); + + /** + * @param mountPointNodeName + */ + void deleteIfNotRequired(String mountPointNodeName); + + +} diff --git a/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/service/NetconfNetworkElementService.java b/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/service/NetconfNetworkElementService.java new file mode 100644 index 000000000..8cfb43d02 --- /dev/null +++ b/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/service/NetconfNetworkElementService.java @@ -0,0 +1,37 @@ +/* + * ============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.service; + +import org.eclipse.jdt.annotation.NonNull; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.ne.factory.FactoryRegistration; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.ne.factory.NetworkElementFactory; +import org.opendaylight.yangtools.concepts.Registration; + +public interface NetconfNetworkElementService extends Registration, DeviceManagerService { + + /** Register factory class for network-element handler for binding api**/ + @NonNull + <L extends NetworkElementFactory> FactoryRegistration<L> registerBindingNetworkElementFactory(@NonNull L factory); + + /** Get Devicemanager service **/ + DeviceManagerServiceProvider getServiceProvider(); + + /** Write to central devicemanager eventlog **/ + void writeToEventLog(String objectId, String msg, String value); + +} diff --git a/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/service/NotificationProxyParser.java b/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/service/NotificationProxyParser.java new file mode 100644 index 000000000..ea16f20bb --- /dev/null +++ b/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/service/NotificationProxyParser.java @@ -0,0 +1,49 @@ +/* + * ============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.service; + +import java.time.Instant; +import java.util.HashMap; +import org.opendaylight.yangtools.yang.binding.Notification; + +public interface NotificationProxyParser { + + /** + * parses the Notification proxy object created by ODL + * Returns a Map with class members as keys and the member values as values. + * The keys are in xpath notation. + * Ex: key = /notification/VALUECHANGE[@xmlns=\"urn:org:onap:ccsdk:features:sdnr:northbound:onecell-notification\"]/device/device-info/serial-number" + * value = "0005B94238A0" + * References: https://stackoverflow.com/questions/19633534/what-is-com-sun-proxy-proxy + */ + public HashMap<String, String> parseNotificationProxy(Notification notification); + + /** + * Gets the time at which the Event occurred if the notification is an instance of EventInstantAware. If not, then returns the current time + * Read notification time via {@link #EventInstantAware } interface. + * + * @param notification + * @return + */ + public Instant getTime(Notification notification); + +} diff --git a/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/service/NotificationService.java b/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/service/NotificationService.java new file mode 100644 index 000000000..b249c5008 --- /dev/null +++ b/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/service/NotificationService.java @@ -0,0 +1,70 @@ +/* + * ============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.service; + +import org.eclipse.jdt.annotation.NonNull; +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.EventlogEntity; +import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId; + +/** + * Central notification management of devicemanager + */ +public interface NotificationService extends DeviceManagerService { + + + /** Event notification to devicemanager. Can be change, create or remove indication **/ + void eventNotification(@NonNull EventlogEntity eventNotification); + +// void eventNotification(NodeId nodeId, Notification notification, @NonNull QName qname, +// @Nullable DateAndTime timeStamp); + + /** create notification for an object **/ + void creationNotification(NodeId nodeId, @Nullable Integer counter, @Nullable DateAndTime timeStamp, + @Nullable String objectId); + +// void creationNotification(NodeId nodeId, Notification notification, @NonNull QName qname, +// @Nullable DateAndTime timeStamp); + + /** delete notification of object **/ + void deletionNotification(NodeId nodeId, @Nullable Integer counter, @Nullable DateAndTime timeStamp, + @Nullable String objectId); + +// void deletionNotification(NodeId nodeId, Notification notification, @NonNull QName qname, +// @Nullable DateAndTime timeStamp); + + /** + * change notification of attribute of object + * + * @param nodeId of device + * @param counter provided + * @param timeStamp provided + * @param objectId provided + * @param attributeName provided + * @param newValue provided + */ + void changeNotification(NodeId nodeId, @Nullable Integer counter, @Nullable DateAndTime timeStamp, + @Nullable String objectId, @Nullable String attributeName, @Nullable String newValue); + +// void changeNotification(NodeId nodeId, Notification notification, @NonNull QName qname, +// @Nullable DateAndTime timeStamp); + + + +} diff --git a/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/service/PerformanceManager.java b/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/service/PerformanceManager.java new file mode 100644 index 000000000..3f93108a3 --- /dev/null +++ b/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/service/PerformanceManager.java @@ -0,0 +1,39 @@ +/* + * ============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.service; + +import org.onap.ccsdk.features.sdnr.wt.devicemanager.ne.service.NetworkElement; + +/** + * @author herbert + * + */ +public interface PerformanceManager extends DeviceManagerService { + + /** + * @param mountPointNodeName + * @param ne + */ + void registration(String mountPointNodeName, NetworkElement ne); + + /** + * @param mountPointNodeName + */ + void deRegistration(String mountPointNodeName); + +} diff --git a/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/service/VESCollectorCfgService.java b/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/service/VESCollectorCfgService.java new file mode 100644 index 000000000..5025b5bba --- /dev/null +++ b/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/service/VESCollectorCfgService.java @@ -0,0 +1,38 @@ +/* + * ============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.service; + +/* + * Interface that exposes a subset of the VES Collector configuration properties to clients that require them + */ + +public interface VESCollectorCfgService { + + /* gets the reportingEntityName (REPORTING_ENTITY_NAME) configured in the etc/devicemanager.properties configuration file */ + String getReportingEntityName(); + + /* gets the log detail configuration (EVENTLOG_MSG_DETAIL) property value configured in the etc/devicemanager.properties configuration file */ + String getEventLogMsgDetail(); + + /* gets the VES Collector enabled property (VES_COLLECTOR_ENABLED) value configured in the etc/devicemanager.properties configuration file */ + boolean isVESCollectorEnabled(); +} diff --git a/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/service/VESCollectorConfigChangeListener.java b/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/service/VESCollectorConfigChangeListener.java new file mode 100644 index 000000000..ac46b1c27 --- /dev/null +++ b/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/service/VESCollectorConfigChangeListener.java @@ -0,0 +1,27 @@ +/* + * ============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.service; + +public interface VESCollectorConfigChangeListener { + + public void notify(VESCollectorCfgService cfg); +} diff --git a/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/service/VESCollectorService.java b/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/service/VESCollectorService.java new file mode 100644 index 000000000..f93b599bf --- /dev/null +++ b/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/service/VESCollectorService.java @@ -0,0 +1,100 @@ +/* + * ============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.service; + +import com.fasterxml.jackson.core.JsonProcessingException; +import org.eclipse.jdt.annotation.NonNull; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.VESCommonEventHeaderPOJO; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.VESFaultFieldsPOJO; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.VESMessage; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.VESNotificationFieldsPOJO; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.VESPNFRegistrationFieldsPOJO; + +/** + * Interface used for publishing VES messages to the VES Collector + * + * @author ravi + * + */ +public interface VESCollectorService extends DeviceManagerService { + + /** + * Gets the VES Collector configuration from etc/devicemanager.properties configuration file + */ + VESCollectorCfgService getConfig(); + + /** + * publishes a VES message to the VES Collector by sending a REST request + * @param vesMsg + * @return + */ + boolean publishVESMessage(VESMessage vesMsg); + + /** + * clients interested in VES Collector configuration changes can call the registerForChanges method so as to be notified when configuration changes are made + */ + void registerForChanges(VESCollectorConfigChangeListener o); + + /** + * de-registering clients as part of cleanup + * @param o + */ + void deregister(VESCollectorConfigChangeListener o); + + /** + * Get a parser to parse {@link #org.opendaylight.yangtools.yang.binding.Notification } messages + * @return NotificationProxyParser object + */ + @NonNull + NotificationProxyParser getNotificationProxyParser(); + + /** + * Generates VES Event JSON containing commonEventHeader and notificationFields fields + * + * @param commonEventHeader + * @param notifFields + * @return VESMessage - representing the VESEvent JSON + * @throws JsonProcessingException + */ + VESMessage generateVESEvent(VESCommonEventHeaderPOJO commonEventHeader, VESNotificationFieldsPOJO notifFields) throws JsonProcessingException; + + /** + * Generates VES Event JSON containing commonEventHeader and faultFields fields + * + * @param commonEventHeader + * @param faultFields + * @return VESMessage - representing the VES Event JSON + * @throws JsonProcessingException + */ + VESMessage generateVESEvent(VESCommonEventHeaderPOJO commonEventHeader, VESFaultFieldsPOJO faultFields) throws JsonProcessingException; + + /** + * Generates VES Event JSON containing commonEventHeader and pnfRegistration fields + * + * @param commonEventHeader + * @param faultFields + * @return VESMessage - representing the VES Event JSON + * @throws JsonProcessingException + */ + VESMessage generateVESEvent(VESCommonEventHeaderPOJO commonEventHeader, VESPNFRegistrationFieldsPOJO faultFields) throws JsonProcessingException; + +} diff --git a/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/service/VESEventMapper.java b/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/service/VESEventMapper.java new file mode 100644 index 000000000..76c8305a2 --- /dev/null +++ b/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/service/VESEventMapper.java @@ -0,0 +1,121 @@ +/* + * ============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.service; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import java.time.Instant; +import java.util.HashMap; +import java.util.Map; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.VESCommonEventHeaderPOJO; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.VESFaultFieldsPOJO; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.VESNotificationFieldsPOJO; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.VESPNFRegistrationFieldsPOJO; +import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfBindingAccessor; +import org.opendaylight.yangtools.yang.binding.Notification; + +/* + * Interface for mapping ODL notification to VES event fields grouped by event type. + * Also includes the commonEventHeader which is applicable for all events. + * Ex: fault event, notification event. + * + * No base implementation exists for this interface. Clients that need to map their data into VES formats must implement this interface. + */ + +public abstract class VESEventMapper<N extends Notification,F extends Notification,T extends Notification> { + + /** + * Creates VESEvent mapping + */ + public abstract String createMapping(NetconfBindingAccessor netconfAccessor, + VESCollectorService vesCollectorService, Notification notification, String notifName, int sequenceNo, + Instant eventTime); + + /** + * Returns VES commonEventHeader fields + */ + public abstract VESCommonEventHeaderPOJO mapCommonEventHeader(N notification); + + /** + * Returns VES faultFields + */ + public abstract VESFaultFieldsPOJO mapFaultFields(F notification); + + /** + * Returns VES Notification Fields + */ + public abstract VESNotificationFieldsPOJO mapNotificationFields(T notification); + + /** + * Returns VES pnfRegistration domain fields + * + * @return + */ + public abstract VESPNFRegistrationFieldsPOJO mapPNFRegistrationFields(); + + /** + * Generates VES Event JSON containing commonEventHeader and notificationFields fields + * + * @param commonEventHeader + * @param notifFields + * @return String - representing the VESEvent JSON + */ + String generateVESEvent(VESCommonEventHeaderPOJO commonEventHeader, VESNotificationFieldsPOJO notifFields) { + Map<String, Object> innerEvent = new HashMap<String, Object>(); + innerEvent.put("commonEventHeader", commonEventHeader); + innerEvent.put("notificationFields", notifFields); + + Map<String, Object> outerEvent = new HashMap<String, Object>(); + outerEvent.put("event", innerEvent); + try { + ObjectMapper objMapper = new ObjectMapper(); + return objMapper.writeValueAsString(outerEvent); + } catch (JsonProcessingException e) { + e.printStackTrace(); + } + return null; + } + + /** + * Generates VES Event JSON containing commonEventHeader and faultFields fields + * + * @param commonEventHeader + * @param faultFields + * @return String - representing the VES Event JSON + */ + String generateVESEvent(VESCommonEventHeaderPOJO commonEventHeader, VESFaultFieldsPOJO faultFields) { + Map<String, Object> innerEvent = new HashMap<String, Object>(); + innerEvent.put("commonEventHeader", commonEventHeader); + innerEvent.put("faultFields", faultFields); + + Map<String, Object> outerEvent = new HashMap<String, Object>(); + outerEvent.put("event", innerEvent); + try { + ObjectMapper objMapper = new ObjectMapper(); + return objMapper.writeValueAsString(outerEvent); + } catch (JsonProcessingException e) { + e.printStackTrace(); + } + return null; + } + +} diff --git a/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/types/EquipmentData.java b/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/types/EquipmentData.java new file mode 100644 index 000000000..cdf7f6193 --- /dev/null +++ b/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/types/EquipmentData.java @@ -0,0 +1,72 @@ +/* + * ============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 java.util.ArrayList; +import java.util.List; +import org.eclipse.jdt.annotation.NonNull; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.Inventory; + +/** + * Inventory means here equipment related information. This could be card, subrack. + * + */ +public class EquipmentData { + + private final @NonNull List<Inventory> equipmentList; + + public EquipmentData() { + equipmentList = new ArrayList<>(); + } + + public void clear() { + equipmentList.clear(); + } + + /** + * @param entity with one elements data + */ + public void add(Inventory entity) { + equipmentList.add(entity); + } + + /** + * @return true for empty list or false if elements in the list. + */ + public boolean isEmpty() { + return equipmentList.isEmpty(); + } + + /** + * @param i index + * @return Inventory from index + */ + public Inventory get(int i) { + return equipmentList.get(i); + } + + /** + * Get list with all equipment + * + * @return list with equipment + */ + public List<Inventory> getList() { + return equipmentList; + } + +} 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 new file mode 100644 index 000000000..105453ea6 --- /dev/null +++ b/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/types/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.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/FaultData.java b/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/types/FaultData.java new file mode 100644 index 000000000..48aaed3d7 --- /dev/null +++ b/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/types/FaultData.java @@ -0,0 +1,101 @@ +/* + * ============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 java.util.ArrayList; +import java.util.List; +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.Faultlog; +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; +import org.slf4j.Logger; + +/** + * Fault information + */ +public class FaultData { + + private final List<Faultlog> problemList = new ArrayList<>(); + + /** + * @return + */ + public int size() { + return problemList.size(); + } + + /** + * @param log + * @param value + * @param resultList + * @param idxStart + */ + public static void debugResultList(Logger log, String value, FaultData resultList, int idxStart) { + // TODO Auto-generated method stub + + } + + /** + * @param nodeId of device + * @param sequenceNumber given by device + * @param timeStamp of occurence + * @param objectReference uuid in ONF model + * @param problemName of object + * @param severity of problem + */ + public void add(NodeId nodeId, @Nullable Integer sequenceNumber, @Nullable DateAndTime timeStamp, + @Nullable String objectReference, @Nullable String problemName, @Nullable SeverityType severity) { + FaultlogBuilder bFaullog = new FaultlogBuilder().setNodeId(nodeId.getValue()).setCounter(sequenceNumber) + .setTimestamp(timeStamp).setObjectId(objectReference).setProblem(problemName).setSeverity(severity); + bFaullog.setSourceType(SourceType.Netconf); + problemList.add(bFaullog.build()); + } + + /** + * @param globalProblemList to add + */ + public void addAll(FaultData globalProblemList) { + problemList.addAll(globalProblemList.problemList); + } + + /** + * + */ + public void clear() {} + + /** + * @param idx of element to get + * @return Faultlog the element + */ + public Faultlog get(int idx) { + return problemList.get(idx); + } + + /** + * Provide list with all problems of node + * + * @return list + */ + public List<Faultlog> getProblemList() { + return problemList; + } + +} 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 new file mode 100644 index 000000000..5ccc664b4 --- /dev/null +++ b/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/types/FaultNotificationBuilder2.java @@ -0,0 +1,49 @@ +/* + * ============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/types/InternalConnectionStatus.java b/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/types/InternalConnectionStatus.java new file mode 100644 index 000000000..303cd8214 --- /dev/null +++ b/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/types/InternalConnectionStatus.java @@ -0,0 +1,37 @@ +/* + * ============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.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.NetconfNodeConnectionStatus.ConnectionStatus; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ConnectionLogStatus; + +public class InternalConnectionStatus { + public static ConnectionLogStatus statusFromNodeStatus(ConnectionStatus nodeStatus) { + switch (nodeStatus) { + case Connected: + return ConnectionLogStatus.Connected; + case Connecting: + return ConnectionLogStatus.Connecting; + case UnableToConnect: + return ConnectionLogStatus.UnableToConnect; + default: + return ConnectionLogStatus.Undefined; + } + } +} diff --git a/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/types/InventoryInformationDcae.java b/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/types/InventoryInformationDcae.java new file mode 100644 index 000000000..cf43a5735 --- /dev/null +++ b/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/types/InventoryInformationDcae.java @@ -0,0 +1,131 @@ +/* + * ============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 java.util.ArrayList; +import java.util.List; + +/** + * Inventory information of a device, used by DCAE + */ +public class InventoryInformationDcae { + + private static final String UNKNOWN = "unknown"; + private static final List<String> EMPTY = new ArrayList<>(); + private static final InventoryInformationDcae DEFAULT = new InventoryInformationDcae(); + + private String type; + private String model; + private String vendor; + private String deviceIpv4; + private String deviceIpv6; + private List<String> interfaceUuidList; + + public InventoryInformationDcae() { + this.type = UNKNOWN; + this.model = UNKNOWN; + this.vendor = UNKNOWN; + this.deviceIpv4 = UNKNOWN; + this.deviceIpv6 = UNKNOWN; + this.interfaceUuidList = EMPTY; + } + + public InventoryInformationDcae(InventoryInformationDcae inventoryInformation) { + this.type = inventoryInformation.type; + this.model = inventoryInformation.model; + this.vendor = inventoryInformation.vendor; + this.deviceIpv4 = inventoryInformation.deviceIpv4; + this.deviceIpv6 = inventoryInformation.deviceIpv6; + this.interfaceUuidList = new ArrayList<>(inventoryInformation.interfaceUuidList); + } + + public InventoryInformationDcae(String type, String model, String vendor, String deviceIpv4, String deviceIpv6, + List<String> interfaceUuidList) { + setType(type); + setModel(model); + setVendor(vendor); + setDeviceIpv4(deviceIpv4); + setDeviceIpv6(deviceIpv6); + setInterfaceUuidList(interfaceUuidList); + } + + public String getType() { + return type; + } + + public String getModel() { + return model; + } + + public String getVendor() { + return vendor; + } + + public String getDeviceIpv4() { + return deviceIpv4; + } + + public String getDeviceIpv6() { + return deviceIpv6; + } + + public List<String> getInterfaceUuidList() { + return interfaceUuidList; + } + + public InventoryInformationDcae setType(String type) { + this.type = type != null ? type : UNKNOWN; + return this; + } + + public InventoryInformationDcae setModel(String model) { + this.model = model != null ? model : UNKNOWN; + return this; + } + + public InventoryInformationDcae setVendor(String vendor) { + this.vendor = vendor != null ? vendor : UNKNOWN; + return this; + } + + public InventoryInformationDcae setDeviceIpv4(String deviceIpv4) { + this.deviceIpv4 = deviceIpv4 != null ? deviceIpv4 : UNKNOWN; + return this; + } + + public InventoryInformationDcae setDeviceIpv6(String deviceIpv6) { + this.deviceIpv6 = deviceIpv6 != null ? deviceIpv6 : UNKNOWN; + return this; + } + + public InventoryInformationDcae setInterfaceUuidList(List<String> interfaceUuidList) { + this.interfaceUuidList = interfaceUuidList != null ? interfaceUuidList : EMPTY; + return this; + } + + public static InventoryInformationDcae getDefault() { + return DEFAULT; + } + + @Override + public String toString() { + return "InventoryInformation [type=" + type + ", model=" + model + ", vendor=" + vendor + ", deviceIpv4=" + + deviceIpv4 + ", deviceIpv6=" + deviceIpv6 + ", interfaceUuidList=" + interfaceUuidList + "]"; + } + +} diff --git a/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/types/PerformanceDataLtp.java b/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/types/PerformanceDataLtp.java new file mode 100644 index 000000000..38de0de5d --- /dev/null +++ b/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/types/PerformanceDataLtp.java @@ -0,0 +1,52 @@ +/* + * ============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 java.util.ArrayList; +import java.util.List; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.PmdataEntity; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.PmdataEntityBuilder; + +/** + * @author herbert + * + */ +public class PerformanceDataLtp { + + private final List<PmdataEntity> pmList = new ArrayList<>(); + + public void add(PmdataEntity entry) { + pmList.add(entry); + } + + public void add(PmdataEntityBuilder entryBuilder) { + pmList.add(entryBuilder.build()); + } + + /** + * @return int number of elements + */ + public int size() { + return pmList.size(); + } + + public List<PmdataEntity> getList() { + return pmList; + } + +} diff --git a/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/types/VESCommonEventHeaderPOJO.java b/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/types/VESCommonEventHeaderPOJO.java new file mode 100644 index 000000000..db76b84c7 --- /dev/null +++ b/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/types/VESCommonEventHeaderPOJO.java @@ -0,0 +1,196 @@ +/* + * ============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.types; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; + +@JsonPropertyOrder({"domain", "eventId", "eventName", "eventType", "lastEpochMicrosec", "nfcNamingCode", "nfNamingCode", + "nfVendorName", "priority", "reportingEntityId", "reportingEntityName", "sequence", "sourceId", "sourceName", + "startEpochMicrosec", "timeZoneOffset", "version", "vesEventListenerVersion"}) + +public class VESCommonEventHeaderPOJO { + + private String domain = ""; + private String eventId = ""; + private String eventName = ""; + private String eventType = ""; + private long sequence = 0L; + private String priority = ""; + @JsonIgnore + private String reportingEntityId = ""; + private String reportingEntityName = ""; + private String sourceId = ""; + private String sourceName = ""; + private long startEpochMicrosec = 0L; + private long lastEpochMicrosec = 0L; + private String nfcNamingCode = ""; + private String nfNamingCode = ""; + private String nfVendorName = ""; + private String timeZoneOffset = "+00:00"; + private String version = "4.1"; + private String vesEventListenerVersion = "7.1.1"; + + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public String getEventId() { + return eventId; + } + + public void setEventId(String eventId) { + this.eventId = eventId; + } + + public String getEventName() { + return eventName; + } + + public void setEventName(String eventName) { + this.eventName = eventName; + } + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public Long getSequence() { + return sequence; + } + + public void setSequence(long sequenceNo) { + this.sequence = sequenceNo; + } + + public String getPriority() { + return priority; + } + + public void setPriority(String priority) { + this.priority = priority; + } + + public String getReportingEntityId() { + return reportingEntityId; + } + + public void setReportingEntityId(String reportingEntityId) { + this.reportingEntityId = reportingEntityId; + } + + public String getReportingEntityName() { + return reportingEntityName; + } + + public void setReportingEntityName(String reportingEntityName) { + this.reportingEntityName = reportingEntityName; + } + + public String getSourceId() { + return sourceId; + } + + public void setSourceId(String sourceId) { + this.sourceId = sourceId; + } + + public String getSourceName() { + return sourceName; + } + + public void setSourceName(String sourceName) { + this.sourceName = sourceName; + } + + public long getStartEpochMicrosec() { + return startEpochMicrosec; + } + + public void setStartEpochMicrosec(long startEpochMicrosec) { + this.startEpochMicrosec = startEpochMicrosec; + } + + public long getLastEpochMicrosec() { + return lastEpochMicrosec; + } + + public void setLastEpochMicrosec(long lastEpochMicrosec) { + this.lastEpochMicrosec = lastEpochMicrosec; + } + + public String getNfcNamingCode() { + return nfcNamingCode; + } + + public void setNfcNamingCode(String nfcNamingCode) { + this.nfcNamingCode = nfcNamingCode; + } + + public String getNfNamingCode() { + return nfNamingCode; + } + + public void setNfNamingCode(String nfNamingCode) { + this.nfNamingCode = nfNamingCode; + } + + public String getNfVendorName() { + return nfVendorName; + } + + public void setNfVendorName(String nfVendorName) { + this.nfVendorName = nfVendorName; + } + + public String getTimeZoneOffset() { + return timeZoneOffset; + } + + public void setTimeZoneOffset(String timeZoneOffset) { + this.timeZoneOffset = timeZoneOffset; + } + + public String getVersion() { + return version; + } + + public void setVersion(String version) { + this.version = version; + } + + public String getVesEventListenerVersion() { + return vesEventListenerVersion; + } + + public void setVesEventListenerVersion(String vesEventListenerVersion) { + this.vesEventListenerVersion = vesEventListenerVersion; + } +} diff --git a/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/types/VESFaultFieldsPOJO.java b/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/types/VESFaultFieldsPOJO.java new file mode 100644 index 000000000..0f40ed3a4 --- /dev/null +++ b/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/types/VESFaultFieldsPOJO.java @@ -0,0 +1,111 @@ +/* + * ============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.types; + +import java.util.HashMap; + +public class VESFaultFieldsPOJO { + + //fault domain Fields + private String alarmCondition = ""; + private String alarmInterfaceA = ""; + private String eventCategory = ""; + private String eventSeverity = ""; + private String eventSourceType = ""; + private String faultFieldsVersion = "4.0"; + private String specificProblem = ""; + private String vfStatus = ""; + private HashMap<String, Object> alarmAdditionalInformation = new HashMap<String, Object>(); + + public String getAlarmCondition() { + return alarmCondition; + } + + public void setAlarmCondition(String alarmCondition) { + this.alarmCondition = alarmCondition; + } + + public String getAlarmInterfaceA() { + return alarmInterfaceA; + } + + public void setAlarmInterfaceA(String alarmInterfaceA) { + this.alarmInterfaceA = alarmInterfaceA; + } + + public String getEventCategory() { + return eventCategory; + } + + public void setEventCategory(String eventCategory) { + this.eventCategory = eventCategory; + } + + public String getEventSeverity() { + return eventSeverity; + } + + public void setEventSeverity(String eventSeverity) { + this.eventSeverity = eventSeverity; + } + + public String getEventSourceType() { + return eventSourceType; + } + + public void setEventSourceType(String eventSourceType) { + this.eventSourceType = eventSourceType; + } + + public String getFaultFieldsVersion() { + return faultFieldsVersion; + } + + public void setFaultFieldsVersion(String faultFieldsVersion) { + this.faultFieldsVersion = faultFieldsVersion; + } + + public String getSpecificProblem() { + return specificProblem; + } + + public void setSpecificProblem(String specificProblem) { + this.specificProblem = specificProblem; + } + + public String getVfStatus() { + return vfStatus; + } + + public void setVfStatus(String vfStatus) { + this.vfStatus = vfStatus; + } + + public HashMap<String, Object> getAlarmAdditionalInformation() { + return alarmAdditionalInformation; + } + + public void setAlarmAdditionalInformation(HashMap<String, Object> alarmAdditionalInformation) { + this.alarmAdditionalInformation = alarmAdditionalInformation; + } + +} diff --git a/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/types/VESMessage.java b/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/types/VESMessage.java new file mode 100644 index 000000000..2c5266f97 --- /dev/null +++ b/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/types/VESMessage.java @@ -0,0 +1,35 @@ +/* + * ============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.types; + +public class VESMessage { + + private String message; + + public VESMessage(String vesMessage) { + this.message = vesMessage; + } + + public String getMessage() { + return message; + } +} diff --git a/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/types/VESNotificationFieldsPOJO.java b/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/types/VESNotificationFieldsPOJO.java new file mode 100644 index 000000000..6beb04751 --- /dev/null +++ b/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/types/VESNotificationFieldsPOJO.java @@ -0,0 +1,116 @@ +/* + * ============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.types; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.ArrayList; +import java.util.HashMap; + +@JsonPropertyOrder({"arrayOfNamedHashMap", "changeContact", "changeIdentifier", "changeType", "newState", "oldState", + "notificationFieldsVersion"}) + +public class VESNotificationFieldsPOJO { + + private ArrayList<HashMap<String, Object>> arrayOfNamedHashMap = new ArrayList<HashMap<String, Object>>(); + @JsonIgnore + private HashMap<String, Object> namedHashMap = new HashMap<String, Object>(); + @JsonIgnore + private HashMap<String, String> hashMap = new HashMap<String, String>(); + @JsonIgnore + private String changeContact = ""; + private String changeIdentifier = ""; + private String changeType = ""; + @JsonIgnore + private String newState = ""; + @JsonIgnore + private String oldState = ""; + @JsonIgnore + private String stateInterface = ""; + private String notificationFieldsVersion = "2.0"; + + public ArrayList<HashMap<String, Object>> getArrayOfNamedHashMap() { + return arrayOfNamedHashMap; + } + + public void setArrayOfNamedHashMap(ArrayList<HashMap<String, Object>> arrayOfNamedHashMap) { + this.arrayOfNamedHashMap = arrayOfNamedHashMap; + } + + public String getChangeContact() { + return changeContact; + } + + public void setChangeContact(String changeContact) { + this.changeContact = changeContact; + } + + public String getChangeIdentifier() { + return changeIdentifier; + } + + public void setChangeIdentifier(String changeIdentifier) { + this.changeIdentifier = changeIdentifier; + } + + public String getChangeType() { + return changeType; + } + + public void setChangeType(String changeType) { + this.changeType = changeType; + } + + public String getNewState() { + return newState; + } + + public void setNewState(String newState) { + this.newState = newState; + } + + public String getOldState() { + return oldState; + } + + public void setOldState(String oldState) { + this.oldState = oldState; + } + + public String getStateInterface() { + return stateInterface; + } + + public void setStateInterface(String stateInterface) { + this.stateInterface = stateInterface; + } + + public String getNotificationFieldsVersion() { + return notificationFieldsVersion; + } + + public void setNotificationFieldsVersion(String notificationFieldsVersion) { + this.notificationFieldsVersion = notificationFieldsVersion; + } + + +}
\ No newline at end of file diff --git a/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/types/VESPNFRegistrationFieldsPOJO.java b/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/types/VESPNFRegistrationFieldsPOJO.java new file mode 100644 index 000000000..e564914da --- /dev/null +++ b/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/types/VESPNFRegistrationFieldsPOJO.java @@ -0,0 +1,148 @@ +/* + * ============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.types; + +import java.util.HashMap; +import java.util.Map; + +public class VESPNFRegistrationFieldsPOJO { + + private Map<String, String> additionalFields = new HashMap<String, String>(); + private String lastServiceDate = ""; + private String macAddress = ""; + private String manufactureDate = ""; + private String modelNumber = ""; + private String oamV4IpAddress = ""; + private String oamV6IpAddress = ""; + private String pnfRegistrationFieldsVersion = "2.0"; + private String serialNumber = ""; + private String softwareVersion = ""; + private String unitFamily = ""; + private String unitType = ""; + private String vendorName = ""; + + public Map<String, String> getAdditionalFields() { + return additionalFields; + } + + public void setAdditionalFields(Map<String, String> additionalFields) { + this.additionalFields = additionalFields; + } + + public String getLastServiceDate() { + return lastServiceDate; + } + + public void setLastServiceDate(String lastServiceDate) { + this.lastServiceDate = lastServiceDate; + } + + public String getMacAddress() { + return macAddress; + } + + public void setMacAddress(String macAddress) { + this.macAddress = macAddress; + } + + public String getManufactureDate() { + return manufactureDate; + } + + public void setManufactureDate(String manufactureDate) { + this.manufactureDate = manufactureDate; + } + + public String getModelNumber() { + return modelNumber; + } + + public void setModelNumber(String modelNumber) { + this.modelNumber = modelNumber; + } + + public String getOamV4IpAddress() { + return oamV4IpAddress; + } + + public void setOamV4IpAddress(String oamV4IpAddress) { + this.oamV4IpAddress = oamV4IpAddress; + } + + public String getOamV6IpAddress() { + return oamV6IpAddress; + } + + public void setOamV6IpAddress(String oamV6IpAddress) { + this.oamV6IpAddress = oamV6IpAddress; + } + + public String getPnfRegistrationFieldsVersion() { + return pnfRegistrationFieldsVersion; + } + + public void setPnfRegistrationFieldsVersion(String pnfRegistrationFieldsVersion) { + this.pnfRegistrationFieldsVersion = pnfRegistrationFieldsVersion; + } + + public String getSerialNumber() { + return serialNumber; + } + + public void setSerialNumber(String serialNumber) { + this.serialNumber = serialNumber; + } + + public String getSoftwareVersion() { + return softwareVersion; + } + + public void setSoftwareVersion(String softwareVersion) { + this.softwareVersion = softwareVersion; + } + + public String getUnitFamily() { + return unitFamily; + } + + public void setUnitFamily(String unitFamily) { + this.unitFamily = unitFamily; + } + + public String getUnitType() { + return unitType; + } + + public void setUnitType(String unitType) { + this.unitType = unitType; + } + + public String getVendorName() { + return vendorName; + } + + public void setVendorName(String vendorName) { + this.vendorName = vendorName; + + } + +} diff --git a/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/util/UnkownDevicemanagerServiceException.java b/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/util/UnkownDevicemanagerServiceException.java new file mode 100644 index 000000000..b5193689e --- /dev/null +++ b/sdnr/wt/devicemanager-core/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/util/UnkownDevicemanagerServiceException.java @@ -0,0 +1,29 @@ +/* + * ============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.util; + +public class UnkownDevicemanagerServiceException extends Exception { + + private static final long serialVersionUID = 1L; + + public UnkownDevicemanagerServiceException(String string, Class<?> serviceInterface) { + super(string + " " + serviceInterface.getName()); + } + + +} diff --git a/sdnr/wt/devicemanager-core/model/src/main/yang/devicemanager.yang b/sdnr/wt/devicemanager-core/model/src/main/yang/devicemanager.yang new file mode 100644 index 000000000..a34ea49a4 --- /dev/null +++ b/sdnr/wt/devicemanager-core/model/src/main/yang/devicemanager.yang @@ -0,0 +1,324 @@ +module devicemanager { + + yang-version 1; + namespace "urn:opendaylight:params:xml:ns:yang:devicemanager"; + prefix devicemanager; + + import data-provider { + prefix data-provider; + revision-date 2020-11-10; + } + import ietf-yang-types { + prefix yang; + } + organization + "highstreet technologies GmbH"; + contact + "Web: <https://highstreet-technologies.com> + ONAP: <https://wiki.onap.org/display/DW/ODLUX+DB+API>"; + + description + "DeviceManager Api Module + + Copyright 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."; + + revision 2019-01-09 { + description + "Initial revision"; + reference + "https://jira.onap.org/browse/SDNC-877"; + } + + notification object-creation-notification { + uses object-creation-notification-g; + description "none"; + } + grouping object-creation-notification-g { + leaf counter { + type int32; + default -1; + description "Counts object creation notifications."; + } + leaf time-stamp { + type yang:date-and-time; + default "2017-01-01T00:00:00.0Z"; + description "none"; + } + leaf object-id-ref { + type string; + description "ID of the affected MW_AirInterface_Pac, MW_AirInterfaceDiversity_Pac, MW_Structure_Pac, MW_PureEthernetStructure_Pac, MW_HybridMwStructure_Pac, MW_Container_Pac, MW_EthernetContainer_Pac or MW_TdmContainer_Pac."; + } + leaf object-type { + type string; + default "Type of created object not specified."; + description "Type of Object to be chosen from the following list of values: 'MW_AirInterface_Pac', 'MW_AirInterfaceDiversity_Pac', 'MW_Structure_Pac', 'MW_PureEthernetStructure_Pac', 'MW_HybridMwStructure_Pac', 'MW_Container_Pac', 'MW_EthernetContainer_Pac' or 'MW_TdmContainer_Pac'."; + } + description "To be sent when a new MW_AirInterface_Pac, MW_AirInterfaceDiversity_Pac, MW_Structure_Pac, MW_PureEthernetStructure_Pac, MW_HybridMwStructure_Pac, MW_Container_Pac, MW_EthernetContainer_Pac or MW_TdmContainer_Pac has to be instancieted in the controller."; + } + notification object-deletion-notification { + uses object-deletion-notification-g; + description "none"; + } + grouping object-deletion-notification-g { + leaf counter { + type int32; + default -1; + description "Counts object deletion notifications."; + } + leaf time-stamp { + type yang:date-and-time; + default "2017-01-01T00:00:00.0Z"; + description "none"; + } + leaf object-id-ref { + type string; + description "ID of the affected MW_AirInterface_Pac, MW_AirInterfaceDiversity_Pac, MW_Structure_Pac, MW_PureEthernetStructure_Pac, MW_HybridMwStructure_Pac, MW_Container_Pac, MW_EthernetContainer_Pac or MW_TdmContainer_Pac."; + } + description "To be sent when a new MW_AirInterface_Pac, MW_AirInterfaceDiversity_Pac, MW_Structure_Pac, MW_PureEthernetStructure_Pac, MW_HybridMwStructure_Pac, MW_Container_Pac, MW_EthernetContainer_Pac or MW_TdmContainer_Pac instance has to be deleted in the controller."; + } + notification attribute-value-changed-notification { + uses attribute-value-changed-notification-g; + description "none"; + } + grouping attribute-value-changed-notification-g { + leaf counter { + type int32; + default -1; + description "Counts attribute value changed notifications."; + } + leaf time-stamp { + type yang:date-and-time; + default "2017-01-01T00:00:00.0Z"; + description "none"; + } + leaf object-id-ref { + type string; + description "ID of the affected MW_AirInterface_Pac, MW_AirInterfaceDiversity_Pac, MW_Structure_Pac, MW_PureEthernetStructure_Pac, MW_HybridMwStructure_Pac, MW_Container_Pac, MW_EthernetContainer_Pac or MW_TdmContainer_Pac."; + } + leaf attribute-name { + type string; + default "Attribute name not specified."; + description "Name of the attribute that has been changed."; + } + leaf new-value { + type string; + default "New value not specified."; + description "Attribute value converted to a string (xml, json, ...)"; + } + description "To be sent when an attribute has changed and one or more controllers have to update their data."; + } + notification problem-notification { + uses problem-notification-g; + description "none"; + } + grouping problem-notification-g { + leaf counter { + type int32; + default -1; + description "Counts problem notifications"; + } + leaf time-stamp { + type yang:date-and-time; + default "2017-01-01T00:00:00.0Z"; + description "none"; + } + leaf object-id-ref { + type string; + description "ID of the affected MW_AirInterface_Pac, MW_AirInterfaceDiversity_Pac, MW_Structure_Pac, MW_PureEthernetStructure_Pac, MW_HybridMwStructure_Pac, MW_Container_Pac, MW_EthernetContainer_Pac or MW_TdmContainer_Pac."; + } + leaf problem { + type string; + default "Problem name not specified."; + description "Name of the problem according to AirInterface::AirInterfaceCapability::supportedAlarms or AirInterfaceDiversity::AirInterfaceDiversityCapability::supportedAlarms or Structure::StructureCapability::supportedAlarms or PureEthernetStructure::PureEthernetStructureCapability::supportedAlarms or HybridMwStructure::HybridMwStructureCapability::supportedAlarms or Container::ContainerCapability::supportedAlarms or EthernetContainer::EthernetContainerCapability::supportedAlarms or TdmContainer::TdmContainerCapability::supportedAlarms."; + } + leaf severity { + type severity-type; + default warning; + description "Severity of the problem according to AirInterface::AirInterfaceConfiguration::problemSeverityList, AirInterfaceDiversity::AirInterfaceDiversityConfiguration::problemSeverityList, Structure::StructureConfiguration::problemSeverityList, PureEthernetStructure::PureEthernetStructureConfiguration::problemSeverityList, HybridMwStructure::HybridMwStructureConfiguration::problemSeverityList, Container::ContainerConfiguration::problemSeverityList, EthernetContainer::EthernetContainerConfiguration::problemSeverityList or TdmContainer::TdmContainerConfiguration::problemSeverityList"; + } + description "To be sent when a problem occurs at a MW_AirInterface_Pac, MW_AirInterfaceDiversity_Pac, MW_Structure_Pac, MW_PureEthernetStructure_Pac, MW_HybridMwStructure_Pac, MW_Container_Pac, MW_EthernetContainer_Pac or MW_TdmContainer_Pac."; + } + typedef severity-type { + type enumeration { + enum non-alarmed { + description "none"; + } + enum warning { + description "none"; + } + enum minor { + description "none"; + } + enum major { + description "none"; + } + enum critical { + description "none"; + } + } + description "According to ITU-T M.3160"; + } + + rpc set-maintenance-mode { + description + "Set maintenance mode for network element"; + input { + uses data-provider:maintenance-entity; + } + output { + uses data-provider:maintenance-entity; + } + } + + rpc get-maintenance-mode { + description + "Get maintenance mode Configuration"; + input { + leaf mountpoint-name { + type string; + description + "Mountpoint-name as key of node"; + } + } + output { + uses data-provider:maintenance-entity; + } + } + + rpc test-maintenance-mode { + description + "Send test pattern similar to notification that are test from algorithm"; + input { + leaf mountpoint-name { + type string; + mandatory true; + description + "mountpoint for test"; + } + leaf object-id-ref { + type string; + mandatory true; + description + "object id for test"; + } + leaf problem-name { + type string; + mandatory true; + description + "problem for test"; + } + leaf test-date { + type string; + mandatory true; + description + "point in time used for the test"; + } + } + output { + leaf result-string { + type string; + mandatory true; + description + "Describin if mountpoint was found and result of maintenance mode testing"; + } + uses data-provider:maintenance-entity; + } + } + + rpc show-required-network-element { + description + "Get information for required network element"; + input { + leaf mountpoint-name { + type string; + mandatory true; + description + "Mountpoint-name as key of the node to be displayed."; + } + } + output { + container required-network-element { + leaf mountpoint-name { + type string; + description + "The name of the mountpoint"; + } + leaf status { + type string; + description + "Status: pre-provisoning, installed, end-of-life (Later enum)"; + } + leaf description { + type string; + description + "Device description"; + } + description + "An output object presenting a network element (or device, NetConf + server, network function) which is expected to be connected."; + } + } + } + + rpc get-required-network-element-keys { + description + "Returns a list of netconf nodes for each data store space"; + output { + leaf-list mountpoint-names { + type string; + description + "List of required-network-element keys that are the mountpoint-names"; + } + } + } + + rpc clear-current-fault-by-nodename { + description + "try to clear alarms and sync the alarm with the devices currently connected"; + input { + leaf-list nodenames { + type string; + description + "list of network-elements to clear alarms for nodenames, if list empty then all"; + } + } + output { + leaf-list nodenames { + type string; + description + "list of network-elements alarms cleared"; + } + } + } + + rpc push-fault-notification { + description + "Forward fault problem notification of a network-element"; + input { + uses data-provider:object-change-reference; + uses data-provider:fault; + } + } + + rpc push-attribute-change-notification { + description + "Forward attribute change notification of a network-element"; + input { + uses data-provider:object-change-reference; + uses data-provider:attribute-change; + } + } +} |