1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
|
package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.dataprovider;
import java.util.Collection;
import java.util.HashSet;
import java.util.Objects;
import java.util.Set;
import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.util.Onf14DMDOMUtility;
import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf14.dom.impl.util.Onf14DevicemanagerQNames;
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.yang.common.Uint32;
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.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class Onf14DomToInternalDataModel {
private static final Logger LOG = LoggerFactory.getLogger(Onf14DomToInternalDataModel.class);
public Inventory getInternalEquipment(NodeId nodeId, MapEntryNode currentEq, MapEntryNode parentEq,
long treeLevel) {
Objects.requireNonNull(nodeId);
Objects.requireNonNull(currentEq);
InventoryBuilder inventoryBuilder = new InventoryBuilder();
String parentUuid = parentEq != null ? Onf14DMDOMUtility.getUuidFromEquipment(parentEq) : "None";
// General
inventoryBuilder.setNodeId(nodeId.getValue());
inventoryBuilder.setTreeLevel(Uint32.valueOf(treeLevel));
inventoryBuilder.setUuid(Onf14DMDOMUtility.getUuidFromEquipment(currentEq));
inventoryBuilder.setParentUuid(parentUuid);
Set<String> containedHolderKeyList = new HashSet<>();
MapNode containedHolderMap = (MapNode) currentEq
.childByArg(new NodeIdentifier(Onf14DevicemanagerQNames.CORE_MODEL_CC_EQPT_CONTAINED_HOLDER));
if (containedHolderMap != null) {
Collection<MapEntryNode> containedHolderCollection = containedHolderMap.body();
for (MapEntryNode holder : containedHolderCollection) {
String occupyingFru = Onf14DMDOMUtility.getLeafValue(holder,
Onf14DevicemanagerQNames.CORE_MODEL_CC_EQPT_OCCUPYING_FRU);
if (occupyingFru != null) {
containedHolderKeyList.add(occupyingFru);
}
}
}
inventoryBuilder.setContainedHolder(containedHolderKeyList);
// actual-equipment
ContainerNode actualEquipment = (ContainerNode) currentEq
.childByArg(new NodeIdentifier(Onf14DevicemanagerQNames.CORE_MODEL_CC_EQPT_ACTUAL_EQUIPMENT));
if (actualEquipment != null) {
ContainerNode manThing = (ContainerNode) actualEquipment
.childByArg(new NodeIdentifier(Onf14DevicemanagerQNames.CORE_MODEL_CC_EQPT_MANUFACTURED_THING));
if (manThing != null) {
// Manufacturer properties
ContainerNode props = (ContainerNode) manThing
.childByArg(new NodeIdentifier(Onf14DevicemanagerQNames.CORE_MODEL_CC_EQPT_MANUFACTURER_PROPS));
if (props != null) {
inventoryBuilder.setManufacturerName(Onf14DMDOMUtility.getLeafValue(props,
Onf14DevicemanagerQNames.CORE_MODEL_CC_EQPT_MANUFACTURER_NAME));
inventoryBuilder.setManufacturerIdentifier(Onf14DMDOMUtility.getLeafValue(props,
Onf14DevicemanagerQNames.CORE_MODEL_CC_EQPT_MANUFACTURER_ID));
} else {
LOG.debug("manufacturer-properties is not present in Equipment with uuid={}",
Onf14DMDOMUtility.getUuidFromEquipment(currentEq));
}
// Equipment instance
ContainerNode equipmentInstance = (ContainerNode) manThing.childByArg(
new NodeIdentifier(Onf14DevicemanagerQNames.CORE_MODEL_CC_EQPT_ACTUAL_EQPT_EQPT_INSTANCE));
if (equipmentInstance != null) {
inventoryBuilder.setSerial(Onf14DMDOMUtility.getLeafValue(equipmentInstance,
Onf14DevicemanagerQNames.CORE_MODEL_CC_EQPT_ACTUAL_EQPT_EQPT_INSTANCE_SERIAL_NUM));
inventoryBuilder.setDate(Onf14DMDOMUtility.getLeafValue(equipmentInstance,
Onf14DevicemanagerQNames.CORE_MODEL_CC_EQPT_ACTUAL_EQPT_EQPT_INSTANCE_MANUFACTURED_DATE));
} else {
LOG.debug("equipment-instance is not present in Equipment with uuid={}",
Onf14DMDOMUtility.getUuidFromEquipment(currentEq));
}
// Equipment type
ContainerNode equipmentType = (ContainerNode) manThing.childByArg(
new NodeIdentifier(Onf14DevicemanagerQNames.CORE_MODEL_CC_EQPT_ACTUAL_EQPT_EQPT_TYPE));
if (equipmentType != null) {
inventoryBuilder.setVersion(Onf14DMDOMUtility.getLeafValue(equipmentType,
Onf14DevicemanagerQNames.CORE_MODEL_CC_EQPT_ACTUAL_EQPT_EQPT_TYPE_VERSION));
inventoryBuilder.setDescription(Onf14DMDOMUtility.getLeafValue(equipmentType,
Onf14DevicemanagerQNames.CORE_MODEL_CC_EQPT_ACTUAL_EQPT_EQPT_TYPE_DESCRIPTION));
inventoryBuilder.setPartTypeId(Onf14DMDOMUtility.getLeafValue(equipmentType,
Onf14DevicemanagerQNames.CORE_MODEL_CC_EQPT_ACTUAL_EQPT_EQPT_TYPE_PART_TYPE_ID));
inventoryBuilder.setModelIdentifier(Onf14DMDOMUtility.getLeafValue(equipmentType,
Onf14DevicemanagerQNames.CORE_MODEL_CC_EQPT_ACTUAL_EQPT_EQPT_TYPE_MODEL_ID));
inventoryBuilder.setTypeName(Onf14DMDOMUtility.getLeafValue(equipmentType,
Onf14DevicemanagerQNames.CORE_MODEL_CC_EQPT_ACTUAL_EQPT_EQPT_TYPE_TYPE_NAME));
} else {
LOG.debug("equipment-type is not present in Equipment with uuid={}",
Onf14DMDOMUtility.getUuidFromEquipment(currentEq));
}
} else {
LOG.debug("manufactured-thing is not present in Equipment with uuid={}",
Onf14DMDOMUtility.getUuidFromEquipment(currentEq));
}
} else {
LOG.debug("actual-equipment is not present in Equipment with uuid={}",
Onf14DMDOMUtility.getUuidFromEquipment(currentEq));
}
return inventoryBuilder.build();
}
}
|