Committed by
Gerrit Code Review
Make text and JSON versions of summary command pull data from the same place
Change-Id: I5519fbf9c1b73dd417e12b6fd32d1a5d02f15dcc
Showing
1 changed file
with
32 additions
and
35 deletions
... | @@ -15,21 +15,22 @@ | ... | @@ -15,21 +15,22 @@ |
15 | */ | 15 | */ |
16 | package org.onosproject.cli; | 16 | package org.onosproject.cli; |
17 | 17 | ||
18 | -import java.util.Set; | ||
19 | - | ||
20 | import com.fasterxml.jackson.databind.ObjectMapper; | 18 | import com.fasterxml.jackson.databind.ObjectMapper; |
21 | import org.apache.karaf.shell.commands.Command; | 19 | import org.apache.karaf.shell.commands.Command; |
20 | +import org.onlab.packet.IpAddress; | ||
21 | +import org.onosproject.cluster.ClusterService; | ||
22 | import org.onosproject.cluster.ControllerNode; | 22 | import org.onosproject.cluster.ControllerNode; |
23 | import org.onosproject.core.CoreService; | 23 | import org.onosproject.core.CoreService; |
24 | -import org.onosproject.cluster.ClusterService; | 24 | +import org.onosproject.core.Version; |
25 | import org.onosproject.net.device.DeviceService; | 25 | import org.onosproject.net.device.DeviceService; |
26 | import org.onosproject.net.flow.FlowRuleService; | 26 | import org.onosproject.net.flow.FlowRuleService; |
27 | import org.onosproject.net.host.HostService; | 27 | import org.onosproject.net.host.HostService; |
28 | import org.onosproject.net.intent.IntentService; | 28 | import org.onosproject.net.intent.IntentService; |
29 | import org.onosproject.net.link.LinkService; | 29 | import org.onosproject.net.link.LinkService; |
30 | -import org.onosproject.net.topology.Topology; | ||
31 | import org.onosproject.net.topology.TopologyService; | 30 | import org.onosproject.net.topology.TopologyService; |
32 | 31 | ||
32 | +import java.util.Set; | ||
33 | + | ||
33 | /** | 34 | /** |
34 | * Provides summary of ONOS model. | 35 | * Provides summary of ONOS model. |
35 | */ | 36 | */ |
... | @@ -43,46 +44,42 @@ public class SummaryCommand extends AbstractShellCommand { | ... | @@ -43,46 +44,42 @@ public class SummaryCommand extends AbstractShellCommand { |
43 | * @param nodes set of all of the controller nodes in the cluster | 44 | * @param nodes set of all of the controller nodes in the cluster |
44 | * @return count of active nodes | 45 | * @return count of active nodes |
45 | */ | 46 | */ |
46 | - private int activeNodes(Set<ControllerNode> nodes) { | 47 | + private long activeNodes(Set<ControllerNode> nodes) { |
47 | - int nodeCount = 0; | 48 | + ClusterService clusterService = get(ClusterService.class); |
48 | 49 | ||
49 | - for (final ControllerNode node : nodes) { | 50 | + return nodes.stream() |
50 | - final ControllerNode.State nodeState = | 51 | + .map(node -> clusterService.getState(node.id())) |
51 | - get(ClusterService.class).getState(node.id()); | 52 | + .filter(nodeState -> nodeState.isActive()) |
52 | - if (nodeState.isActive()) { | 53 | + .count(); |
53 | - nodeCount++; | ||
54 | - } | ||
55 | - } | ||
56 | - return nodeCount; | ||
57 | } | 54 | } |
58 | 55 | ||
59 | @Override | 56 | @Override |
60 | protected void execute() { | 57 | protected void execute() { |
61 | - TopologyService topologyService = get(TopologyService.class); | 58 | + IpAddress nodeIp = get(ClusterService.class).getLocalNode().ip(); |
62 | - Topology topology = topologyService.currentTopology(); | 59 | + Version version = get(CoreService.class).version(); |
60 | + long numNodes = activeNodes(get(ClusterService.class).getNodes()); | ||
61 | + int numDevices = get(DeviceService.class).getDeviceCount(); | ||
62 | + int numLinks = get(LinkService.class).getLinkCount(); | ||
63 | + int numHosts = get(HostService.class).getHostCount(); | ||
64 | + int numScc = get(TopologyService.class).currentTopology().clusterCount(); | ||
65 | + int numFlows = get(FlowRuleService.class).getFlowRuleCount(); | ||
66 | + long numIntents = get(IntentService.class).getIntentCount(); | ||
67 | + | ||
63 | if (outputJson()) { | 68 | if (outputJson()) { |
64 | print("%s", new ObjectMapper().createObjectNode() | 69 | print("%s", new ObjectMapper().createObjectNode() |
65 | - .put("node", get(ClusterService.class).getLocalNode().ip().toString()) | 70 | + .put("node", nodeIp.toString()) |
66 | - .put("version", get(CoreService.class).version().toString()) | 71 | + .put("version", version.toString()) |
67 | - .put("nodes", get(ClusterService.class).getNodes().size()) | 72 | + .put("nodes", numNodes) |
68 | - .put("devices", topology.deviceCount()) | 73 | + .put("devices", numDevices) |
69 | - .put("links", topology.linkCount()) | 74 | + .put("links", numLinks) |
70 | - .put("hosts", get(HostService.class).getHostCount()) | 75 | + .put("hosts", numHosts) |
71 | - .put("SCC(s)", topology.clusterCount()) | 76 | + .put("SCC(s)", numScc) |
72 | - .put("flows", get(FlowRuleService.class).getFlowRuleCount()) | 77 | + .put("flows", numFlows) |
73 | - .put("intents", get(IntentService.class).getIntentCount())); | 78 | + .put("intents", numIntents)); |
74 | } else { | 79 | } else { |
75 | - print("node=%s, version=%s", | 80 | + print("node=%s, version=%s", nodeIp, version); |
76 | - get(ClusterService.class).getLocalNode().ip(), | ||
77 | - get(CoreService.class).version().toString()); | ||
78 | print("nodes=%d, devices=%d, links=%d, hosts=%d, SCC(s)=%s, flows=%d, intents=%d", | 81 | print("nodes=%d, devices=%d, links=%d, hosts=%d, SCC(s)=%s, flows=%d, intents=%d", |
79 | - activeNodes(get(ClusterService.class).getNodes()), | 82 | + numNodes, numDevices, numLinks, numHosts, numScc, numFlows, numIntents); |
80 | - get(DeviceService.class).getDeviceCount(), | ||
81 | - get(LinkService.class).getLinkCount(), | ||
82 | - get(HostService.class).getHostCount(), | ||
83 | - topologyService.getClusters(topology).size(), | ||
84 | - get(FlowRuleService.class).getFlowRuleCount(), | ||
85 | - get(IntentService.class).getIntentCount()); | ||
86 | } | 83 | } |
87 | } | 84 | } |
88 | 85 | ... | ... |
-
Please register or login to post a comment