import org.opendaylight.mdsal.binding.api.ReadTransaction;
import org.opendaylight.mdsal.binding.api.WriteTransaction;
import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev220114.Network;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev220114.OpenroadmNodeVersion;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev220114.mapping.Mapping;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev220114.mapping.MappingKey;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev220114.mc.capabilities.McCapabilities;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev220114.mc.capabilities.McCapabilitiesKey;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev220114.network.Nodes;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev220114.network.NodesKey;
+import org.opendaylight.transportpce.common.device.DeviceTransactionManager;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev220922.Network;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev220922.OpenroadmNodeVersion;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev220922.mapping.Mapping;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev220922.mapping.MappingKey;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev220922.mc.capabilities.McCapabilities;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev220922.mc.capabilities.McCapabilitiesKey;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev220922.network.Nodes;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev220922.network.NodesKey;
import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev200529.org.openroadm.device.container.org.openroadm.device.OduSwitchingPools;
import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev200529.org.openroadm.device.container.org.openroadm.device.odu.switching.pools.non.blocking.list.PortList;
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
import org.opendaylight.yangtools.yang.binding.KeyedInstanceIdentifier;
import org.opendaylight.yangtools.yang.common.Uint16;
+import org.osgi.service.component.annotations.Activate;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Reference;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-
+@Component
public class PortMappingImpl implements PortMapping {
private static final Logger LOG = LoggerFactory.getLogger(PortMappingImpl.class);
private final PortMappingVersion221 portMappingVersion22;
private final PortMappingVersion121 portMappingVersion121;
+ @Activate
+ public PortMappingImpl(@Reference DataBroker dataBroker,
+ @Reference DeviceTransactionManager deviceTransactionManager) {
+ this(dataBroker,
+ new PortMappingVersion710(dataBroker, deviceTransactionManager),
+ new PortMappingVersion221(dataBroker, deviceTransactionManager),
+ new PortMappingVersion121(dataBroker, deviceTransactionManager));
+ }
+
public PortMappingImpl(DataBroker dataBroker, PortMappingVersion710 portMappingVersion710,
PortMappingVersion221 portMappingVersion22, PortMappingVersion121 portMappingVersion121) {
return portMappingVersion22;
}
+ @Override
+ public PortMappingVersion710 getPortMappingVersion710() {
+ return portMappingVersion710;
+ }
+
@Override
public boolean createMappingData(String nodeId, String nodeVersion) {
switch (nodeVersion) {
try (ReadTransaction readTx = this.dataBroker.newReadOnlyTransaction()) {
Optional<Mapping> mapObject = readTx.read(LogicalDatastoreType.CONFIGURATION, portMappingIID).get();
if (mapObject.isPresent()) {
- Mapping mapping = mapObject.get();
+ Mapping mapping = mapObject.orElseThrow();
LOG.info("Found mapping for {} - {}. Mapping: {}", nodeId, logicalConnPoint, mapping.toString());
return mapping;
}
.child(Nodes.class, new NodesKey(nodeId));
try (ReadTransaction readTx = this.dataBroker.newReadOnlyTransaction()) {
Optional<Nodes> portMapppingOpt = readTx.read(LogicalDatastoreType.CONFIGURATION, portMappingIID).get();
- if (!portMapppingOpt.isPresent()) {
+ if (portMapppingOpt.isEmpty()) {
LOG.warn("Could not get portMapping for node {}", nodeId);
return null;
}
- Map<MappingKey, Mapping> mappings = portMapppingOpt.get().getMapping();
+ Map<MappingKey, Mapping> mappings = portMapppingOpt.orElseThrow().getMapping();
for (Mapping mapping : mappings.values()) {
if (circuitPackName.equals(mapping.getSupportingCircuitPackName())
&& portName.equals(mapping.getSupportingPort())) {
Optional<McCapabilities> mcCapObject = readTx.read(LogicalDatastoreType.CONFIGURATION,
mcCapabilitiesIID).get();
if (mcCapObject.isPresent()) {
- McCapabilities mcCap = mcCapObject.get();
+ McCapabilities mcCap = mcCapObject.orElseThrow();
LOG.info("Found MC-cap for {} - {}. Mapping: {}", nodeId, mcLcp, mcCap.toString());
return mcCap;
}
Optional<Nodes> nodePortMapObject =
readTx.read(LogicalDatastoreType.CONFIGURATION, nodePortMappingIID).get();
if (nodePortMapObject.isPresent()) {
- Nodes node = nodePortMapObject.get();
+ Nodes node = nodePortMapObject.orElseThrow();
LOG.info("Found node {} in portmapping.", nodeId);
return node;
}
public boolean isNodeExist(String nodeId) {
return this.getNode(nodeId) != null;
}
+
+ @Override
+ public Mapping getMappingFromOtsInterface(String nodeId, String interfName) {
+ KeyedInstanceIdentifier<Nodes, NodesKey> nodePortmappingIID = InstanceIdentifier.create(Network.class)
+ .child(Nodes.class, new NodesKey(nodeId));
+ try (ReadTransaction readTx = this.dataBroker.newReadOnlyTransaction()) {
+ Optional<Nodes> nodePortmapppingOpt
+ = readTx.read(LogicalDatastoreType.CONFIGURATION, nodePortmappingIID).get();
+ if (nodePortmapppingOpt.isEmpty()) {
+ LOG.warn("Could not get portMapping for node {}", nodeId);
+ return null;
+ }
+ Map<MappingKey, Mapping> mappings = nodePortmapppingOpt.orElseThrow().getMapping();
+ for (Mapping mapping : mappings.values()) {
+ if (interfName.equals(mapping.getSupportingOts())) {
+ return mapping;
+ }
+ }
+ } catch (InterruptedException | ExecutionException ex) {
+ LOG.error("Unable to get mapping list for nodeId {}", nodeId, ex);
+ }
+ return null;
+ }
+
}