From db2f9233fe42a2eb68b69663e5c0d86c9a5f9be4 Mon Sep 17 00:00:00 2001 From: Balagangadhar Bathula Date: Thu, 3 Feb 2022 18:42:59 -0500 Subject: [PATCH] Simplify delete operations - For all supported versions, simplify delete operations - Keep the delete operation simple rather than passing all the config data into the merge config data. JIRA: TRNSPRTPCE-620 Change-Id: I67514b2073fc91dac36d52a59b6c8d7fb401fd22 Signed-off-by: Balagangadhar Bathula --- .../OpenRoadmInterfacesImpl121.java | 56 +++++-------------- .../OpenRoadmInterfacesImpl221.java | 56 +++++-------------- .../OpenRoadmInterfacesImpl710.java | 21 +++---- 3 files changed, 39 insertions(+), 94 deletions(-) diff --git a/common/src/main/java/org/opendaylight/transportpce/common/openroadminterfaces/OpenRoadmInterfacesImpl121.java b/common/src/main/java/org/opendaylight/transportpce/common/openroadminterfaces/OpenRoadmInterfacesImpl121.java index fb9407904..6d103d901 100755 --- a/common/src/main/java/org/opendaylight/transportpce/common/openroadminterfaces/OpenRoadmInterfacesImpl121.java +++ b/common/src/main/java/org/opendaylight/transportpce/common/openroadminterfaces/OpenRoadmInterfacesImpl121.java @@ -31,14 +31,6 @@ import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.org.open import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.port.Interfaces; import org.opendaylight.yang.gen.v1.http.org.openroadm.equipment.states.types.rev161014.AdminStates; import org.opendaylight.yang.gen.v1.http.org.openroadm.equipment.states.types.rev161014.States; -import org.opendaylight.yang.gen.v1.http.org.openroadm.interfaces.rev161014.OtnOdu; -import org.opendaylight.yang.gen.v1.http.org.openroadm.interfaces.rev161014.OtnOtu; -import org.opendaylight.yang.gen.v1.http.org.openroadm.maintenance.loopback.rev161014.maint.loopback.MaintLoopbackBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.maintenance.testsignal.rev161014.maint.testsignal.MaintTestsignalBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.odu.interfaces.rev161014.Interface1; -import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.odu.interfaces.rev161014.Interface1Builder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.odu.interfaces.rev161014.odu.container.OduBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.otu.interfaces.rev161014.otu.container.OtuBuilder; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.opendaylight.yangtools.yang.binding.KeyedInstanceIdentifier; import org.slf4j.Logger; @@ -91,13 +83,17 @@ public class OpenRoadmInterfacesImpl121 { }; 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 @@ -125,34 +121,10 @@ public class OpenRoadmInterfacesImpl121 { 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.rev161014.Interface1Builder - otuBuilder = - new org.opendaylight.yang.gen.v1.http.org.openroadm.otn.otu.interfaces.rev161014.Interface1Builder( - intf2Delete.augmentation( - org.opendaylight.yang.gen.v1.http.org.openroadm.otn.otu.interfaces.rev161014.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); 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..aad28e334 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 @@ -34,14 +34,6 @@ 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; @@ -101,13 +93,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 @@ -136,34 +132,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); diff --git a/common/src/main/java/org/opendaylight/transportpce/common/openroadminterfaces/OpenRoadmInterfacesImpl710.java b/common/src/main/java/org/opendaylight/transportpce/common/openroadminterfaces/OpenRoadmInterfacesImpl710.java index 4152b2e38..bd9e62ec0 100644 --- a/common/src/main/java/org/opendaylight/transportpce/common/openroadminterfaces/OpenRoadmInterfacesImpl710.java +++ b/common/src/main/java/org/opendaylight/transportpce/common/openroadminterfaces/OpenRoadmInterfacesImpl710.java @@ -93,13 +93,17 @@ public class OpenRoadmInterfacesImpl710 { }; 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 @@ -136,10 +140,7 @@ public class OpenRoadmInterfacesImpl710 { // Though these could be redundant, but 'when' statements are causing problem, // when deleting the interfaces trying to be deleted .setName(intf2Delete.getName()) - .setType(intf2Delete.getType()) - // CP name and the ports are needed, since the post interface is validated - .setSupportingCircuitPackName(intf2Delete.getSupportingCircuitPackName()) - .setSupportingPort(intf2Delete.getSupportingPort()); + .setType(intf2Delete.getType()); // post interface with updated admin state try { -- 2.36.6