X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=olm%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Ftransportpce%2Folm%2Fpower%2FPowerMgmtVersion221.java;h=31e2b6fbe22520557845c5ba409d65910831d0af;hb=refs%2Fchanges%2F46%2F100646%2F27;hp=26042e7d86b13547e1269cfea160ada462c420fd;hpb=45de2604acea011072a5478eaead6ffb96e1e6ea;p=transportpce.git diff --git a/olm/src/main/java/org/opendaylight/transportpce/olm/power/PowerMgmtVersion221.java b/olm/src/main/java/org/opendaylight/transportpce/olm/power/PowerMgmtVersion221.java index 26042e7d8..31e2b6fbe 100644 --- a/olm/src/main/java/org/opendaylight/transportpce/olm/power/PowerMgmtVersion221.java +++ b/olm/src/main/java/org/opendaylight/transportpce/olm/power/PowerMgmtVersion221.java @@ -24,6 +24,7 @@ import org.opendaylight.transportpce.common.device.DeviceTransaction; import org.opendaylight.transportpce.common.device.DeviceTransactionManager; import org.opendaylight.yang.gen.v1.http.org.openroadm.common.types.rev181019.OpticalControlMode; import org.opendaylight.yang.gen.v1.http.org.openroadm.common.types.rev181019.PowerDBm; +import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev181019.OrgOpenroadmDeviceData; import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev181019.circuit.pack.Ports; import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev181019.circuit.pack.PortsKey; import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev181019.circuit.packs.CircuitPacks; @@ -39,6 +40,7 @@ import org.opendaylight.yang.gen.v1.http.org.openroadm.optical.channel.interface import org.opendaylight.yang.gen.v1.http.org.openroadm.optical.channel.interfaces.rev181019.Interface1Builder; import org.opendaylight.yang.gen.v1.http.org.openroadm.optical.channel.interfaces.rev181019.och.container.OchBuilder; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; +import org.opendaylight.yangtools.yang.common.Decimal64; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -65,9 +67,11 @@ public final class PowerMgmtVersion221 { */ public static Map getXponderPowerRange(String circuitPackName, String portName, String deviceId, DeviceTransactionManager deviceTransactionManager) { - InstanceIdentifier portIID = InstanceIdentifier.create(OrgOpenroadmDevice.class) - .child(CircuitPacks.class, new CircuitPacksKey(circuitPackName)) - .child(Ports.class, new PortsKey(portName)); + InstanceIdentifier portIID = InstanceIdentifier + .builderOfInherited(OrgOpenroadmDeviceData.class, OrgOpenroadmDevice.class) + .child(CircuitPacks.class, new CircuitPacksKey(circuitPackName)) + .child(Ports.class, new PortsKey(portName)) + .build(); Map powerRangeMap = new HashMap<>(); LOG.debug("Fetching logical Connection Point value for port {} at circuit pack {}", portName, circuitPackName); Optional portObject = @@ -75,7 +79,7 @@ public final class PowerMgmtVersion221 { Timeouts.DEVICE_READ_TIMEOUT, Timeouts.DEVICE_READ_TIMEOUT_UNIT); if (portObject.isPresent()) { Ports port = portObject.get(); - if (port.getTransponderPort().getPortPowerCapabilityMaxTx() != null) { + if (port.getTransponderPort() != null && port.getTransponderPort().getPortPowerCapabilityMaxTx() != null) { powerRangeMap.put("MaxTx", port.getTransponderPort().getPortPowerCapabilityMaxTx().getValue() .doubleValue()); powerRangeMap.put("MinTx", port.getTransponderPort().getPortPowerCapabilityMinTx().getValue() @@ -108,9 +112,11 @@ public final class PowerMgmtVersion221 { Map powerRangeMap = new HashMap<>(); LOG.debug("Coming inside SRG power range"); LOG.debug("Mapping object exists."); - InstanceIdentifier portIID = InstanceIdentifier.create(OrgOpenroadmDevice.class) - .child(CircuitPacks.class, new CircuitPacksKey(circuitPackName)) - .child(Ports.class, new PortsKey(portName)); + InstanceIdentifier portIID = InstanceIdentifier + .builderOfInherited(OrgOpenroadmDeviceData.class, OrgOpenroadmDevice.class) + .child(CircuitPacks.class, new CircuitPacksKey(circuitPackName)) + .child(Ports.class, new PortsKey(portName)) + .build(); LOG.debug("Fetching logical Connection Point value for port {} at circuit pack {}{}", portName, circuitPackName, portIID); Optional portObject = @@ -160,9 +166,8 @@ public final class PowerMgmtVersion221 { new InterfaceBuilder(interfaceObj); OchBuilder ochBuilder = new OchBuilder(ochInterfaceBuilder.augmentation( Interface1.class).getOch()); - ochBuilder.setTransmitPower(new PowerDBm(txPower)); - ochInterfaceBuilder.addAugmentation( - Interface1.class, new Interface1Builder().setOch(ochBuilder.build()).build()); + ochBuilder.setTransmitPower(new PowerDBm(Decimal64.valueOf(txPower))); + ochInterfaceBuilder.addAugmentation(new Interface1Builder().setOch(ochBuilder.build()).build()); Future> deviceTxFuture = deviceTransactionManager.getDeviceTransaction(nodeId); DeviceTransaction deviceTx; try { @@ -179,9 +184,11 @@ public final class PowerMgmtVersion221 { + "setup!", nodeId, e); return false; } - InstanceIdentifier interfacesIID = InstanceIdentifier.create(OrgOpenroadmDevice.class) - .child(Interface.class, new InterfaceKey(interfaceName)); - deviceTx.put(LogicalDatastoreType.CONFIGURATION, interfacesIID, ochInterfaceBuilder.build()); + InstanceIdentifier interfacesIID = InstanceIdentifier + .builderOfInherited(OrgOpenroadmDeviceData.class, OrgOpenroadmDevice.class) + .child(Interface.class, new InterfaceKey(interfaceName)) + .build(); + deviceTx.merge(LogicalDatastoreType.CONFIGURATION, interfacesIID, ochInterfaceBuilder.build()); FluentFuture commit = deviceTx.commit(Timeouts.DEVICE_WRITE_TIMEOUT, Timeouts.DEVICE_WRITE_TIMEOUT_UNIT); try { @@ -189,7 +196,7 @@ public final class PowerMgmtVersion221 { LOG.info("Transponder Power update is committed"); return true; } catch (InterruptedException | ExecutionException e) { - LOG.error("Setting transponder power failed {}", e); + LOG.error("Setting transponder power failed: ", e); } return false; } @@ -217,12 +224,13 @@ public final class PowerMgmtVersion221 { public static boolean setPowerLevel(String deviceId, OpticalControlMode mode, BigDecimal powerValue, String connectionNumber, CrossConnect crossConnect, DeviceTransactionManager deviceTransactionManager) { - Optional rdmConnOpt = crossConnect.getCrossConnect(deviceId, connectionNumber); + @SuppressWarnings("unchecked") Optional rdmConnOpt = + (Optional) crossConnect.getCrossConnect(deviceId, connectionNumber); if (rdmConnOpt.isPresent()) { RoadmConnectionsBuilder rdmConnBldr = new RoadmConnectionsBuilder(rdmConnOpt.get()); rdmConnBldr.setOpticalControlMode(mode); if (powerValue != null) { - rdmConnBldr.setTargetOutputPower(new PowerDBm(powerValue)); + rdmConnBldr.setTargetOutputPower(new PowerDBm(Decimal64.valueOf(powerValue))); } RoadmConnections newRdmConn = rdmConnBldr.build(); Future> deviceTxFuture = @@ -241,9 +249,11 @@ public final class PowerMgmtVersion221 { return false; } // post the cross connect on the device - InstanceIdentifier roadmConnIID = InstanceIdentifier.create(OrgOpenroadmDevice.class) - .child(RoadmConnections.class, new RoadmConnectionsKey(connectionNumber)); - deviceTx.put(LogicalDatastoreType.CONFIGURATION, roadmConnIID, newRdmConn); + InstanceIdentifier roadmConnIID = InstanceIdentifier + .builderOfInherited(OrgOpenroadmDeviceData.class, OrgOpenroadmDevice.class) + .child(RoadmConnections.class, new RoadmConnectionsKey(connectionNumber)) + .build(); + deviceTx.merge(LogicalDatastoreType.CONFIGURATION, roadmConnIID, newRdmConn); FluentFuture commit = deviceTx.commit(Timeouts.DEVICE_WRITE_TIMEOUT, Timeouts.DEVICE_WRITE_TIMEOUT_UNIT); try {