X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=common%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Ftransportpce%2Fcommon%2Fopenroadminterfaces%2FOpenRoadmInterfacesImpl221.java;h=e3a0d83b90fa982476d0325d53b44daf58cb0163;hb=98b07b5da982529cdec2db98f5b96902ed47323b;hp=ab79254e944a33ca1c6424e211af5cfa4aa64fb0;hpb=c10e4140f3cc89f7b4d635d7a370209d8a1e15ff;p=transportpce.git diff --git a/common/src/main/java/org/opendaylight/transportpce/common/openroadminterfaces/OpenRoadmInterfacesImpl221.java b/common/src/main/java/org/opendaylight/transportpce/common/openroadminterfaces/OpenRoadmInterfacesImpl221.java index ab79254e9..e3a0d83b9 100755 --- a/common/src/main/java/org/opendaylight/transportpce/common/openroadminterfaces/OpenRoadmInterfacesImpl221.java +++ b/common/src/main/java/org/opendaylight/transportpce/common/openroadminterfaces/OpenRoadmInterfacesImpl221.java @@ -21,7 +21,8 @@ import org.opendaylight.transportpce.common.device.DeviceTransaction; import org.opendaylight.transportpce.common.device.DeviceTransactionManager; import org.opendaylight.transportpce.common.mapping.PortMapping; import org.opendaylight.transportpce.common.mapping.PortMappingVersion221; -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.rev220316.mapping.Mapping; +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; @@ -34,16 +35,7 @@ import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev181019.org.open import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev181019.port.Interfaces; import org.opendaylight.yang.gen.v1.http.org.openroadm.equipment.states.types.rev171215.AdminStates; import org.opendaylight.yang.gen.v1.http.org.openroadm.equipment.states.types.rev171215.States; -import org.opendaylight.yang.gen.v1.http.org.openroadm.interfaces.rev170626.OtnOdu; -import org.opendaylight.yang.gen.v1.http.org.openroadm.interfaces.rev170626.OtnOtu; -import org.opendaylight.yang.gen.v1.http.org.openroadm.maintenance.loopback.rev171215.maint.loopback.MaintLoopbackBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.maintenance.testsignal.rev171215.maint.testsignal.MaintTestsignalBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.odu.interfaces.rev181019.Interface1; -import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.odu.interfaces.rev181019.Interface1Builder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.odu.interfaces.rev181019.odu.container.OduBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.otu.interfaces.rev181019.otu.container.OtuBuilder; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; -import org.opendaylight.yangtools.yang.binding.KeyedInstanceIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -55,11 +47,10 @@ public class OpenRoadmInterfacesImpl221 { private final PortMapping portMapping; private final PortMappingVersion221 portMapping221; - public OpenRoadmInterfacesImpl221(DeviceTransactionManager deviceTransactionManager, - PortMapping portMapping, PortMappingVersion221 portMapping221) { + public OpenRoadmInterfacesImpl221(DeviceTransactionManager deviceTransactionManager, PortMapping portMapping) { this.deviceTransactionManager = deviceTransactionManager; this.portMapping = portMapping; - this.portMapping221 = portMapping221; + this.portMapping221 = portMapping.getPortMappingVersion221(); } public void postInterface(String nodeId, InterfaceBuilder ifBuilder) throws OpenRoadmInterfaceException { @@ -78,8 +69,10 @@ public class OpenRoadmInterfacesImpl221 { nodeId), e); } - InstanceIdentifier interfacesIID = InstanceIdentifier.create(OrgOpenroadmDevice.class).child( - Interface.class, new InterfaceKey(ifBuilder.getName())); + InstanceIdentifier interfacesIID = InstanceIdentifier + .builderOfInherited(OrgOpenroadmDeviceData.class, OrgOpenroadmDevice.class) + .child(Interface.class, new InterfaceKey(ifBuilder.getName())) + .build(); LOG.info("POST INTERF for {} : InterfaceBuilder : name = {} \t type = {}", nodeId, ifBuilder.getName(), ifBuilder.getType().toString()); deviceTx.merge(LogicalDatastoreType.CONFIGURATION, interfacesIID, ifBuilder.build()); @@ -101,13 +94,17 @@ public class OpenRoadmInterfacesImpl221 { }; try { txSubmitFuture.get(); - LOG.info("Successfully posted interface {} on node {}", ifBuilder.getName(), nodeId); - boolean devicePortIsUptodated = false; - while (!devicePortIsUptodated) { - devicePortIsUptodated = checkIfDevicePortIsUpdatedWithInterface(nodeId, ifBuilder); + LOG.info("Successfully posted/deleted interface {} on node {}", ifBuilder.getName(), nodeId); + // this check is not needed during the delete operation + // during the delete operation, ifBuilder does not contain supporting-cp and supporting-port + if (ifBuilder.getSupportingCircuitPackName() != null && ifBuilder.getSupportingPort() != null) { + boolean devicePortIsUptodated = false; + while (!devicePortIsUptodated) { + devicePortIsUptodated = checkIfDevicePortIsUpdatedWithInterface(nodeId, ifBuilder); + } + LOG.info("{} - {} - interface {} updated on port {}", nodeId, ifBuilder.getSupportingCircuitPackName(), + ifBuilder.getName(), ifBuilder.getSupportingPort()); } - LOG.info("{} - {} - interface {} updated on port {}", nodeId, ifBuilder.getSupportingCircuitPackName(), - ifBuilder.getName(), ifBuilder.getSupportingPort()); timer.interrupt(); } catch (InterruptedException | ExecutionException e) { throw new OpenRoadmInterfaceException(String.format("Failed to post interface %s on node %s!", ifBuilder @@ -117,8 +114,10 @@ public class OpenRoadmInterfacesImpl221 { public Optional getInterface(String nodeId, String interfaceName) throws OpenRoadmInterfaceException { - InstanceIdentifier interfacesIID = InstanceIdentifier.create(OrgOpenroadmDevice.class) - .child(Interface.class, new InterfaceKey(interfaceName)); + InstanceIdentifier interfacesIID = InstanceIdentifier + .builderOfInherited(OrgOpenroadmDeviceData.class, OrgOpenroadmDevice.class) + .child(Interface.class, new InterfaceKey(interfaceName)) + .build(); return deviceTransactionManager.getDataFromDevice(nodeId, LogicalDatastoreType.CONFIGURATION, interfacesIID, Timeouts.DEVICE_READ_TIMEOUT, Timeouts.DEVICE_READ_TIMEOUT_UNIT); } @@ -136,34 +135,10 @@ public class OpenRoadmInterfacesImpl221 { if (intf2DeleteOpt.isPresent()) { Interface intf2Delete = intf2DeleteOpt.get(); // State admin state to out of service - InterfaceBuilder ifBuilder = new InterfaceBuilder(intf2Delete); - if (ifBuilder.getType() == OtnOdu.class) { - Interface1Builder oduBuilder = new Interface1Builder(intf2Delete.augmentation(Interface1.class)); - OduBuilder odu = new OduBuilder(oduBuilder.getOdu()); - if (odu.getMaintTestsignal() != null) { - MaintTestsignalBuilder maintSignalBuilder = new MaintTestsignalBuilder(); - maintSignalBuilder.setEnabled(false); - odu.setMaintTestsignal(maintSignalBuilder.build()); - } - oduBuilder.setOdu(odu.build()); - ifBuilder.addAugmentation(oduBuilder.build()); - } else if (ifBuilder.getType() == OtnOtu.class) { - org.opendaylight.yang.gen.v1.http.org.openroadm.otn.otu.interfaces.rev181019.Interface1Builder - otuBuilder = - new org.opendaylight.yang.gen.v1.http.org.openroadm.otn.otu.interfaces.rev181019.Interface1Builder( - intf2Delete.augmentation( - org.opendaylight.yang.gen.v1.http.org.openroadm.otn.otu.interfaces.rev181019.Interface1 - .class)); - OtuBuilder otu = new OtuBuilder(otuBuilder.getOtu()); - if (otu.getMaintLoopback() != null) { - MaintLoopbackBuilder maintLoopBackBuilder = new MaintLoopbackBuilder(); - maintLoopBackBuilder.setEnabled(false); - otu.setMaintLoopback(maintLoopBackBuilder.build()); - } - otuBuilder.setOtu(otu.build()); - ifBuilder.addAugmentation(otuBuilder.build()); - } - ifBuilder.setAdministrativeState(AdminStates.OutOfService); + InterfaceBuilder ifBuilder = new InterfaceBuilder() + .setAdministrativeState(AdminStates.OutOfService) + .setName(intf2Delete.getName()) + .setType(intf2Delete.getType()); // post interface with updated admin state try { postInterface(nodeId, ifBuilder); @@ -172,8 +147,10 @@ public class OpenRoadmInterfacesImpl221 { + " deleting it!", interfaceName, AdminStates.OutOfService), ex); } - InstanceIdentifier interfacesIID = InstanceIdentifier.create(OrgOpenroadmDevice.class).child( - Interface.class, new InterfaceKey(interfaceName)); + InstanceIdentifier interfacesIID = InstanceIdentifier + .builderOfInherited(OrgOpenroadmDeviceData.class, OrgOpenroadmDevice.class) + .child(Interface.class, new InterfaceKey(interfaceName)) + .build(); Future> deviceTxFuture = this.deviceTransactionManager.getDeviceTransaction( nodeId); DeviceTransaction deviceTx; @@ -218,8 +195,10 @@ public class OpenRoadmInterfacesImpl221 { public void postEquipmentState(String nodeId, String circuitPackName, boolean activate) throws OpenRoadmInterfaceException { - InstanceIdentifier circuitPackIID = InstanceIdentifier.create(OrgOpenroadmDevice.class).child( - CircuitPacks.class, new CircuitPacksKey(circuitPackName)); + InstanceIdentifier circuitPackIID = InstanceIdentifier + .builderOfInherited(OrgOpenroadmDeviceData.class, OrgOpenroadmDevice.class) + .child(CircuitPacks.class, new CircuitPacksKey(circuitPackName)) + .build(); Optional cpOpt = this.deviceTransactionManager.getDataFromDevice(nodeId, LogicalDatastoreType.CONFIGURATION, circuitPackIID, Timeouts.DEVICE_READ_TIMEOUT, Timeouts.DEVICE_READ_TIMEOUT_UNIT); @@ -288,9 +267,11 @@ public class OpenRoadmInterfacesImpl221 { } private boolean checkIfDevicePortIsUpdatedWithInterface(String nodeId, InterfaceBuilder ifBuilder) { - KeyedInstanceIdentifier portIID = InstanceIdentifier.create(OrgOpenroadmDevice.class) + InstanceIdentifier portIID = InstanceIdentifier + .builderOfInherited(OrgOpenroadmDeviceData.class, OrgOpenroadmDevice.class) .child(CircuitPacks.class, new CircuitPacksKey(ifBuilder.getSupportingCircuitPackName())) - .child(Ports.class, new PortsKey(ifBuilder.getSupportingPort())); + .child(Ports.class, new PortsKey(ifBuilder.getSupportingPort())) + .build(); Ports port = deviceTransactionManager.getDataFromDevice(nodeId, LogicalDatastoreType.OPERATIONAL, portIID, Timeouts.DEVICE_READ_TIMEOUT, Timeouts.DEVICE_READ_TIMEOUT_UNIT).get(); if (port.getInterfaces() == null) {