You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

Using data-provider model: SDN-R DB data-provider.

The data mapping moves the data from device specific model to the data-provider model.

Example: ietf harware component  →  data-provider Inventory

  • ietf harware component: org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.hardware.rev180313.hardware.Component
  • data-provider Inventory: org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.Inventory

The mapping needs to be implemented by code, that is hand-written or generated. 

One possible implementation could be like this:


public class ORanToInternalDataModel {
    public Inventory getInternalEquipment(NodeId nodeId, Component component) {

        InventoryBuilder inventoryBuilder = new InventoryBuilder();

        // General
        inventoryBuilder.setNodeId(nodeId.getValue());
        inventoryBuilder.setParentUuid(component.getParent());
        inventoryBuilder.setTreeLevel(new Long(component.getParentRelPos()));

        inventoryBuilder.setUuid(component.getUuid().getValue());
        // -- String list with ids of holders
        List<String> containerHolderKeyList = new ArrayList<>();
        List<String> containerHolderList = component.getContainsChild();
        if (containerHolderList != null) {
            for (String containerHolder : containerHolderList) {
                containerHolderKeyList.add(containerHolder);
            }
        }
        inventoryBuilder.setContainedHolder(containerHolderKeyList);
        // -- Manufacturer related things
        inventoryBuilder.setManufacturerName(component.getName());

        // Equipment type
        inventoryBuilder.setDescription(component.getDescription());
        inventoryBuilder.setModelIdentifier(component.getModelName());
        inventoryBuilder.setPartTypeId(component.getXmlClass().getName());
        inventoryBuilder.setTypeName(component.getName());
        inventoryBuilder.setVersion(component.getHardwareRev());

        // Equipment instance
        inventoryBuilder.setDate(component.getMfgDate().getValue());
        inventoryBuilder.setSerial(component.getSerialNum());

        return inventoryBuilder.build();
    }


  • No labels