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";
 

Reply via email to