blob: ee948d66d01dc99b7fa01106f3d23cddddf574ee [file] [log] [blame]
tom1380eee2014-09-24 09:22:02 -07001package org.onlab.onos.cli;
2
3import com.google.common.collect.Lists;
4import org.apache.karaf.shell.commands.Command;
5import org.onlab.onos.cli.net.Comparators;
6import org.onlab.onos.cluster.ClusterService;
7import org.onlab.onos.cluster.ControllerNode;
8import org.onlab.onos.cluster.MastershipService;
9import org.onlab.onos.net.DeviceId;
10
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);
26 MastershipService mastershipService = get(MastershipService.class);
27 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}