From: K.V Suneelu Verma Date: Mon, 17 Apr 2017 12:45:14 +0000 (+0530) Subject: bug 8257 handling back to back logical switches X-Git-Tag: release/nitrogen~21 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=commitdiff_plain;h=8eb6122b76dcbe998f20aa1b1b980e3a8f177c30;p=ovsdb.git bug 8257 handling back to back logical switches Making logical switches update/remove participate in dependency resolution workflow. When logical switch delete requests comes it is held until the previous logical switch add request finishes and vice versa. Change-Id: I5d158759a977f7a0f66dcafd297c4d2f06fa3fd4 Signed-off-by: K.V Suneelu Verma --- diff --git a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/LogicalSwitchRemoveCommand.java b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/LogicalSwitchRemoveCommand.java index 48abea148..cdc25f81d 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/LogicalSwitchRemoveCommand.java +++ b/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/LogicalSwitchRemoveCommand.java @@ -24,6 +24,7 @@ import org.opendaylight.ovsdb.lib.schema.typed.TyperUtils; import org.opendaylight.ovsdb.schema.hardwarevtep.LogicalSwitch; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.HwvtepGlobalAugmentation; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.LogicalSwitches; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.RemoteMcastMacs; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; import org.opendaylight.yangtools.yang.binding.Identifiable; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; @@ -74,9 +75,30 @@ public class LogicalSwitchRemoveCommand extends AbstractTransactCommand instanceIdentifier, List lswitchList) { + private void removeLogicalSwitch(final TransactionBuilder transaction, + final InstanceIdentifier nodeIid, final List lswitchList) { for (LogicalSwitches lswitch: lswitchList) { + InstanceIdentifier lsKey = nodeIid.augmentation(HwvtepGlobalAugmentation.class). + child(LogicalSwitches.class, lswitch.getKey()); + onConfigUpdate(transaction, nodeIid, lswitch, lsKey); + } + } + + @Override + public void onConfigUpdate(final TransactionBuilder transaction, + final InstanceIdentifier nodeIid, + final LogicalSwitches lswitch, + final InstanceIdentifier lsKey, + final Object... extraData) { + processDependencies(null, transaction, nodeIid, lsKey, lswitch); + } + + @Override + public void doDeviceTransaction(final TransactionBuilder transaction, + final InstanceIdentifier instanceIdentifier, + final LogicalSwitches lswitch, + final InstanceIdentifier lsKey, + final Object... extraData) { LOG.debug("Removing logcial switch named: {}", lswitch.getHwvtepNodeName().getValue()); Optional operationalSwitchOptional = getOperationalState().getLogicalSwitches(instanceIdentifier, lswitch.getKey()); @@ -88,11 +110,11 @@ public class LogicalSwitchRemoveCommand extends AbstractTransactCommand instanceIdentifier, List lswitchList) { + private void updateLogicalSwitch(final TransactionBuilder transaction, + final InstanceIdentifier nodeIid, final List lswitchList) { for (LogicalSwitches lswitch: lswitchList) { - InstanceIdentifier lsKey = instanceIdentifier. - augmentation(HwvtepGlobalAugmentation.class).child(LogicalSwitches.class, lswitch.getKey()); + InstanceIdentifier lsKey = nodeIid.augmentation(HwvtepGlobalAugmentation.class). + child(LogicalSwitches.class, lswitch.getKey()); + onConfigUpdate(transaction, nodeIid, lswitch, lsKey); + } + } + + @Override + public void onConfigUpdate(final TransactionBuilder transaction, + final InstanceIdentifier nodeIid, + final LogicalSwitches lswitch, + final InstanceIdentifier lsKey, + final Object... extraData) { + processDependencies(null, transaction, nodeIid, lsKey, lswitch); + } + + @Override + public void doDeviceTransaction(final TransactionBuilder transaction, + final InstanceIdentifier instanceIdentifier, + final LogicalSwitches lswitch, + final InstanceIdentifier lsKey, + final Object... extraData) { LOG.debug("Creating logical switch named: {}", lswitch.getHwvtepNodeName()); Optional operationalSwitchOptional = getOperationalState().getLogicalSwitches(instanceIdentifier, lswitch.getKey()); @@ -69,7 +89,7 @@ public class LogicalSwitchUpdateCommand extends AbstractTransactCommand