diff options
author | Ravi Pendurty <ravi.pendurty@highstreet-technologies.com> | 2022-04-20 09:45:54 +0530 |
---|---|---|
committer | Ravi Pendurty <ravi.pendurty@highstreet-technologies.com> | 2022-04-20 09:47:33 +0530 |
commit | d3f6bbcb21f8549f857b0167a75d5b9014e4ab88 (patch) | |
tree | 6ef0698814d38d67c4feda250bf10acbba02f7cd /sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java | |
parent | 763fab14b1205be8582a1bb913bbd685cdf66278 (diff) |
Use DOM API for ORAN Devicemanager
All functions of Devicemanager are upgraded to use DOM API
Issue-ID: CCSDK-3636
Signed-off-by: Ravi Pendurty <ravi.pendurty@highstreet-technologies.com>
Change-Id: If8b401d513055e1167ed0824e596ffa3ad7bac2f
Signed-off-by: Ravi Pendurty <ravi.pendurty@highstreet-technologies.com>
Diffstat (limited to 'sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java')
15 files changed, 195 insertions, 1561 deletions
diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/ComponentHelper.java b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/ComponentHelper.java deleted file mode 100644 index 64cdd5f80..000000000 --- a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/ComponentHelper.java +++ /dev/null @@ -1,179 +0,0 @@ -/* - * ============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.oran.impl.binding; - -import java.util.Arrays; -import java.util.List; -import java.util.Scanner; -import java.util.stream.Collectors; -import java.util.stream.IntStream; -import org.json.JSONArray; -import org.json.JSONObject; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.iana.hardware.rev180313.Fan; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.iana.hardware.rev180313.HardwareClass; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.iana.hardware.rev180313.Port; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.iana.hardware.rev180313.Sensor; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.hardware.rev180313.AdminState; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.hardware.rev180313.OperState; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.hardware.rev180313.SensorStatus; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.hardware.rev180313.SensorValue; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.hardware.rev180313.SensorValueType; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.hardware.rev180313.hardware.Component; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.hardware.rev180313.hardware.ComponentBuilder; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.hardware.rev180313.hardware.component.SensorData; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.hardware.rev180313.hardware.component.SensorDataBuilder; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.hardware.rev180313.hardware.component.State; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.hardware.rev180313.hardware.component.StateBuilder; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.DateAndTime; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid; - -public class ComponentHelper { - - public static Component get(String name, String dateTimeString) { - DateAndTime dateTime = new DateAndTime(dateTimeString); - Uuid uuid = new Uuid("0Aabcdef-0abc-0cfD-0abC-0123456789AB"); - - ComponentBuilder componentBuilder = new ComponentBuilder(); - componentBuilder.setParent("Shelf").setName("Slot-0").setParentRelPos(0); - componentBuilder.setUuid(uuid); - componentBuilder.setContainsChild(Arrays.asList("Card-01A", "Card-01B")); - componentBuilder.setDescription("ORAN Network Element NO-456"); - componentBuilder.setXmlClass(TestHardwareClass.class); - componentBuilder.setMfgName("Nokia"); - componentBuilder.setMfgDate(dateTime); - return componentBuilder.build(); - } - - public static List<Component> getComponentList(String resourceName) { - try (Scanner scanner = new Scanner(ComponentHelper.class.getResourceAsStream(resourceName), "UTF-8")) { - String jsonString = scanner.useDelimiter("\\A").next(); - JSONObject jsonHardware = new JSONObject(jsonString).getJSONObject("hardware"); - JSONArray jsonComponentArray = jsonHardware.getJSONArray("component"); - return IntStream.range(0, jsonComponentArray.length()) - .mapToObj(idx -> ComponentHelper.get(jsonComponentArray.getJSONObject(idx))) - .collect(Collectors.toList()); - } - } - - public static Component get(JSONObject jsonComponent) { - ComponentBuilder componentBuilder = new ComponentBuilder(); - componentBuilder.setName(getString(jsonComponent, "name")); - componentBuilder.setParent(getString(jsonComponent, "parent")); - componentBuilder.setParentRelPos(getInteger(jsonComponent, "parent-rel-pos")); - componentBuilder.setAlias(getString(jsonComponent, "alias")); - componentBuilder.setXmlClass(getXmlClass(jsonComponent, "class")); - componentBuilder.setState(getState(jsonComponent, "state")); - componentBuilder.setDescription(getString(jsonComponent, "description")); - componentBuilder.setContainsChild(getStringArray(jsonComponent, "contains-child")); - componentBuilder.setSensorData(getSensorData(jsonComponent, "sensor-data")); - componentBuilder.setFirmwareRev(getString(jsonComponent, "firmware-rev")); - componentBuilder.setSerialNum(getString(jsonComponent, "serial-num")); - componentBuilder.setSoftwareRev(getString(jsonComponent, "software-rev")); - return componentBuilder.build(); - } - - // Private - - private static State getState(JSONObject jsonComponent, String key) { - if (jsonComponent.has(key)) { - JSONObject jsonState = jsonComponent.getJSONObject(key); - StateBuilder stateBuilder = new StateBuilder(); - stateBuilder.setOperState(getString(jsonState, "oper-state", value -> OperState.forName(value)).get()); - stateBuilder.setAdminState(getString(jsonState, "admin-state", value -> AdminState.forName(value)).get()); - return stateBuilder.build(); - } - return null; - } - - private static SensorData getSensorData(JSONObject jsonComponent, String key) { - if (jsonComponent.has(key)) { - JSONObject jsonSonsor = jsonComponent.getJSONObject(key); - SensorDataBuilder sensorBuilder = new SensorDataBuilder(); - sensorBuilder.setValueTimestamp(getString(jsonSonsor, "value-timestamp", value -> new DateAndTime(value))); - sensorBuilder.setValue(getInteger(jsonSonsor, "value", value -> new SensorValue(value))); - sensorBuilder - .setValueType(getString(jsonSonsor, "value-type", value -> SensorValueType.forName(value).get())); - sensorBuilder - .setOperStatus(getString(jsonSonsor, "oper-status", value -> SensorStatus.forName(value).get())); - return sensorBuilder.build(); - } - return null; - } - - // Get data types - private static Class<? extends HardwareClass> getXmlClass(JSONObject jsonComponent, String key) { - return getString(jsonComponent, key, value -> { - switch (value) { - case "iana-hardware:sensor": - return Sensor.class; - case "iana-hardware:port": - return Port.class; - case "iana-hardware:fan": - return Fan.class; - default: - return HardwareClass.class; - } - }); - } - - private static String getString(JSONObject jsonObject, String key) { - return getString(jsonObject, key, value -> value); - } - - private static Integer getInteger(JSONObject jsonObject, String key) { - return getInteger(jsonObject, key, value -> value); - } - - private interface ConvertString<T> { - T convert(String value); - } - - private static <T> T getString(JSONObject jsonObject, String key, ConvertString<T> convert) { - if (jsonObject.has(key)) { - String value = jsonObject.getString(key); - return convert.convert(value); - } - return null; - } - - private interface ConvertInteger<T> { - T convert(int value); - } - - private static <T> T getInteger(JSONObject jsonObject, String key, ConvertInteger<T> convert) { - if (jsonObject.has(key)) { - int value = jsonObject.getInt(key); - return convert.convert(value); - } - return null; - } - - private static List<String> getStringArray(JSONObject jsonComponent, String key) { - if (jsonComponent.has(key)) { - JSONArray stringArray = jsonComponent.getJSONArray(key); - return IntStream.range(0, stringArray.length()).mapToObj(idx -> stringArray.getString(idx)) - .collect(Collectors.toList()); - } - return null; - } - -} diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/TestAlarmNotif.java b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/TestAlarmNotif.java deleted file mode 100644 index 883271d4c..000000000 --- a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/TestAlarmNotif.java +++ /dev/null @@ -1,88 +0,0 @@ -/* - * ============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.oran.impl.binding; - -import java.util.Map; -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.o.ran.fm._1._0.rev190204.AlarmNotif; -import org.opendaylight.yang.gen.v1.urn.o.ran.fm._1._0.rev190204.alarm.AffectedObjects; -import org.opendaylight.yang.gen.v1.urn.o.ran.fm._1._0.rev190204.alarm.AffectedObjectsKey; -import org.opendaylight.yangtools.yang.binding.Augmentation; -import org.opendaylight.yangtools.yang.common.Uint16; - -public class TestAlarmNotif implements AlarmNotif { - - private static final Uint16 FAULT_ID = Uint16.valueOf(123); - - @Override - public <A extends Augmentation<AlarmNotif>> @Nullable A augmentation(Class<A> augmentationType) { - return null; - } - - @Override - public @Nullable Uint16 getFaultId() { - return FAULT_ID; - } - - @Override - public @Nullable String getFaultSource() { - return "ORAN-RU-FH"; - } - - @Override - public @Nullable Map<AffectedObjectsKey, AffectedObjects> getAffectedObjects() { - return null; - } - - @Override - public @Nullable FaultSeverity getFaultSeverity() { - return FaultSeverity.CRITICAL; - } - - public @Nullable Boolean isIsCleared() { - return true; - } - - @Override - public @Nullable String getFaultText() { - return "CPRI Port Down"; - } - - @Override - public @Nullable DateAndTime getEventTime() { - return new DateAndTime("2021-03-23T18:19:42.326144Z"); - } - - @Override - public @NonNull Map<Class<? extends Augmentation<AlarmNotif>>, Augmentation<AlarmNotif>> augmentations() { - // TODO Auto-generated method stub - return null; - } - - @Override - public Boolean getIsCleared() { - return true; - } - -} diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/TestHardwareClass.java b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/TestHardwareClass.java deleted file mode 100644 index 753e6c97f..000000000 --- a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/TestHardwareClass.java +++ /dev/null @@ -1,24 +0,0 @@ -/* - * ============LICENSE_START======================================================================== - * ONAP : ccsdk feature sdnr wt - * ================================================================================================= - * 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.oran.impl.binding; - -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.iana.hardware.rev180313.HardwareClass; - -public interface TestHardwareClass extends HardwareClass { - -} diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/TestORanChangeNotificationListener.java b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/TestORanChangeNotificationListener.java deleted file mode 100644 index d8ea2664f..000000000 --- a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/TestORanChangeNotificationListener.java +++ /dev/null @@ -1,111 +0,0 @@ -/* - * ============LICENSE_START======================================================================== - * ONAP : ccsdk feature sdnr wt - * ================================================================================================= - * 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.oran.impl.binding; - -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; -import java.time.Instant; -import java.util.Arrays; -import java.util.List; -import org.eclipse.jdt.annotation.NonNull; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.Mock; -import org.mockito.junit.MockitoJUnitRunner; -import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.DataProvider; -import org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.impl.binding.ORanChangeNotificationListener; -import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.DeviceManagerServiceProvider; -import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.NotificationProxyParser; -import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.VESCollectorCfgService; -import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.VESCollectorService; -import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfBindingAccessor; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.netconf.base._1._0.rev110601.EditOperationType; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.notifications.rev120206.NetconfConfigChange; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.notifications.rev120206.netconf.config.change.Edit; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.notifications.rev120206.netconf.config.change.EditBuilder; -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; -import org.opendaylight.yangtools.yang.binding.DataObject; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier.PathArgument; - -@RunWith(MockitoJUnitRunner.class) -public class TestORanChangeNotificationListener { - - private static final String NODEID = "node1"; - - @Mock - DeviceManagerServiceProvider serviceProvider; - @Mock - NetconfBindingAccessor netconfAccessor; - @Mock - DataProvider databaseService; - @Mock - VESCollectorService vesCollectorService; - @Mock - VESCollectorCfgService vesCfgService; - @Mock - NotificationProxyParser notifProxyParser; - @Mock - static NetconfConfigChange change; - - @Test - public void test() { - - when(vesCollectorService.getConfig()).thenReturn(vesCfgService); - when(netconfAccessor.getNodeId()).thenReturn(new NodeId(NODEID)); - when(vesCfgService.isVESCollectorEnabled()).thenReturn(true); - when(serviceProvider.getDataProvider()).thenReturn(databaseService); - when(serviceProvider.getVESCollectorService()).thenReturn(vesCollectorService); - when(vesCollectorService.getNotificationProxyParser()).thenReturn(notifProxyParser); - - ORanChangeNotificationListener notifListener = - new ORanChangeNotificationListener(netconfAccessor, serviceProvider); - - Iterable<? extends PathArgument> pathArguments = Arrays.asList(new PathArgument() { - - @Override - public int compareTo(PathArgument arg0) { - return 0; - } - - @Override - public Class<? extends DataObject> getType() { - return DataObject.class; - } - }); - InstanceIdentifier<?> target = InstanceIdentifier.create(pathArguments); - NetconfConfigChange confChangeNotification = createNotification(EditOperationType.Create, target); - when(notifProxyParser.getTime(confChangeNotification)).thenReturn(Instant.now()); - notifListener.onNetconfConfigChange(confChangeNotification); - verify(databaseService).writeEventLog(any(EventlogEntity.class)); - } - - /** - * @param type - * @return - */ - private static NetconfConfigChange createNotification(EditOperationType type, InstanceIdentifier<?> target) { - @SuppressWarnings("null") - final @NonNull List<Edit> edits = Arrays.asList(new EditBuilder().setOperation(type).setTarget(target).build()); - when(change.nonnullEdit()).thenReturn(edits); - return change; - } -} diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/TestORanFaultNotificationListener.java b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/TestORanFaultNotificationListener.java deleted file mode 100644 index e26af989e..000000000 --- a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/TestORanFaultNotificationListener.java +++ /dev/null @@ -1,115 +0,0 @@ -/* - * ============LICENSE_START======================================================================== - * ONAP : ccsdk feature sdnr wt - * ================================================================================================= - * 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.oran.impl.binding; - -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; -import com.google.common.io.Files; -import java.io.File; -import java.io.IOException; -import java.nio.charset.StandardCharsets; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.Mock; -import org.mockito.junit.MockitoJUnitRunner; -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.devicemanager.oran.impl.binding.ORanFaultNotificationListener; -import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.DeviceManagerServiceProvider; -import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.FaultService; -import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.VESCollectorService; -import org.onap.ccsdk.features.sdnr.wt.devicemanager.vescollectorconnector.impl.VESCollectorServiceImpl; -import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfBindingAccessor; -import org.onap.ccsdk.features.sdnr.wt.websocketmanager.model.WebsocketManagerService; -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.FaultlogEntity; -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; -import org.slf4j.LoggerFactory; - -@RunWith(MockitoJUnitRunner.class) -public class TestORanFaultNotificationListener { - - private static final Logger LOG = LoggerFactory.getLogger(TestORanFaultNotificationListener.class); - private static final String TESTFILENAME = "configFile.txt"; - - // @formatter:off - private static final String TESTCONFIG_CONTENT = "[VESCollector]\n" - + "VES_COLLECTOR_ENABLED=true\n" - + "VES_COLLECTOR_TLS_ENABLED=true\n" - + "VES_COLLECTOR_TRUST_ALL_CERTS=true\n" - + "VES_COLLECTOR_USERNAME=sample1\n" - + "VES_COLLECTOR_PASSWORD=sample1\n" - + "VES_COLLECTOR_IP=[2001:db8:1:1::1]\n" - + "VES_COLLECTOR_PORT=8443\n" - + "VES_COLLECTOR_VERSION=v7\n" - + "REPORTING_ENTITY_NAME=ONAP SDN-R\n" - + "EVENTLOG_MSG_DETAIL=SHORT\n" - + ""; - // @formatter:on - - @Mock NetconfBindingAccessor bindingAccessor; - @Mock DataProvider dataProvider; - @Mock FaultService faultService; - @Mock DeviceManagerServiceProvider serviceProvider; - @Mock WebsocketManagerService websocketManagerService; - @Mock DataProvider databaseService; - VESCollectorService vesCollectorService; - - @After - @Before - public void afterAndBefore() { - File f = new File(TESTFILENAME); - if (f.exists()) { - LOG.info("Remove {}", f.getAbsolutePath()); - f.delete(); - } - } - - @Test - public void test() throws IOException { - Files.asCharSink(new File(TESTFILENAME), StandardCharsets.UTF_8).write(TESTCONFIG_CONTENT); - vesCollectorService = - new VESCollectorServiceImpl(new ConfigurationFileRepresentation(TESTFILENAME)); - when(bindingAccessor.getNodeId()).thenReturn(new NodeId("nSky")); - ORanFaultNotificationListener faultListener = new ORanFaultNotificationListener(bindingAccessor, - vesCollectorService, faultService, websocketManagerService, databaseService); - faultListener.onAlarmNotif(new TestAlarmNotif()); - - verify(faultService).faultNotification(getFaultLog()); - } - - private FaultlogEntity getFaultLog() { - FaultlogBuilder faultAlarm = new FaultlogBuilder(); - faultAlarm.setNodeId("nSky"); - faultAlarm.setObjectId("ORAN-RU-FH"); - faultAlarm.setProblem("CPRI Port Down"); - faultAlarm.setSeverity(SeverityType.NonAlarmed); - faultAlarm.setCounter(1); - faultAlarm.setId("123"); - faultAlarm.setSourceType(SourceType.Netconf); - faultAlarm.setTimestamp(new DateAndTime("2021-03-23T18:19:42.326144Z")); - return faultAlarm.build(); - } - -} diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/TestORanNetworkElement.java b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/TestORanNetworkElement.java deleted file mode 100644 index 3de211013..000000000 --- a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/TestORanNetworkElement.java +++ /dev/null @@ -1,115 +0,0 @@ -/* - * ============LICENSE_START======================================================================== - * ONAP : ccsdk feature sdnr wt - * ================================================================================================= - * 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.oran.impl.binding; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when; -import java.io.IOException; -import java.util.Optional; -import org.eclipse.jdt.annotation.NonNull; -import org.junit.BeforeClass; -import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.DataProvider; -import org.onap.ccsdk.features.sdnr.wt.devicemanager.ne.service.NetworkElement; -import org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.impl.startup.ORanNetworkElementFactory; -import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.DeviceManagerServiceProvider; -import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.FaultService; -import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.NotificationProxyParser; -import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.VESCollectorCfgService; -import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.VESCollectorService; -import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.Capabilities; -import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfAccessor; -import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfBindingAccessor; -import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfDomAccessor; -import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.TransactionUtils; -import org.onap.ccsdk.features.sdnr.wt.websocketmanager.model.WebsocketManagerService; -import org.opendaylight.yang.gen.v1.urn.o.ran.hardware._1._0.rev190328.ORANHWCOMPONENT; -import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId; -import org.opendaylight.yangtools.yang.common.QName; - -public class TestORanNetworkElement { - - private static final QName OneCell = - QName.create("urn:onf:otcc:wireless:yang:radio-access:commscope-onecell", "2020-06-22", "onecell").intern(); - private static final @NonNull QName OnapSystem = QName.create("urn:onap:system", "2020-10-26", "onap-system").intern(); - private static String NODEIDSTRING = "nSky"; - private static NodeId nodeId = new NodeId(NODEIDSTRING); - - private static NetconfAccessor accessor; - private static DeviceManagerServiceProvider serviceProvider; - private static Capabilities capabilities; - private static TransactionUtils transactionUtils; - private static NetconfBindingAccessor bindingAccessor; - private static NetconfDomAccessor domAccessor; - private static VESCollectorService vesCollectorService; - private static NotificationProxyParser notificationProxyParser; - private static VESCollectorCfgService vesCfgService; - private static WebsocketManagerService websocketManagerService; - - @BeforeClass - public static void init() throws InterruptedException, IOException { - capabilities = mock(Capabilities.class); - accessor = mock(NetconfAccessor.class); - serviceProvider = mock(DeviceManagerServiceProvider.class); - transactionUtils = mock(TransactionUtils.class); - bindingAccessor = mock(NetconfBindingAccessor.class); - domAccessor = mock(NetconfDomAccessor.class); - vesCollectorService = mock(VESCollectorService.class); - notificationProxyParser = mock(NotificationProxyParser.class); - vesCfgService = mock(VESCollectorCfgService.class); - websocketManagerService = mock(WebsocketManagerService.class); - - when(accessor.getCapabilites()).thenReturn(capabilities); - when(accessor.getNodeId()).thenReturn(nodeId); - when(accessor.getNetconfBindingAccessor()).thenReturn(Optional.of(bindingAccessor)); - when(accessor.getNetconfDomAccessor()).thenReturn(Optional.of(domAccessor)); - when(bindingAccessor.getCapabilites()).thenReturn(capabilities); - when(bindingAccessor.getTransactionUtils()).thenReturn(transactionUtils); - when(bindingAccessor.getNodeId()).thenReturn(nodeId); - when(vesCollectorService.getNotificationProxyParser()).thenReturn(notificationProxyParser); - - DataProvider dataProvider = mock(DataProvider.class); - FaultService faultService = mock(FaultService.class); - when(serviceProvider.getWebsocketService()).thenReturn(websocketManagerService); - when(serviceProvider.getFaultService()).thenReturn(faultService); - when(serviceProvider.getDataProvider()).thenReturn(dataProvider); - when(serviceProvider.getVESCollectorService()).thenReturn(vesCollectorService); - when(vesCollectorService.getConfig()).thenReturn(vesCfgService); - when(vesCfgService.isVESCollectorEnabled()).thenReturn(true); - - } - - //@Test - public void test() { - Optional<NetworkElement> oRanNe; - when(capabilities.isSupportingNamespace(ORANHWCOMPONENT.QNAME)).thenReturn(true); - when(capabilities.isSupportingNamespace(OneCell)).thenReturn(false); - when(capabilities.isSupportingNamespace(OnapSystem)).thenReturn(false); - - ORanNetworkElementFactory factory = new ORanNetworkElementFactory(); - oRanNe = factory.create(accessor, serviceProvider); - assertTrue(factory.create(accessor, serviceProvider).isPresent()); - oRanNe.get().register(); - oRanNe.get().deregister(); - oRanNe.get().getAcessor(); - oRanNe.get().getDeviceType(); - assertEquals(oRanNe.get().getNodeId().getValue(), "nSky"); - } - - } diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/TestORanToInternalDataModel.java b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/TestORanToInternalDataModel.java deleted file mode 100644 index a4470d335..000000000 --- a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/binding/TestORanToInternalDataModel.java +++ /dev/null @@ -1,96 +0,0 @@ -/* - * ============LICENSE_START======================================================================== - * ONAP : ccsdk feature sdnr wt - * ================================================================================================= - * 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.oran.impl.binding; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import java.io.IOException; -import java.util.List; -import java.util.Optional; -import java.util.function.IntConsumer; -import java.util.stream.IntStream; -import org.eclipse.jdt.annotation.Nullable; -import org.junit.Test; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.hardware.rev180313.hardware.Component; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.Inventory; -import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId; -import org.opendaylight.yangtools.yang.common.Uint32; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class TestORanToInternalDataModel { - - private static final Logger LOG = LoggerFactory.getLogger(TestORanToInternalDataModel.class); - - NodeId nodeId = new NodeId("ORan-1000"); - - @Test - public void testInventory() { - String dateTimeString = "2020-02-05T12:30:45.283Z"; - String name = "Slot-0"; - - Component testComponent = ComponentHelper.get(name, dateTimeString); - Optional<Inventory> oInventory = ORanToInternalDataModel.getInternalEquipment(nodeId, testComponent, 0); - - assertTrue(oInventory.isPresent()); - Inventory inventory = oInventory.get(); - assertEquals(name, inventory.getUuid()); - assertEquals(dateTimeString, inventory.getDate()); - assertEquals(nodeId.getValue(), inventory.getNodeId()); - } - - @Test - public void testInventoryList() throws IOException, ClassNotFoundException { - List<Component> componentList = ComponentHelper.getComponentList("/Device-ietf-hardware-Output.json"); - List<Inventory> inventoryList = ORanToInternalDataModel.getInventoryList(nodeId, componentList); - //componentList.forEach(System.out::println); - assertEquals("All elements", 27, inventoryList.size()); - assertEquals("Fully parseable", componentList.size(), inventoryList.size()); - assertEquals("Treelevel always there", 0, - inventoryList.stream().filter(inventory -> inventory.getTreeLevel() == null).count()); - listAsTree(inventoryList); - } - - private void listAsTree(List<Inventory> inventoryList) { - //Walk through complete list and print parameters - IntConsumer action = level -> IntStream.range(0, inventoryList.size()) - .filter(idx -> inventoryList.get(idx).getTreeLevel().intValue() == level) - .forEach(idx2 -> printElements(idx2, level, inventoryList.get(idx2))); - //Walk trough 10 levels - IntStream.range(0, 10) - .forEach(action); - } - - private void printElements(int idx2, int level, Inventory inventory) { - System.out.println(level + ": " + inventory.getParentUuid() + " " - + inventory.getUuid()); - } - - @SuppressWarnings("unused") - private boolean compareLevel(int idx, List<Component> componentList, List<Inventory> inventoryList) { - @Nullable - Integer relPos = componentList.get(idx).getParentRelPos(); - @Nullable - Uint32 treeLevel = inventoryList.get(idx).getTreeLevel(); - LOG.warn("Treelevel relPos: {} treeLevel: {}", relPos, treeLevel); - if (relPos != null && treeLevel != null) { - return relPos == treeLevel.intValue(); - } - return false; - } -} diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/TestDeviceManagerORanImpl.java b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/TestDeviceManagerORanImpl.java index f3932bc41..bcec4a4d6 100644 --- a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/TestDeviceManagerORanImpl.java +++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/TestDeviceManagerORanImpl.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================================== * ONAP : ccsdk feature sdnr wt * ================================================================================================= - * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property. All rights reserved. + * Copyright (C) 2022 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 @@ -22,7 +22,6 @@ import java.io.IOException; import org.junit.After; import org.junit.Before; import org.junit.Test; -import org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.impl.binding.DeviceManagerORanImpl; import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.NetconfNetworkElementService; public class TestDeviceManagerORanImpl { diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/TestORANInventory.java b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/TestORANInventory.java deleted file mode 100644 index 337996a3d..000000000 --- a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/TestORANInventory.java +++ /dev/null @@ -1,250 +0,0 @@ -/* - * ============LICENSE_START======================================================= - * ONAP : ccsdk features - * ================================================================================ - * Copyright (C) 2021 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.oran.impl.dom; - -import java.io.IOException; -import java.io.InputStream; -import java.net.URISyntaxException; -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; -import java.util.Objects; -import java.util.Optional; -import javax.xml.stream.XMLStreamException; -import javax.xml.stream.XMLStreamReader; - -import org.eclipse.jdt.annotation.NonNull; -import org.eclipse.jdt.annotation.Nullable; -import org.junit.AfterClass; -import org.junit.BeforeClass; -import org.junit.Test; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.Inventory; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.InventoryBuilder; -import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId; -import org.opendaylight.yangtools.util.xml.UntrustedXML; -import org.opendaylight.yangtools.yang.binding.CodeHelpers; -import org.opendaylight.yangtools.yang.common.QName; -import org.opendaylight.yangtools.yang.common.QNameModule; -import org.opendaylight.yangtools.yang.common.Revision; -import org.opendaylight.yangtools.yang.common.Uint32; -import org.opendaylight.yangtools.yang.common.XMLNamespace; -import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier; -import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode; -import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode; -import org.opendaylight.yangtools.yang.data.api.schema.MapNode; -import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; -import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter; -import org.opendaylight.yangtools.yang.data.codec.xml.XmlParserStream; -import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNormalizedNodeStreamWriter; -import org.opendaylight.yangtools.yang.data.impl.schema.NormalizedNodeResult; -import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; -import org.opendaylight.yangtools.yang.model.util.SchemaInferenceStack.Inference; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.xml.sax.SAXException; - -public class TestORANInventory { - - private static final Logger LOG = LoggerFactory.getLogger(TestORANInventory.class); - private static final QNameModule IETF_HARDWARE_MODULE = QNameModule - .create(XMLNamespace.of("urn:ietf:params:xml:ns:yang:ietf-hardware"), Revision.of("2018-03-13")); - private static final QName HW_CONTAINER = QName.create(IETF_HARDWARE_MODULE, "hardware"); - private static final QName HW_COMPONENT_LIST = QName.create(IETF_HARDWARE_MODULE, "component"); - private static final QName HW_COMPONENT_LIST_KEY = QName.create(IETF_HARDWARE_MODULE, "name"); - private static final QName HW_COMPONENT_LIST_CLASS = QName.create(IETF_HARDWARE_MODULE, "class"); - private static final QName HW_COMPONENT_LIST_DESC = QName.create(IETF_HARDWARE_MODULE, "description"); // leaf:String - private static final QName HW_COMPONENT_LIST_PARENT = QName.create(IETF_HARDWARE_MODULE, "parent"); // leaf:leafref - private static final QName HW_COMPONENT_LIST_CONTAINS_CHILD = QName.create(IETF_HARDWARE_MODULE, "contains-child"); // leaf-list:leafref - private static final QName HW_COMPONENT_LIST_HW_REV = QName.create(IETF_HARDWARE_MODULE, "hardware-rev"); // leaf:String - private static final QName HW_COMPONENT_LIST_SER_NUM = QName.create(IETF_HARDWARE_MODULE, "serial-num"); // leaf:String - private static final QName HW_COMPONENT_LIST_MFG_NAME = QName.create(IETF_HARDWARE_MODULE, "mfg-name"); // leaf:String - private static final QName HW_COMPONENT_LIST_MODEL_NAME = QName.create(IETF_HARDWARE_MODULE, "model-name"); // leaf:String - private static final QName HW_COMPONENT_LIST_MFG_DATE = QName.create(IETF_HARDWARE_MODULE, "mfg-date"); // leaf:yang:date-and-time - - private static EffectiveModelContext schemaContext; - private static @NonNull Inference hwContainerSchema; - - @BeforeClass - public static void setup() throws IOException { - schemaContext = YangParserTestUtils.parseYangResourceDirectory("/"); - hwContainerSchema = Inference.ofDataTreePath(schemaContext, HW_CONTAINER); - System.out.println("URL is - " + TestORANReadHardware.class.getResource("/")); - } - - @AfterClass - public static void cleanup() { - schemaContext = null; - hwContainerSchema = null; - } - - @Test - public void testIetfHardwareFromXML() throws XMLStreamException, URISyntaxException, IOException, SAXException { - - final InputStream resourceAsStream = TestORANReadHardware.class.getResourceAsStream("/ietf-hardware.xml"); - - /* - * final XMLInputFactory factory = XMLInputFactory.newInstance(); - * XMLStreamReader reader = factory.createXMLStreamReader(resourceAsStream); - */ - final XMLStreamReader reader = UntrustedXML.createXMLStreamReader(resourceAsStream); - - final NormalizedNodeResult result = new NormalizedNodeResult(); - final NormalizedNodeStreamWriter streamWriter = ImmutableNormalizedNodeStreamWriter.from(result); - - final XmlParserStream xmlParser = XmlParserStream.create(streamWriter, hwContainerSchema); - xmlParser.parse(reader); - - xmlParser.flush(); - xmlParser.close(); - - NormalizedNode transformedInput = result.getResult(); - NodeId nodeId = new NodeId("nSky"); - getInventoryList(nodeId, transformedInput); - } - - public static List<Inventory> getInventoryList(NodeId nodeId, NormalizedNode hwData) { - - List<Inventory> inventoryResultList = new ArrayList<Inventory>(); - ContainerNode hwContainer = (ContainerNode) hwData; - MapNode componentMap = (MapNode) hwContainer.getChildByArg(new NodeIdentifier(HW_COMPONENT_LIST)); - Collection<MapEntryNode> componentMapEntries = componentMap.body(); - - for (MapEntryNode componentMapEntryNode : getRootComponents(componentMapEntries)) { - inventoryResultList = recurseGetInventory(nodeId, componentMapEntryNode, componentMapEntries, 0, - inventoryResultList); - } - // Verify if result is complete - if (componentMapEntries.size() != inventoryResultList.size()) { - LOG.warn( - "Not all data were written to the Inventory. Potential entries with missing " - + "contained-child. Node Id = {}, Components Found = {}, Entries written to Database = {}", - nodeId.getValue(), componentMapEntries.size(), inventoryResultList.size()); - } - return inventoryResultList; - } - - private static List<Inventory> recurseGetInventory(NodeId nodeId, MapEntryNode component, - Collection<MapEntryNode> componentList, int treeLevel, List<Inventory> inventoryResultList) { - LOG.info("Tree level = {}", treeLevel); - // Add element to list, if conversion successfull - Optional<Inventory> oInventory = getInternalEquipment(nodeId, component, treeLevel); - if (oInventory.isPresent()) { - inventoryResultList.add(oInventory.get()); - } - // Walk through list of child keys and add to list - for (String childUuid : CodeHelpers - .nonnull(ORanDMDOMUtility.getLeafListValue(component, HW_COMPONENT_LIST_CONTAINS_CHILD))) { - LOG.info("Calling recursively- component is {}", childUuid); - for (MapEntryNode c : getComponentsByName(childUuid, componentList)) { - inventoryResultList = recurseGetInventory(nodeId, c, componentList, treeLevel + 1, inventoryResultList); - } - } - return inventoryResultList; - } - - public static List<MapEntryNode> getRootComponents(Collection<MapEntryNode> componentMapEntries) { - List<MapEntryNode> resultList = new ArrayList<>(); - for (MapEntryNode componentMapEntryNode : componentMapEntries) { - if (ORanDMDOMUtility.getLeafValue(componentMapEntryNode, HW_COMPONENT_LIST_PARENT) == null) { // Root - // elements - // do not - // have a - // parent - resultList.add(componentMapEntryNode); - } - } - return resultList; - } - - private static List<MapEntryNode> getComponentsByName(String name, Collection<MapEntryNode> componentList) { - List<MapEntryNode> resultList = new ArrayList<>(); - for (MapEntryNode c : componentList) { - if (name.equals(ORanDMDOMUtility.getKeyValue(c))) { // <-- Component list is flat search for child's of name - resultList.add(c); - } - } - return resultList; - } - - public static Optional<Inventory> getInternalEquipment(NodeId nodeId, MapEntryNode component, int treeLevel) { - - // Make sure that expected data are not null - Objects.requireNonNull(nodeId); - Objects.requireNonNull(component); - - // Read manadatory data - - @Nullable - String nodeIdString = nodeId.getValue(); - @Nullable - String uuid = ORanDMDOMUtility.getKeyValue(component); - @Nullable - String idParent = ORanDMDOMUtility.getLeafValue(component, HW_COMPONENT_LIST_PARENT); - @Nullable - String uuidParent = idParent != null ? idParent : uuid; // <- Passt nicht - LOG.info("Dump = {}, {}, {}, {}", uuidParent, uuid, treeLevel, nodeIdString); - // do consistency check if all mandatory parameters are there - if (treeLevel >= 0 && nodeIdString != null && uuid != null && uuidParent != null) { - LOG.info("Creating new instance of Inventory"); - // Build output data - - InventoryBuilder inventoryBuilder = new InventoryBuilder(); - - // General assumed as mandatory - inventoryBuilder.setNodeId(nodeIdString); - inventoryBuilder.setUuid(uuid); - inventoryBuilder.setParentUuid(uuidParent); - inventoryBuilder.setTreeLevel(Uint32.valueOf(treeLevel)); - - // -- String list with ids of holders (optional) - inventoryBuilder - .setContainedHolder(ORanDMDOMUtility.getLeafListValue(component, HW_COMPONENT_LIST_CONTAINS_CHILD)); - - // -- Manufacturer related things (optional) - @Nullable - String mfgName = ORanDMDOMUtility.getLeafValue(component, HW_COMPONENT_LIST_MFG_NAME); - inventoryBuilder.setManufacturerName(mfgName); - inventoryBuilder.setManufacturerIdentifier(mfgName); - - // Equipment type (optional) - inventoryBuilder.setDescription(ORanDMDOMUtility.getLeafValue(component, HW_COMPONENT_LIST_DESC)); - inventoryBuilder.setModelIdentifier(ORanDMDOMUtility.getLeafValue(component, HW_COMPONENT_LIST_MODEL_NAME)); - - inventoryBuilder.setPartTypeId(ORanDMDOMUtility.getLeafValue(component, HW_COMPONENT_LIST_CLASS)); - - inventoryBuilder.setTypeName(ORanDMDOMUtility.getKeyValue(component)); - inventoryBuilder.setVersion(ORanDMDOMUtility.getLeafValue(component, HW_COMPONENT_LIST_HW_REV)); - - // Equipment instance (optional) - @Nullable - String mfgDate = ORanDMDOMUtility.getLeafValue(component, HW_COMPONENT_LIST_MFG_DATE); - if (mfgDate != null) { - inventoryBuilder.setDate(mfgDate); - } - inventoryBuilder.setSerial(ORanDMDOMUtility.getLeafValue(component, HW_COMPONENT_LIST_SER_NUM)); - - return Optional.of(inventoryBuilder.build()); - } - return Optional.empty(); - } - -} diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/TestORANReadHardware.java b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/TestORANReadHardware.java deleted file mode 100644 index b2da8e61f..000000000 --- a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/TestORANReadHardware.java +++ /dev/null @@ -1,383 +0,0 @@ -/* - * ============LICENSE_START======================================================= - * ONAP : ccsdk features - * ================================================================================ - * Copyright (C) 2021 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.oran.impl.dom; - -import com.google.common.base.VerifyException; -import com.google.common.collect.ImmutableList; -import java.io.IOException; -import java.io.InputStream; -import java.net.URI; -import java.net.URISyntaxException; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Iterator; -import java.util.List; -import java.util.NoSuchElementException; -import java.util.Optional; -import javax.xml.stream.XMLStreamException; -import javax.xml.stream.XMLStreamReader; -import org.junit.AfterClass; -import org.junit.BeforeClass; -import org.junit.Test; -import org.opendaylight.yangtools.util.xml.UntrustedXML; -import org.opendaylight.yangtools.yang.binding.CodeHelpers; -import org.opendaylight.yangtools.yang.common.QName; -import org.opendaylight.yangtools.yang.common.QNameModule; -import org.opendaylight.yangtools.yang.common.Revision; -import org.opendaylight.yangtools.yang.common.XMLNamespace; -import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier; -import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates; -import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument; -import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode; -import org.opendaylight.yangtools.yang.data.api.schema.DataContainerChild; -import org.opendaylight.yangtools.yang.data.api.schema.DataContainerNode; -import org.opendaylight.yangtools.yang.data.api.schema.LeafNode; -import org.opendaylight.yangtools.yang.data.api.schema.LeafSetEntryNode; -import org.opendaylight.yangtools.yang.data.api.schema.LeafSetNode; -import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode; -import org.opendaylight.yangtools.yang.data.api.schema.MapNode; -import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; -import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter; -import org.opendaylight.yangtools.yang.data.codec.xml.XmlParserStream; -import org.opendaylight.yangtools.yang.data.impl.schema.Builders; -import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNormalizedNodeStreamWriter; -import org.opendaylight.yangtools.yang.data.impl.schema.NormalizedNodeResult; -import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode; -import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; -import org.opendaylight.yangtools.yang.model.util.SchemaContextUtil; -import org.opendaylight.yangtools.yang.model.util.SchemaInferenceStack.Inference; -//import org.opendaylight.yangtools.yang.model.util.SchemaInferenceStack.Inference; //Yangtool 8.0 -import org.xml.sax.SAXException; - -public class TestORANReadHardware { - - /* - * private static final QNameModule IETF_HARDWARE_MODULE = - * QNameModule.create(XMLNamespace.of( - * "urn:ietf:params:xml:ns:yang:ietf-hardware"), Revision.of("2018-03-13")); - */ // Applicable for Yangtools 8.0 - // private static final URI IETF_HARDWARE_URI = - // URI.create("urn:ietf:params:xml:ns:yang:ietf-hardware"); - private static final QNameModule IETF_HARDWARE_MODULE = QNameModule - .create(XMLNamespace.of("urn:ietf:params:xml:ns:yang:ietf-hardware"), Revision.of("2018-03-13")); - private static final QName HW_CONTAINER = QName.create(IETF_HARDWARE_MODULE, "hardware"); - private static final QName HW_COMPONENT_LIST = QName.create(IETF_HARDWARE_MODULE, "component"); - private static final QName HW_COMPONENT_LIST_KEY = QName.create(IETF_HARDWARE_MODULE, "name"); - private static final QName HW_COMPONENT_LIST_CLASS = QName.create(IETF_HARDWARE_MODULE, "class"); - private static final QName HW_COMPONENT_LIST_PHYSICAL_INDEX = QName.create(IETF_HARDWARE_MODULE, "physical-index"); // leaf:int32 - private static final QName HW_COMPONENT_LIST_DESC = QName.create(IETF_HARDWARE_MODULE, "description"); // leaf:String - private static final QName HW_COMPONENT_LIST_PARENT = QName.create(IETF_HARDWARE_MODULE, "parent"); // leaf:leafref - private static final QName HW_COMPONENT_LIST_PARENT_REL_POS = QName.create(IETF_HARDWARE_MODULE, "parent-rel-pos"); // leaf:int32 - private static final QName HW_COMPONENT_LIST_CONTAINS_CHILD = QName.create(IETF_HARDWARE_MODULE, "contains-child"); // leaf-list:leafref - private static final QName HW_COMPONENT_LIST_HW_REV = QName.create(IETF_HARDWARE_MODULE, "hardware-rev"); // leaf:String - private static final QName HW_COMPONENT_LIST_FW_REV = QName.create(IETF_HARDWARE_MODULE, "firmware-rev"); // leaf:String - private static final QName HW_COMPONENT_LIST_SW_REV = QName.create(IETF_HARDWARE_MODULE, "software-rev"); // leaf:String - private static final QName HW_COMPONENT_LIST_SER_NUM = QName.create(IETF_HARDWARE_MODULE, "serial-num"); // leaf:String - private static final QName HW_COMPONENT_LIST_MFG_NAME = QName.create(IETF_HARDWARE_MODULE, "mfg-name"); // leaf:String - private static final QName HW_COMPONENT_LIST_MODEL_NAME = QName.create(IETF_HARDWARE_MODULE, "model-name"); // leaf:String - private static final QName HW_COMPONENT_LIST_ALIAS = QName.create(IETF_HARDWARE_MODULE, "alias"); // leaf:String - private static final QName HW_COMPONENT_LIST_ASSET_ID = QName.create(IETF_HARDWARE_MODULE, "asset-id"); // leaf:String - private static final QName HW_COMPONENT_LIST_IS_FRU = QName.create(IETF_HARDWARE_MODULE, "is-fru"); // leaf:boolean - private static final QName HW_COMPONENT_LIST_MFG_DATE = QName.create(IETF_HARDWARE_MODULE, "mfg-date"); // leaf:yang:date-and-time - private static final QName HW_COMPONENT_LIST_URI = QName.create(IETF_HARDWARE_MODULE, "uri"); // leaf-list:inet:uri - private static final QName HW_COMPONENT_LIST_UUID = QName.create(IETF_HARDWARE_MODULE, "uuid"); // leaf:yang:uuid - private static final QName HW_COMPONENT_LIST_STATE = QName.create(IETF_HARDWARE_MODULE, "state"); // leaf:yang:uuid - private static final QName HW_COMPONENT_LIST_ADMIN_STATE = QName.create(IETF_HARDWARE_MODULE, "admin-state"); // leaf:yang:uuid - private static final QName HW_COMPONENT_LIST_OPER_STATE = QName.create(IETF_HARDWARE_MODULE, "oper-state"); // leaf:yang:uuid - - private static EffectiveModelContext schemaContext; - private static Inference hwContainerSchema; - - @BeforeClass - public static void setup() throws IOException { - schemaContext = YangParserTestUtils.parseYangResourceDirectory("/"); - hwContainerSchema = Inference.ofDataTreePath(schemaContext, HW_CONTAINER); - System.out.println("URL is - " + TestORANReadHardware.class.getResource("/")); - } - - @AfterClass - public static void cleanup() { - schemaContext = null; - hwContainerSchema = null; - } - - @Test - public void testIetfHardwareFromXML() throws XMLStreamException, URISyntaxException, IOException, SAXException { - - final InputStream resourceAsStream = TestORANReadHardware.class.getResourceAsStream("/ietf-hardware.xml"); - - /* - * final XMLInputFactory factory = XMLInputFactory.newInstance(); - * XMLStreamReader reader = factory.createXMLStreamReader(resourceAsStream); - */ - final XMLStreamReader reader = UntrustedXML.createXMLStreamReader(resourceAsStream); - - final NormalizedNodeResult result = new NormalizedNodeResult(); - final NormalizedNodeStreamWriter streamWriter = ImmutableNormalizedNodeStreamWriter.from(result); - - final XmlParserStream xmlParser = XmlParserStream.create(streamWriter, hwContainerSchema); - xmlParser.parse(reader); - - xmlParser.flush(); - xmlParser.close(); - - NormalizedNode transformedInput = result.getResult(); - System.out.println("Hardware Data = " + transformedInput); - - ContainerNode hwContainer = (ContainerNode) transformedInput; - MapNode containerMap = (MapNode) hwContainer.getChildByArg(new NodeIdentifier(HW_COMPONENT_LIST)); - Collection<MapEntryNode> containerMapEntries = containerMap.body(); - for (MapEntryNode mapEntryNode : containerMapEntries) { - NodeIdentifierWithPredicates componentKey = mapEntryNode.getIdentifier(); // list key - System.out.println("Key Name is - " + componentKey.keySet()); - System.out.println("Key Value is - " + componentKey.getValue(HW_COMPONENT_LIST_KEY)); - - LeafNode<?> classField = (LeafNode<?>) mapEntryNode - .getChildByArg(new NodeIdentifier(HW_COMPONENT_LIST_CLASS)); - System.out.println("Class = " + classField.getIdentifier().getNodeType().getLocalName() + " Value = " - + classField.body().toString()); - Object obj = classField.body(); - System.out.println(obj.getClass()); - if (obj instanceof QName) { - System.out.println("This is of type QName"); - } - LeafNode<?> aliasLeaf = (LeafNode<?>) mapEntryNode - .getChildByArg(new NodeIdentifier(HW_COMPONENT_LIST_ALIAS)); - // System.out.println("Alias = " + aliasLeaf.getValue().toString()); - System.out.println("Alias = " + getLeafValue(mapEntryNode, HW_COMPONENT_LIST_ALIAS)); - - try { - DataContainerChild childSet = mapEntryNode - .getChildByArg(new NodeIdentifier(HW_COMPONENT_LIST_CONTAINS_CHILD)); - - Collection<?> childEntry = (Collection<?>) childSet.body(); - Iterator<?> childEntryItr = childEntry.iterator(); - while (childEntryItr.hasNext()) { - LeafSetEntryNode<?> childEntryNode = (LeafSetEntryNode<?>) childEntryItr.next(); - System.out.println("Child Node - " + childEntryNode.body()); - } - } catch (VerifyException ve) { - // System.out.println("Child not not exist"); - } - - try { - LeafSetNode<?> containsChildSet = (LeafSetNode<?>) mapEntryNode - .getChildByArg(new NodeIdentifier(HW_COMPONENT_LIST_CONTAINS_CHILD)); - Collection<?> containsChildSetEntry = containsChildSet.body(); - Iterator<?> childItr = containsChildSetEntry.iterator(); - while (childItr.hasNext()) { - LeafSetEntryNode<?> childEntryNode = (LeafSetEntryNode<?>) childItr.next(); - System.out.println("Child Node - " + childEntryNode.body()); - } - } catch (VerifyException | NoSuchElementException e) { - // System.out.println("Child not not exist"); - } - - try { - System.out - .println(CodeHelpers.nonnull(getLeafListValue(mapEntryNode, HW_COMPONENT_LIST_CONTAINS_CHILD))); - for (String childUuid : CodeHelpers - .nonnull(getLeafListValue(mapEntryNode, HW_COMPONENT_LIST_CONTAINS_CHILD))) { - System.out.println("Calling recursively - " + childUuid); - } - } catch (VerifyException | NoSuchElementException e) { - // System.out.println("Child not not exist"); - } - try { - String description = (String) mapEntryNode.getChildByArg(new NodeIdentifier(HW_COMPONENT_LIST_DESC)) - .body(); - System.out.println("Description = " + description); - } catch (VerifyException | NoSuchElementException e) { - // System.out.println("Child not not exist"); - } - try { - String serialNum = (String) mapEntryNode.getChildByArg(new NodeIdentifier(HW_COMPONENT_LIST_SER_NUM)) - .body(); - System.out.println("Serial Number = " + serialNum); - } catch (VerifyException | NoSuchElementException e) { - // System.out.println("Child not not exist"); - } - try { - String firmwareRev = (String) mapEntryNode.getChildByArg(new NodeIdentifier(HW_COMPONENT_LIST_FW_REV)) - .body(); - System.out.println("Firmware Rev = " + firmwareRev); - } catch (VerifyException | NoSuchElementException e) { - // System.out.println("Child not not exist"); - } - try { - String swRev = (String) mapEntryNode.getChildByArg(new NodeIdentifier(HW_COMPONENT_LIST_SW_REV)).body(); - System.out.println("Software Rev = " + swRev); - } catch (VerifyException | NoSuchElementException e) { - // System.out.println("Child not not exist"); - } - try { - String modelName = (String) mapEntryNode.getChildByArg(new NodeIdentifier(HW_COMPONENT_LIST_MODEL_NAME)) - .body(); - System.out.println("Model Name = " + modelName); - } catch (VerifyException | NoSuchElementException e) { - // System.out.println("Child not not exist"); - } - try { - Integer parentRelPos = (Integer) mapEntryNode - .getChildByArg(new NodeIdentifier(HW_COMPONENT_LIST_PARENT_REL_POS)).body(); - System.out.println("Parent Rel Pos = " + (parentRelPos != null ? parentRelPos.intValue() : null)); - } catch (VerifyException | NoSuchElementException e) { - // System.out.println("Child not not exist"); - } - try { - String parent = (String) mapEntryNode.getChildByArg(new NodeIdentifier(HW_COMPONENT_LIST_PARENT)) - .body(); - System.out.println("Parent = " + parent); - } catch (VerifyException | NoSuchElementException e) { - // System.out.println("Child not not exist"); - } - try { - String hwRev = (String) mapEntryNode.getChildByArg(new NodeIdentifier(HW_COMPONENT_LIST_HW_REV)).body(); - System.out.println("Hardware Revision = " + hwRev); - } catch (VerifyException | NoSuchElementException e) { - // System.out.println("Child not not exist"); - } - try { - String mfgName = (String) mapEntryNode.getChildByArg(new NodeIdentifier(HW_COMPONENT_LIST_MFG_NAME)) - .body(); - System.out.println("Manufacturer Name = " + mfgName); - } catch (VerifyException | NoSuchElementException e) { - // System.out.println("Child not not exist"); - } - try { - DataContainerChild mfgNameOpt = mapEntryNode - .getChildByArg(new NodeIdentifier(HW_COMPONENT_LIST_MFG_NAME)); - if (mfgNameOpt != null) { - System.out.println("Mfg Name - " + (String) mfgNameOpt.body()); - } - } catch (VerifyException | NoSuchElementException e) { - // System.out.println("Child not not exist"); - } - try { - String assetID = (String) mapEntryNode.getChildByArg(new NodeIdentifier(HW_COMPONENT_LIST_ASSET_ID)) - .body(); - System.out.println("Asset ID = " + assetID); - } catch (VerifyException | NoSuchElementException e) { - // System.out.println("Child not not exist"); - } - try { - String mfgDate = (String) mapEntryNode.getChildByArg(new NodeIdentifier(HW_COMPONENT_LIST_MFG_DATE)) - .body(); - System.out.println("Mfg Date = " + mfgDate); - } catch (VerifyException | NoSuchElementException e) { - // System.out.println("Child not not exist"); - } - try { - String uri = (String) mapEntryNode.getChildByArg(new NodeIdentifier(HW_COMPONENT_LIST_URI)).body(); - System.out.println("URI = " + uri); - } catch (VerifyException | NoSuchElementException e) { - // System.out.println("Child not not exist"); - } - try { - Boolean isFRU = (Boolean) mapEntryNode.getChildByArg(new NodeIdentifier(HW_COMPONENT_LIST_IS_FRU)) - .body(); - System.out.println("IS FRU = " + isFRU); - } catch (VerifyException | NoSuchElementException e) { - // System.out.println("Child not not exist"); - } - try { - String uuid = (String) mapEntryNode.getChildByArg(new NodeIdentifier(HW_COMPONENT_LIST_UUID)).body() - .toString(); - System.out.println("UUID = " + uuid); - } catch (VerifyException | NoSuchElementException e) { - // System.out.println("Child not not exist"); - } - - try { - ContainerNode state = (ContainerNode) mapEntryNode - .getChildByArg(new NodeIdentifier(HW_COMPONENT_LIST_STATE)); - String adminState = (String) state.getChildByArg(new NodeIdentifier(HW_COMPONENT_LIST_ADMIN_STATE)) - .body().toString(); - System.out.println("Admin State = " + adminState); - String operState = (String) state.getChildByArg(new NodeIdentifier(HW_COMPONENT_LIST_OPER_STATE)).body() - .toString(); - - System.out.println("Oper State = " + operState); - } catch (VerifyException | NoSuchElementException e) { - System.out.println("Child not not exist"); - } - - System.out.println("********************************************"); - - } - // assertNotNull(transformedInput); - - } - - public static String getLeafValue(DataContainerNode componentEntry, QName leafQName) { - NodeIdentifier leafNodeIdentifier = new NodeIdentifier(leafQName); - try { - LeafNode<?> optLeafNode = (LeafNode<?>) componentEntry.getChildByArg(leafNodeIdentifier); - if (optLeafNode.body() instanceof QName) { - System.out.println("Leaf is of type QName"); - } - return optLeafNode.body().toString(); - } catch (NoSuchElementException nsee) { - System.out.println("Leaf with QName {} not found" + leafQName.toString()); - return null; - } - } - - public static List<String> getLeafListValue(DataContainerNode componentEntry, QName leafListQName) { - if (componentEntry instanceof MapEntryNode) { - List<String> containsChildList = new ArrayList<String>(); - DataContainerChild childSet = componentEntry.getChildByArg(new NodeIdentifier(leafListQName)); - if (childSet != null) { - Collection<?> childEntry = (Collection<?>) childSet.body(); - Iterator<?> childEntryItr = childEntry.iterator(); - while (childEntryItr.hasNext()) { - LeafSetEntryNode<?> childEntryNode = (LeafSetEntryNode<?>) childEntryItr.next(); - containsChildList.add(childEntryNode.body().toString()); - } - } - return containsChildList; - } - return null; - } - - @Test - public void testIetfHardwareFromNormalizedNode() { - buildIetfHardwareContainerNode(); - } - - private static NormalizedNode buildIetfHardwareContainerNode() { - MapNode componentMap = Builders.mapBuilder().withNodeIdentifier(new NodeIdentifier(HW_COMPONENT_LIST)) - .withChild(Builders.mapEntryBuilder() - .withNodeIdentifier( - NodeIdentifierWithPredicates.of(HW_COMPONENT_LIST, HW_COMPONENT_LIST_KEY, "chassis")) - .withChild( - Builders.leafBuilder().withNodeIdentifier(new NodeIdentifier(HW_COMPONENT_LIST_CLASS)) - .withValue("ianahw:chassis").build()) - .withChild(Builders.leafBuilder() - .withNodeIdentifier(new NodeIdentifier(HW_COMPONENT_LIST_PHYSICAL_INDEX)).withValue(1) - .build()) - .build()) - .build(); - return componentMap; - } - -} diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/TestORanDOMFaultNotificationListener.java b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/TestORanDOMFaultNotificationListener.java index 8abfb2d3e..89ff6dc90 100644 --- a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/TestORanDOMFaultNotificationListener.java +++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/TestORanDOMFaultNotificationListener.java @@ -37,7 +37,6 @@ import org.mockito.Mock; import org.mockito.junit.MockitoJUnitRunner; 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.devicemanager.oran.impl.binding.TestORanFaultNotificationListener; import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.DeviceManagerServiceProvider; import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.FaultService; import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.VESCollectorService; @@ -59,7 +58,7 @@ import org.slf4j.LoggerFactory; @RunWith(MockitoJUnitRunner.class) public class TestORanDOMFaultNotificationListener { - private static final Logger LOG = LoggerFactory.getLogger(TestORanFaultNotificationListener.class); + private static final Logger LOG = LoggerFactory.getLogger(TestORanDOMFaultNotificationListener.class); private static final String TESTFILENAME = "configFile.txt"; // @formatter:off diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/TestORanDOMNetworkElement.java b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/TestORanDOMNetworkElement.java index c75f4f5a1..283d122b0 100644 --- a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/TestORanDOMNetworkElement.java +++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/TestORanDOMNetworkElement.java @@ -32,7 +32,6 @@ import org.junit.BeforeClass; import org.junit.Test; import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.DataProvider; import org.onap.ccsdk.features.sdnr.wt.devicemanager.ne.service.NetworkElement; -import org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.impl.startup.ORanNetworkElementFactory; import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.DeviceManagerServiceProvider; import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.FaultService; import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.NotificationProxyParser; diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/TestORanDOMToInternalDataModel.java b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/TestORanDOMToInternalDataModel.java index 4eac71cde..e3113db3c 100644 --- a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/TestORanDOMToInternalDataModel.java +++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/TestORanDOMToInternalDataModel.java @@ -63,140 +63,140 @@ import org.xml.sax.SAXException; public class TestORanDOMToInternalDataModel { - private static final QNameModule IETF_HARDWARE_MODULE = QNameModule - .create(XMLNamespace.of("urn:ietf:params:xml:ns:yang:ietf-hardware"), Revision.of("2018-03-13")); - private static final QName HW_CONTAINER = QName.create(IETF_HARDWARE_MODULE, "hardware"); - - private static final QNameModule IETF_SYSTEM_MODULE = QNameModule - .create(XMLNamespace.of("urn:ietf:params:xml:ns:yang:ietf-system"), Revision.of("2014-08-06")); - private static final QName IETF_CONTAINER = QName.create(IETF_SYSTEM_MODULE, "system"); - - private static EffectiveModelContext schemaContext; - private static Inference hwContainerSchema; - private static Inference systemSchema; - - private static final NodeId nodeId = new NodeId("nSky"); - - @BeforeClass - public static void setup() throws IOException { - schemaContext = YangParserTestUtils.parseYangResourceDirectory("/"); - hwContainerSchema = Inference.ofDataTreePath(schemaContext, HW_CONTAINER); - systemSchema = Inference.ofDataTreePath(schemaContext, IETF_CONTAINER); - } - - @AfterClass - public static void cleanup() { - schemaContext = null; - hwContainerSchema = null; - systemSchema = null; - } - - @Test - public void testIetfHardwareFromXML() throws XMLStreamException, URISyntaxException, IOException, SAXException { - - final InputStream resourceAsStream = TestORANReadHardware.class.getResourceAsStream("/ietf-hardware.xml"); - - /* - * final XMLInputFactory factory = XMLInputFactory.newInstance(); - * XMLStreamReader reader = factory.createXMLStreamReader(resourceAsStream); - */ - final XMLStreamReader reader = UntrustedXML.createXMLStreamReader(resourceAsStream); - - final NormalizedNodeResult result = new NormalizedNodeResult(); - final NormalizedNodeStreamWriter streamWriter = ImmutableNormalizedNodeStreamWriter.from(result); - - final XmlParserStream xmlParser = XmlParserStream.create(streamWriter, hwContainerSchema); - xmlParser.parse(reader); - - xmlParser.flush(); - xmlParser.close(); - - NormalizedNode transformedInput = result.getResult(); - - List<Inventory> inventoryList = ORanDOMToInternalDataModel.getInventoryList(nodeId, transformedInput); - assertEquals("All elements", 27, inventoryList.size()); - assertEquals("Treelevel always there", 0, - inventoryList.stream().filter(inventory -> inventory.getTreeLevel() == null).count()); - } - - @Test - public void testIetfSystemFromXML() throws XMLStreamException, URISyntaxException, IOException, SAXException { - - final InputStream resourceAsStream = TestORANReadHardware.class.getResourceAsStream("/onap-system.xml"); - - final XMLStreamReader reader = UntrustedXML.createXMLStreamReader(resourceAsStream); - - final NormalizedNodeResult result = new NormalizedNodeResult(); - final NormalizedNodeStreamWriter streamWriter = ImmutableNormalizedNodeStreamWriter.from(result); - - final XmlParserStream xmlParser = XmlParserStream.create(streamWriter, systemSchema); - xmlParser.parse(reader); - - xmlParser.flush(); - xmlParser.close(); - - NormalizedNode transformedInput = result.getResult(); - ContainerNode cn = (ContainerNode) transformedInput; - AugmentationIdentifier onapSystemIID = YangInstanceIdentifier.AugmentationIdentifier.create( - Sets.newHashSet(ORanDeviceManagerQNames.ONAP_SYSTEM_NAME, ORanDeviceManagerQNames.ONAP_SYSTEM_WEB_UI)); - Optional<Guicutthrough> gc = ORanDOMToInternalDataModel.getGuicutthrough(cn.getChildByArg(onapSystemIID)); - assertEquals(gc.isPresent(), true); - - } - - @Test - public void testORANFault() { - ContainerNode cn = createORANDOMFault(); - NetconfDeviceNotification faultNotif = new NetconfDeviceNotification(cn, Instant.now()); - FaultlogEntity fle = ORanDOMToInternalDataModel.getFaultLog(faultNotif, nodeId, 1); - assertEquals(fle.getId(), "47"); - } - - public static ContainerNode createORANDOMFault() { - final QName fault_id = QName.create(ORanDeviceManagerQNames.ORAN_FM_FAULT_ID, "fault-id"); - final QName fault_source = QName.create(ORanDeviceManagerQNames.ORAN_FM_FAULT_SOURCE, "fault-source"); - final QName fault_severity = QName.create(ORanDeviceManagerQNames.ORAN_FM_FAULT_SEVERITY, "fault-severity"); - final QName is_cleared = QName.create(ORanDeviceManagerQNames.ORAN_FM_FAULT_IS_CLEARED, "is-cleared"); - final QName fault_text = QName.create(ORanDeviceManagerQNames.ORAN_FM_FAULT_TEXT, "fault-text"); - return Builders.containerBuilder() - .withNodeIdentifier(NodeIdentifier.create(ORanDeviceManagerQNames.ORAN_FM_ALARM_NOTIF)) - .withChild(ImmutableNodes.leafNode(fault_id, "47")) - .withChild(ImmutableNodes.leafNode(fault_source, "Slot-2-Port-B")) - .withChild(ImmutableNodes.leafNode(fault_severity, "MAJOR")) - .withChild(ImmutableNodes.leafNode(is_cleared, "true")) - .withChild(ImmutableNodes.leafNode(fault_text, "CPRI Port Down")).build(); - } - - public static class NetconfDeviceNotification implements DOMNotification, DOMEvent { - private final ContainerNode content; - private final Absolute schemaPath; - private final Instant eventTime; - - NetconfDeviceNotification(final ContainerNode content, final Instant eventTime) { - this.content = content; - this.eventTime = eventTime; - this.schemaPath = Absolute.of(content.getIdentifier().getNodeType()); - } - - NetconfDeviceNotification(final ContainerNode content, final Absolute schemaPath, final Instant eventTime) { - this.content = content; - this.eventTime = eventTime; - this.schemaPath = schemaPath; - } - - @Override - public Absolute getType() { - return schemaPath; - } - - @Override - public ContainerNode getBody() { - return content; - } - - @Override - public Instant getEventInstant() { - return eventTime; - } - } + private static final QNameModule IETF_HARDWARE_MODULE = + QNameModule.create(XMLNamespace.of("urn:ietf:params:xml:ns:yang:ietf-hardware"), Revision.of("2018-03-13")); + private static final QName HW_CONTAINER = QName.create(IETF_HARDWARE_MODULE, "hardware"); + + private static final QNameModule IETF_SYSTEM_MODULE = + QNameModule.create(XMLNamespace.of("urn:ietf:params:xml:ns:yang:ietf-system"), Revision.of("2014-08-06")); + private static final QName IETF_CONTAINER = QName.create(IETF_SYSTEM_MODULE, "system"); + + private static EffectiveModelContext schemaContext; + private static Inference hwContainerSchema; + private static Inference systemSchema; + + private static final NodeId nodeId = new NodeId("nSky"); + + @BeforeClass + public static void setup() throws IOException { + schemaContext = YangParserTestUtils.parseYangResourceDirectory("/"); + hwContainerSchema = Inference.ofDataTreePath(schemaContext, HW_CONTAINER); + systemSchema = Inference.ofDataTreePath(schemaContext, IETF_CONTAINER); + } + + @AfterClass + public static void cleanup() { + schemaContext = null; + hwContainerSchema = null; + systemSchema = null; + } + + @Test + public void testIetfHardwareFromXML() throws XMLStreamException, URISyntaxException, IOException, SAXException { + + final InputStream resourceAsStream = TestORanDOMToInternalDataModel.class.getResourceAsStream("/ietf-hardware.xml"); + + /* + * final XMLInputFactory factory = XMLInputFactory.newInstance(); + * XMLStreamReader reader = factory.createXMLStreamReader(resourceAsStream); + */ + final XMLStreamReader reader = UntrustedXML.createXMLStreamReader(resourceAsStream); + + final NormalizedNodeResult result = new NormalizedNodeResult(); + final NormalizedNodeStreamWriter streamWriter = ImmutableNormalizedNodeStreamWriter.from(result); + + final XmlParserStream xmlParser = XmlParserStream.create(streamWriter, hwContainerSchema); + xmlParser.parse(reader); + + xmlParser.flush(); + xmlParser.close(); + + NormalizedNode transformedInput = result.getResult(); + + List<Inventory> inventoryList = ORanDOMToInternalDataModel.getInventoryList(nodeId, transformedInput); + assertEquals("All elements", 27, inventoryList.size()); + assertEquals("Treelevel always there", 0, + inventoryList.stream().filter(inventory -> inventory.getTreeLevel() == null).count()); + } + + @Test + public void testIetfSystemFromXML() throws XMLStreamException, URISyntaxException, IOException, SAXException { + + final InputStream resourceAsStream = TestORanDOMToInternalDataModel.class.getResourceAsStream("/onap-system.xml"); + + final XMLStreamReader reader = UntrustedXML.createXMLStreamReader(resourceAsStream); + + final NormalizedNodeResult result = new NormalizedNodeResult(); + final NormalizedNodeStreamWriter streamWriter = ImmutableNormalizedNodeStreamWriter.from(result); + + final XmlParserStream xmlParser = XmlParserStream.create(streamWriter, systemSchema); + xmlParser.parse(reader); + + xmlParser.flush(); + xmlParser.close(); + + NormalizedNode transformedInput = result.getResult(); + ContainerNode cn = (ContainerNode) transformedInput; + AugmentationIdentifier onapSystemIID = YangInstanceIdentifier.AugmentationIdentifier.create( + Sets.newHashSet(ORanDeviceManagerQNames.ONAP_SYSTEM_NAME, ORanDeviceManagerQNames.ONAP_SYSTEM_WEB_UI)); + Optional<Guicutthrough> gc = ORanDOMToInternalDataModel.getGuicutthrough(cn.getChildByArg(onapSystemIID)); + assertEquals(gc.isPresent(), true); + + } + + @Test + public void testORANFault() { + ContainerNode cn = createORANDOMFault(); + NetconfDeviceNotification faultNotif = new NetconfDeviceNotification(cn, Instant.now()); + FaultlogEntity fle = ORanDOMToInternalDataModel.getFaultLog(faultNotif, nodeId, 1); + assertEquals(fle.getId(), "47"); + } + + public static ContainerNode createORANDOMFault() { + final QName fault_id = QName.create(ORanDeviceManagerQNames.ORAN_FM_FAULT_ID, "fault-id"); + final QName fault_source = QName.create(ORanDeviceManagerQNames.ORAN_FM_FAULT_SOURCE, "fault-source"); + final QName fault_severity = QName.create(ORanDeviceManagerQNames.ORAN_FM_FAULT_SEVERITY, "fault-severity"); + final QName is_cleared = QName.create(ORanDeviceManagerQNames.ORAN_FM_FAULT_IS_CLEARED, "is-cleared"); + final QName fault_text = QName.create(ORanDeviceManagerQNames.ORAN_FM_FAULT_TEXT, "fault-text"); + return Builders.containerBuilder() + .withNodeIdentifier(NodeIdentifier.create(ORanDeviceManagerQNames.ORAN_FM_ALARM_NOTIF)) + .withChild(ImmutableNodes.leafNode(fault_id, "47")) + .withChild(ImmutableNodes.leafNode(fault_source, "Slot-2-Port-B")) + .withChild(ImmutableNodes.leafNode(fault_severity, "MAJOR")) + .withChild(ImmutableNodes.leafNode(is_cleared, "true")) + .withChild(ImmutableNodes.leafNode(fault_text, "CPRI Port Down")).build(); + } + + public static class NetconfDeviceNotification implements DOMNotification, DOMEvent { + private final ContainerNode content; + private final Absolute schemaPath; + private final Instant eventTime; + + NetconfDeviceNotification(final ContainerNode content, final Instant eventTime) { + this.content = content; + this.eventTime = eventTime; + this.schemaPath = Absolute.of(content.getIdentifier().getNodeType()); + } + + NetconfDeviceNotification(final ContainerNode content, final Absolute schemaPath, final Instant eventTime) { + this.content = content; + this.eventTime = eventTime; + this.schemaPath = schemaPath; + } + + @Override + public Absolute getType() { + return schemaPath; + } + + @Override + public ContainerNode getBody() { + return content; + } + + @Override + public Instant getEventInstant() { + return eventTime; + } + } } diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/TestORanNetworkElementFactory.java b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/TestORanNetworkElementFactory.java index 27793e4bb..2ca2ee445 100644 --- a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/TestORanNetworkElementFactory.java +++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/TestORanNetworkElementFactory.java @@ -26,7 +26,6 @@ import org.junit.After; import org.junit.BeforeClass; import org.junit.Test; import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.DataProvider; -import org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.impl.startup.ORanNetworkElementFactory; import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.DeviceManagerServiceProvider; import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.FaultService; import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.VESCollectorService; diff --git a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/TestORanRegistrationToVESpnfRegistration.java b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/TestORanRegistrationToVESpnfRegistration.java index d520af5ba..af4514ef3 100644 --- a/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/TestORanRegistrationToVESpnfRegistration.java +++ b/sdnr/wt/devicemanager-o-ran-sc/o-ran/ru-fh/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/oran/impl/dom/TestORanRegistrationToVESpnfRegistration.java @@ -28,7 +28,6 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.junit.MockitoJUnitRunner; -import org.onap.ccsdk.features.sdnr.wt.devicemanager.oran.impl.binding.ORanRegistrationToVESpnfRegistrationMapper; import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.VESCollectorCfgService; import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.VESCollectorService; import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.VESCommonEventHeaderPOJO; @@ -51,69 +50,69 @@ import org.opendaylight.yangtools.yang.data.impl.schema.Builders; @RunWith(MockitoJUnitRunner.class) public class TestORanRegistrationToVESpnfRegistration { - @Mock - NetconfAccessor netconfAccessor; - @Mock - VESCollectorService vesCollectorService; - @Mock - VESCollectorCfgService vesCfgService; + @Mock + NetconfAccessor netconfAccessor; + @Mock + VESCollectorService vesCollectorService; + @Mock + VESCollectorCfgService vesCfgService; - private static final QNameModule IETF_HARDWARE_MODULE = QNameModule - .create(XMLNamespace.of("urn:ietf:params:xml:ns:yang:ietf-hardware"), Revision.of("2018-03-13")); - private static final QName HW_COMPONENT_LIST = QName.create(IETF_HARDWARE_MODULE, "component"); - private static final QName HW_COMPONENT_LIST_KEY = QName.create(IETF_HARDWARE_MODULE, "name"); - private static final QName HW_COMPONENT_LIST_CLASS = QName.create(IETF_HARDWARE_MODULE, "class"); - private static final QName HW_COMPONENT_LIST_PHYSICAL_INDEX = QName.create(IETF_HARDWARE_MODULE, "physical-index"); // leaf:int32 - private static final QName HW_COMPONENT_LIST_DESC = QName.create(IETF_HARDWARE_MODULE, "description"); // leaf:String - private static final QName HW_COMPONENT_LIST_SW_REV = QName.create(IETF_HARDWARE_MODULE, "software-rev"); // leaf:String - private static final QName HW_COMPONENT_LIST_SER_NUM = QName.create(IETF_HARDWARE_MODULE, "serial-num"); // leaf:String - private static final QName HW_COMPONENT_LIST_MFG_NAME = QName.create(IETF_HARDWARE_MODULE, "mfg-name"); // leaf:String - private static final QName HW_COMPONENT_LIST_MODEL_NAME = QName.create(IETF_HARDWARE_MODULE, "model-name"); // leaf:String - private static final QName HW_COMPONENT_LIST_ALIAS = QName.create(IETF_HARDWARE_MODULE, "alias"); // leaf:String + private static final QNameModule IETF_HARDWARE_MODULE = + QNameModule.create(XMLNamespace.of("urn:ietf:params:xml:ns:yang:ietf-hardware"), Revision.of("2018-03-13")); + private static final QName HW_COMPONENT_LIST = QName.create(IETF_HARDWARE_MODULE, "component"); + private static final QName HW_COMPONENT_LIST_KEY = QName.create(IETF_HARDWARE_MODULE, "name"); + private static final QName HW_COMPONENT_LIST_CLASS = QName.create(IETF_HARDWARE_MODULE, "class"); + private static final QName HW_COMPONENT_LIST_PHYSICAL_INDEX = QName.create(IETF_HARDWARE_MODULE, "physical-index"); // leaf:int32 + private static final QName HW_COMPONENT_LIST_DESC = QName.create(IETF_HARDWARE_MODULE, "description"); // leaf:String + private static final QName HW_COMPONENT_LIST_SW_REV = QName.create(IETF_HARDWARE_MODULE, "software-rev"); // leaf:String + private static final QName HW_COMPONENT_LIST_SER_NUM = QName.create(IETF_HARDWARE_MODULE, "serial-num"); // leaf:String + private static final QName HW_COMPONENT_LIST_MFG_NAME = QName.create(IETF_HARDWARE_MODULE, "mfg-name"); // leaf:String + private static final QName HW_COMPONENT_LIST_MODEL_NAME = QName.create(IETF_HARDWARE_MODULE, "model-name"); // leaf:String + private static final QName HW_COMPONENT_LIST_ALIAS = QName.create(IETF_HARDWARE_MODULE, "alias"); // leaf:String - @Test - public void test() { - NetconfNode testNetconfNode = mock(NetconfNode.class); - when(testNetconfNode.getHost()).thenReturn(new Host(new IpAddress(new Ipv4Address("10.10.10.10")))); + @Test + public void test() { + NetconfNode testNetconfNode = mock(NetconfNode.class); + when(testNetconfNode.getHost()).thenReturn(new Host(new IpAddress(new Ipv4Address("10.10.10.10")))); - when(netconfAccessor.getNodeId()).thenReturn(new NodeId("nSky")); - when(netconfAccessor.getNetconfNode()).thenReturn(testNetconfNode); - when(vesCollectorService.getConfig()).thenReturn(vesCfgService); - when(vesCfgService.getReportingEntityName()).thenReturn("SDN-R"); + when(netconfAccessor.getNodeId()).thenReturn(new NodeId("nSky")); + when(netconfAccessor.getNetconfNode()).thenReturn(testNetconfNode); + when(vesCollectorService.getConfig()).thenReturn(vesCfgService); + when(vesCfgService.getReportingEntityName()).thenReturn("SDN-R"); - ORanRegistrationToVESpnfRegistrationMapper mapper = new ORanRegistrationToVESpnfRegistrationMapper( - netconfAccessor, vesCollectorService); - VESCommonEventHeaderPOJO commonHeader = mapper.mapCommonEventHeader(buildComponentEntry()); - VESPNFRegistrationFieldsPOJO pnfFields = mapper.mapPNFRegistrationFields(buildComponentEntry()); + ORanRegistrationToVESpnfRegistrationMapper mapper = + new ORanRegistrationToVESpnfRegistrationMapper(netconfAccessor, vesCollectorService); + VESCommonEventHeaderPOJO commonHeader = mapper.mapCommonEventHeader(buildComponentEntry()); + VESPNFRegistrationFieldsPOJO pnfFields = mapper.mapPNFRegistrationFields(buildComponentEntry()); - assertEquals(commonHeader.getNfVendorName(), "ISCO"); - assertEquals(pnfFields.getUnitType(), "chassis"); - assertEquals(pnfFields.getSerialNumber(), "10283"); - assertEquals(pnfFields.getSoftwareVersion(), "3.8.1 (2020-10-30 11:47:59)"); - } + assertEquals(commonHeader.getNfVendorName(), "ISCO"); + assertEquals(pnfFields.getUnitType(), "chassis"); + assertEquals(pnfFields.getSerialNumber(), "10283"); + assertEquals(pnfFields.getSoftwareVersion(), "3.8.1 (2020-10-30 11:47:59)"); + } - public MapEntryNode buildComponentEntry() { - return Builders.mapEntryBuilder() - .withNodeIdentifier( - NodeIdentifierWithPredicates.of(HW_COMPONENT_LIST, HW_COMPONENT_LIST_KEY, "chassis")) - .withChild(Builders.leafBuilder().withNodeIdentifier(new NodeIdentifier(HW_COMPONENT_LIST_CLASS)) - .withValue("ianahw:chassis").build()) - .withChild(Builders.leafBuilder() - .withNodeIdentifier(new NodeIdentifier(HW_COMPONENT_LIST_PHYSICAL_INDEX)).withValue(1).build()) - .withChild(Builders.leafBuilder().withNodeIdentifier(new NodeIdentifier(HW_COMPONENT_LIST_MFG_NAME)) - .withValue("ISCO").build()) - .withChild(Builders.leafBuilder().withNodeIdentifier(new NodeIdentifier(HW_COMPONENT_LIST_MODEL_NAME)) - .withValue("ProteusCPRI Compact").build()) - .withChild(Builders.leafBuilder().withNodeIdentifier(new NodeIdentifier(HW_COMPONENT_LIST_ALIAS)) - .withValue("chassis").build()) - .withChild(Builders.leafBuilder().withNodeIdentifier(new NodeIdentifier(HW_COMPONENT_LIST_SER_NUM)) - .withValue("10283").build()) - .withChild(Builders.leafBuilder().withNodeIdentifier(new NodeIdentifier(HW_COMPONENT_LIST_DESC)) - .withValue("HighStreet-ONAP40").build()) - .withChild(Builders.leafBuilder().withNodeIdentifier(new NodeIdentifier(HW_COMPONENT_LIST_SW_REV)) - .withValue("3.8.1 (2020-10-30 11:47:59)").build()) - .build(); + public MapEntryNode buildComponentEntry() { + return Builders.mapEntryBuilder() + .withNodeIdentifier( + NodeIdentifierWithPredicates.of(HW_COMPONENT_LIST, HW_COMPONENT_LIST_KEY, "chassis")) + .withChild(Builders.leafBuilder().withNodeIdentifier(new NodeIdentifier(HW_COMPONENT_LIST_CLASS)) + .withValue("ianahw:chassis").build()) + .withChild(Builders.leafBuilder() + .withNodeIdentifier(new NodeIdentifier(HW_COMPONENT_LIST_PHYSICAL_INDEX)).withValue(1).build()) + .withChild(Builders.leafBuilder().withNodeIdentifier(new NodeIdentifier(HW_COMPONENT_LIST_MFG_NAME)) + .withValue("ISCO").build()) + .withChild(Builders.leafBuilder().withNodeIdentifier(new NodeIdentifier(HW_COMPONENT_LIST_MODEL_NAME)) + .withValue("ProteusCPRI Compact").build()) + .withChild(Builders.leafBuilder().withNodeIdentifier(new NodeIdentifier(HW_COMPONENT_LIST_ALIAS)) + .withValue("chassis").build()) + .withChild(Builders.leafBuilder().withNodeIdentifier(new NodeIdentifier(HW_COMPONENT_LIST_SER_NUM)) + .withValue("10283").build()) + .withChild(Builders.leafBuilder().withNodeIdentifier(new NodeIdentifier(HW_COMPONENT_LIST_DESC)) + .withValue("HighStreet-ONAP40").build()) + .withChild(Builders.leafBuilder().withNodeIdentifier(new NodeIdentifier(HW_COMPONENT_LIST_SW_REV)) + .withValue("3.8.1 (2020-10-30 11:47:59)").build()) + .build(); - } + } } |