summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKanagaraj Manickam k00365106 <kanagaraj.manickam@huawei.com>2018-03-07 20:41:06 +0530
committerKanagaraj Manickam k00365106 <kanagaraj.manickam@huawei.com>2018-03-08 11:18:10 +0530
commitb766ec88e50cd7c6d8ca1cd02622625b8c27f5e1 (patch)
tree486cc8ed11f8a336722f080e25a0908ed8320cdd
parenta74a9b50f244f49a38ba36b2b59b3c8e23649949 (diff)
Add support for profile include exclude
Issue-ID: CLI-95 Change-Id: I454020229481e2893459f7b29bf815bc0c701bed Signed-off-by: Kanagaraj Manickam k00365106 <kanagaraj.manickam@huawei.com>
-rw-r--r--framework/src/main/java/org/onap/cli/fw/input/cache/OnapCommandParameterCache.java19
-rw-r--r--framework/src/main/java/org/onap/cli/fw/registrar/OnapCommandRegistrar.java10
-rw-r--r--framework/src/test/java/org/onap/cli/fw/registrar/OnapCommandRegistrarTest.java3
-rw-r--r--main/src/main/java/org/onap/cli/main/OnapCli.java5
4 files changed, 32 insertions, 5 deletions
diff --git a/framework/src/main/java/org/onap/cli/fw/input/cache/OnapCommandParameterCache.java b/framework/src/main/java/org/onap/cli/fw/input/cache/OnapCommandParameterCache.java
index ee6dbed3..5b00be19 100644
--- a/framework/src/main/java/org/onap/cli/fw/input/cache/OnapCommandParameterCache.java
+++ b/framework/src/main/java/org/onap/cli/fw/input/cache/OnapCommandParameterCache.java
@@ -58,6 +58,13 @@ public class OnapCommandParameterCache {
return single;
}
+ public void includeProfile(String profile) {
+ this.load(profile, true);
+ }
+
+ public void excludeProfile(String profile) {
+ this.load(profile, false);
+ }
public void add(String productVersion, String paramName, String paramValue) {
@@ -111,15 +118,23 @@ public class OnapCommandParameterCache {
}
private void load() {
+ this.load(this.profileName, true);
+ }
+
+ private void load(String profileName, boolean include) {
List<OnapCommandParamEntity> params= new ArrayList<>();
try {
- params = this.loadParamFromCache(this.profileName);
+ params = this.loadParamFromCache(profileName);
} catch (OnapCommandLoadProfileFailed e) {
throw new RuntimeException(e); // NOSONAR
}
for (OnapCommandParamEntity p : params) {
- this.add(p.getProduct(), p.getName(), p.getValue());
+ if (include) {
+ this.add(p.getProduct(), p.getName(), p.getValue());
+ } else {
+ this.remove(p.getProduct(), p.getName());
+ }
}
}
diff --git a/framework/src/main/java/org/onap/cli/fw/registrar/OnapCommandRegistrar.java b/framework/src/main/java/org/onap/cli/fw/registrar/OnapCommandRegistrar.java
index 8ba215e6..6564628d 100644
--- a/framework/src/main/java/org/onap/cli/fw/registrar/OnapCommandRegistrar.java
+++ b/framework/src/main/java/org/onap/cli/fw/registrar/OnapCommandRegistrar.java
@@ -90,8 +90,16 @@ public class OnapCommandRegistrar {
paramCache.remove(this.getEnabledProductVersion(), paramName);
}
- public void setProfile(String profileName) {
+ public void setProfile(String profileName, List<String> includes, List<String> excludes) {
this.paramCache.setProfile(profileName);
+
+ for (String profile: includes) {
+ this.paramCache.includeProfile(profile);
+ }
+
+ for (String profile: excludes) {
+ this.paramCache.excludeProfile(profile);
+ }
}
public List<String> getUserProfiles() {
diff --git a/framework/src/test/java/org/onap/cli/fw/registrar/OnapCommandRegistrarTest.java b/framework/src/test/java/org/onap/cli/fw/registrar/OnapCommandRegistrarTest.java
index 124b9564..d70c1521 100644
--- a/framework/src/test/java/org/onap/cli/fw/registrar/OnapCommandRegistrarTest.java
+++ b/framework/src/test/java/org/onap/cli/fw/registrar/OnapCommandRegistrarTest.java
@@ -23,6 +23,7 @@ import static org.junit.Assert.fail;
import java.io.File;
import java.net.URL;
+import java.util.ArrayList;
import org.junit.Before;
import org.junit.Test;
@@ -90,7 +91,7 @@ public class OnapCommandRegistrarTest {
@Test
public void testProfile() throws OnapCommandException {
try {
- OnapCommandRegistrar.getRegistrar().setProfile("test12312");
+ OnapCommandRegistrar.getRegistrar().setProfile("test234", new ArrayList<String>(), new ArrayList<String>());
OnapCommandRegistrar.getRegistrar().addParamCache("a", "b");
OnapCommandRegistrar.getRegistrar().getParamCache();
OnapCommandRegistrar.getRegistrar().removeParamCache("a");
diff --git a/main/src/main/java/org/onap/cli/main/OnapCli.java b/main/src/main/java/org/onap/cli/main/OnapCli.java
index ca3c365f..aa1f1e7a 100644
--- a/main/src/main/java/org/onap/cli/main/OnapCli.java
+++ b/main/src/main/java/org/onap/cli/main/OnapCli.java
@@ -142,7 +142,10 @@ public class OnapCli {
if ((args.size() == 2) && (this.getLongOption(OnapCliConstants.PARAM_PROFILE_LONG).equals(args.get(0))
|| this.getShortOption(OnapCliConstants.PARAM_PROFILE_SHORT).equals(args.get(0)))) {
- OnapCommandRegistrar.getRegistrar().setProfile(args.get(1));
+ OnapCommandRegistrar.getRegistrar().setProfile(
+ args.get(1),
+ new ArrayList<String>(),
+ new ArrayList<String>());
//Make space of interactive mode
this.args = new ArrayList<>();
}