use of org.onosproject.app.ApplicationState.ACTIVE in project onos by opennetworkinglab.
the class ApplicationNameCompleter method complete.
@Override
public int complete(Session session, CommandLine commandLine, List<String> candidates) {
// Delegate string completer
StringsCompleter delegate = new StringsCompleter();
// Command name is the second argument.
String cmd = commandLine.getArguments()[1];
// Fetch our service and feed it's offerings to the string completer
ApplicationService service = get(ApplicationService.class);
Iterator<Application> it = service.getApplications().iterator();
SortedSet<String> strings = delegate.getStrings();
while (it.hasNext()) {
Application app = it.next();
ApplicationState state = service.getState(app.id());
if ("uninstall".equals(cmd) || "download".equals(cmd) || ("activate".equals(cmd) && state == INSTALLED) || ("deactivate".equals(cmd) && state == ACTIVE)) {
strings.add(app.id().name());
}
}
// add unique suffix to candidates, if user has something in buffer
if (!Strings.isNullOrEmpty(commandLine.getCursorArgument())) {
List<String> suffixCandidates = strings.stream().map(full -> full.replaceFirst("org\\.onosproject\\.", "")).flatMap(appName -> {
List<String> suffixes = new ArrayList<>();
Deque<String> frags = new ArrayDeque<>();
// a.b.c -> [c, b, a] -> [c, b.c, a.b.c]
Lists.reverse(asList(appName.split("\\."))).forEach(frag -> {
frags.addFirst(frag);
suffixes.add(frags.stream().collect(Collectors.joining(".")));
});
return suffixes.stream();
}).collect(Collectors.groupingBy(e -> e, Collectors.counting())).entrySet().stream().filter(e -> e.getValue() == 1L).map(Entry::getKey).collect(Collectors.toList());
delegate.getStrings().addAll(suffixCandidates);
}
// Now let the completer do the work for figuring out what to offer.
return delegate.complete(session, commandLine, candidates);
}
use of org.onosproject.app.ApplicationState.ACTIVE in project onos by opennetworkinglab.
the class ApplicationsListCommand method doExecute.
@Override
protected void doExecute() {
ApplicationService service = get(ApplicationService.class);
List<Application> apps = newArrayList(service.getApplications());
if (sortByName) {
apps.sort(Comparator.comparing(app -> app.id().name()));
} else {
Collections.sort(apps, Comparators.APP_COMPARATOR);
}
if (outputJson()) {
print("%s", json(service, apps));
} else {
for (Application app : apps) {
boolean isActive = service.getState(app.id()) == ACTIVE;
if (activeOnly && isActive || !activeOnly) {
if (shortOnly) {
String shortDescription = app.title().equals(app.id().name()) ? app.description().replaceAll("[\\r\\n]", " ").replaceAll(" +", " ") : app.title();
print(SHORT_FMT, isActive ? "*" : " ", app.id().id(), app.id().name(), app.version(), shortDescription);
} else {
print(FMT, isActive ? "*" : " ", app.id().id(), app.id().name(), app.version(), app.origin(), app.category(), app.description(), app.features(), app.featuresRepo().map(URI::toString).orElse(""), app.requiredApps(), app.permissions(), app.url());
}
}
}
}
}
Aggregations