blob: b7b4556d7338dc5610272e21f696d5601c6a8d75 [file] [log] [blame]
tome4729872014-09-23 00:37:37 -07001package org.onlab.onos.cli;
2
3import org.apache.karaf.shell.commands.Command;
4import org.onlab.onos.cluster.ClusterService;
5import org.onlab.onos.cluster.ControllerNode;
6
7import java.util.Collections;
tome4729872014-09-23 00:37:37 -07008import java.util.List;
9
10import static com.google.common.collect.Lists.newArrayList;
11
12/**
13 * Lists all controller cluster nodes.
14 */
15@Command(scope = "onos", name = "nodes",
16 description = "Lists all controller cluster nodes")
17public class NodesListCommand extends AbstractShellCommand {
18
19 private static final String FMT =
tomee49c372014-09-26 15:14:50 -070020 "id=%s, address=%s:%s, state=%s %s";
tome4729872014-09-23 00:37:37 -070021
tome4729872014-09-23 00:37:37 -070022 @Override
tom0872a172014-09-23 11:24:26 -070023 protected void execute() {
24 ClusterService service = get(ClusterService.class);
tome4729872014-09-23 00:37:37 -070025 List<ControllerNode> nodes = newArrayList(service.getNodes());
tom1380eee2014-09-24 09:22:02 -070026 Collections.sort(nodes, Comparators.NODE_COMPARATOR);
tome4729872014-09-23 00:37:37 -070027 ControllerNode self = service.getLocalNode();
28 for (ControllerNode node : nodes) {
tomee49c372014-09-26 15:14:50 -070029 print(FMT, node.id(), node.ip(), node.tcpPort(),
tome4729872014-09-23 00:37:37 -070030 service.getState(node.id()),
31 node.equals(self) ? "*" : "");
32 }
tome4729872014-09-23 00:37:37 -070033 }
34
35}