Committed by
Gerrit Code Review
Adding more aggressive and thorough implementation of wipe-out command.
Change-Id: I828ccdc994a490e17c2806d27aa36460da10f795
Showing
3 changed files
with
35 additions
and
7 deletions
| ... | @@ -19,13 +19,13 @@ import org.apache.karaf.shell.commands.Argument; | ... | @@ -19,13 +19,13 @@ import org.apache.karaf.shell.commands.Argument; |
| 19 | import org.apache.karaf.shell.commands.Command; | 19 | import org.apache.karaf.shell.commands.Command; |
| 20 | import org.onosproject.net.Device; | 20 | import org.onosproject.net.Device; |
| 21 | import org.onosproject.net.Host; | 21 | import org.onosproject.net.Host; |
| 22 | +import org.onosproject.net.Link; | ||
| 22 | import org.onosproject.net.device.DeviceAdminService; | 23 | import org.onosproject.net.device.DeviceAdminService; |
| 23 | -import org.onosproject.net.device.DeviceService; | ||
| 24 | import org.onosproject.net.host.HostAdminService; | 24 | import org.onosproject.net.host.HostAdminService; |
| 25 | -import org.onosproject.net.host.HostService; | ||
| 26 | import org.onosproject.net.intent.Intent; | 25 | import org.onosproject.net.intent.Intent; |
| 27 | import org.onosproject.net.intent.IntentService; | 26 | import org.onosproject.net.intent.IntentService; |
| 28 | import org.onosproject.net.intent.IntentState; | 27 | import org.onosproject.net.intent.IntentState; |
| 28 | +import org.onosproject.net.link.LinkAdminService; | ||
| 29 | 29 | ||
| 30 | /** | 30 | /** |
| 31 | * Wipes-out the entire network information base, i.e. devices, links, hosts, intents. | 31 | * Wipes-out the entire network information base, i.e. devices, links, hosts, intents. |
| ... | @@ -49,17 +49,40 @@ public class WipeOutCommand extends ClustersListCommand { | ... | @@ -49,17 +49,40 @@ public class WipeOutCommand extends ClustersListCommand { |
| 49 | 49 | ||
| 50 | print("Wiping devices"); | 50 | print("Wiping devices"); |
| 51 | DeviceAdminService deviceAdminService = get(DeviceAdminService.class); | 51 | DeviceAdminService deviceAdminService = get(DeviceAdminService.class); |
| 52 | - DeviceService deviceService = get(DeviceService.class); | 52 | + while (deviceAdminService.getDeviceCount() > 0) { |
| 53 | - for (Device device : deviceService.getDevices()) { | 53 | + try { |
| 54 | + for (Device device : deviceAdminService.getDevices()) { | ||
| 54 | deviceAdminService.removeDevice(device.id()); | 55 | deviceAdminService.removeDevice(device.id()); |
| 55 | } | 56 | } |
| 57 | + } catch (Exception e) { | ||
| 58 | + log.warn("Unable to wipe-out devices", e); | ||
| 59 | + } | ||
| 60 | + } | ||
| 61 | + | ||
| 62 | + print("Wiping links"); | ||
| 63 | + LinkAdminService linkAdminService = get(LinkAdminService.class); | ||
| 64 | + while (linkAdminService.getLinkCount() > 0) { | ||
| 65 | + try { | ||
| 66 | + for (Link link : linkAdminService.getLinks()) { | ||
| 67 | + linkAdminService.removeLinks(link.src()); | ||
| 68 | + linkAdminService.removeLinks(link.dst()); | ||
| 69 | + } | ||
| 70 | + } catch (Exception e) { | ||
| 71 | + log.warn("Unable to wipe-out links", e); | ||
| 72 | + } | ||
| 73 | + } | ||
| 56 | 74 | ||
| 57 | print("Wiping hosts"); | 75 | print("Wiping hosts"); |
| 58 | HostAdminService hostAdminService = get(HostAdminService.class); | 76 | HostAdminService hostAdminService = get(HostAdminService.class); |
| 59 | - HostService hostService = get(HostService.class); | 77 | + while (hostAdminService.getHostCount() > 0) { |
| 60 | - for (Host host : hostService.getHosts()) { | 78 | + try { |
| 79 | + for (Host host : hostAdminService.getHosts()) { | ||
| 61 | hostAdminService.removeHost(host.id()); | 80 | hostAdminService.removeHost(host.id()); |
| 62 | } | 81 | } |
| 82 | + } catch (Exception e) { | ||
| 83 | + log.warn("Unable to wipe-out hosts", e); | ||
| 84 | + } | ||
| 85 | + } | ||
| 63 | 86 | ||
| 64 | print("Wiping intents"); | 87 | print("Wiping intents"); |
| 65 | IntentService intentService = get(IntentService.class); | 88 | IntentService intentService = get(IntentService.class); |
| ... | @@ -67,6 +90,7 @@ public class WipeOutCommand extends ClustersListCommand { | ... | @@ -67,6 +90,7 @@ public class WipeOutCommand extends ClustersListCommand { |
| 67 | if (intentService.getIntentState(intent.key()) == IntentState.INSTALLED) { | 90 | if (intentService.getIntentState(intent.key()) == IntentState.INSTALLED) { |
| 68 | intentService.withdraw(intent); | 91 | intentService.withdraw(intent); |
| 69 | } | 92 | } |
| 93 | + intentService.purge(intent); | ||
| 70 | } | 94 | } |
| 71 | } | 95 | } |
| 72 | } | 96 | } | ... | ... |
| ... | @@ -16,6 +16,6 @@ | ... | @@ -16,6 +16,6 @@ |
| 16 | <scenario name="net-setup" description="Network teardown steps"> | 16 | <scenario name="net-setup" description="Network teardown steps"> |
| 17 | <group name="Net-Teardown"> | 17 | <group name="Net-Teardown"> |
| 18 | <step name="Stop-Mininet" exec="onos-mininet stop"/> | 18 | <step name="Stop-Mininet" exec="onos-mininet stop"/> |
| 19 | - <step name="Wipe-Out-Data-After" requires="~Stop-Mininet" exec="onos-wipe-out"/> | 19 | + <XXXstep name="Wipe-Out-Data-After" requires="~Stop-Mininet" exec="onos-wipe-out"/> |
| 20 | </group> | 20 | </group> |
| 21 | </scenario> | 21 | </scenario> |
| ... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
-
Please register or login to post a comment