Committed by
Gerrit Code Review
[Goldeneye] add command line switch to supress core flows
Change-Id: Ide8439ff967394b3b3a2f94243e5d5b2251a1384
Showing
1 changed file
with
16 additions
and
2 deletions
| ... | @@ -40,9 +40,11 @@ import java.util.Map; | ... | @@ -40,9 +40,11 @@ import java.util.Map; |
| 40 | import java.util.SortedMap; | 40 | import java.util.SortedMap; |
| 41 | import java.util.TreeMap; | 41 | import java.util.TreeMap; |
| 42 | import java.util.function.Predicate; | 42 | import java.util.function.Predicate; |
| 43 | +import java.util.stream.Collectors; | ||
| 43 | 44 | ||
| 44 | import static com.google.common.collect.Lists.newArrayList; | 45 | import static com.google.common.collect.Lists.newArrayList; |
| 45 | 46 | ||
| 47 | + | ||
| 46 | /** | 48 | /** |
| 47 | * Lists all currently-known flows. | 49 | * Lists all currently-known flows. |
| 48 | */ | 50 | */ |
| ... | @@ -78,6 +80,11 @@ public class FlowsListCommand extends AbstractShellCommand { | ... | @@ -78,6 +80,11 @@ public class FlowsListCommand extends AbstractShellCommand { |
| 78 | required = false, multiValued = false) | 80 | required = false, multiValued = false) |
| 79 | private boolean shortOutput = false; | 81 | private boolean shortOutput = false; |
| 80 | 82 | ||
| 83 | + @Option(name = "-n", aliases = "--no-core-flows", | ||
| 84 | + description = "Suppress core flows from output", | ||
| 85 | + required = false, multiValued = false) | ||
| 86 | + private boolean suppressCoreOutput = false; | ||
| 87 | + | ||
| 81 | @Option(name = "-c", aliases = "--count", | 88 | @Option(name = "-c", aliases = "--count", |
| 82 | description = "Print flow count only", | 89 | description = "Print flow count only", |
| 83 | required = false, multiValued = false) | 90 | required = false, multiValued = false) |
| ... | @@ -93,7 +100,7 @@ public class FlowsListCommand extends AbstractShellCommand { | ... | @@ -93,7 +100,7 @@ public class FlowsListCommand extends AbstractShellCommand { |
| 93 | 100 | ||
| 94 | compilePredicate(); | 101 | compilePredicate(); |
| 95 | 102 | ||
| 96 | - SortedMap<Device, List<FlowEntry>> flows = getSortedFlows(deviceService, service); | 103 | + SortedMap<Device, List<FlowEntry>> flows = getSortedFlows(deviceService, service, coreService); |
| 97 | 104 | ||
| 98 | if (outputJson()) { | 105 | if (outputJson()) { |
| 99 | print("%s", json(flows.keySet(), flows)); | 106 | print("%s", json(flows.keySet(), flows)); |
| ... | @@ -157,7 +164,7 @@ public class FlowsListCommand extends AbstractShellCommand { | ... | @@ -157,7 +164,7 @@ public class FlowsListCommand extends AbstractShellCommand { |
| 157 | * @return sorted device list | 164 | * @return sorted device list |
| 158 | */ | 165 | */ |
| 159 | protected SortedMap<Device, List<FlowEntry>> getSortedFlows(DeviceService deviceService, | 166 | protected SortedMap<Device, List<FlowEntry>> getSortedFlows(DeviceService deviceService, |
| 160 | - FlowRuleService service) { | 167 | + FlowRuleService service, CoreService coreService) { |
| 161 | SortedMap<Device, List<FlowEntry>> flows = new TreeMap<>(Comparators.ELEMENT_COMPARATOR); | 168 | SortedMap<Device, List<FlowEntry>> flows = new TreeMap<>(Comparators.ELEMENT_COMPARATOR); |
| 162 | List<FlowEntry> rules; | 169 | List<FlowEntry> rules; |
| 163 | 170 | ||
| ... | @@ -182,6 +189,13 @@ public class FlowsListCommand extends AbstractShellCommand { | ... | @@ -182,6 +189,13 @@ public class FlowsListCommand extends AbstractShellCommand { |
| 182 | } | 189 | } |
| 183 | } | 190 | } |
| 184 | rules.sort(Comparators.FLOW_RULE_COMPARATOR); | 191 | rules.sort(Comparators.FLOW_RULE_COMPARATOR); |
| 192 | + | ||
| 193 | + if (suppressCoreOutput) { | ||
| 194 | + short coreAppId = coreService.getAppId("org.onosproject.core").id(); | ||
| 195 | + rules = rules.stream() | ||
| 196 | + .filter(f -> f.appId() != coreAppId) | ||
| 197 | + .collect(Collectors.toList()); | ||
| 198 | + } | ||
| 185 | flows.put(d, rules); | 199 | flows.put(d, rules); |
| 186 | } | 200 | } |
| 187 | return flows; | 201 | return flows; | ... | ... |
-
Please register or login to post a comment