diff options
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<>(); } |