Charles Chan
Committed by Gerrit Code Review

Implement groups CLI command autocompletion

Change-Id: I0bb9eff30c03a5d08f69280879ec2be869cb6539
/*
* Copyright 2016 Open Networking Laboratory
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.onosproject.cli.net;
import com.google.common.collect.Lists;
import org.onosproject.cli.AbstractChoicesCompleter;
import org.onosproject.net.group.Group;
import java.util.List;
/**
* Group status completer.
*/
public class GroupStatusCompleter extends AbstractChoicesCompleter {
@Override
protected List<String> choices() {
List<String> strings = Lists.newArrayList();
for (Group.GroupState groupState : Group.GroupState.values()) {
strings.add(groupState.toString());
}
strings.add(GroupsListCommand.ANY);
return strings;
}
}
......@@ -45,6 +45,8 @@ import static com.google.common.collect.Lists.newArrayList;
description = "Lists all groups in the system")
public class GroupsListCommand extends AbstractShellCommand {
public static final String ANY = "any";
private static final String FORMAT =
" id=0x%s, state=%s, type=%s, bytes=%s, packets=%s, appId=%s";
private static final String BUCKET_FORMAT =
......
......@@ -428,6 +428,11 @@
</command>
<command>
<action class="org.onosproject.cli.net.GroupsListCommand"/>
<completers>
<ref component-id="groupStatusCompleter"/>
<ref component-id="deviceIdCompleter"/>
<null/>
</completers>
</command>
<command>
......@@ -562,6 +567,7 @@
<bean id="hostIdCompleter" class="org.onosproject.cli.net.HostIdCompleter"/>
<bean id="intentKeyCompleter" class="org.onosproject.cli.net.IntentKeyCompleter"/>
<bean id="flowRuleStatusCompleter" class="org.onosproject.cli.net.FlowRuleStatusCompleter"/>
<bean id="groupStatusCompleter" class="org.onosproject.cli.net.GroupStatusCompleter" />
<bean id="connectPointCompleter" class="org.onosproject.cli.net.ConnectPointCompleter"/>
<bean id="nullCompleter" class="org.apache.karaf.shell.console.completer.NullCompleter"/>
<bean id="ethTypeCompleter" class="org.onosproject.cli.net.EthTypeCompleter"/>
......