Repository: incubator-stratos Updated Branches: refs/heads/master c271ce8e8 -> 7b31ea568
Add persistance mapping option for CLI catrtidge subscription Project: http://git-wip-us.apache.org/repos/asf/incubator-stratos/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-stratos/commit/7b31ea56 Tree: http://git-wip-us.apache.org/repos/asf/incubator-stratos/tree/7b31ea56 Diff: http://git-wip-us.apache.org/repos/asf/incubator-stratos/diff/7b31ea56 Branch: refs/heads/master Commit: 7b31ea568088f9d663426112721db95af8997ddf Parents: c271ce8 Author: Manula Thantriwatte <[email protected]> Authored: Mon Feb 17 18:14:19 2014 +0530 Committer: Manula Thantriwatte <[email protected]> Committed: Mon Feb 17 18:14:19 2014 +0530 ---------------------------------------------------------------------- .../stratos/cli/RestCommandLineService.java | 6 +++++- .../cli/beans/cartridge/CartridgeInfoBean.java | 9 ++++++++ .../stratos/cli/commands/SubscribeCommand.java | 22 +++++++++++++++++++- .../apache/stratos/cli/utils/CliConstants.java | 3 +++ 4 files changed, 38 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/7b31ea56/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/RestCommandLineService.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/RestCommandLineService.java b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/RestCommandLineService.java index 51bcbe2..2812c26 100644 --- a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/RestCommandLineService.java +++ b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/RestCommandLineService.java @@ -709,7 +709,7 @@ public class RestCommandLineService { // This method does the cartridge subscription public void subscribe(String cartridgeType, String alias, String externalRepoURL, boolean privateRepo, String username, String password, String dataCartridgeType, String dataCartridgeAlias, String asPolicy, - String depPolicy, String size, boolean remoOnTermination) + String depPolicy, String size, boolean remoOnTermination, boolean persistanceMapping) throws CommandException { DefaultHttpClient httpClient = new DefaultHttpClient(); @@ -726,6 +726,7 @@ public class RestCommandLineService { cartridgeInfoBean.setDataCartridgeAlias(dataCartridgeAlias); cartridgeInfoBean.setSize(size); cartridgeInfoBean.setRemoveOnTermination(remoOnTermination); + cartridgeInfoBean.setPersistanceRequired(persistanceMapping); GsonBuilder gsonBuilder = new GsonBuilder(); Gson gson = gsonBuilder.create(); @@ -789,10 +790,13 @@ public class RestCommandLineService { cartridgeInfoBean.setDeploymentPolicy(depPolicy); cartridgeInfoBean.setSize(size); cartridgeInfoBean.setRemoveOnTermination(remoOnTermination); + cartridgeInfoBean.setPersistanceRequired(persistanceMapping); jsonSubscribeString = gson.toJson(cartridgeInfoBean, CartridgeInfoBean.class); completeJsonSubscribeString = "{\"cartridgeInfoBean\":" + jsonSubscribeString + "}"; + System.out.println(completeJsonSubscribeString); + HttpResponse response = restClientService.doPost(httpClient, restClientService.getUrl() + subscribCartridgeRestEndpoint, completeJsonSubscribeString, restClientService.getUsername(), restClientService.getPassword()); http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/7b31ea56/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/beans/cartridge/CartridgeInfoBean.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/beans/cartridge/CartridgeInfoBean.java b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/beans/cartridge/CartridgeInfoBean.java index 75f2784..66795e8 100644 --- a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/beans/cartridge/CartridgeInfoBean.java +++ b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/beans/cartridge/CartridgeInfoBean.java @@ -36,6 +36,7 @@ public class CartridgeInfoBean { boolean privateRepo; private boolean removeOnTermination; + private boolean persistanceRequired; public String getCartridgeType() { return cartridgeType; @@ -140,4 +141,12 @@ public class CartridgeInfoBean { public void setRemoveOnTermination(boolean removeOnTermination) { this.removeOnTermination = removeOnTermination; } + + public boolean isPersistanceRequired() { + return persistanceRequired; + } + + public void setPersistanceRequired(boolean persistanceRequired) { + this.persistanceRequired = persistanceRequired; + } } http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/7b31ea56/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/SubscribeCommand.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/SubscribeCommand.java b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/SubscribeCommand.java index 0812303..382a35c 100644 --- a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/SubscribeCommand.java +++ b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/SubscribeCommand.java @@ -75,6 +75,11 @@ public class SubscribeCommand implements Command<StratosCommandContext> { size.setArgName("volume-size"); options.addOption(size); + Option persistance = new Option(CliConstants.PERSISTANCE_MAPPING_OPTION, CliConstants.PERSISTANCE_MAPPING_LONG_OPTION, + true, "Persistance-mapping"); + persistance.setArgName("persistance-mapping"); + options.addOption(persistance); + Option connectOption = new Option(CliConstants.CONNECT_OPTION, CliConstants.CONNECT_LONG_OPTION, true, "Data cartridge type"); connectOption.setArgName("data cartridge type"); @@ -135,6 +140,7 @@ public class SubscribeCommand implements Command<StratosCommandContext> { boolean removeOnTermination = false; boolean privateRepo = false; + boolean persistanceMapping = false; final CommandLineParser parser = new GnuParser(); CommandLine commandLine; @@ -198,6 +204,13 @@ public class SubscribeCommand implements Command<StratosCommandContext> { } removeOnTermination = true; } + if (commandLine.hasOption(CliConstants.PERSISTANCE_MAPPING_OPTION)) { + if (logger.isTraceEnabled()) { + logger.trace("Persistance mapping option is passed"); + + } + persistanceMapping = true; + } if (commandLine.hasOption(CliConstants.USERNAME_OPTION)) { if (logger.isTraceEnabled()) { logger.trace("Username option is passed"); @@ -234,6 +247,12 @@ public class SubscribeCommand implements Command<StratosCommandContext> { context.getStratosApplication().printUsage(getName()); return CliConstants.BAD_ARGS_CODE; } + + if ( (! persistanceMapping) && ((size != null) || removeOnTermination)) { + System.out.println("You have to enable persistance mapping in cartridge subscription"); + context.getStratosApplication().printUsage(getName()); + return CliConstants.BAD_ARGS_CODE; + } if (StringUtils.isNotBlank(username) && StringUtils.isBlank(password)) { password = context.getApplication().getInput("GIT Repository Password", '*'); @@ -246,7 +265,8 @@ public class SubscribeCommand implements Command<StratosCommandContext> { } RestCommandLineService.getInstance().subscribe(type, alias, repoURL, privateRepo, username, - password, dataCartridgeType, dataCartridgeAlias, asPolicy, depPolicy, size, removeOnTermination); + password, dataCartridgeType, dataCartridgeAlias, asPolicy, depPolicy, size, removeOnTermination, + persistanceMapping); return CliConstants.SUCCESSFUL_CODE; http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/7b31ea56/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/utils/CliConstants.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/utils/CliConstants.java b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/utils/CliConstants.java index d8f2fd7..cca5a3f 100644 --- a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/utils/CliConstants.java +++ b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/utils/CliConstants.java @@ -219,6 +219,9 @@ public class CliConstants { public static final String VOLUME_SIZE_OPTION = "v"; public static final String VOLUME_SIZE_LONG_OPTION = "volume-size"; + public static final String PERSISTANCE_MAPPING_OPTION = "pm"; + public static final String PERSISTANCE_MAPPING_LONG_OPTION = "persistance-mapping"; + public static final String AUTOSCALING_POLICY_OPTION = "ap"; public static final String AUTOSCALING_POLICY_LONG_OPTION = "autoscaling-policy";
