Committed by
Gerrit Code Review
Fixes NPE in CLI when user enters non-existent DPID in "flows any <dpid>" command.
Sorts flows according to table-id first, and then flow-id, so all flows from the same table print together. Change-Id: I4a811a00a1dc0e1e2f2855c06f5f7f9851152c0d
Showing
2 changed files
with
12 additions
and
3 deletions
... | @@ -71,7 +71,10 @@ public final class Comparators { | ... | @@ -71,7 +71,10 @@ public final class Comparators { |
71 | public static final Comparator<FlowRule> FLOW_RULE_COMPARATOR = new Comparator<FlowRule>() { | 71 | public static final Comparator<FlowRule> FLOW_RULE_COMPARATOR = new Comparator<FlowRule>() { |
72 | @Override | 72 | @Override |
73 | public int compare(FlowRule f1, FlowRule f2) { | 73 | public int compare(FlowRule f1, FlowRule f2) { |
74 | - return Long.valueOf(f1.id().value()).compareTo(f2.id().value()); | 74 | + int tableCompare = Integer.valueOf(f1.tableId()).compareTo(f2.tableId()); |
75 | + return (tableCompare == 0) | ||
76 | + ? Long.valueOf(f1.id().value()).compareTo(f2.id().value()) | ||
77 | + : tableCompare; | ||
75 | } | 78 | } |
76 | }; | 79 | }; |
77 | 80 | ... | ... |
... | @@ -123,8 +123,14 @@ public class FlowsListCommand extends AbstractShellCommand { | ... | @@ -123,8 +123,14 @@ public class FlowsListCommand extends AbstractShellCommand { |
123 | if (state != null && !state.equals("any")) { | 123 | if (state != null && !state.equals("any")) { |
124 | s = FlowEntryState.valueOf(state.toUpperCase()); | 124 | s = FlowEntryState.valueOf(state.toUpperCase()); |
125 | } | 125 | } |
126 | - Iterable<Device> devices = uri == null ? deviceService.getDevices() : | 126 | + Iterable<Device> devices = null; |
127 | - Collections.singletonList(deviceService.getDevice(DeviceId.deviceId(uri))); | 127 | + if (uri == null) { |
128 | + devices = deviceService.getDevices(); | ||
129 | + } else { | ||
130 | + Device dev = deviceService.getDevice(DeviceId.deviceId(uri)); | ||
131 | + devices = (dev == null) ? deviceService.getDevices() | ||
132 | + : Collections.singletonList(dev); | ||
133 | + } | ||
128 | for (Device d : devices) { | 134 | for (Device d : devices) { |
129 | if (s == null) { | 135 | if (s == null) { |
130 | rules = newArrayList(service.getFlowEntries(d.id())); | 136 | rules = newArrayList(service.getFlowEntries(d.id())); | ... | ... |
-
Please register or login to post a comment