add option to remove netcfg from CLI
Change-Id: I476917eb69cc204f645d2b038bef8808e2eb4df4
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 52b8050..83bdac1 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.commands.Argument;
import org.apache.karaf.shell.commands.Command;
+import org.apache.karaf.shell.commands.Option;
import org.onosproject.cli.AbstractShellCommand;
import org.onosproject.net.config.Config;
import org.onosproject.net.config.NetworkConfigService;
@@ -50,6 +51,11 @@
required = false, multiValued = false)
String configKey = null;
+ @Option(name = "--remove",
+ description = "Remove specified configuration tree",
+ required = false)
+ private boolean remove = false;
+
private final ObjectMapper mapper = new ObjectMapper();
private NetworkConfigService service;
@@ -58,6 +64,9 @@
service = get(NetworkConfigService.class);
JsonNode root = mapper.createObjectNode();
if (isNullOrEmpty(subjectClassKey)) {
+ if (remove) {
+ service.removeConfig();
+ }
addAll((ObjectNode) root);
} else {
SubjectFactory subjectFactory = nullIsIllegal(service.getSubjectFactory(subjectClassKey),
@@ -67,8 +76,14 @@
} else {
Object s = subjectFactory.createSubject(subjectKey);
if (isNullOrEmpty(configKey)) {
+ if (remove) {
+ service.removeConfig(s);
+ }
addSubject((ObjectNode) root, s);
} else {
+ if (remove) {
+ service.removeConfig(subjectClassKey, s, configKey);
+ }
root = getSubjectConfig(getConfig(s, subjectClassKey, configKey));
}
}