Completer fixes for core ONOS CLI commands
Change-Id: Icedfc542ad93a2825b592f3deb6cd96d91779544
diff --git a/cli/src/main/java/org/onosproject/cli/cfg/ComponentConfigCommand.java b/cli/src/main/java/org/onosproject/cli/cfg/ComponentConfigCommand.java
index 546a637..6c69457 100644
--- a/cli/src/main/java/org/onosproject/cli/cfg/ComponentConfigCommand.java
+++ b/cli/src/main/java/org/onosproject/cli/cfg/ComponentConfigCommand.java
@@ -20,6 +20,7 @@
import org.apache.karaf.shell.api.action.Argument;
import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.Completion;
import org.apache.karaf.shell.api.action.lifecycle.Service;
import org.apache.karaf.shell.api.action.Option;
import org.onosproject.cfg.ComponentConfigService;
@@ -30,6 +31,8 @@
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ArrayNode;
import com.fasterxml.jackson.databind.node.ObjectNode;
+import org.onosproject.cli.app.ApplicationCommandCompleter;
+import org.onosproject.cli.app.ApplicationNameCompleter;
import static com.google.common.base.Strings.isNullOrEmpty;
@@ -56,14 +59,17 @@
@Argument(index = 0, name = "command",
description = "Command name (get|set|preset)",
required = false, multiValued = false)
+ @Completion(ApplicationCommandCompleter.class)
String command = null;
@Argument(index = 1, name = "component", description = "Component name",
required = false, multiValued = false)
+ @Completion(ApplicationNameCompleter.class)
String component = null;
@Argument(index = 2, name = "name", description = "Property name",
required = false, multiValued = false)
+ @Completion(ComponentPropertyNameCompleter.class)
String name = null;
@Argument(index = 3, name = "value", description = "Property value",
diff --git a/cli/src/main/java/org/onosproject/cli/cfg/ConfigKeyCompleter.java b/cli/src/main/java/org/onosproject/cli/cfg/ConfigKeyCompleter.java
index 55baaf6..74bcdc2 100644
--- a/cli/src/main/java/org/onosproject/cli/cfg/ConfigKeyCompleter.java
+++ b/cli/src/main/java/org/onosproject/cli/cfg/ConfigKeyCompleter.java
@@ -21,6 +21,7 @@
import java.util.Set;
import java.util.stream.Collectors;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
import org.onosproject.cli.AbstractChoicesCompleter;
import org.onosproject.cli.AbstractShellCommand;
import org.onosproject.net.config.Config;
@@ -35,6 +36,7 @@
* Assumes 2 argument before the one being completed is SubjectClassKey
* and argument right before the one being completed is SubjectKey.
*/
+@Service
public class ConfigKeyCompleter extends AbstractChoicesCompleter {
// FIXME ConfigKeyCompleter never gets called??
diff --git a/cli/src/main/java/org/onosproject/cli/cfg/NetworkConfigCommand.java b/cli/src/main/java/org/onosproject/cli/cfg/NetworkConfigCommand.java
index b155090..fad93ef 100644
--- a/cli/src/main/java/org/onosproject/cli/cfg/NetworkConfigCommand.java
+++ b/cli/src/main/java/org/onosproject/cli/cfg/NetworkConfigCommand.java
@@ -21,6 +21,7 @@
import com.fasterxml.jackson.databind.node.ObjectNode;
import org.apache.karaf.shell.api.action.Argument;
import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.Completion;
import org.apache.karaf.shell.api.action.lifecycle.Service;
import org.apache.karaf.shell.api.action.Option;
import org.onosproject.cli.AbstractShellCommand;
@@ -43,14 +44,17 @@
@Argument(index = 0, name = "subjectClassKey", description = "Subject class key",
required = false, multiValued = false)
+ @Completion(ComponentConfigCommandCompleter.class)
String subjectClassKey = null;
@Argument(index = 1, name = "subjectKey", description = "Subject key",
required = false, multiValued = false)
+ @Completion(ComponentNameCompleter.class)
String subjectKey = null;
@Argument(index = 2, name = "configKey", description = "Config key",
required = false, multiValued = false)
+ @Completion(ConfigKeyCompleter.class)
String configKey = null;
@Option(name = "--remove",