blob: 0f7857fb14718bbb8ff1722824648be94b409c01 [file] [log] [blame]
tom1380eee2014-09-24 09:22:02 -07001package org.onlab.onos.cli;
2
3import com.google.common.collect.Lists;
Yuta HIGUCHI80912e62014-10-12 00:15:47 -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;
Yuta HIGUCHI80912e62014-10-12 00:15:47 -07008import org.onlab.onos.mastership.MastershipService;
tom1380eee2014-09-24 09:22:02 -07009import 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}