blob: c23d59e53b06527288ec609a2e76dd370958fd72 [file] [log] [blame]
tom1380eee2014-09-24 09:22:02 -07001package org.onlab.onos.cli;
2
3import com.google.common.collect.Lists;
Madan Jampani58819b42014-10-09 13:48:51 -07004
tom1380eee2014-09-24 09:22:02 -07005import org.apache.karaf.shell.commands.Command;
tom1380eee2014-09-24 09:22:02 -07006import org.onlab.onos.cluster.ClusterService;
7import org.onlab.onos.cluster.ControllerNode;
tom1380eee2014-09-24 09:22:02 -07008import org.onlab.onos.net.DeviceId;
Madan Jampani58819b42014-10-09 13:48:51 -07009import org.onlab.onos.net.device.DeviceMastershipService;
tom1380eee2014-09-24 09:22:02 -070010
11import java.util.Collections;
12import java.util.List;
13
14import static com.google.common.collect.Lists.newArrayList;
15
16/**
17 * Lists device mastership information.
18 */
19@Command(scope = "onos", name = "masters",
20 description = "Lists device mastership information")
21public class MastersListCommand extends AbstractShellCommand {
22
23 @Override
24 protected void execute() {
25 ClusterService service = get(ClusterService.class);
Madan Jampani58819b42014-10-09 13:48:51 -070026 DeviceMastershipService mastershipService = get(DeviceMastershipService.class);
tom1380eee2014-09-24 09:22:02 -070027 List<ControllerNode> nodes = newArrayList(service.getNodes());
28 Collections.sort(nodes, Comparators.NODE_COMPARATOR);
29 ControllerNode self = service.getLocalNode();
30 for (ControllerNode node : nodes) {
31 List<DeviceId> ids = Lists.newArrayList(mastershipService.getDevicesOf(node.id()));
32 Collections.sort(ids, Comparators.ELEMENT_ID_COMPARATOR);
33 print("%s: %d devices", node.id(), ids.size());
34 for (DeviceId deviceId : ids) {
35 print(" %s", deviceId);
36 }
37 }
38 }
39
40}