1 package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.dataprovider;
3 import java.util.ArrayList;
4 import java.util.Collection;
5 import java.util.HashSet;
7 import java.util.Objects;
10 import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.util.Onf14DMDOMUtility;
11 import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.util.Onf14DevicemanagerQNames;
12 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.Inventory;
13 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.InventoryBuilder;
14 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
15 import org.opendaylight.yangtools.yang.common.Uint32;
16 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
17 import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
18 import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode;
19 import org.opendaylight.yangtools.yang.data.api.schema.MapNode;
20 import org.slf4j.Logger;
21 import org.slf4j.LoggerFactory;
23 public class Onf14DomToInternalDataModel {
24 private static final Logger LOG = LoggerFactory.getLogger(Onf14DomToInternalDataModel.class);
26 public Inventory getInternalEquipment(NodeId nodeId, MapEntryNode currentEq, MapEntryNode parentEq,
29 Objects.requireNonNull(nodeId);
30 Objects.requireNonNull(currentEq);
32 InventoryBuilder inventoryBuilder = new InventoryBuilder();
33 String parentUuid = parentEq != null ? Onf14DMDOMUtility.getUuidFromEquipment(parentEq) : "None";
36 inventoryBuilder.setNodeId(nodeId.getValue());
37 inventoryBuilder.setTreeLevel(Uint32.valueOf(treeLevel));
38 inventoryBuilder.setUuid(Onf14DMDOMUtility.getUuidFromEquipment(currentEq));
39 inventoryBuilder.setParentUuid(parentUuid);
41 Set<String> containedHolderKeyList = new HashSet<>();
42 MapNode containedHolderMap = (MapNode) currentEq
43 .childByArg(new NodeIdentifier(Onf14DevicemanagerQNames.CORE_MODEL_CC_EQPT_CONTAINED_HOLDER));
44 if (containedHolderMap != null) {
45 Collection<MapEntryNode> containedHolderCollection = containedHolderMap.body();
46 for (MapEntryNode holder : containedHolderCollection) {
47 String occupyingFru = Onf14DMDOMUtility.getLeafValue(holder,
48 Onf14DevicemanagerQNames.CORE_MODEL_CC_EQPT_OCCUPYING_FRU);
50 if (occupyingFru != null) {
51 containedHolderKeyList.add(occupyingFru);
55 inventoryBuilder.setContainedHolder(containedHolderKeyList);
58 ContainerNode actualEquipment = (ContainerNode) currentEq
59 .childByArg(new NodeIdentifier(Onf14DevicemanagerQNames.CORE_MODEL_CC_EQPT_ACTUAL_EQUIPMENT));
60 if (actualEquipment != null) {
61 ContainerNode manThing = (ContainerNode) actualEquipment
62 .childByArg(new NodeIdentifier(Onf14DevicemanagerQNames.CORE_MODEL_CC_EQPT_MANUFACTURED_THING));
63 if (manThing != null) {
64 // Manufacturer properties
65 ContainerNode props = (ContainerNode) manThing
66 .childByArg(new NodeIdentifier(Onf14DevicemanagerQNames.CORE_MODEL_CC_EQPT_MANUFACTURER_PROPS));
68 inventoryBuilder.setManufacturerName(Onf14DMDOMUtility.getLeafValue(props,
69 Onf14DevicemanagerQNames.CORE_MODEL_CC_EQPT_MANUFACTURER_NAME));
71 inventoryBuilder.setManufacturerIdentifier(Onf14DMDOMUtility.getLeafValue(props,
72 Onf14DevicemanagerQNames.CORE_MODEL_CC_EQPT_MANUFACTURER_ID));
75 LOG.debug("manufacturer-properties is not present in Equipment with uuid={}",
76 Onf14DMDOMUtility.getUuidFromEquipment(currentEq));
80 ContainerNode equipmentInstance = (ContainerNode) manThing.childByArg(
81 new NodeIdentifier(Onf14DevicemanagerQNames.CORE_MODEL_CC_EQPT_ACTUAL_EQPT_EQPT_INSTANCE));
82 if (equipmentInstance != null) {
83 inventoryBuilder.setSerial(Onf14DMDOMUtility.getLeafValue(equipmentInstance,
84 Onf14DevicemanagerQNames.CORE_MODEL_CC_EQPT_ACTUAL_EQPT_EQPT_INSTANCE_SERIAL_NUM));
86 inventoryBuilder.setDate(Onf14DMDOMUtility.getLeafValue(equipmentInstance,
87 Onf14DevicemanagerQNames.CORE_MODEL_CC_EQPT_ACTUAL_EQPT_EQPT_INSTANCE_MANUFACTURED_DATE));
90 LOG.debug("equipment-instance is not present in Equipment with uuid={}",
91 Onf14DMDOMUtility.getUuidFromEquipment(currentEq));
95 ContainerNode equipmentType = (ContainerNode) manThing.childByArg(
96 new NodeIdentifier(Onf14DevicemanagerQNames.CORE_MODEL_CC_EQPT_ACTUAL_EQPT_EQPT_TYPE));
97 if (equipmentType != null) {
98 inventoryBuilder.setVersion(Onf14DMDOMUtility.getLeafValue(equipmentType,
99 Onf14DevicemanagerQNames.CORE_MODEL_CC_EQPT_ACTUAL_EQPT_EQPT_TYPE_VERSION));
101 inventoryBuilder.setDescription(Onf14DMDOMUtility.getLeafValue(equipmentType,
102 Onf14DevicemanagerQNames.CORE_MODEL_CC_EQPT_ACTUAL_EQPT_EQPT_TYPE_DESCRIPTION));
104 inventoryBuilder.setPartTypeId(Onf14DMDOMUtility.getLeafValue(equipmentType,
105 Onf14DevicemanagerQNames.CORE_MODEL_CC_EQPT_ACTUAL_EQPT_EQPT_TYPE_PART_TYPE_ID));
107 inventoryBuilder.setModelIdentifier(Onf14DMDOMUtility.getLeafValue(equipmentType,
109 Onf14DevicemanagerQNames.CORE_MODEL_CC_EQPT_ACTUAL_EQPT_EQPT_TYPE_MODEL_ID));
111 inventoryBuilder.setTypeName(Onf14DMDOMUtility.getLeafValue(equipmentType,
112 Onf14DevicemanagerQNames.CORE_MODEL_CC_EQPT_ACTUAL_EQPT_EQPT_TYPE_TYPE_NAME));
115 LOG.debug("equipment-type is not present in Equipment with uuid={}",
116 Onf14DMDOMUtility.getUuidFromEquipment(currentEq));
119 LOG.debug("manufactured-thing is not present in Equipment with uuid={}",
120 Onf14DMDOMUtility.getUuidFromEquipment(currentEq));
123 LOG.debug("actual-equipment is not present in Equipment with uuid={}",
124 Onf14DMDOMUtility.getUuidFromEquipment(currentEq));
127 return inventoryBuilder.build();