Clean-up code of portmapping-topology refactoring 51/78551/9
authorGilles Thouenon <gilles.thouenon@orange.com>
Tue, 27 Nov 2018 18:09:01 +0000 (19:09 +0100)
committerGuillaume Lambert <guillaume.lambert@orange.com>
Wed, 19 Dec 2018 09:06:07 +0000 (09:06 +0000)
- delete numbers of methods no longer usefull after portmapping and
topology consolidation (notably in PortMappingImpl, OpenRoadmTopolgy...)

Change-Id: I077cfd5a03e6eac0fda3fd2eaf706e313fce38bd
JIRA: TRNSPRTPCE-34
Signed-off-by: Gilles Thouenon <gilles.thouenon@orange.com>
common/src/main/java/org/opendaylight/transportpce/common/mapping/DeviceConfig.java
common/src/main/java/org/opendaylight/transportpce/common/mapping/DeviceConfigImpl.java
common/src/main/java/org/opendaylight/transportpce/common/mapping/PortMapping.java
common/src/main/java/org/opendaylight/transportpce/common/mapping/PortMappingImpl.java
networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/service/NetworkModelServiceImpl.java
networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/service/NetworkModelServiceImpl2.java [deleted file]
networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/util/ClliNetwork.java
networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/util/OpenRoadmNetwork.java
networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/util/OpenRoadmTopology.java
networkmodel/src/main/resources/org/opendaylight/blueprint/networkmodel-blueprint.xml

index 5468602e5bde37ceba5417aa9282212d3be3f6e1..e1681647c54cce5128f128054774377aba2943c7 100644 (file)
@@ -87,11 +87,11 @@ public interface DeviceConfig {
      * This method retrieves the connection-map list from operational datastore of a
      * given device.
      *
-     * @param NodeId
+     * @param nodeId
      *            node ID
      *
      * @return connection-map list or null if container is absent
      */
-    List<ConnectionMap> getConnectionMap(String NodeId);
+    List<ConnectionMap> getConnectionMap(String nodeId);
 
 }
index 1d06acb88ce3f84e354c3b0bf7db2c6270bfbbf4..2baa50578230fdcb3f470435ebe685150ad63eae 100644 (file)
@@ -98,9 +98,9 @@ public class DeviceConfigImpl implements DeviceConfig {
     }
 
     @Override
-    public List<ConnectionMap> getConnectionMap(String NodeId) {
+    public List<ConnectionMap> getConnectionMap(String nodeId) {
         InstanceIdentifier<OrgOpenroadmDevice> deviceIID = InstanceIdentifier.create(OrgOpenroadmDevice.class);
-        Optional<OrgOpenroadmDevice> deviceObject = this.deviceTransactionManager.getDataFromDevice(NodeId,
+        Optional<OrgOpenroadmDevice> deviceObject = this.deviceTransactionManager.getDataFromDevice(nodeId,
             LogicalDatastoreType.OPERATIONAL, deviceIID, Timeouts.DEVICE_READ_TIMEOUT,
             Timeouts.DEVICE_READ_TIMEOUT_UNIT);
         if (deviceObject.isPresent()) {
index 3e85586c8ac536c9ff32dc5f70a022ea8a6d35df..9d76d10177ae3a37581d1c3bd80d104d4e259a3c 100644 (file)
@@ -18,37 +18,20 @@ import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.org.open
 public interface PortMapping {
 
     /**
-     * This method creates logical to physical port mapping for a given device.
-     * Instead of parsing all the circuit packs/ports in the device this methods
-     * does a selective read operation on degree/srg subtree to get circuit
-     * packs/ports that map to :
+     * When OpenRoadmTopology creates the logical to physical port mapping for a
+     * given device, this methods has just to store the resulting mapping
+     * operation to datastore.
      *
-     * <p>
-     * 1. DEGn-TTP-TX, DEGn-TTP-RX, DEGn-TTP-TXRX
-     *
-     * <p>
-     * 2. SRGn-PPp-TX, SRGn-PPp-RX, SRGn-PPp-TXRX
-     *
-     * <p>
-     * 3. LINEn
-     *
-     * <p>
-     * 4. CLNTn.
-     *
-     * <p>
-     * If the port is Mw it also store the OMS, OTS interface provisioned on the
-     * port. It skips the logical ports that are internal. If operation is
-     * successful the mapping gets stored in datastore corresponding to
-     * portmapping.yang data model.
-     *
-     * @param nodeId
-     *            node ID
-     *
-     * @return true/false based on status of operation
+     * @param deviceInfo
+     *            deviceInfo
+     * @param portMapList
+     *            The list of discovered mapping for the node
+     * @param degreeCpList
+     *            The list of circuit-packs supporting eth interface with lldp
+     *            protocole
+     * @return true if success to store mapping in datastore, false otherwise.
      */
-    boolean createMappingData(String nodeId);
-
-    boolean createMappingData2(Info deviceInfo, List<Mapping> portMapList, List<CpToDegree> degreeCpList);
+    boolean createMappingData(Info deviceInfo, List<Mapping> portMapList, List<CpToDegree> degreeCpList);
 
     /**
      * This method removes mapping data from the datastore after disconnecting
index 008121dfb854056c2c896ff2603a462c4d11c124..21ef7b4f7a647669615ac906a7db00e53ec96204 100644 (file)
@@ -10,18 +10,11 @@ package org.opendaylight.transportpce.common.mapping;
 
 import com.google.common.util.concurrent.CheckedFuture;
 import java.util.ArrayList;
-import java.util.Comparator;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
 import java.util.Optional;
-import java.util.Set;
 import java.util.concurrent.ExecutionException;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.TimeoutException;
-import java.util.stream.Collectors;
-
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction;
 import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;
@@ -38,34 +31,21 @@ import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmappi
 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev170228.network.NodesBuilder;
 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev170228.network.NodesKey;
 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev170228.network.nodes.CpToDegree;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev170228.network.nodes.CpToDegreeBuilder;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev170228.network.nodes.CpToDegreeKey;
 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev170228.network.nodes.Mapping;
 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev170228.network.nodes.MappingBuilder;
 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev170228.network.nodes.MappingKey;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.types.rev161014.NodeTypes;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.CircuitPack;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.Port;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.circuit.pack.Ports;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.circuit.pack.PortsKey;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.circuit.packs.CircuitPacks;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.circuit.packs.CircuitPacksKey;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.degree.ConnectionPorts;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.interfaces.grp.Interface;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.interfaces.grp.InterfaceKey;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.org.openroadm.device.container.OrgOpenroadmDevice;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.org.openroadm.device.container.org.openroadm.device.Degree;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.org.openroadm.device.container.org.openroadm.device.DegreeKey;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.org.openroadm.device.container.org.openroadm.device.Info;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.org.openroadm.device.container.org.openroadm.device.Protocols;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.org.openroadm.device.container.org.openroadm.device.SharedRiskGroup;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.org.openroadm.device.container.org.openroadm.device.SharedRiskGroupKey;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.port.Interfaces;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.interfaces.rev161014.InterfaceType;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.interfaces.rev161014.OpenROADMOpticalMultiplex;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.interfaces.rev161014.OpticalTransport;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.lldp.rev161014.Protocols1;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.lldp.rev161014.lldp.container.lldp.PortConfig;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -85,313 +65,9 @@ public class PortMappingImpl implements PortMapping {
         this.openRoadmInterfaces = openRoadmInterfaces;
     }
 
-    @Override
-    public boolean createMappingData(String nodeId) {
-
-        LOG.info("Create Mapping Data for node {}", nodeId);
-        List<Mapping> portMapList = new ArrayList<>();
-        InstanceIdentifier<Info> infoIID = InstanceIdentifier.create(OrgOpenroadmDevice.class).child(Info.class);
-        Optional<Info> deviceInfoOptional = this.deviceTransactionManager.getDataFromDevice(nodeId,
-            LogicalDatastoreType.OPERATIONAL, infoIID,
-            Timeouts.DEVICE_READ_TIMEOUT, Timeouts.DEVICE_READ_TIMEOUT_UNIT);
-
-        Info deviceInfo;
-        if (deviceInfoOptional.isPresent()) {
-            deviceInfo = deviceInfoOptional.get();
-        } else {
-            LOG.warn("Device info subtree is absent for {}", nodeId);
-            return false;
-        }
-        if (deviceInfo.getNodeType() == null) {
-            LOG.error("Node type field is missing"); // TODO make mandatory in yang
-            return false;
-        }
-        switch (deviceInfo.getNodeType()) {
-
-            case Rdm:
-                // Get TTP port mapping
-                if (!createTtpPortMapping(nodeId, deviceInfo, portMapList)) {
-                    // return false if mapping creation for TTP's failed
-                    LOG.warn("Unable to create mapping for TTP's on node {}", nodeId);
-                    return false;
-                }
-
-                // Get PP port mapping
-                if (!createPpPortMapping(nodeId, deviceInfo, portMapList)) {
-                    // return false if mapping creation for PP's failed
-                    LOG.warn("Unable to create mapping for PP's on node {}", nodeId);
-                    return false;
-                }
-                break;
-            case Xpdr:
-                if (!createXpdrPortMapping(nodeId, portMapList)) {
-                    LOG.warn("Unable to create mapping for Xponder on node {}", nodeId);
-                    return false;
-                }
-                break;
-            default:
-                LOG.error("Unable to create mapping for node {} : unknown nodetype ", nodeId);
-                break;
-
-        }
-        return postPortMapping(deviceInfo, portMapList, deviceInfo.getNodeType().getIntValue(), null);
-    }
-
 
-    /**
-     * This private method gets the list of external ports on a degree. For each
-     * port in the degree, it does a get on port subtree with
-     * circuit-pack-name/port-name as key in order to get the logical connection
-     * point name corresponding to it.
-     *
-     * @param deviceInfo
-     *            Info subtree read from the device
-     * @param portMapList
-     *            Reference to the list containing the mapping to be pushed to
-     *            MD-SAL
-     *
-     * @return true/false based on status of operation
-     */
-    private boolean createTtpPortMapping(String nodeId, Info deviceInfo, List<Mapping> portMapList) {
-        // Creating mapping data for degree TTP's
-
-        List<Degree> degrees = getDegrees(nodeId, deviceInfo);
-        List<ConnectionPorts> degreeConPorts = getDegreePorts(degrees);
-        Map<String, String> interfaceList = getEthInterfaceList(nodeId);
-        List<CpToDegree> cpToDegreeList = getCpToDegreeList(degrees, nodeId, interfaceList);
-        LOG.info("Map looks like this {}",interfaceList);
 
-        postPortMapping(deviceInfo, null, deviceInfo.getNodeType().getIntValue(), cpToDegreeList);
 
-        // Getting circuit-pack-name/port-name corresponding to TTP's
-        for (ConnectionPorts cp : degreeConPorts) {
-            String circuitPackName = cp.getCircuitPackName();
-            String portName = cp.getPortName().toString();
-            InstanceIdentifier<Ports> portIID = InstanceIdentifier.create(OrgOpenroadmDevice.class)
-                .child(CircuitPacks.class, new CircuitPacksKey(circuitPackName))
-                .child(Ports.class, new PortsKey(portName));
-
-            LOG.info("Fetching logical Connection Point value for port {} at circuit pack {}", portName,
-                circuitPackName);
-            Optional<Ports> portObject = this.deviceTransactionManager.getDataFromDevice(nodeId,
-                LogicalDatastoreType.OPERATIONAL, portIID,
-                Timeouts.DEVICE_READ_TIMEOUT, Timeouts.DEVICE_READ_TIMEOUT_UNIT);
-            if (portObject.isPresent()) {
-                Ports port = portObject.get();
-                if (port.getLogicalConnectionPoint() != null) {
-                    LOG.info("Logical Connection Point for {} {} is {}", circuitPackName, portName,
-                        port.getLogicalConnectionPoint());
-                    portMapList.add(createMappingObject(nodeId, port, circuitPackName,
-                        port.getLogicalConnectionPoint()));
-                } else {
-                    LOG.warn("Logical Connection Point value is missing for {} {}", circuitPackName,
-                        port.getPortName());
-                }
-            } else {
-                LOG.warn("Port {} is not present in node {} in circuit pack {}!", portName, nodeId, circuitPackName);
-                continue; // TODO continue or return true?
-            }
-        }
-        return true;
-    }
-
-    private List<Degree> getDegrees(String deviceId, Info ordmInfo) {
-        List<Degree> degrees = new ArrayList<>();
-        Integer maxDegree;
-
-        // Get value for max degree from info subtree, required for iteration
-        // if not present assume to be 20 (temporary)
-        if (ordmInfo.getMaxDegrees() != null) {
-            maxDegree = ordmInfo.getMaxDegrees();
-        } else {
-            maxDegree = 20;
-        }
-
-        for (int degreeCounter = 1; degreeCounter <= maxDegree; degreeCounter++) {
-            LOG.info("Getting Connection ports for Degree Number {}", degreeCounter);
-            InstanceIdentifier<Degree> deviceIID = InstanceIdentifier.create(OrgOpenroadmDevice.class)
-                .child(Degree.class, new DegreeKey(degreeCounter));
-            Optional<Degree> ordmDegreeObject = this.deviceTransactionManager.getDataFromDevice(deviceId,
-                LogicalDatastoreType.CONFIGURATION,
-                deviceIID, Timeouts.DEVICE_READ_TIMEOUT, Timeouts.DEVICE_READ_TIMEOUT_UNIT);
-            if (ordmDegreeObject.isPresent()) {
-                degrees.add(ordmDegreeObject.get());
-            } else {
-                LOG.info("Device has {} degree", degreeCounter - 1);
-                break;
-            }
-        }
-        return degrees;
-    }
-
-    /**
-     * This private method gets the list of circuit packs on an Srg. For each
-     * circuit pack on an Srg, it does a get on circuit-pack subtree with
-     * circuit-pack-name as key in order to get the list of ports. It then
-     * iterates over the list of ports to get ports with port-qual as
-     * roadm-external. It appends a TX,RX,TXRX to the logical connection point
-     * name based on the direction of the port.
-     *
-     * @param nodeId
-     *            Id of device
-     * @param deviceInfo
-     *            Info subtree read from the device
-     * @param portMapList
-     *            Reference to the list containing the mapping to be pushed to
-     *            MD-SAL
-     *
-     * @return true/false based on status of operation
-     */
-
-    private boolean createPpPortMapping(String nodeId, Info deviceInfo, List<Mapping> portMapList) {
-        // Creating mapping data for SRG's PP
-        HashMap<Integer, List<org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.srg
-            .CircuitPacks>> srgCps = getSrgCps(nodeId, deviceInfo);
-        Set<Map.Entry<Integer, List<org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206
-            .srg.CircuitPacks>>> circuitPacks = srgCps.entrySet();
-        for (Entry<Integer, List<org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.srg
-                .CircuitPacks>> entry : circuitPacks) {
-            Integer srgIndex = entry.getKey();
-            for (org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.srg.CircuitPacks cp : entry
-                .getValue()) {
-                String circuitPackName = cp.getCircuitPackName();
-                InstanceIdentifier<CircuitPacks> cpIID = InstanceIdentifier.create(OrgOpenroadmDevice.class)
-                    .child(CircuitPacks.class, new CircuitPacksKey(circuitPackName));
-                Optional<CircuitPacks> circuitPackObject = this.deviceTransactionManager.getDataFromDevice(nodeId,
-                    LogicalDatastoreType.OPERATIONAL, cpIID,
-                    Timeouts.DEVICE_READ_TIMEOUT, Timeouts.DEVICE_READ_TIMEOUT_UNIT);
-
-                if (!circuitPackObject.isPresent() || (circuitPackObject.get().getPorts() == null)) {
-                    LOG.warn("{} : Circuit pack {} not found or without ports.", nodeId, circuitPackName);
-                    continue; // TODO continue or return false?
-                }
-                CircuitPacks circuitPack = circuitPackObject.get();
-                for (Ports port : circuitPack.getPorts()) {
-                    if (port.getLogicalConnectionPoint() != null) {
-                        String logicalConnectionPoint = getLogicalConnectionPort(port, srgIndex);
-                        LOG.info("{} : Logical Connection Point for {} {} is {}", nodeId, circuitPackName, port
-                            .getPortName(),
-                            logicalConnectionPoint);
-                        portMapList.add(createMappingObject(nodeId, port, circuitPackName, logicalConnectionPoint));
-                    } else if (Port.PortQual.RoadmInternal.equals(port.getPortQual())) {
-                        LOG.info("Port is internal, skipping Logical Connection Point missing for {} {}",
-                            circuitPackName,
-                            port.getPortName());
-                    } else if (port.getLogicalConnectionPoint() == null) {
-                        LOG.info("Value missing, Skipping Logical Connection Point missing for {} {}", circuitPackName,
-                            port.getPortName());
-                    }
-                }
-            }
-        }
-        return true;
-    }
-
-    /**
-     * This method does a get operation on shared risk group subtree of the
-     * netconf device's config datastore and returns a list of all circuit packs
-     * objects that are part of srgs. It is required to do a selective get on
-     * all the circuit packs that contain add/drop ports of interest.
-     *
-     * @param deviceId
-     *            Device id
-     * @param ordmInfo
-     *            Info subtree from the device
-     * @return List of circuit packs object belonging to- shared risk group
-     *         subtree
-     */
-    private HashMap<Integer, List<org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.srg
-        .CircuitPacks>> getSrgCps(String deviceId, Info ordmInfo) {
-        HashMap<Integer, List<org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.srg
-            .CircuitPacks>> cpPerSrg = new HashMap<>();
-        Integer maxSrg;
-        // Get value for max Srg from info subtree, required for iteration
-        // if not present assume to be 20 (temporary)
-        if (ordmInfo.getMaxSrgs() != null) {
-            maxSrg = ordmInfo.getMaxSrgs();
-        } else {
-            maxSrg = 20;
-        }
-        for (int srgCounter = 1; srgCounter <= maxSrg; srgCounter++) {
-            List<org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.srg.CircuitPacks> srgCps =
-                new ArrayList<>();
-            LOG.info("Getting Circuitpacks for Srg Number {}", srgCounter);
-            InstanceIdentifier<SharedRiskGroup> srgIID = InstanceIdentifier.create(OrgOpenroadmDevice.class)
-                .child(SharedRiskGroup.class, new SharedRiskGroupKey(srgCounter));
-            Optional<SharedRiskGroup> ordmSrgObject = this.deviceTransactionManager.getDataFromDevice(deviceId,
-                LogicalDatastoreType.CONFIGURATION,
-                srgIID, Timeouts.DEVICE_READ_TIMEOUT, Timeouts.DEVICE_READ_TIMEOUT_UNIT);
-            if (ordmSrgObject.isPresent()) {
-                srgCps.addAll(ordmSrgObject.get().getCircuitPacks());
-                cpPerSrg.put(ordmSrgObject.get().getSrgNumber(), srgCps);
-            }
-        }
-        LOG.info("Device {} has {} Srg", deviceId, cpPerSrg.size());
-        return cpPerSrg;
-    }
-
-    /**
-     * This private method gets the list of circuit packs on a xponder. For each
-     * circuit pack on a Xponder, it does a get on circuit-pack subtree with
-     * circuit-pack-name as key in order to get the list of ports. It then
-     * iterates over the list of ports to get ports with port-qual as
-     * xpdr-network/xpdr-client. The line and client ports are saved as:
-     *
-     * <p>
-     * 1. LINEn
-     *
-     * <p>
-     * 2. CLNTn
-     *
-     * @param nodeId
-     *            Id of device
-     * @param portMapList
-     *            Reference to the list containing the mapping to be pushed to
-     *            MD-SAL
-     *
-     * @return true/false based on status of operation
-     */
-    private boolean createXpdrPortMapping(String nodeId, List<Mapping> portMapList) {
-        // Creating for Xponder Line and Client Ports
-        InstanceIdentifier<OrgOpenroadmDevice> deviceIID = InstanceIdentifier.create(OrgOpenroadmDevice.class);
-        Optional<OrgOpenroadmDevice> deviceObject = this.deviceTransactionManager.getDataFromDevice(nodeId,
-            LogicalDatastoreType.OPERATIONAL, deviceIID,
-            Timeouts.DEVICE_READ_TIMEOUT, Timeouts.DEVICE_READ_TIMEOUT_UNIT);
-
-        // Variable to keep track of number of line ports
-        int line = 1;
-        // Variable to keep track of number of client ports
-        int client = 1;
-        if (!deviceObject.isPresent() || (deviceObject.get().getCircuitPacks() == null)) {
-            LOG.warn("Circuit Packs are not present for {}", nodeId);
-            return false; // TODO return false or continue?
-        }
-
-        List<CircuitPacks> circuitPackList = deviceObject.get().getCircuitPacks();
-        circuitPackList.sort(Comparator.comparing(CircuitPack::getCircuitPackName));
-
-        for (CircuitPacks cp : circuitPackList) {
-            String circuitPackName = cp.getCircuitPackName();
-            if (cp.getPorts() == null) {
-                LOG.warn("Ports were not found for circuit pack: {}", circuitPackName);
-                continue;
-            }
-            for (Ports port : cp.getPorts()) {
-                if (Port.PortQual.XpdrNetwork.equals(port.getPortQual())) {
-                    portMapList.add(createMappingObject(nodeId, port, circuitPackName,
-                        "XPDR1-" + OpenRoadmInterfacesImpl.NETWORK_TOKEN + line));
-                    line++;
-                } else if (Port.PortQual.XpdrClient.equals(port.getPortQual())) {
-                    portMapList.add(createMappingObject(nodeId, port, circuitPackName,
-                        "XPDR1-" + OpenRoadmInterfacesImpl.CLIENT_TOKEN + client));
-                    client++;
-                } else {
-                    LOG.warn("Not supported type of port! Port type: {}", port.getPortQual());
-                }
-            }
-        }
-        return true;
-    }
 
     /**
      * This private method builds the mapping object to be pushed in MD-SAL in
@@ -441,36 +117,6 @@ public class PortMappingImpl implements PortMapping {
         return mpBldr.build();
     }
 
-    private CpToDegree createCpToDegreeObject(String circuitPackName, String degreeNumber, String nodeId,
-            Map<String, String> interfaceList) {
-        String interfaceName = null;
-        if (interfaceList.get(circuitPackName) !=  null) {
-            interfaceName = interfaceList.get(circuitPackName);
-        }
-        return new CpToDegreeBuilder().withKey(new CpToDegreeKey(circuitPackName)).setCircuitPackName(circuitPackName)
-        .setDegreeNumber(new Long(degreeNumber)).setInterfaceName(interfaceName).build();
-    }
-
-    private static List<ConnectionPorts> getDegreePorts(List<Degree> degrees) {
-        return degrees.stream().filter(degree -> degree.getConnectionPorts() != null)
-            .flatMap(degree -> degree.getConnectionPorts().stream()).collect(Collectors.toList());
-    }
-
-    private List<CpToDegree> getCpToDegreeList(List<Degree> degrees, String nodeId,
-            Map<String, String> interfaceList) {
-        List<CpToDegree> cpToDegreeList = new ArrayList<>();
-        for (Degree degree : degrees) {
-            if (degree.getCircuitPacks() != null) {
-                LOG.info("Inside CP to degree list");
-                cpToDegreeList.addAll(degree.getCircuitPacks().stream()
-                    .filter(cp -> interfaceList.containsKey(cp.getCircuitPackName()))
-                        .map(cp -> createCpToDegreeObject(cp.getCircuitPackName() ,
-                                degree.getDegreeNumber().toString(), nodeId ,interfaceList))
-                        .collect(Collectors.toList()));
-            }
-        }
-        return cpToDegreeList;
-    }
 
     /**
      * This method for ports the portMapping corresponding to the
@@ -548,49 +194,6 @@ public class PortMappingImpl implements PortMapping {
         return null;
     }
 
-    private static String getLogicalConnectionPort(Ports port, int srgCounter) {
-        String logicalConnectionPoint = null;
-        if (port.getLogicalConnectionPoint() != null) {
-            switch (port.getPortDirection()) {
-                case Tx:
-                    // Port direction is transmit
-                    if (!port.getLogicalConnectionPoint().contains("SRG")) {
-                        logicalConnectionPoint = "SRG" + srgCounter + "-" + port.getLogicalConnectionPoint() + "-TX";
-                    } else {
-                        logicalConnectionPoint = port.getLogicalConnectionPoint() + "-TX";
-                    }
-                    break;
-                case Rx:
-                    // Port direction is receive
-                    if (!port.getLogicalConnectionPoint().contains("SRG")) {
-                        logicalConnectionPoint = "SRG" + srgCounter + "-" + port.getLogicalConnectionPoint() + "-RX";
-                    } else {
-                        logicalConnectionPoint = port.getLogicalConnectionPoint() + "-RX";
-                    }
-                    break;
-                case Bidirectional:
-                    // port is bidirectional
-                    if (!port.getLogicalConnectionPoint().contains("SRG")) {
-                        logicalConnectionPoint = "SRG" + srgCounter + "-" + port.getLogicalConnectionPoint();
-                    } else {
-                        logicalConnectionPoint = port.getLogicalConnectionPoint();
-                    }
-                    if (!port.getLogicalConnectionPoint().endsWith("-TXRX")) {
-                        logicalConnectionPoint = logicalConnectionPoint.concat("-TXRX");
-                    }
-                    break;
-                default:
-                    // Unsupported Port direction
-                    LOG.error("Unsupported port direction for port {}  {}", port, port.getPortDirection());
-                    return null; // TODO return false or continue?
-            }
-            return logicalConnectionPoint;
-        }
-        LOG.warn("Unsupported port direction for port {} - {} - LogicalConnectionPoint is null",
-            port, port.getPortDirection());
-        return null; // TODO return false or continue?
-    }
-
     @Override
     public void deleteMappingData(String nodeId) {
         LOG.info("Deleting Mapping Data corresponding at node '{}'", nodeId);
@@ -644,57 +247,9 @@ public class PortMappingImpl implements PortMapping {
         }
     }
 
-    private Map<String, String> getEthInterfaceList(String nodeId) {
-        LOG.info("It is calling get ethernet interface");
-        Map<String, String> cpToInterfaceMap = new HashMap<>();
-        InstanceIdentifier<Protocols> protocolsIID = InstanceIdentifier.create(OrgOpenroadmDevice.class)
-                .child(Protocols.class);
-        Optional<Protocols> protocolObject = this.deviceTransactionManager.getDataFromDevice(nodeId,
-                LogicalDatastoreType.OPERATIONAL, protocolsIID, Timeouts.DEVICE_READ_TIMEOUT,
-                Timeouts.DEVICE_READ_TIMEOUT_UNIT);
-        if (!protocolObject.isPresent() || (protocolObject.get().augmentation(Protocols1.class) == null)) {
-            LOG.warn("LLDP subtree is missing : isolated openroadm device");
-            return cpToInterfaceMap;
-        }
-        List<PortConfig> portConfigList = protocolObject.get().augmentation(Protocols1.class).getLldp().getPortConfig();
-        if (!portConfigList.isEmpty()) {
-            for (PortConfig portConfig : portConfigList) {
-                if (portConfig.getAdminStatus().equals(PortConfig.AdminStatus.Txandrx)) {
-                    InstanceIdentifier<Interface> interfaceIID = InstanceIdentifier.create(OrgOpenroadmDevice.class)
-                            .child(Interface.class, new InterfaceKey(portConfig.getIfName()));
-                    Optional<Interface> interfaceObject = this.deviceTransactionManager.getDataFromDevice(nodeId,
-                            LogicalDatastoreType.OPERATIONAL, interfaceIID, Timeouts.DEVICE_READ_TIMEOUT,
-                            Timeouts.DEVICE_READ_TIMEOUT_UNIT);
-                    if (interfaceObject.isPresent()
-                            && (interfaceObject.get().getSupportingCircuitPackName() != null)) {
-                        String supportingCircuitPackName = interfaceObject.get().getSupportingCircuitPackName();
-                        cpToInterfaceMap.put(supportingCircuitPackName, portConfig.getIfName());
-                        InstanceIdentifier<CircuitPacks> circuitPacksIID = InstanceIdentifier
-                                .create(OrgOpenroadmDevice.class).child(CircuitPacks.class,
-                                        new CircuitPacksKey(supportingCircuitPackName));
-                        Optional<CircuitPacks> circuitPackObject = this.deviceTransactionManager.getDataFromDevice(
-                                nodeId, LogicalDatastoreType.OPERATIONAL, circuitPacksIID, Timeouts
-                                                .DEVICE_READ_TIMEOUT, Timeouts.DEVICE_READ_TIMEOUT_UNIT);
-                        if (circuitPackObject.isPresent()
-                                && (circuitPackObject.get().getParentCircuitPack() != null)) {
-                            cpToInterfaceMap.put(circuitPackObject.get().getParentCircuitPack()
-                                    .getCircuitPackName(), portConfig.getIfName());
-                        }
-                    }
-                } else {
-                    LOG.warn("PortConfig Admi Status is not equal Txandrx");
-                }
-            }
-        } else {
-            LOG.warn("Couldnt find port config under LLDP for Node : {}", nodeId);
-        }
-        LOG.info("Processiong is done.. now returning..");
-        return cpToInterfaceMap;
-    }
-
     @Override
-    public boolean createMappingData2(Info deviceInfo, List<Mapping> portMapList, List<CpToDegree> degreeCpList) {
-        LOG.info("Create Mapping Data for node {}", deviceInfo.getNodeId());
+    public boolean createMappingData(Info deviceInfo, List<Mapping> portMapList, List<CpToDegree> degreeCpList) {
+        LOG.info("Create Mapping Data for node {}", deviceInfo.getNodeId());
         return postPortMapping(deviceInfo, portMapList, deviceInfo.getNodeType().getIntValue(), degreeCpList);
     }
 
index 81079870e9022d32b1f09b69195f0d44c0880612..6c9ed2a5987bbc17a2fc8870e33d496c8348f416 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright Â© 2016 AT&T and others.  All rights reserved.
+ * Copyright Â© 2017 Orange, Inc. and others.  All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
@@ -9,17 +9,21 @@ package org.opendaylight.transportpce.networkmodel.service;
 
 import java.util.HashMap;
 import java.util.concurrent.ExecutionException;
+
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;
 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
 import org.opendaylight.transportpce.common.NetworkUtils;
 import org.opendaylight.transportpce.common.device.DeviceTransactionManager;
+import org.opendaylight.transportpce.common.mapping.DeviceConfig;
 import org.opendaylight.transportpce.common.mapping.PortMapping;
 import org.opendaylight.transportpce.networkmodel.R2RLinkDiscovery;
 import org.opendaylight.transportpce.networkmodel.dto.TopologyShard;
 import org.opendaylight.transportpce.networkmodel.util.ClliNetwork;
 import org.opendaylight.transportpce.networkmodel.util.OpenRoadmNetwork;
 import org.opendaylight.transportpce.networkmodel.util.OpenRoadmTopology;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.common.types.rev170929.NodeTypes;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.org.openroadm.device.container.org.openroadm.device.Info;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev150608.Network;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev150608.NetworkId;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev150608.NetworkKey;
@@ -28,7 +32,7 @@ import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev150608.network.NodeKey;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev150608.Network1;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev150608.network.Link;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.NetconfNodeConnectionStatus;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.NetconfNodeConnectionStatus.ConnectionStatus;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -39,53 +43,63 @@ public class NetworkModelServiceImpl implements NetworkModelService {
     private static final boolean CREATE_MISSING_PARENTS = true;
 
     private final DataBroker dataBroker;
+    private final DeviceConfig deviceConfig;
     private final R2RLinkDiscovery linkDiscovery;
     private final DeviceTransactionManager deviceTransactionManager;
     private final OpenRoadmTopology openRoadmTopology;
     private final PortMapping portMapping;
-    private HashMap<String,TopologyShard> topologyShardMountedDevice;
+    private HashMap<String, TopologyShard> topologyShardMountedDevice;
 
-    public NetworkModelServiceImpl(final DataBroker dataBroker, final R2RLinkDiscovery linkDiscovery,
-            DeviceTransactionManager deviceTransactionManager,
-            OpenRoadmTopology openRoadmTopology, PortMapping portMapping) {
+    public NetworkModelServiceImpl(final DataBroker dataBroker, final DeviceConfig deviceConfig,
+        final R2RLinkDiscovery linkDiscovery,
+        DeviceTransactionManager deviceTransactionManager,
+        OpenRoadmTopology openRoadmTopology, PortMapping portMapping) {
         this.dataBroker = dataBroker;
+        this.deviceConfig = deviceConfig;
         this.linkDiscovery = linkDiscovery;
         this.deviceTransactionManager = deviceTransactionManager;
         this.openRoadmTopology = openRoadmTopology;
         this.portMapping = portMapping;
-        this.topologyShardMountedDevice = new HashMap<String,TopologyShard>();
-    }
-
-    public void init() {
-        LOG.info("init ...");
-    }
-
-    public void close() {
+        this.topologyShardMountedDevice = new HashMap<String, TopologyShard>();
     }
 
     @Override
     public void createOpenROADMnode(String nodeId) {
         try {
-            LOG.info("createOpenROADMNode: {} ", nodeId);
-
-            this.portMapping.createMappingData(nodeId);
-            this.linkDiscovery.readLLDP(new NodeId(nodeId));
+            LOG.info("creating OpenROADMNode: {} ", nodeId);
+            LOG.info("Retreiving configuration from node {}.", nodeId);
+            Info deviceInfo = this.deviceConfig.getDeviceInfo(nodeId);
 
-            Node clliNode = ClliNetwork.createNode(this.deviceTransactionManager, nodeId);
-            if (clliNode == null) {
+            Node clliNode = null;
+            if (deviceInfo != null && deviceInfo.getClli() != null) {
+                clliNode = ClliNetwork.createNode(deviceInfo.getClli(), nodeId);
+            } else {
                 LOG.error("Unable to create clli node! Node id: {}", nodeId);
                 return;
             }
 
-            Node openRoadmNode = OpenRoadmNetwork.createNode(nodeId, this.deviceTransactionManager);
-            if (openRoadmNode == null) {
+            Node openRoadmNode = null;
+            if (deviceInfo != null) {
+                openRoadmNode = OpenRoadmNetwork.createNode(nodeId, deviceInfo);
+            } else {
                 LOG.error("Unable to create OpenRoadm node! Node id: {}", nodeId);
                 return;
             }
 
-            TopologyShard topologyShard = this.openRoadmTopology.createTopologyShard(nodeId);
-            if (topologyShard == null) {
-                LOG.error("Unable to create topology shard for node {}!", nodeId);
+            TopologyShard topologyShard = null;
+            if (deviceInfo != null) {
+                topologyShard = this.openRoadmTopology.createTopologyShard(nodeId, deviceInfo);
+                LOG.debug("mapping = {}", topologyShard.getMappings().toString());
+                if (!this.portMapping.createMappingData(deviceInfo, topologyShard.getMappings(), topologyShard
+                    .getCpToDegreeList())) {
+                    LOG.error("Error to create mapping data for {}", nodeId);
+                } else {
+                    if (NodeTypes.Rdm.getName().equals(deviceInfo.getNodeType().getName())) {
+                        this.linkDiscovery.readLLDP(new NodeId(nodeId));
+                    }
+                }
+            } else {
+                LOG.error("Unable to create topology shard for node {}.", nodeId);
                 return;
             }
             this.topologyShardMountedDevice.put(nodeId, topologyShard);
@@ -93,60 +107,47 @@ public class NetworkModelServiceImpl implements NetworkModelService {
             WriteTransaction writeTransaction = this.dataBroker.newWriteOnlyTransaction();
             LOG.info("creating node in {}", NetworkUtils.CLLI_NETWORK_ID);
             InstanceIdentifier<Node> iiClliNode = InstanceIdentifier
-                    .builder(Network.class, new NetworkKey(new NetworkId(NetworkUtils.CLLI_NETWORK_ID)))
-                    .child(Node.class, clliNode.key())
-                    .build();
+                .builder(Network.class, new NetworkKey(new NetworkId(NetworkUtils.CLLI_NETWORK_ID)))
+                .child(Node.class, clliNode.key())
+                .build();
             writeTransaction.merge(LogicalDatastoreType.CONFIGURATION, iiClliNode, clliNode,
-                    CREATE_MISSING_PARENTS);
+                CREATE_MISSING_PARENTS);
             LOG.info("creating node in {}", NetworkUtils.UNDERLAY_NETWORK_ID);
             InstanceIdentifier<Node> iiOpenRoadmNode = InstanceIdentifier
-                    .builder(Network.class, new NetworkKey(new NetworkId(NetworkUtils.UNDERLAY_NETWORK_ID)))
-                    .child(Node.class, openRoadmNode.key())
-                    .build();
+                .builder(Network.class, new NetworkKey(new NetworkId(NetworkUtils.UNDERLAY_NETWORK_ID)))
+                .child(Node.class, openRoadmNode.key())
+                .build();
             writeTransaction.merge(LogicalDatastoreType.CONFIGURATION, iiOpenRoadmNode, openRoadmNode,
-                    CREATE_MISSING_PARENTS);
-            for (Node openRoadmTopologyNode: topologyShard.getNodes()) {
+                CREATE_MISSING_PARENTS);
+            for (Node openRoadmTopologyNode : topologyShard.getNodes()) {
                 LOG.info("creating node {} in {}", openRoadmTopologyNode.getNodeId().getValue(),
-                        NetworkUtils.OVERLAY_NETWORK_ID);
+                    NetworkUtils.OVERLAY_NETWORK_ID);
                 InstanceIdentifier<Node> iiOpenRoadmTopologyNode = InstanceIdentifier
-                        .builder(Network.class, new NetworkKey(new NetworkId(NetworkUtils.OVERLAY_NETWORK_ID)))
-                        .child(Node.class, openRoadmTopologyNode.key())
-                        .build();
+                    .builder(Network.class, new NetworkKey(new NetworkId(NetworkUtils.OVERLAY_NETWORK_ID)))
+                    .child(Node.class, openRoadmTopologyNode.key())
+                    .build();
                 writeTransaction.merge(LogicalDatastoreType.CONFIGURATION, iiOpenRoadmTopologyNode,
-                        openRoadmTopologyNode, CREATE_MISSING_PARENTS);
+                    openRoadmTopologyNode, CREATE_MISSING_PARENTS);
             }
-            for (Link openRoadmTopologyLink: topologyShard.getLinks()) {
+            for (Link openRoadmTopologyLink : topologyShard.getLinks()) {
                 LOG.info("creating link {} in {}", openRoadmTopologyLink.getLinkId().getValue(),
-                        NetworkUtils.OVERLAY_NETWORK_ID);
+                    NetworkUtils.OVERLAY_NETWORK_ID);
                 InstanceIdentifier<Link> iiOpenRoadmTopologyLink = InstanceIdentifier
-                        .builder(Network.class, new NetworkKey(new NetworkId(NetworkUtils.OVERLAY_NETWORK_ID)))
-                        .augmentation(Network1.class)
-                        .child(Link.class, openRoadmTopologyLink.key())
-                        .build();
+                    .builder(Network.class, new NetworkKey(new NetworkId(NetworkUtils.OVERLAY_NETWORK_ID)))
+                    .augmentation(Network1.class)
+                    .child(Link.class, openRoadmTopologyLink.key())
+                    .build();
                 writeTransaction.merge(LogicalDatastoreType.CONFIGURATION, iiOpenRoadmTopologyLink,
-                        openRoadmTopologyLink, CREATE_MISSING_PARENTS);
+                    openRoadmTopologyLink, CREATE_MISSING_PARENTS);
             }
             writeTransaction.submit().get();
             LOG.info("all nodes and links created");
         } catch (InterruptedException | ExecutionException e) {
             LOG.error("ERROR: ", e);
         }
-    }
 
-    @Override
-    public void setOpenROADMnodeStatus(String nodeId, NetconfNodeConnectionStatus.ConnectionStatus connectionStatus) {
-        LOG.info("setOpenROADMNodeStatus: {} {}", nodeId, connectionStatus.name());
-        /*
-          TODO: set connection status of the device in model,
-          TODO: so we don't need to keep it in memory (Set<String> currentMountedDevice)
-          TODO: unfortunately there is no connection status OpenROADM in network models
-          TODO: waiting for new model version
-         */
     }
 
-    /* (non-Javadoc)
-     * @see org.opendaylight.transportpce.networkmodel.service.NetworkModelService#deleteOpenROADMnode(java.lang.String)
-     */
     @Override
     public void deleteOpenROADMnode(String nodeId) {
         try {
@@ -157,38 +158,39 @@ public class NetworkModelServiceImpl implements NetworkModelService {
             WriteTransaction writeTransaction = this.dataBroker.newWriteOnlyTransaction();
             LOG.info("deleting node in {}", NetworkUtils.CLLI_NETWORK_ID);
             InstanceIdentifier<Node> iiClliNode = InstanceIdentifier
-                    .builder(Network.class, new NetworkKey(new NetworkId(NetworkUtils.CLLI_NETWORK_ID)))
-                    .child(Node.class, nodeIdKey)
-                    .build();
+                .builder(Network.class, new NetworkKey(new NetworkId(NetworkUtils.CLLI_NETWORK_ID)))
+                .child(Node.class, nodeIdKey)
+                .build();
             writeTransaction.delete(LogicalDatastoreType.CONFIGURATION, iiClliNode);
             LOG.info("deleting node in {}", NetworkUtils.UNDERLAY_NETWORK_ID);
             InstanceIdentifier<Node> iiOpenRoadmNode = InstanceIdentifier
-                    .builder(Network.class, new NetworkKey(new NetworkId(NetworkUtils.UNDERLAY_NETWORK_ID)))
-                    .child(Node.class, nodeIdKey)
-                    .build();
+                .builder(Network.class, new NetworkKey(new NetworkId(NetworkUtils.UNDERLAY_NETWORK_ID)))
+                .child(Node.class, nodeIdKey)
+                .build();
             writeTransaction.delete(LogicalDatastoreType.CONFIGURATION, iiOpenRoadmNode);
             TopologyShard topologyShard = this.topologyShardMountedDevice.get(nodeId);
             if (topologyShard != null) {
                 LOG.info("TopologyShard for node '{}' is present", nodeId);
-                for (Node openRoadmTopologyNode: topologyShard .getNodes()) {
+                for (Node openRoadmTopologyNode : topologyShard.getNodes()) {
                     LOG.info("deleting node {} in {}", openRoadmTopologyNode.getNodeId().getValue(),
-                            NetworkUtils.OVERLAY_NETWORK_ID);
+                        NetworkUtils.OVERLAY_NETWORK_ID);
                     InstanceIdentifier<Node> iiOpenRoadmTopologyNode = InstanceIdentifier
-                            .builder(Network.class, new NetworkKey(new NetworkId(NetworkUtils.OVERLAY_NETWORK_ID)))
-                            .child(Node.class, openRoadmTopologyNode.key())
-                            .build();
+                        .builder(Network.class, new NetworkKey(new NetworkId(NetworkUtils.OVERLAY_NETWORK_ID)))
+                        .child(Node.class, openRoadmTopologyNode.key())
+                        .build();
                     writeTransaction.delete(LogicalDatastoreType.CONFIGURATION, iiOpenRoadmTopologyNode);
                 }
-                for (Link openRoadmTopologyLink: topologyShard.getLinks()) {
+                for (Link openRoadmTopologyLink : topologyShard.getLinks()) {
                     LOG.info("deleting link {} in {}", openRoadmTopologyLink.getLinkId().getValue(),
-                            NetworkUtils.OVERLAY_NETWORK_ID);
+                        NetworkUtils.OVERLAY_NETWORK_ID);
                     InstanceIdentifier<Link> iiOpenRoadmTopologyLink = InstanceIdentifier
-                            .builder(Network.class, new NetworkKey(new NetworkId(NetworkUtils.OVERLAY_NETWORK_ID)))
-                            .augmentation(Network1.class)
-                            .child(Link.class, openRoadmTopologyLink.key())
-                            .build();
+                        .builder(Network.class, new NetworkKey(new NetworkId(NetworkUtils.OVERLAY_NETWORK_ID)))
+                        .augmentation(Network1.class)
+                        .child(Link.class, openRoadmTopologyLink.key())
+                        .build();
                     writeTransaction.delete(LogicalDatastoreType.CONFIGURATION, iiOpenRoadmTopologyLink);
                 }
+                this.topologyShardMountedDevice.remove(nodeId);
             } else {
                 LOG.warn("TopologyShard for node '{}' is not present", nodeId);
             }
@@ -198,4 +200,11 @@ public class NetworkModelServiceImpl implements NetworkModelService {
             LOG.error("Error when trying to delete node : {}", nodeId, e);
         }
     }
+
+    @Override
+    public void setOpenROADMnodeStatus(String nodeId, ConnectionStatus connectionStatus) {
+        // TODO Auto-generated method stub
+
+    }
+
 }
diff --git a/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/service/NetworkModelServiceImpl2.java b/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/service/NetworkModelServiceImpl2.java
deleted file mode 100644 (file)
index 9e51ce0..0000000
+++ /dev/null
@@ -1,210 +0,0 @@
-/*
- * Copyright Â© 2017 Orange, Inc. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-package org.opendaylight.transportpce.networkmodel.service;
-
-import java.util.HashMap;
-import java.util.concurrent.ExecutionException;
-
-import org.opendaylight.controller.md.sal.binding.api.DataBroker;
-import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;
-import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
-import org.opendaylight.transportpce.common.NetworkUtils;
-import org.opendaylight.transportpce.common.device.DeviceTransactionManager;
-import org.opendaylight.transportpce.common.mapping.DeviceConfig;
-import org.opendaylight.transportpce.common.mapping.PortMapping;
-import org.opendaylight.transportpce.networkmodel.R2RLinkDiscovery;
-import org.opendaylight.transportpce.networkmodel.dto.TopologyShard;
-import org.opendaylight.transportpce.networkmodel.util.ClliNetwork;
-import org.opendaylight.transportpce.networkmodel.util.OpenRoadmNetwork;
-import org.opendaylight.transportpce.networkmodel.util.OpenRoadmTopology;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.common.types.rev170929.NodeTypes;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.org.openroadm.device.container.org.openroadm.device.Info;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev150608.Network;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev150608.NetworkId;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev150608.NetworkKey;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev150608.NodeId;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev150608.network.Node;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev150608.network.NodeKey;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev150608.Network1;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev150608.network.Link;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.NetconfNodeConnectionStatus.ConnectionStatus;
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class NetworkModelServiceImpl2 implements NetworkModelService {
-
-    private static final Logger LOG = LoggerFactory.getLogger(NetworkModelServiceImpl2.class);
-    private static final boolean CREATE_MISSING_PARENTS = true;
-
-    private final DataBroker dataBroker;
-    private final DeviceConfig deviceConfig;
-    private final R2RLinkDiscovery linkDiscovery;
-    private final DeviceTransactionManager deviceTransactionManager;
-    private final OpenRoadmTopology openRoadmTopology;
-    private final PortMapping portMapping;
-    private HashMap<String, TopologyShard> topologyShardMountedDevice;
-
-    public NetworkModelServiceImpl2(final DataBroker dataBroker, final DeviceConfig deviceConfig,
-        final R2RLinkDiscovery linkDiscovery,
-        DeviceTransactionManager deviceTransactionManager,
-        OpenRoadmTopology openRoadmTopology, PortMapping portMapping) {
-        this.dataBroker = dataBroker;
-        this.deviceConfig = deviceConfig;
-        this.linkDiscovery = linkDiscovery;
-        this.deviceTransactionManager = deviceTransactionManager;
-        this.openRoadmTopology = openRoadmTopology;
-        this.portMapping = portMapping;
-        this.topologyShardMountedDevice = new HashMap<String, TopologyShard>();
-    }
-
-    @Override
-    public void createOpenROADMnode(String nodeId) {
-        try {
-            LOG.info("creating OpenROADMNode: {} ", nodeId);
-            LOG.info("Retreiving configuration from node {}.", nodeId);
-            Info deviceInfo = this.deviceConfig.getDeviceInfo(nodeId);
-
-            Node clliNode = null;
-            if (deviceInfo != null && deviceInfo.getClli() != null) {
-                clliNode = ClliNetwork.createNode2(deviceInfo.getClli(), nodeId);
-            } else {
-                LOG.error("Unable to create clli node! Node id: {}", nodeId);
-                return;
-            }
-
-            Node openRoadmNode = null;
-            if (deviceInfo != null) {
-                openRoadmNode = OpenRoadmNetwork.createNode2(nodeId, deviceInfo);
-            } else {
-                LOG.error("Unable to create OpenRoadm node! Node id: {}", nodeId);
-                return;
-            }
-
-            TopologyShard topologyShard = null;
-            if (deviceInfo != null) {
-                topologyShard = this.openRoadmTopology.createTopologyShard2(nodeId, deviceInfo);
-                LOG.debug("mapping = {}", topologyShard.getMappings().toString());
-                if (!this.portMapping.createMappingData2(deviceInfo, topologyShard.getMappings(),
-                    topologyShard.getCpToDegreeList())) {
-                    LOG.error("Error to create mapping data for {}", nodeId);
-                } else {
-                    if (NodeTypes.Rdm.getName().equals(deviceInfo.getNodeType().getName())) {
-                        this.linkDiscovery.readLLDP(new NodeId(nodeId));
-                    }
-                }
-            } else {
-                LOG.error("Unable to create topology shard for node {}.", nodeId);
-                return;
-            }
-            this.topologyShardMountedDevice.put(nodeId, topologyShard);
-
-            WriteTransaction writeTransaction = this.dataBroker.newWriteOnlyTransaction();
-            LOG.info("creating node in {}", NetworkUtils.CLLI_NETWORK_ID);
-            InstanceIdentifier<Node> iiClliNode = InstanceIdentifier
-                .builder(Network.class, new NetworkKey(new NetworkId(NetworkUtils.CLLI_NETWORK_ID)))
-                .child(Node.class, clliNode.key())
-                .build();
-            writeTransaction.merge(LogicalDatastoreType.CONFIGURATION, iiClliNode, clliNode,
-                CREATE_MISSING_PARENTS);
-            LOG.info("creating node in {}", NetworkUtils.UNDERLAY_NETWORK_ID);
-            InstanceIdentifier<Node> iiOpenRoadmNode = InstanceIdentifier
-                .builder(Network.class, new NetworkKey(new NetworkId(NetworkUtils.UNDERLAY_NETWORK_ID)))
-                .child(Node.class, openRoadmNode.key())
-                .build();
-            writeTransaction.merge(LogicalDatastoreType.CONFIGURATION, iiOpenRoadmNode, openRoadmNode,
-                CREATE_MISSING_PARENTS);
-            for (Node openRoadmTopologyNode : topologyShard.getNodes()) {
-                LOG.info("creating node {} in {}", openRoadmTopologyNode.getNodeId().getValue(),
-                    NetworkUtils.OVERLAY_NETWORK_ID);
-                InstanceIdentifier<Node> iiOpenRoadmTopologyNode = InstanceIdentifier
-                    .builder(Network.class, new NetworkKey(new NetworkId(NetworkUtils.OVERLAY_NETWORK_ID)))
-                    .child(Node.class, openRoadmTopologyNode.key())
-                    .build();
-                writeTransaction.merge(LogicalDatastoreType.CONFIGURATION, iiOpenRoadmTopologyNode,
-                    openRoadmTopologyNode, CREATE_MISSING_PARENTS);
-            }
-            for (Link openRoadmTopologyLink : topologyShard.getLinks()) {
-                LOG.info("creating link {} in {}", openRoadmTopologyLink.getLinkId().getValue(),
-                    NetworkUtils.OVERLAY_NETWORK_ID);
-                InstanceIdentifier<Link> iiOpenRoadmTopologyLink = InstanceIdentifier
-                    .builder(Network.class, new NetworkKey(new NetworkId(NetworkUtils.OVERLAY_NETWORK_ID)))
-                    .augmentation(Network1.class)
-                    .child(Link.class, openRoadmTopologyLink.key())
-                    .build();
-                writeTransaction.merge(LogicalDatastoreType.CONFIGURATION, iiOpenRoadmTopologyLink,
-                    openRoadmTopologyLink, CREATE_MISSING_PARENTS);
-            }
-            writeTransaction.submit().get();
-            LOG.info("all nodes and links created");
-        } catch (InterruptedException | ExecutionException e) {
-            LOG.error("ERROR: ", e);
-        }
-
-    }
-
-    @Override
-    public void deleteOpenROADMnode(String nodeId) {
-        try {
-            LOG.info("deleteOpenROADMnode: {} ", nodeId);
-            this.portMapping.deleteMappingData(nodeId);
-
-            NodeKey nodeIdKey = new NodeKey(new NodeId(nodeId));
-            WriteTransaction writeTransaction = this.dataBroker.newWriteOnlyTransaction();
-            LOG.info("deleting node in {}", NetworkUtils.CLLI_NETWORK_ID);
-            InstanceIdentifier<Node> iiClliNode = InstanceIdentifier
-                    .builder(Network.class, new NetworkKey(new NetworkId(NetworkUtils.CLLI_NETWORK_ID)))
-                    .child(Node.class, nodeIdKey)
-                    .build();
-            writeTransaction.delete(LogicalDatastoreType.CONFIGURATION, iiClliNode);
-            LOG.info("deleting node in {}", NetworkUtils.UNDERLAY_NETWORK_ID);
-            InstanceIdentifier<Node> iiOpenRoadmNode = InstanceIdentifier
-                    .builder(Network.class, new NetworkKey(new NetworkId(NetworkUtils.UNDERLAY_NETWORK_ID)))
-                    .child(Node.class, nodeIdKey)
-                    .build();
-            writeTransaction.delete(LogicalDatastoreType.CONFIGURATION, iiOpenRoadmNode);
-            TopologyShard topologyShard = this.topologyShardMountedDevice.get(nodeId);
-            if (topologyShard != null) {
-                LOG.info("TopologyShard for node '{}' is present", nodeId);
-                for (Node openRoadmTopologyNode: topologyShard .getNodes()) {
-                    LOG.info("deleting node {} in {}", openRoadmTopologyNode.getNodeId().getValue(),
-                            NetworkUtils.OVERLAY_NETWORK_ID);
-                    InstanceIdentifier<Node> iiOpenRoadmTopologyNode = InstanceIdentifier
-                            .builder(Network.class, new NetworkKey(new NetworkId(NetworkUtils.OVERLAY_NETWORK_ID)))
-                            .child(Node.class, openRoadmTopologyNode.key())
-                            .build();
-                    writeTransaction.delete(LogicalDatastoreType.CONFIGURATION, iiOpenRoadmTopologyNode);
-                }
-                for (Link openRoadmTopologyLink: topologyShard.getLinks()) {
-                    LOG.info("deleting link {} in {}", openRoadmTopologyLink.getLinkId().getValue(),
-                            NetworkUtils.OVERLAY_NETWORK_ID);
-                    InstanceIdentifier<Link> iiOpenRoadmTopologyLink = InstanceIdentifier
-                            .builder(Network.class, new NetworkKey(new NetworkId(NetworkUtils.OVERLAY_NETWORK_ID)))
-                            .augmentation(Network1.class)
-                            .child(Link.class, openRoadmTopologyLink.key())
-                            .build();
-                    writeTransaction.delete(LogicalDatastoreType.CONFIGURATION, iiOpenRoadmTopologyLink);
-                }
-                this.topologyShardMountedDevice.remove(nodeId);
-            } else {
-                LOG.warn("TopologyShard for node '{}' is not present", nodeId);
-            }
-            writeTransaction.submit().get();
-            LOG.info("all nodes and links deleted ! ");
-        } catch (InterruptedException | ExecutionException e) {
-            LOG.error("Error when trying to delete node : {}", nodeId, e);
-        }
-    }
-
-    @Override
-    public void setOpenROADMnodeStatus(String nodeId, ConnectionStatus connectionStatus) {
-        // TODO Auto-generated method stub
-
-    }
-
-}
index 316cb3245910ea6e67deef0af6c4585b536afcfb..5de9834333fe9181056d66632fe4bdf169649d3f 100644 (file)
@@ -8,7 +8,6 @@
 
 package org.opendaylight.transportpce.networkmodel.util;
 
-import java.util.Optional;
 import java.util.concurrent.ExecutionException;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.TimeoutException;
@@ -16,15 +15,11 @@ import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;
 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
 import org.opendaylight.transportpce.common.NetworkUtils;
-import org.opendaylight.transportpce.common.Timeouts;
-import org.opendaylight.transportpce.common.device.DeviceTransactionManager;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.clli.network.rev170626.NetworkTypes1;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.clli.network.rev170626.NetworkTypes1Builder;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.clli.network.rev170626.Node1;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.clli.network.rev170626.Node1Builder;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.clli.network.rev170626.network.network.types.ClliNetworkBuilder;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.org.openroadm.device.container.OrgOpenroadmDevice;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.org.openroadm.device.container.org.openroadm.device.Info;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev150608.Network;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev150608.NetworkBuilder;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev150608.NetworkId;
@@ -66,48 +61,11 @@ public final class ClliNetwork {
         }
     }
 
-    /**
-     * Create single node entry for CLLI topology.
-     *
-     * @param deviceTransactionManager device transation manager
-     * @param deviceId device ID
-     *
-     * @return node builder status
-     */
-    public static Node createNode(DeviceTransactionManager deviceTransactionManager, String deviceId) {
-        // Read clli from the device
-        InstanceIdentifier<Info> infoIID = InstanceIdentifier.create(OrgOpenroadmDevice.class).child(Info.class);
-        Optional<Info> deviceInfo = deviceTransactionManager.getDataFromDevice(deviceId,
-            LogicalDatastoreType.OPERATIONAL, infoIID, Timeouts.DEVICE_READ_TIMEOUT,
-            Timeouts.DEVICE_READ_TIMEOUT_UNIT);
-        String clli;
-        if (deviceInfo.isPresent()) {
-            clli = deviceInfo.get().getClli();
-        } else {
-            return null;
-        }
-        /*
-         * Create node in the CLLI layer of the network model with nodeId equal
-         * to the clli attribute in the device model's info subtree
-         */
-        NodeBuilder nodeBldr = new NodeBuilder();
-        NodeId nwNodeId = new NodeId(clli);
-        nodeBldr.setNodeId(nwNodeId);
-        nodeBldr.withKey(new NodeKey(nwNodeId));
-        /*
-         * create clli node augmentation defined in openroadm-clli-network.yang
-         */
-        Node1Builder clliAugmentationBldr = new Node1Builder();
-        clliAugmentationBldr.setClli(clli);
-        nodeBldr.addAugmentation(Node1.class, clliAugmentationBldr.build());
-        return nodeBldr.build();
-    }
-
     /**
      * Other implementation to create single node entry for CLLI topology.
      *
      */
-    public static Node createNode2(String clli, String deviceId) {
+    public static Node createNode(String clli, String deviceId) {
         NodeBuilder nodeBldr = new NodeBuilder();
         NodeId nwNodeId = new NodeId(clli);
         nodeBldr.setNodeId(nwNodeId);
index 37c48d02d0428ef3c74dcf3a67ce464a5f9c438e..781e9f38a5318219109815c46fd45622b9903a6c 100644 (file)
@@ -9,7 +9,6 @@
 package org.opendaylight.transportpce.networkmodel.util;
 
 import com.google.common.collect.ImmutableList;
-import java.util.Optional;
 import java.util.concurrent.ExecutionException;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.TimeoutException;
@@ -17,10 +16,7 @@ import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;
 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
 import org.opendaylight.transportpce.common.NetworkUtils;
-import org.opendaylight.transportpce.common.Timeouts;
-import org.opendaylight.transportpce.common.device.DeviceTransactionManager;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.types.rev161014.NodeTypes;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.org.openroadm.device.container.OrgOpenroadmDevice;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.org.openroadm.device.container.org.openroadm.device.Info;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.network.rev170929.NetworkTypes1;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.network.rev170929.NetworkTypes1Builder;
@@ -73,78 +69,11 @@ public final class OpenRoadmNetwork {
         }
     }
 
-    /**
-     * Create single node entry for OpenRoadmNetwork.
-     *
-     * @param nodeId node ID
-     * @param deviceTransactionManager device transaction manager
-     *
-     * @return node builder status
-     */
-    public static Node createNode(String nodeId, DeviceTransactionManager deviceTransactionManager) {
-        // Fetches the info from the deviceInfo
-        InstanceIdentifier<Info> infoIID = InstanceIdentifier.create(OrgOpenroadmDevice.class).child(Info.class);
-        Optional<Info> deviceInfoOpt = deviceTransactionManager.getDataFromDevice(nodeId,
-                LogicalDatastoreType.OPERATIONAL, infoIID, Timeouts.DEVICE_READ_TIMEOUT,
-                Timeouts.DEVICE_READ_TIMEOUT_UNIT);
-        Info deviceInfo;
-        if (deviceInfoOpt.isPresent()) {
-            deviceInfo = deviceInfoOpt.get();
-        } else {
-            LOG.error("Unable to get device info from device {}!", nodeId);
-            return null;
-        }
-        NodeTypes nodeType = deviceInfo.getNodeType();
-
-        // Uses the Node Builder to set the nodeId and Key
-        NodeBuilder nodeBldr = new NodeBuilder();
-        NodeId nwNodeId = new NodeId(nodeId);
-        nodeBldr.setNodeId(nwNodeId);
-        nodeBldr.withKey(new NodeKey(nwNodeId));
-        Node1Builder node1bldr = new Node1Builder();
-
-        /*
-         * Recognize the node type: 1:ROADM, 2:XPONDER
-         */
-        switch (nodeType.getIntValue()) {
-            case 1:
-                node1bldr.setNodeType(OpenroadmNodeType.ROADM);
-                break;
-            case 2:
-                node1bldr.setNodeType(OpenroadmNodeType.XPONDER);
-                break;
-            default:
-                LOG.error("No correponsding type for the value: {}", nodeType.getIntValue());
-                break;
-        }
-
-        String vendor = deviceInfo.getVendor();
-        String model = deviceInfo.getModel();
-        IpAddress ipAddress = deviceInfo.getIpAddress();
-        // Sets IP, Model and Vendor information fetched from the deviceInfo
-        node1bldr.setIp(ipAddress);
-        node1bldr.setModel(model);
-        node1bldr.setVendor(vendor);
-
-        // Sets the value of Network-ref and Node-ref as a part of the supporting node
-        // attribute
-        String clli = deviceInfo.getClli();
-        SupportingNodeBuilder supportbldr = new SupportingNodeBuilder();
-        supportbldr.withKey(new SupportingNodeKey(new NetworkId(NetworkUtils.CLLI_NETWORK_ID), new NodeId(clli)));
-        supportbldr.setNetworkRef(new NetworkId(NetworkUtils.CLLI_NETWORK_ID));
-        supportbldr.setNodeRef(new NodeId(clli));
-        nodeBldr.setSupportingNode(ImmutableList.of(supportbldr.build()));
-
-        // Augment to the main node builder
-        nodeBldr.addAugmentation(Node1.class, node1bldr.build());
-        return nodeBldr.build();
-    }
-
     /**
      * Create single node entry for OpenRoadmNetwork.
      *
      */
-    public static Node createNode2(String nodeId, Info deviceInfo) {
+    public static Node createNode(String nodeId, Info deviceInfo) {
         NodeTypes nodeType = deviceInfo.getNodeType();
 
         // Uses the Node Builder to set the nodeId and Key
index 9f58ab06dc20bf0f2891ca1f6e6a021ccb05067a..7caed6fbfa48f19e050595bcaa90a431f2d918bb 100644 (file)
@@ -40,7 +40,6 @@ import org.opendaylight.yang.gen.v1.http.org.openroadm.degree.rev170929.degree.n
 import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.CircuitPack;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.Port;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.circuit.pack.Ports;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.circuit.pack.PortsKey;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.circuit.packs.CircuitPacks;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.circuit.packs.CircuitPacksKey;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.degree.ConnectionPorts;
@@ -165,114 +164,7 @@ public class OpenRoadmTopology {
         return nwBuilder.build();
     }
 
-    public TopologyShard createTopologyShard(String nodeId) {
-        // int numOfDegrees;
-        // int numOfSrgs;
-        // int portDirectionEnum = DEFAULT_PORT_DIRECTION;
-        //
-        // InstanceIdentifier<Info> infoIID =
-        // InstanceIdentifier.create(OrgOpenroadmDevice.class).child(Info.class);
-        // java.util.Optional<Info> deviceInfoOpt =
-        // this.deviceTransactionManager.getDataFromDevice(nodeId,
-        // LogicalDatastoreType.OPERATIONAL, infoIID,
-        // Timeouts.DEVICE_READ_TIMEOUT,
-        // Timeouts.DEVICE_READ_TIMEOUT_UNIT);
-        // Info deviceInfo;
-        // if (deviceInfoOpt.isPresent()) {
-        // deviceInfo = deviceInfoOpt.get();
-        // } else {
-        // LOG.error("Unable to get device info for device {}!", nodeId);
-        // return null;
-        // }
-        // List<Node> nodes = new ArrayList<>();
-        // List<Mapping> portMapList = new ArrayList<>();
-        //
-        // // Check if node is ROADM
-        // if (NodeTypes.Rdm.equals(deviceInfo.getNodeType())) {
-        //
-        // /*
-        // * Adding Degree Node Get Degree Number -> x then get connection
-        // * ports then find the port directions to decide whether TX/RX/TXRX
-        // * Get value for max degree from info subtree, required for
-        // * iteration if not present assume to be 20 (temporary)
-        // */
-        //
-        // Integer maxDegree;
-        // if (deviceInfo.getMaxDegrees() != null) {
-        // maxDegree = deviceInfo.getMaxDegrees();
-        // } else {
-        // maxDegree = MAX_DEGREE;
-        // }
-        //
-        // // Starting with degree Number = 1
-        // Integer degreeCounter = 1;
-        //
-        // while (degreeCounter <= maxDegree) {
-        // LOG.info("creating degree node {}/{}", degreeCounter, maxDegree);
-        // NodeData nodeData = createDegreeNode(nodeId, degreeCounter,
-        // portMapList);
-        // if (nodeData != null) {
-        // NodeBuilder tempNode = nodeData.getNodeBuilder();
-        // portDirectionEnum = nodeData.getPortDirectionEnum();
-        // nodes.add(tempNode.build());
-        // degreeCounter++;
-        // } else {
-        // // null returned if Degree number= degreeCounter not present
-        // // in the device
-        // break;
-        // }
-        // }
-        // numOfDegrees = degreeCounter - 1;
-        //
-        // Integer maxSrg;
-        // if (deviceInfo.getMaxSrgs() != null) {
-        // maxSrg = deviceInfo.getMaxSrgs();
-        // } else {
-        // maxSrg = MAX_SRG;
-        // }
-        //
-        // // Starting with degree Number = 1
-        // Integer srgCounter = 1;
-        //
-        // while (srgCounter <= maxSrg) {
-        // LOG.info("creating SRG node {}/{}", srgCounter, maxSrg);
-        // NodeBuilder tempNode = createSrgNode(nodeId, srgCounter,
-        // portDirectionEnum);
-        //
-        // if (tempNode != null) {
-        // nodes.add(tempNode.build());
-        // srgCounter++;
-        // } else {
-        // // null returned if Degree number= degreeCounter not present
-        // // in the device
-        // break;
-        // }
-        // }
-        // numOfSrgs = srgCounter - 1;
-        //
-        // LOG.info("adding links numOfDegrees={} numOfSrgs={}", numOfDegrees,
-        // numOfSrgs);
-        // List<Link> links = new ArrayList<>();
-        // links.addAll(createExpressLinks(nodeId, numOfDegrees,
-        // portDirectionEnum));
-        // links.addAll(createAddDropLinks(nodeId, numOfDegrees, numOfSrgs,
-        // portDirectionEnum));
-        // LOG.info("created nodes/links: {}/{}", nodes.size(), links.size());
-        // return new TopologyShard(nodes, links);
-        // } else if (NodeTypes.Xpdr.equals(deviceInfo.getNodeType())) {
-        // // Check if node is XPONDER
-        // XponderPortNumber portNums = getNoOfPorts(nodeId);
-        // List<Link> links = new ArrayList<>();
-        // NodeBuilder tempNode = createXpdr(portNums.getNumOfClientPorts(),
-        // portNums.getNumOfLinePorts(), nodeId);
-        // nodes.add(tempNode.build());
-        // return new TopologyShard(nodes, links);
-        // }
-        //
-        return null;
-    }
-
-    public TopologyShard createTopologyShard2(String nodeId, Info deviceInfo) {
+    public TopologyShard createTopologyShard(String nodeId, Info deviceInfo) {
         int numOfDegrees = 0;
         int numOfSrgs = 0;
         List<Node> nodes = new ArrayList<>();
@@ -295,8 +187,8 @@ public class OpenRoadmTopology {
                 maxDegree = MAX_DEGREE;
             }
             Map<String, String> interfaceList = getEthInterfaceList(nodeId);
-            interfaceList.forEach((key,val) -> LOG.debug("clé = {}, val = {}", key, val));
-            List<CpToDegree> localcpDegreelist = new ArrayList();
+            interfaceList.forEach((key, val) -> LOG.debug("clé = {}, val = {}", key, val));
+            List<CpToDegree> localcpDegreelist = new ArrayList<CpToDegree>();
 
             // Starting with degree Number = 1
             Integer degreeCounter = 1;
@@ -341,9 +233,6 @@ public class OpenRoadmTopology {
             LOG.info("adding links numOfDegrees={} numOfSrgs={}", numOfDegrees, numOfSrgs);
             List<Link> links = new ArrayList<>();
             links.addAll(createLinks(nodeId, nodes));
-            // links.addAll(createExpressLinks2(nodeId, numOfDegrees));
-            // links.addAll(createAddDropLinks2(nodeId, numOfDegrees,
-            // numOfSrgs));
             LOG.info("created nodes/links: {}/{}", nodes.size(), links.size());
             return new TopologyShard(nodes, links, localportMapList, localcpDegreelist);
 
@@ -363,101 +252,17 @@ public class OpenRoadmTopology {
     }
 
     /**
-     * This private method gets the list of circuit packs on a xponder. For each
-     * circuit pack on a Xponder, it does a get on circuit-pack subtree with
-     * circuit-pack-name as key in order to get the list of ports. It then
-     * iterates over the list of ports to get ports with port-qual as
-     * xpdr-network/xpdr-client. The line and client ports are saved as:
+     * This method creates on xpdr node inside the openroadm-topology according
+     * to the device configuration.
      *
-     * <p>
-     * 1. LINEn
+     * @param nodeId
+     *            device id
+     * @param connectionMapList
+     *            list of connection map from device operational datastore in
+     *            order to associate a client port to the network port
      *
-     * <p>
-     * 2. CLNTn
+     * @author Gilles Thouenon (gilles.thouenon@orange.com)
      */
-    private XponderPortNumber getNoOfPorts(String deviceId) {
-
-        XponderPortNumber xponderPortNumber = new XponderPortNumber();
-        // Creating for Xponder Line and Client Ports
-        InstanceIdentifier<OrgOpenroadmDevice> deviceIID = InstanceIdentifier.create(OrgOpenroadmDevice.class);
-        Optional<OrgOpenroadmDevice> deviceObject = this.deviceTransactionManager.getDataFromDevice(deviceId,
-            LogicalDatastoreType.OPERATIONAL, deviceIID, Timeouts.DEVICE_READ_TIMEOUT,
-            Timeouts.DEVICE_READ_TIMEOUT_UNIT);
-
-        // Variable to keep track of number of client ports
-        int client = 0;
-        int line = 0;
-        if (deviceObject.isPresent()) {
-            for (CircuitPacks cp : deviceObject.get().getCircuitPacks()) {
-                if (cp.getPorts() != null) {
-                    for (Ports port : cp.getPorts()) {
-                        if (port.getPortQual() != null) {
-                            if (port.getPortQual().getIntValue() == 4) {
-                                client++;
-                            } else if (port.getPortQual().getIntValue() == 3) {
-                                line++;
-                            }
-                        }
-                    }
-                }
-            }
-        } else {
-            return xponderPortNumber;
-        }
-        xponderPortNumber.setNumOfClientPorts(client);
-        xponderPortNumber.setNumOfLinePorts(line);
-        return xponderPortNumber;
-    }
-
-    private NodeBuilder createXpdr(Integer clientCounter, Integer lineCounter, String nodeId) {
-        // Create a generic Topo Layer node
-        NodeBuilder nodebldr = createTopoLayerNode(nodeId);
-        // Create augmentation node to inorder to add degree
-        Node1Builder node1bldr = new Node1Builder();
-        TerminationPoint1Builder tp1Bldr = new TerminationPoint1Builder();
-        TerminationPointBuilder tempTpBldr;
-
-        // set node type to Xponder
-        node1bldr.setNodeType(OpenroadmNodeType.XPONDER);
-        List<TerminationPoint> tpList = new ArrayList<>();
-        String nodeIdtopo = new StringBuilder().append(nodeId).append("-XPDR1").toString();
-        // Ad degree node specific augmentation
-        nodebldr.setNodeId(new NodeId(nodeIdtopo));
-        nodebldr.withKey(new NodeKey(new NodeId(nodeIdtopo)));
-        nodebldr.addAugmentation(Node1.class, node1bldr.build());
-        while (clientCounter != 0) {
-            // Create CLNT-TX terminationCannot get available Capabilitiesc
-            tempTpBldr = createTpBldr("XPDR1-CLIENT" + clientCounter);
-            tp1Bldr.setTpType(OpenroadmTpType.XPONDERCLIENT);
-            XpdrClientAttributesBuilder xpdrClntBldr = new XpdrClientAttributesBuilder();
-            xpdrClntBldr.setTailEquipmentId("XPDR1-NETWORK" + clientCounter);
-            tp1Bldr.setXpdrClientAttributes(xpdrClntBldr.build());
-            tempTpBldr.addAugmentation(TerminationPoint1.class, tp1Bldr.build());
-            tpList.add(tempTpBldr.build());
-            clientCounter--;
-        }
-        while (lineCounter != 0) {
-            // Create LINE-TX termination
-            tempTpBldr = (createTpBldr("XPDR1-NETWORK" + lineCounter));
-            tp1Bldr.setTpType(OpenroadmTpType.XPONDERNETWORK);
-            XpdrNetworkAttributesBuilder xpdrNwAttrBldr = new XpdrNetworkAttributesBuilder();
-            xpdrNwAttrBldr.setTailEquipmentId("XPDR1-CLIENT" + lineCounter);
-            tp1Bldr.setXpdrNetworkAttributes(xpdrNwAttrBldr.build());
-            tempTpBldr.addAugmentation(TerminationPoint1.class, tp1Bldr.build());
-            tpList.add(tempTpBldr.build());
-            lineCounter--;
-        }
-        LOG.info("printing tpList {}", tpList);
-        org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev150608.Node1Builder tpNode1 =
-            new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev150608.Node1Builder();
-        tpNode1.setTerminationPoint(tpList);
-        nodebldr.addAugmentation(
-            org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev150608.Node1.class,
-            tpNode1.build());
-        LOG.info("The nodebldr {}", nodebldr);
-        return nodebldr;
-    }
-
     private NodeData createXpdrNode(String nodeId, List<ConnectionMap> connectionMapList) {
         // Create org-openroadm augmentation node
         Node1Builder node1bldr = new Node1Builder();
@@ -614,7 +419,19 @@ public class OpenRoadmTopology {
         return new NodeData(nodebldr, mappingList, null);
     }
 
-
+    /**
+     * This method creates a rdm degree node inside the openroadm-topology
+     * according to the device configuration.
+     *
+     * @param nodeId
+     *            device id
+     * @param degreeCounter
+     *            number of the current degree
+     * @param interfList
+     *            list of CpToDegree to be updated for portmapping
+     *
+     * @author Gilles Thouenon (gilles.thouenon@orange.com)
+     */
     private NodeData createDegreeNode(String nodeId, int degreeCounter, Map<String, String> interfList) {
         // Create openroadm-topology-node augmentation in order to add degree
         Node1Builder node1bldr = new Node1Builder();
@@ -741,8 +558,8 @@ public class OpenRoadmTopology {
         // complement mapping with cp-to-degree
         List<CpToDegree> cpList = new ArrayList<>();
         if (degree.getCircuitPacks() != null) {
-            for (org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.degree.CircuitPacks
-                cp : degree.getCircuitPacks()) {
+            for (org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.degree.CircuitPacks cp : degree
+                .getCircuitPacks()) {
                 if (interfList.containsKey(cp.getCircuitPackName())) {
                     CpToDegree cpToDeg = new CpToDegreeBuilder()
                         .setCircuitPackName(cp.getCircuitPackName())
@@ -756,6 +573,17 @@ public class OpenRoadmTopology {
         return new NodeData(nodebldr, mappingList, cpList);
     }
 
+    /**
+     * This method creates a rdm srg node inside the openroadm-topology
+     * according to the device configuration.
+     *
+     * @param nodeId
+     *            device id
+     * @param srgCounter
+     *            number of the current srg
+     *
+     * @author Gilles Thouenon (gilles.thouenon@orange.com)
+     */
     private NodeData createSrgNode(String nodeId, int srgCounter) {
         // Create augmentation node in order to add SRG
         Node1Builder node1bldr = new Node1Builder();
@@ -795,7 +623,7 @@ public class OpenRoadmTopology {
         List<org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.srg.CircuitPacks> srgCpList = srg
             .getCircuitPacks();
         for (org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.srg.CircuitPacks
-            circuitPacks : srgCpList) {
+                circuitPacks : srgCpList) {
             String circuitPackName = circuitPacks.getCircuitPackName();
             CircuitPack cp = this.deviceConfig.getDeviceCp(nodeId, circuitPackName);
             if (cp.getPorts() == null) {
@@ -857,70 +685,6 @@ public class OpenRoadmTopology {
             }
         }
 
-        // for (int i = 1; i <= maxPpPorts; i++) {
-        // if ((portDirectionEnum == 1) || (portDirectionEnum == 2)) {
-        // if (i >= (maxPpPorts / 2)) {
-        // break;
-        // }
-        // // ports are uni Directional on a degree, therefore 4
-        // // termination points
-        // // Create PP-TX termination
-        // tempTpBldr = createTpBldr("SRG" + srgCounter + "-PP" + i + "-TX");
-        // tp1Bldr = new TerminationPoint1Builder();
-        // tp1Bldr.setTpType(OpenroadmTpType.SRGTXPP);
-        // tempTpBldr.addAugmentation(TerminationPoint1.class, tp1Bldr.build());
-        // tpList.add(tempTpBldr.build());
-        //
-        // // Create PP-RX termination
-        // tempTpBldr = createTpBldr("SRG" + srgCounter + "-PP" + i + "-RX");
-        // tp1Bldr = new TerminationPoint1Builder();
-        // tp1Bldr.setTpType(OpenroadmTpType.SRGRXPP);
-        // tempTpBldr.addAugmentation(TerminationPoint1.class, tp1Bldr.build());
-        // tpList.add(tempTpBldr.build());
-        //
-        // } else if (portDirectionEnum == 3) {
-        // // Ports are bi directional therefore 2 termination points
-        // // Create PP-TXRX termination
-        // tempTpBldr = createTpBldr("SRG" + srgCounter + "-PP" + i + "-TXRX");
-        // tp1Bldr = new TerminationPoint1Builder();
-        // tp1Bldr.setTpType(OpenroadmTpType.SRGTXRXPP);
-        // tempTpBldr.addAugmentation(TerminationPoint1.class, tp1Bldr.build());
-        // tpList.add(tempTpBldr.build());
-        // }
-        // }
-
-        // switch (portDirectionEnum) {
-        // case 1: // ports are uni Directional on a degree
-        // // Create CP-TX termination
-        // tempTpBldr = createTpBldr("SRG" + srgCounter + "-CP" + "-TX");
-        // tp1Bldr = new TerminationPoint1Builder();
-        // tp1Bldr.setTpType(OpenroadmTpType.SRGTXCP);
-        // tempTpBldr.addAugmentation(TerminationPoint1.class, tp1Bldr.build());
-        // tpList.add(tempTpBldr.build());
-        // break;
-        // case 2:
-        // // Create CP-RX termination
-        // tempTpBldr = createTpBldr("SRG" + srgCounter + "-CP" + "-RX");
-        // tp1Bldr = new TerminationPoint1Builder();
-        // tp1Bldr.setTpType(OpenroadmTpType.SRGRXCP);
-        // tempTpBldr.addAugmentation(TerminationPoint1.class, tp1Bldr.build());
-        // tpList.add(tempTpBldr.build());
-        // break;
-        // case 3:
-        // // Ports are bi directional therefore 2 termination points
-        // // Create CP-TXRX termination
-        // tempTpBldr = createTpBldr("SRG" + srgCounter + "-CP" + "-TXRX");
-        // tp1Bldr = new TerminationPoint1Builder();
-        // tp1Bldr.setTpType(OpenroadmTpType.SRGTXRXCP);
-        // tempTpBldr.addAugmentation(TerminationPoint1.class, tp1Bldr.build());
-        // tpList.add(tempTpBldr.build());
-        // break;
-        // default:
-        // LOG.error("No correponsding direction to the value: {}",
-        // portDirectionEnum);
-        // break;
-        // }
-
         // Create CP-TXRX termination
         tempTpBldr = createTpBldr("SRG" + srgCounter + "-CP" + "-TXRX");
         tp1Bldr = new TerminationPoint1Builder();
@@ -977,31 +741,6 @@ public class OpenRoadmTopology {
         return nodebldr;
     }
 
-    // Return 0 for null/error values
-    // Return 1 for tx
-    // Return 2 for rx
-    // Return 3 for bi-directional
-
-    private int getPortDirection(String deviceId, String circuitPackName, String portName) {
-        InstanceIdentifier<Ports> portIID = InstanceIdentifier.create(OrgOpenroadmDevice.class)
-            .child(CircuitPacks.class, new CircuitPacksKey(circuitPackName))
-            .child(Ports.class, new PortsKey(portName));
-        LOG.info("Fetching Port Direction for port {} at circuit pack {}", portName, circuitPackName);
-        Optional<Ports> portObject = this.deviceTransactionManager.getDataFromDevice(deviceId,
-            LogicalDatastoreType.OPERATIONAL, portIID, Timeouts.DEVICE_READ_TIMEOUT,
-            Timeouts.DEVICE_READ_TIMEOUT_UNIT);
-        if (portObject.isPresent()) {
-            Ports port = portObject.get();
-            if (port.getPortDirection() != null) {
-                return port.getPortDirection().getIntValue();
-            } else {
-                LOG.warn("Port direction value missing for {} {}", circuitPackName, port.getPortName());
-                return 0;
-            }
-        }
-        return 0;
-    }
-
     // This method returns a generic termination point builder for a given tpid
     private TerminationPointBuilder createTpBldr(String tpId) {
         TerminationPointBuilder tpBldr = new TerminationPointBuilder();
@@ -1042,6 +781,16 @@ public class OpenRoadmTopology {
         return lnkBldr;
     }
 
+    /**
+     * This method creates links between openroadm-topology nodes.
+     *
+     * @param nodeId
+     *            device id
+     * @param nodes
+     *            list of nodes
+     *
+     * @author Gilles Thouenon (gilles.thouenon@orange.com)
+     */
     private List<Link> createLinks(String nodeId, List<Node> nodes) {
         List<Link> links = new ArrayList<>();
         List<Node> listDegeeNodes = nodes.stream().filter(node -> node.getNodeId().toString().contains("DEG")).collect(
@@ -1145,151 +894,6 @@ public class OpenRoadmTopology {
         return links;
     }
 
-    private List<Link> createExpressLinks(String nodeId, int numOfDegrees, int portDirectionEnum) {
-        LOG.info("creating express links {} {} {}", nodeId, numOfDegrees, portDirectionEnum);
-        List<Link> links = new ArrayList<>();
-
-        String srcNode;
-        String destNode;
-
-        String srcTp;
-        String destTp;
-
-        // ports are uni-directional
-        if ((portDirectionEnum == 1) || (portDirectionEnum == 2)) {
-            LOG.info("creating uni-directional express links");
-            for (int i = 1; i <= numOfDegrees; i++) {
-                for (int j = i + 1; j <= numOfDegrees; j++) {
-
-                    srcNode = nodeId + "-DEG" + i;
-                    destNode = nodeId + "-DEG" + j;
-
-                    // AtoZ direction
-                    srcTp = "DEG" + i + "-CTP-TX";
-                    destTp = "DEG" + j + "-CTP-RX";
-
-                    LinkBuilder expLinkBldr = createLink(srcNode, destNode, srcTp, destTp, true);
-
-                    Link1Builder lnk1Bldr = new Link1Builder();
-                    lnk1Bldr.setLinkType(OpenroadmLinkType.EXPRESSLINK);
-                    expLinkBldr.addAugmentation(Link1.class, lnk1Bldr.build());
-
-                    links.add(expLinkBldr.build());
-
-                    // ZtoA direction
-                    srcTp = "DEG" + i + "-CTP-RX";
-                    destTp = "DEG" + j + "-CTP-TX";
-
-                    expLinkBldr = createLink(destNode, srcNode, destTp, srcTp, true);
-                    expLinkBldr.addAugmentation(Link1.class, lnk1Bldr.build());
-
-                    links.add(expLinkBldr.build());
-
-                }
-            }
-        }
-
-        // ports are bi-directional
-        if (portDirectionEnum == 3) {
-            LOG.info("creating bi-directional express links");
-            for (int i = 1; i <= numOfDegrees; i++) {
-                for (int j = i + 1; j <= numOfDegrees; j++) {
-
-                    srcNode = nodeId + "-DEG" + i;
-                    destNode = nodeId + "-DEG" + j;
-
-                    // AtoZ direction
-                    srcTp = "DEG" + i + "-CTP-TXRX";
-                    destTp = "DEG" + j + "-CTP-TXRX";
-
-                    Link1Builder lnk1Bldr = new Link1Builder();
-                    lnk1Bldr.setLinkType(OpenroadmLinkType.EXPRESSLINK);
-
-                    LinkBuilder expLinkBldr = createLink(srcNode, destNode, srcTp, destTp, true);
-                    expLinkBldr.addAugmentation(Link1.class, lnk1Bldr.build());
-                    links.add(expLinkBldr.build());
-
-                    // ZtoA direction
-                    expLinkBldr = createLink(destNode, srcNode, destTp, srcTp, true);
-                    expLinkBldr.addAugmentation(Link1.class, lnk1Bldr.build());
-                    links.add(expLinkBldr.build());
-                }
-            }
-        }
-        return links;
-    }
-
-    private List<Link> createAddDropLinks(String nodeId, int numOfDegrees, int numOfSrgs, int portDirectionEnum) {
-        LOG.info("creating add-drop links {} {} {} {}", nodeId, numOfDegrees, numOfSrgs, portDirectionEnum);
-        List<Link> links = new ArrayList<>();
-
-        String srcNode;
-        String destNode;
-
-        String srcTp;
-        String destTp;
-
-        // ports are uni-directional
-        if ((portDirectionEnum == 1) || (portDirectionEnum == 2)) {
-            LOG.info("creating uni-directional add-drop links");
-            for (int i = 1; i <= numOfDegrees; i++) {
-                for (int j = 1; j <= numOfSrgs; j++) {
-
-                    srcNode = nodeId + "-DEG" + i;
-                    destNode = nodeId + "-SRG" + j;
-
-                    // drop links
-                    srcTp = "DEG" + i + "-CTP-TX";
-                    destTp = "SRG" + j + "-CP-RX";
-
-                    LinkBuilder addDropLinkBldr = createLink(srcNode, destNode, srcTp, destTp, true);
-                    Link1Builder lnk1Bldr = new Link1Builder();
-                    lnk1Bldr.setLinkType(OpenroadmLinkType.DROPLINK);
-                    addDropLinkBldr.addAugmentation(Link1.class, lnk1Bldr.build());
-                    links.add(addDropLinkBldr.build());
-
-                    // add links direction
-                    srcTp = "DEG" + i + "-CTP-RX";
-                    destTp = "SRG" + j + "-CP-TX";
-
-                    addDropLinkBldr = createLink(destNode, srcNode, destTp, srcTp, true);
-                    lnk1Bldr.setLinkType(OpenroadmLinkType.ADDLINK);
-                    addDropLinkBldr.addAugmentation(Link1.class, lnk1Bldr.build());
-                    links.add(addDropLinkBldr.build());
-
-                }
-            }
-        }
-        // ports are bi-directional
-        if (portDirectionEnum == 3) {
-            LOG.info("creating bi-directional add-drop links");
-            for (int i = 1; i <= numOfDegrees; i++) {
-                for (int j = 1; j <= numOfSrgs; j++) {
-
-                    srcNode = nodeId + "-DEG" + i;
-                    destNode = nodeId + "-SRG" + j;
-
-                    // drop links
-                    srcTp = "DEG" + i + "-CTP-TXRX";
-                    destTp = "SRG" + j + "-CP-TXRX";
-
-                    LinkBuilder addDropLinkBldr = createLink(srcNode, destNode, srcTp, destTp, true);
-                    Link1Builder lnk1Bldr = new Link1Builder();
-                    lnk1Bldr.setLinkType(OpenroadmLinkType.DROPLINK);
-                    addDropLinkBldr.addAugmentation(Link1.class, lnk1Bldr.build());
-                    links.add(addDropLinkBldr.build());
-
-                    // add link
-                    addDropLinkBldr = createLink(destNode, srcNode, destTp, srcTp, true);
-                    lnk1Bldr.setLinkType(OpenroadmLinkType.ADDLINK);
-                    addDropLinkBldr.addAugmentation(Link1.class, lnk1Bldr.build());
-                    links.add(addDropLinkBldr.build());
-                }
-            }
-        }
-        return links;
-    }
-
     // This method returns the linkBuilder object for given source and
     // destination.
     public boolean deleteLink(String srcNode, String dstNode, Integer srcDegId,
@@ -1335,53 +939,25 @@ public class OpenRoadmTopology {
 
         for (int i = 1; i < 97; i++) {
             org.opendaylight.yang.gen.v1.http.org.openroadm.srg.rev170929.srg.node.attributes
-                .AvailableWavelengthsBuilder avalBldr =
-                new org.opendaylight.yang.gen.v1.http.org.openroadm.srg.rev170929.srg.node.attributes
-                    .AvailableWavelengthsBuilder();
+                .AvailableWavelengthsBuilder avalBldr = new org.opendaylight.yang.gen.v1.http.org.openroadm.srg
+                .rev170929.srg.node.attributes.AvailableWavelengthsBuilder();
             avalBldr.setIndex((long) i);
-            avalBldr.withKey(
-                new org.opendaylight.yang.gen.v1.http.org.openroadm.srg.rev170929.srg.node.attributes
-                    .AvailableWavelengthsKey((long) i));
+            avalBldr.withKey(new org.opendaylight.yang.gen.v1.http.org.openroadm.srg.rev170929.srg.node.attributes
+                .AvailableWavelengthsKey((long) i));
             waveList.add(avalBldr.build());
         }
 
         return waveList;
     }
 
-    private class XponderPortNumber {
-        private int numOfLinePorts;
-        private int numOfClientPorts;
-
-        XponderPortNumber() {
-            numOfClientPorts = 0;
-            numOfLinePorts = 0;
-        }
-
-        public void setNumOfLinePorts(int numOfLinePorts) {
-            this.numOfLinePorts = numOfLinePorts;
-        }
-
-        public void setNumOfClientPorts(int numOfClientPorts) {
-            this.numOfClientPorts = numOfClientPorts;
-        }
-
-        public int getNumOfClientPorts() {
-            return numOfClientPorts;
-        }
-
-        public int getNumOfLinePorts() {
-            return numOfLinePorts;
-        }
-    }
-
     // method copied/pasted from PortMappingImpl.java
     private Map<String, String> getEthInterfaceList(String nodeId) {
         Map<String, String> cpToInterfaceMap = new HashMap<>();
         InstanceIdentifier<Protocols> protocolsIID = InstanceIdentifier.create(OrgOpenroadmDevice.class)
-                .child(Protocols.class);
+            .child(Protocols.class);
         Optional<Protocols> protocolObject = this.deviceTransactionManager.getDataFromDevice(nodeId,
-                LogicalDatastoreType.OPERATIONAL, protocolsIID, Timeouts.DEVICE_READ_TIMEOUT,
-                Timeouts.DEVICE_READ_TIMEOUT_UNIT);
+            LogicalDatastoreType.OPERATIONAL, protocolsIID, Timeouts.DEVICE_READ_TIMEOUT,
+            Timeouts.DEVICE_READ_TIMEOUT_UNIT);
         if (!protocolObject.isPresent() || (protocolObject.get().augmentation(Protocols1.class) == null)) {
             LOG.warn("LLDP subtree is missing : isolated openroadm device");
             return cpToInterfaceMap;
@@ -1391,25 +967,26 @@ public class OpenRoadmTopology {
             for (PortConfig portConfig : portConfigList) {
                 if (portConfig.getAdminStatus().equals(PortConfig.AdminStatus.Txandrx)) {
                     InstanceIdentifier<Interface> interfaceIID = InstanceIdentifier.create(OrgOpenroadmDevice.class)
-                            .child(Interface.class, new InterfaceKey(portConfig.getIfName()));
+                        .child(Interface.class, new InterfaceKey(portConfig.getIfName()));
                     Optional<Interface> interfaceObject = this.deviceTransactionManager.getDataFromDevice(nodeId,
-                            LogicalDatastoreType.OPERATIONAL, interfaceIID, Timeouts.DEVICE_READ_TIMEOUT,
-                            Timeouts.DEVICE_READ_TIMEOUT_UNIT);
+                        LogicalDatastoreType.OPERATIONAL, interfaceIID, Timeouts.DEVICE_READ_TIMEOUT,
+                        Timeouts.DEVICE_READ_TIMEOUT_UNIT);
                     if (interfaceObject.isPresent()
-                            && (interfaceObject.get().getSupportingCircuitPackName() != null)) {
+                        && (interfaceObject.get().getSupportingCircuitPackName() != null)) {
                         String supportingCircuitPackName = interfaceObject.get().getSupportingCircuitPackName();
                         cpToInterfaceMap.put(supportingCircuitPackName, portConfig.getIfName());
                         InstanceIdentifier<CircuitPacks> circuitPacksIID = InstanceIdentifier
-                                .create(OrgOpenroadmDevice.class).child(CircuitPacks.class,
-                                        new CircuitPacksKey(supportingCircuitPackName));
+                            .create(OrgOpenroadmDevice.class).child(CircuitPacks.class,
+                                new CircuitPacksKey(supportingCircuitPackName));
                         Optional<CircuitPacks> circuitPackObject = this.deviceTransactionManager.getDataFromDevice(
-                                nodeId, LogicalDatastoreType.OPERATIONAL, circuitPacksIID, Timeouts
-                                                .DEVICE_READ_TIMEOUT, Timeouts.DEVICE_READ_TIMEOUT_UNIT);
-//                        if (circuitPackObject.isPresent()
-//                                && (circuitPackObject.get().getParentCircuitPack() != null)) {
-//                            cpToInterfaceMap.put(circuitPackObject.get().getParentCircuitPack()
-//                                    .getCircuitPackName(), portConfig.getIfName());
-//                        }
+                            nodeId, LogicalDatastoreType.OPERATIONAL, circuitPacksIID, Timeouts.DEVICE_READ_TIMEOUT,
+                            Timeouts.DEVICE_READ_TIMEOUT_UNIT);
+                        // if (circuitPackObject.isPresent()
+                        // && (circuitPackObject.get().getParentCircuitPack() !=
+                        // null)) {
+                        // cpToInterfaceMap.put(circuitPackObject.get().getParentCircuitPack()
+                        // .getCircuitPackName(), portConfig.getIfName());
+                        // }
                     }
                 } else {
                     LOG.warn("PortConfig Admin Status is not equal Txandrx");
@@ -1421,5 +998,4 @@ public class OpenRoadmTopology {
         return cpToInterfaceMap;
     }
 
-
 }
index 89482f3e6eab2d056ef4df3eb64d9742a279954a..39afe028e753960a971252d33377cda88fa916f6 100644 (file)
@@ -21,7 +21,7 @@
         <argument ref="portMapping" />
     </bean>
 
-    <bean id="networkModelService" class="org.opendaylight.transportpce.networkmodel.service.NetworkModelServiceImpl2">
+    <bean id="networkModelService" class="org.opendaylight.transportpce.networkmodel.service.NetworkModelServiceImpl">
         <argument ref="dataBroker" />
         <argument ref="deviceConfig" />
         <argument ref="linkDiscoveryImpl" />