From 64b5211cc27e5c55ae1ea2546776968f5baf9a42 Mon Sep 17 00:00:00 2001 From: Mohamed El-Serngawy Date: Tue, 17 Nov 2015 15:06:11 -0500 Subject: [PATCH] delete uni command Change-Id: Ia36ff78296a72f493299e78f9a863e4d91705555 Signed-off-by: Mohamed El-Serngawy --- .../opendaylight/unimgr/cli/UniRemoveShellCommand.java | 2 +- .../org/opendaylight/unimgr/command/UniDeleteCommand.java | 5 ++--- .../java/org/opendaylight/unimgr/impl/UnimgrProvider.java | 8 ++++++-- .../java/org/opendaylight/unimgr/impl/UnimgrUtils.java | 5 ++++- 4 files changed, 13 insertions(+), 7 deletions(-) diff --git a/cli/src/main/java/org/opendaylight/unimgr/cli/UniRemoveShellCommand.java b/cli/src/main/java/org/opendaylight/unimgr/cli/UniRemoveShellCommand.java index 977c9484..3cbe14f5 100755 --- a/cli/src/main/java/org/opendaylight/unimgr/cli/UniRemoveShellCommand.java +++ b/cli/src/main/java/org/opendaylight/unimgr/cli/UniRemoveShellCommand.java @@ -13,7 +13,7 @@ import org.apache.karaf.shell.console.OsgiCommandSupport; import org.opendaylight.unimgr.api.IUnimgrConsoleProvider; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.IpAddress; -@Command(name = "remove", scope = "uni", description = "Removes an Uni from the controller.") +@Command(name = "uni-remove", scope = "uni", description = "Removes an Uni from the controller.") public class UniRemoveShellCommand extends OsgiCommandSupport { protected IUnimgrConsoleProvider provider; diff --git a/impl/src/main/java/org/opendaylight/unimgr/command/UniDeleteCommand.java b/impl/src/main/java/org/opendaylight/unimgr/command/UniDeleteCommand.java index 2308cbd2..9dab51f5 100644 --- a/impl/src/main/java/org/opendaylight/unimgr/command/UniDeleteCommand.java +++ b/impl/src/main/java/org/opendaylight/unimgr/command/UniDeleteCommand.java @@ -56,9 +56,8 @@ public class UniDeleteCommand extends AbstractDeleteCommand { bridgeIid, LogicalDatastoreType.CONFIGURATION); } - UnimgrUtils.deleteNode(dataBroker, - removedUniIid, - LogicalDatastoreType.OPERATIONAL); + InstanceIdentifier iidUni = UnimgrMapper.getUniIid(dataBroker, uniAugmentation.getIpAddress(), LogicalDatastoreType.OPERATIONAL); + UnimgrUtils.deleteNode(dataBroker, iidUni, LogicalDatastoreType.OPERATIONAL); } else { LOG.info("Received Uni Augmentation is null", removedUniIid); diff --git a/impl/src/main/java/org/opendaylight/unimgr/impl/UnimgrProvider.java b/impl/src/main/java/org/opendaylight/unimgr/impl/UnimgrProvider.java index 4bc29f54..8a243ec0 100755 --- a/impl/src/main/java/org/opendaylight/unimgr/impl/UnimgrProvider.java +++ b/impl/src/main/java/org/opendaylight/unimgr/impl/UnimgrProvider.java @@ -26,6 +26,7 @@ import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology. import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.Topology; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.TopologyBuilder; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.TopologyKey; +import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.TopologyId; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.osgi.framework.BundleContext; @@ -137,8 +138,11 @@ public class UnimgrProvider implements BindingAwareProvider, AutoCloseable, IUni @Override public boolean removeUni(IpAddress ipAddress) { - // TODO Auto-generated method stub - return false; + InstanceIdentifier iidUni = UnimgrMapper.getUniIid(dataBroker, ipAddress, LogicalDatastoreType.CONFIGURATION); + if (iidUni == null) + return false; + + return UnimgrUtils.deleteNode(dataBroker, iidUni, LogicalDatastoreType.CONFIGURATION); } @Override diff --git a/impl/src/main/java/org/opendaylight/unimgr/impl/UnimgrUtils.java b/impl/src/main/java/org/opendaylight/unimgr/impl/UnimgrUtils.java index 5195edda..6b0ee474 100644 --- a/impl/src/main/java/org/opendaylight/unimgr/impl/UnimgrUtils.java +++ b/impl/src/main/java/org/opendaylight/unimgr/impl/UnimgrUtils.java @@ -491,17 +491,20 @@ public class UnimgrUtils { * @param genericNode The instance identifier of a generic node * @param store The dataStore where to send and submit the delete call. */ - public static void deleteNode(DataBroker dataBroker, + public static boolean deleteNode(DataBroker dataBroker, InstanceIdentifier genericNode, LogicalDatastoreType store) { LOG.info("Received a request to delete node {}", genericNode); + boolean result = false; WriteTransaction transaction = dataBroker.newWriteOnlyTransaction(); transaction.delete(store, genericNode); try { transaction.submit().checkedGet(); + return !result; } catch (TransactionCommitFailedException e) { LOG.error("Unable to remove node with Iid {} from store {}.", genericNode, store); } + return result; } /** -- 2.36.6