Committed by
Gerrit Code Review
Print Port allocations
Change-Id: I590cdcef5d338294e6468e2c4bceb8fa2614b3ab
Showing
1 changed file
with
21 additions
and
4 deletions
... | @@ -20,7 +20,9 @@ import static org.onosproject.net.DeviceId.deviceId; | ... | @@ -20,7 +20,9 @@ import static org.onosproject.net.DeviceId.deviceId; |
20 | import java.util.Arrays; | 20 | import java.util.Arrays; |
21 | import java.util.Collections; | 21 | import java.util.Collections; |
22 | import java.util.HashSet; | 22 | import java.util.HashSet; |
23 | +import java.util.List; | ||
23 | import java.util.Set; | 24 | import java.util.Set; |
25 | +import java.util.stream.Collectors; | ||
24 | import java.util.stream.StreamSupport; | 26 | import java.util.stream.StreamSupport; |
25 | 27 | ||
26 | import com.google.common.base.Strings; | 28 | import com.google.common.base.Strings; |
... | @@ -53,13 +55,15 @@ import org.onosproject.net.resource.ResourceService; | ... | @@ -53,13 +55,15 @@ import org.onosproject.net.resource.ResourceService; |
53 | description = "Lists allocated resources") | 55 | description = "Lists allocated resources") |
54 | public class AllocationsCommand extends AbstractShellCommand { | 56 | public class AllocationsCommand extends AbstractShellCommand { |
55 | 57 | ||
56 | - @Option(name = "-t", aliases = "--type", description = "List of resource types", | 58 | + @Option(name = "-t", aliases = "--type", |
59 | + description = "resource types to include in the list", | ||
57 | required = false, multiValued = true) | 60 | required = false, multiValued = true) |
58 | String[] typeStrings = null; | 61 | String[] typeStrings = null; |
59 | 62 | ||
60 | Set<String> typesToPrint; | 63 | Set<String> typesToPrint; |
61 | 64 | ||
62 | - @Option(name = "-i", aliases = "--intentId", description = "Intent ID", | 65 | + @Option(name = "-i", aliases = "--intentId", |
66 | + description = "Intent ID to include in the list", | ||
63 | required = false, multiValued = true) | 67 | required = false, multiValued = true) |
64 | String[] intentStrings; | 68 | String[] intentStrings; |
65 | 69 | ||
... | @@ -129,7 +133,21 @@ public class AllocationsCommand extends AbstractShellCommand { | ... | @@ -129,7 +133,21 @@ public class AllocationsCommand extends AbstractShellCommand { |
129 | // print DeviceId when Port was directly specified. | 133 | // print DeviceId when Port was directly specified. |
130 | print("%s", did); | 134 | print("%s", did); |
131 | } | 135 | } |
132 | - print("%s%s", Strings.repeat(" ", level), asVerboseString(num)); | 136 | + |
137 | + DiscreteResourceId resourceId = Resources.discrete(did, num).id(); | ||
138 | + | ||
139 | + List<String> portConsumers = resourceService.getResourceAllocations(resourceId) | ||
140 | + .stream() | ||
141 | + .filter(this::isSubjectToPrint) | ||
142 | + .map(ResourceAllocation::consumerId) | ||
143 | + .map(AllocationsCommand::asVerboseString) | ||
144 | + .collect(Collectors.toList()); | ||
145 | + if (portConsumers.isEmpty()) { | ||
146 | + print("%s%s", Strings.repeat(" ", level), asVerboseString(num)); | ||
147 | + } else { | ||
148 | + print("%s%s allocated by %s", Strings.repeat(" ", level), asVerboseString(num), | ||
149 | + portConsumers); | ||
150 | + } | ||
133 | 151 | ||
134 | // FIXME: This workaround induces a lot of distributed store access. | 152 | // FIXME: This workaround induces a lot of distributed store access. |
135 | // ResourceService should have an API to get all allocations under a parent resource. | 153 | // ResourceService should have an API to get all allocations under a parent resource. |
... | @@ -141,7 +159,6 @@ public class AllocationsCommand extends AbstractShellCommand { | ... | @@ -141,7 +159,6 @@ public class AllocationsCommand extends AbstractShellCommand { |
141 | .add(TributarySlot.class) | 159 | .add(TributarySlot.class) |
142 | .build(); | 160 | .build(); |
143 | 161 | ||
144 | - DiscreteResourceId resourceId = Resources.discrete(did, num).id(); | ||
145 | for (Class<?> t : subResourceTypes) { | 162 | for (Class<?> t : subResourceTypes) { |
146 | resourceService.getResourceAllocations(resourceId, t).stream() | 163 | resourceService.getResourceAllocations(resourceId, t).stream() |
147 | .filter(a -> isSubjectToPrint(a)) | 164 | .filter(a -> isSubjectToPrint(a)) | ... | ... |
-
Please register or login to post a comment