blob: 3f90f2aa7d02a83f6fd0d81aa644a6318b7e187f [file] [log] [blame]
tom89b63c52014-09-16 09:19:51 -07001package org.onlab.onos.cli.net;
2
3import org.apache.karaf.shell.commands.Command;
4import org.onlab.onos.net.Device;
5import org.onlab.onos.net.Host;
6import org.onlab.onos.net.device.DeviceAdminService;
7import org.onlab.onos.net.device.DeviceService;
8import org.onlab.onos.net.host.HostAdminService;
9import org.onlab.onos.net.host.HostService;
Brian O'Connor958d3812014-10-03 19:46:23 -070010import org.onlab.onos.net.intent.Intent;
11import org.onlab.onos.net.intent.IntentService;
12import org.onlab.onos.net.intent.IntentState;
tom89b63c52014-09-16 09:19:51 -070013
14/**
15 * Wipes-out the entire network information base, i.e. devices, links, hosts.
16 */
17@Command(scope = "onos", name = "wipe-out",
18 description = "Wipes-out the entire network information base, i.e. devices, links, hosts")
19public class WipeOutCommand extends ClustersListCommand {
20
21 @Override
tom0872a172014-09-23 11:24:26 -070022 protected void execute() {
tom89b63c52014-09-16 09:19:51 -070023 DeviceAdminService deviceAdminService = get(DeviceAdminService.class);
24 DeviceService deviceService = get(DeviceService.class);
25 for (Device device : deviceService.getDevices()) {
26 deviceAdminService.removeDevice(device.id());
27 }
28
29 HostAdminService hostAdminService = get(HostAdminService.class);
30 HostService hostService = get(HostService.class);
31 for (Host host : hostService.getHosts()) {
32 hostAdminService.removeHost(host.id());
33 }
Brian O'Connor958d3812014-10-03 19:46:23 -070034
35 IntentService intentService = get(IntentService.class);
36 for (Intent intent : intentService.getIntents()) {
37 if (intentService.getIntentState(intent.getId()) == IntentState.INSTALLED) {
38 intentService.withdraw(intent);
39 }
40 }
tom89b63c52014-09-16 09:19:51 -070041 }
tom89b63c52014-09-16 09:19:51 -070042}