You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by me...@apache.org on 2014/06/26 22:31:54 UTC
[6/7] initial grouping code to develop cartridge grouping feature
http://git-wip-us.apache.org/repos/asf/stratos/blob/67e868eb/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 10c9d9e..8299d0d 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
@@ -723,7 +723,7 @@ public class RestCommandLineService {
public void subscribe(String cartridgeType, String alias, String externalRepoURL, boolean privateRepo, String username,
String password,String asPolicy,
String depPolicy, String size, boolean remoOnTermination, boolean persistanceMapping,
- boolean enableCommits)
+ boolean enableCommits, String volumeId)
throws CommandException {
DefaultHttpClient httpClient = new DefaultHttpClient();
@@ -737,6 +737,7 @@ public class RestCommandLineService {
cartridgeInfoBean.setAutoscalePolicy(null);
cartridgeInfoBean.setDeploymentPolicy(null);
cartridgeInfoBean.setSize(size);
+
cartridgeInfoBean.setRemoveOnTermination(remoOnTermination);
cartridgeInfoBean.setPersistanceRequired(persistanceMapping);
cartridgeInfoBean.setCommitsEnabled(enableCommits);
@@ -759,6 +760,7 @@ public class RestCommandLineService {
cartridgeInfoBean.setRemoveOnTermination(remoOnTermination);
cartridgeInfoBean.setPersistanceRequired(persistanceMapping);
cartridgeInfoBean.setCommitsEnabled(enableCommits);
+ cartridgeInfoBean.setVolumeId(volumeId);
jsonSubscribeString = gson.toJson(cartridgeInfoBean, CartridgeInfoBean.class);
@@ -781,7 +783,7 @@ public class RestCommandLineService {
return;
}
- String subscriptionOutputJSON= subscriptionOutput.substring(20, subscriptionOutput.length() -1);
+ String subscriptionOutputJSON = subscriptionOutput.substring(20, subscriptionOutput.length() -1);
SubscriptionInfo subcriptionInfo = gson.fromJson(subscriptionOutputJSON, SubscriptionInfo.class);
System.out.format("You have successfully subscribed to %s cartridge with alias %s.%n", cartridgeType, alias);
http://git-wip-us.apache.org/repos/asf/stratos/blob/67e868eb/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/StratosApplication.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/StratosApplication.java b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/StratosApplication.java
index 8a888ee..7450d79 100644
--- a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/StratosApplication.java
+++ b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/StratosApplication.java
@@ -246,6 +246,8 @@ public class StratosApplication extends CommandLineApplication<StratosCommandCon
// Command action
String action = null;
+ // Command action options
+ Option[] actionOptions = null;
String usernameInput = null;
String passwordInput = null;
@@ -263,6 +265,7 @@ public class StratosApplication extends CommandLineApplication<StratosCommandCon
CommandLine commandLine;
try {
// Must add all options. Otherwise actions cannot be performed directly by command line.
+ // This is because the parser trips over unrecognised options.
Options allCommandOptions = new Options();
for (Command<StratosCommandContext> command : commands.values()) {
Options commandOptions = command.getOptions();
@@ -281,6 +284,7 @@ public class StratosApplication extends CommandLineApplication<StratosCommandCon
commandLine = parser.parse(allCommandOptions, args);
remainingArgs = commandLine.getArgs();
+ actionOptions = commandLine.getOptions();
if (remainingArgs != null && remainingArgs.length > 0) {
// Get command action
action = remainingArgs[0];
@@ -346,7 +350,7 @@ public class StratosApplication extends CommandLineApplication<StratosCommandCon
if (logger.isDebugEnabled()) {
logger.debug("Executing Action: {} {}", action, Arrays.asList(actionArgs));
}
- int returnCode = command.execute(context, actionArgs);
+ int returnCode = command.execute(context, actionArgs, actionOptions);
if (logger.isDebugEnabled()) {
logger.debug("Exiting with error code {} after executing action {}", returnCode, action);
}
@@ -443,7 +447,7 @@ public class StratosApplication extends CommandLineApplication<StratosCommandCon
return CliConstants.BAD_ARGS_CODE;
}
try {
- return command.execute(context, actionArgs);
+ return command.execute(context, actionArgs, new Option[0]);
} catch (CommandException e) {
if (logger.isErrorEnabled()) {
logger.error("Error executing command: " + action, e);
http://git-wip-us.apache.org/repos/asf/stratos/blob/67e868eb/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 58d6f66..9e23120 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
@@ -31,7 +31,7 @@ public class CartridgeInfoBean {
private String autoscalePolicy;
private String deploymentPolicy;
private String size;
-
+ private String volumeId;
boolean privateRepo;
private boolean removeOnTermination;
private boolean persistanceRequired;
@@ -140,6 +140,12 @@ public class CartridgeInfoBean {
public void setCommitsEnabled(boolean commitsEnabled) {
this.commitsEnabled = commitsEnabled;
}
-
-
+
+ public String getVolumeId() {
+ return volumeId;
+ }
+
+ public void setVolumeId(String volumeId) {
+ this.volumeId = volumeId;
+ }
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/67e868eb/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/ActivateTenantCommand.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/ActivateTenantCommand.java b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/ActivateTenantCommand.java
index 84acbc1..49054bb 100644
--- a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/ActivateTenantCommand.java
+++ b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/ActivateTenantCommand.java
@@ -18,6 +18,7 @@
*/
package org.apache.stratos.cli.commands;
+import org.apache.commons.cli.Option;
import org.apache.commons.cli.Options;
import org.apache.stratos.cli.Command;
import org.apache.stratos.cli.RestCommandLineService;
@@ -51,7 +52,7 @@ public class ActivateTenantCommand implements Command<StratosCommandContext> {
}
@Override
- public int execute(StratosCommandContext context, String[] args) throws CommandException {
+ public int execute(StratosCommandContext context, String[] args, Option[] already_parsed_opts) throws CommandException {
if (logger.isDebugEnabled()) {
logger.debug("Executing {} command...", getName());
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/67e868eb/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/AddDomainMappingCommand.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/AddDomainMappingCommand.java b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/AddDomainMappingCommand.java
index daafc61..bac6a3b 100644
--- a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/AddDomainMappingCommand.java
+++ b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/AddDomainMappingCommand.java
@@ -18,6 +18,7 @@
*/
package org.apache.stratos.cli.commands;
+import org.apache.commons.cli.Option;
import org.apache.commons.cli.Options;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
@@ -51,7 +52,7 @@ public class AddDomainMappingCommand implements Command<StratosCommandContext> {
}
@Override
- public int execute(StratosCommandContext context, String[] args) throws CommandException {
+ public int execute(StratosCommandContext context, String[] args, Option[] already_parsed_opts) throws CommandException {
if (logger.isDebugEnabled()) {
logger.debug("Executing {} command...", getName());
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/67e868eb/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/AddTenantCommand.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/AddTenantCommand.java b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/AddTenantCommand.java
index b185f7d..a025f45 100644
--- a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/AddTenantCommand.java
+++ b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/AddTenantCommand.java
@@ -29,6 +29,8 @@ import org.slf4j.LoggerFactory;
import org.apache.commons.cli.Options;
import org.apache.commons.cli.Option;
+import static org.apache.stratos.cli.utils.CommandLineUtils.mergeOptionArrays;
+
public class AddTenantCommand implements Command<StratosCommandContext> {
private static final Logger logger = LoggerFactory.getLogger(AddTenantCommand.class);
@@ -87,7 +89,7 @@ public class AddTenantCommand implements Command<StratosCommandContext> {
return null;
}
- public int execute(StratosCommandContext context, String[] args) throws CommandException {
+ public int execute(StratosCommandContext context, String[] args, Option[] already_parsed_opts) throws CommandException {
if (logger.isDebugEnabled()) {
logger.debug("Executing {} command...", getName());
}
@@ -105,46 +107,48 @@ public class AddTenantCommand implements Command<StratosCommandContext> {
try {
commandLine = parser.parse(options, args);
+ //merge newly discovered options with previously discovered ones.
+ Options opts = mergeOptionArrays(already_parsed_opts, commandLine.getOptions());
if (logger.isDebugEnabled()) {
logger.debug("Add tenant");
}
- if (commandLine.hasOption(CliConstants.USERNAME_OPTION)) {
+ if (opts.hasOption(CliConstants.USERNAME_OPTION)) {
if (logger.isTraceEnabled()) {
logger.trace("Username option is passed");
}
- admin = commandLine.getOptionValue(CliConstants.USERNAME_OPTION);
+ admin = opts.getOption(CliConstants.USERNAME_OPTION).getValue();
}
- if (commandLine.hasOption(CliConstants.FIRST_NAME_OPTION)) {
+ if (opts.hasOption(CliConstants.FIRST_NAME_OPTION)) {
if (logger.isTraceEnabled()) {
logger.trace("First name option is passed");
}
- firstName = commandLine.getOptionValue(CliConstants.FIRST_NAME_OPTION);
+ firstName = opts.getOption(CliConstants.FIRST_NAME_OPTION).getValue();
}
- if (commandLine.hasOption(CliConstants.LAST_NAME_OPTION)) {
+ if (opts.hasOption(CliConstants.LAST_NAME_OPTION)) {
if (logger.isTraceEnabled()) {
logger.trace("Last name option is passed");
}
- lastaName = commandLine.getOptionValue(CliConstants.LAST_NAME_OPTION);
+ lastaName = opts.getOption(CliConstants.LAST_NAME_OPTION).getValue();
}
- if (commandLine.hasOption(CliConstants.PASSWORD_OPTION)) {
+ if (opts.hasOption(CliConstants.PASSWORD_OPTION)) {
if (logger.isTraceEnabled()) {
logger.trace("Password option is passed");
}
- password = commandLine.getOptionValue(CliConstants.PASSWORD_OPTION);
+ password = opts.getOption(CliConstants.PASSWORD_OPTION).getValue();
}
- if (commandLine.hasOption(CliConstants.DOMAIN_NAME_OPTION)) {
+ if (opts.hasOption(CliConstants.DOMAIN_NAME_OPTION)) {
if (logger.isTraceEnabled()) {
logger.trace("Domain name option is passed");
}
- domain = commandLine.getOptionValue(CliConstants.DOMAIN_NAME_OPTION);
+ domain = opts.getOption(CliConstants.DOMAIN_NAME_OPTION).getValue();
}
- if (commandLine.hasOption(CliConstants.EMAIL_OPTION)) {
+ if (opts.hasOption(CliConstants.EMAIL_OPTION)) {
if (logger.isTraceEnabled()) {
logger.trace("Email option is passed");
}
- email = commandLine.getOptionValue(CliConstants.EMAIL_OPTION);
+ email = opts.getOption(CliConstants.EMAIL_OPTION).getValue();
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/67e868eb/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/AutoscalePolicyCommand.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/AutoscalePolicyCommand.java b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/AutoscalePolicyCommand.java
index 9c3b4ba..41c0cc1 100644
--- a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/AutoscalePolicyCommand.java
+++ b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/AutoscalePolicyCommand.java
@@ -18,6 +18,7 @@
*/
package org.apache.stratos.cli.commands;
+import org.apache.commons.cli.Option;
import org.apache.commons.cli.Options;
import org.apache.stratos.cli.Command;
import org.apache.stratos.cli.RestCommandLineService;
@@ -46,7 +47,7 @@ public class AutoscalePolicyCommand implements Command<StratosCommandContext> {
return null;
}
- public int execute(StratosCommandContext context, String[] args) throws CommandException {
+ public int execute(StratosCommandContext context, String[] args, Option[] already_parsed_opts) throws CommandException {
if (logger.isDebugEnabled()) {
logger.debug("Executing {} command...", getName());
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/67e868eb/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/AutoscalingPolicyDeploymentCommand.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/AutoscalingPolicyDeploymentCommand.java b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/AutoscalingPolicyDeploymentCommand.java
index ae44391..3dcefe7 100644
--- a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/AutoscalingPolicyDeploymentCommand.java
+++ b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/AutoscalingPolicyDeploymentCommand.java
@@ -30,6 +30,8 @@ import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
+import static org.apache.stratos.cli.utils.CommandLineUtils.mergeOptionArrays;
+
public class AutoscalingPolicyDeploymentCommand implements Command<StratosCommandContext> {
private static final Logger logger = LoggerFactory.getLogger(AutoscalingPolicyDeploymentCommand.class);
@@ -63,7 +65,7 @@ public class AutoscalingPolicyDeploymentCommand implements Command<StratosComman
return null;
}
- public int execute(StratosCommandContext context, String[] args) throws CommandException {
+ public int execute(StratosCommandContext context, String[] args, Option[] already_parsed_opts) throws CommandException {
if (logger.isDebugEnabled()) {
logger.debug("Executing {} command...", getName());
}
@@ -77,16 +79,18 @@ public class AutoscalingPolicyDeploymentCommand implements Command<StratosComman
try {
commandLine = parser.parse(options, args);
+ //merge newly discovered options with previously discovered ones.
+ Options opts = mergeOptionArrays(already_parsed_opts, commandLine.getOptions());
if (logger.isDebugEnabled()) {
logger.debug("Autoscaling policy deployment");
}
- if (commandLine.hasOption(CliConstants.RESOURCE_PATH)) {
+ if (opts.hasOption(CliConstants.RESOURCE_PATH)) {
if (logger.isTraceEnabled()) {
logger.trace("Resource path option is passed");
}
- resourcePath = commandLine.getOptionValue(CliConstants.RESOURCE_PATH);
+ resourcePath = opts.getOption(CliConstants.RESOURCE_PATH).getValue();
autoscalingPolicyDeployment = readResource(resourcePath);
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/67e868eb/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/CartridgeDeploymentCommand.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/CartridgeDeploymentCommand.java b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/CartridgeDeploymentCommand.java
index e60461c..474ddaf 100644
--- a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/CartridgeDeploymentCommand.java
+++ b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/CartridgeDeploymentCommand.java
@@ -30,6 +30,8 @@ import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
+import static org.apache.stratos.cli.utils.CommandLineUtils.mergeOptionArrays;
+
public class CartridgeDeploymentCommand implements Command<StratosCommandContext> {
private static final Logger logger = LoggerFactory.getLogger(CartridgeDeploymentCommand.class);
@@ -63,7 +65,7 @@ public class CartridgeDeploymentCommand implements Command<StratosCommandContext
return null;
}
- public int execute(StratosCommandContext context, String[] args) throws CommandException {
+ public int execute(StratosCommandContext context, String[] args, Option[] already_parsed_opts) throws CommandException {
if (logger.isDebugEnabled()) {
logger.debug("Executing {} command...", getName());
}
@@ -77,16 +79,18 @@ public class CartridgeDeploymentCommand implements Command<StratosCommandContext
try {
commandLine = parser.parse(options, args);
+ //merge newly discovered options with previously discovered ones.
+ Options opts = mergeOptionArrays(already_parsed_opts, commandLine.getOptions());
if (logger.isDebugEnabled()) {
logger.debug("Cartridge deployment");
}
- if (commandLine.hasOption(CliConstants.RESOURCE_PATH)) {
+ if (opts.hasOption(CliConstants.RESOURCE_PATH)) {
if (logger.isTraceEnabled()) {
logger.trace("Resource path option is passed");
}
- resourcePath = commandLine.getOptionValue(CliConstants.RESOURCE_PATH);
+ resourcePath = opts.getOption(CliConstants.RESOURCE_PATH).getValue();
cartridgeDeploymentJSON = readResource(resourcePath);
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/67e868eb/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/DeactivateTenantCommand.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/DeactivateTenantCommand.java b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/DeactivateTenantCommand.java
index 83adf1f..19c9ba8 100644
--- a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/DeactivateTenantCommand.java
+++ b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/DeactivateTenantCommand.java
@@ -18,6 +18,7 @@
*/
package org.apache.stratos.cli.commands;
+import org.apache.commons.cli.Option;
import org.apache.commons.cli.Options;
import org.apache.stratos.cli.Command;
import org.apache.stratos.cli.RestCommandLineService;
@@ -51,7 +52,7 @@ public class DeactivateTenantCommand implements Command<StratosCommandContext> {
}
@Override
- public int execute(StratosCommandContext context, String[] args) throws CommandException {
+ public int execute(StratosCommandContext context, String[] args, Option[] already_parsed_opts) throws CommandException {
if (logger.isDebugEnabled()) {
logger.debug("Executing {} command...", getName());
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/67e868eb/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/DeleteTenantCommand.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/DeleteTenantCommand.java b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/DeleteTenantCommand.java
index 50b4a85..5a5bc98 100644
--- a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/DeleteTenantCommand.java
+++ b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/DeleteTenantCommand.java
@@ -18,6 +18,7 @@
*/
package org.apache.stratos.cli.commands;
+import org.apache.commons.cli.Option;
import org.apache.commons.cli.Options;
import org.apache.stratos.cli.Command;
import org.apache.stratos.cli.RestCommandLineService;
@@ -51,7 +52,7 @@ public class DeleteTenantCommand implements Command<StratosCommandContext> {
}
@Override
- public int execute(StratosCommandContext context, String[] args) throws CommandException {
+ public int execute(StratosCommandContext context, String[] args, Option[] already_parsed_opts) throws CommandException {
if (logger.isDebugEnabled()) {
logger.debug("Executing {} command...", getName());
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/67e868eb/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/DeployServiceDeploymentCommand.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/DeployServiceDeploymentCommand.java b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/DeployServiceDeploymentCommand.java
index 95d9647..e62c9c7 100644
--- a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/DeployServiceDeploymentCommand.java
+++ b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/DeployServiceDeploymentCommand.java
@@ -31,6 +31,8 @@ import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
+import static org.apache.stratos.cli.utils.CommandLineUtils.mergeOptionArrays;
+
public class DeployServiceDeploymentCommand implements Command<StratosCommandContext> {
private static final Logger logger = LoggerFactory.getLogger(DeployServiceDeploymentCommand.class);
@@ -64,7 +66,7 @@ public class DeployServiceDeploymentCommand implements Command<StratosCommandCon
return null;
}
- public int execute(StratosCommandContext context, String[] args) throws CommandException {
+ public int execute(StratosCommandContext context, String[] args, Option[] already_parsed_opts) throws CommandException {
if (logger.isDebugEnabled()) {
logger.debug("Executing {} command...", getName());
}
@@ -78,16 +80,18 @@ public class DeployServiceDeploymentCommand implements Command<StratosCommandCon
try {
commandLine = parser.parse(options, args);
+ //merge newly discovered options with previously discovered ones.
+ Options opts = mergeOptionArrays(already_parsed_opts, commandLine.getOptions());
if (logger.isDebugEnabled()) {
logger.debug("Deploy Service Deployment");
}
- if (commandLine.hasOption(CliConstants.RESOURCE_PATH)) {
+ if (opts.hasOption(CliConstants.RESOURCE_PATH)) {
if (logger.isTraceEnabled()) {
logger.trace("Resource path option is passed");
}
- resourcePath = commandLine.getOptionValue(CliConstants.RESOURCE_PATH);
+ resourcePath = opts.getOption(CliConstants.RESOURCE_PATH).getValue();
deployServiceDeployment = readResource(resourcePath);
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/67e868eb/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/DeploymentPolicyCommand.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/DeploymentPolicyCommand.java b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/DeploymentPolicyCommand.java
index 1072029..a376ee4 100644
--- a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/DeploymentPolicyCommand.java
+++ b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/DeploymentPolicyCommand.java
@@ -18,6 +18,7 @@
*/
package org.apache.stratos.cli.commands;
+import org.apache.commons.cli.Option;
import org.apache.commons.cli.Options;
import org.apache.stratos.cli.Command;
import org.apache.stratos.cli.RestCommandLineService;
@@ -46,7 +47,7 @@ public class DeploymentPolicyCommand implements Command<StratosCommandContext> {
return null;
}
- public int execute(StratosCommandContext context, String[] args) throws CommandException {
+ public int execute(StratosCommandContext context, String[] args, Option[] already_parsed_opts) throws CommandException {
if (logger.isDebugEnabled()) {
logger.debug("Executing {} command...", getName());
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/67e868eb/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/DeploymentPolicyDeploymentCommand.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/DeploymentPolicyDeploymentCommand.java b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/DeploymentPolicyDeploymentCommand.java
index 75fe52a..0183436 100644
--- a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/DeploymentPolicyDeploymentCommand.java
+++ b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/DeploymentPolicyDeploymentCommand.java
@@ -30,6 +30,8 @@ import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
+import static org.apache.stratos.cli.utils.CommandLineUtils.mergeOptionArrays;
+
public class DeploymentPolicyDeploymentCommand implements Command<StratosCommandContext> {
private static final Logger logger = LoggerFactory.getLogger(DeploymentPolicyDeploymentCommand.class);
@@ -63,7 +65,7 @@ public class DeploymentPolicyDeploymentCommand implements Command<StratosCommand
return null;
}
- public int execute(StratosCommandContext context, String[] args) throws CommandException {
+ public int execute(StratosCommandContext context, String[] args, Option[] already_parsed_opts) throws CommandException {
if (logger.isDebugEnabled()) {
logger.debug("Executing {} command...", getName());
}
@@ -77,16 +79,18 @@ public class DeploymentPolicyDeploymentCommand implements Command<StratosCommand
try {
commandLine = parser.parse(options, args);
+ //merge newly discovered options with previously discovered ones.
+ Options opts = mergeOptionArrays(already_parsed_opts, commandLine.getOptions());
if (logger.isDebugEnabled()) {
logger.debug("Deployment policy deployment");
}
- if (commandLine.hasOption(CliConstants.RESOURCE_PATH)) {
+ if (opts.hasOption(CliConstants.RESOURCE_PATH)) {
if (logger.isTraceEnabled()) {
logger.trace("Resource path option is passed");
}
- resourcePath = commandLine.getOptionValue(CliConstants.RESOURCE_PATH);
+ resourcePath = opts.getOption(CliConstants.RESOURCE_PATH).getValue();
deploymentPolicyDeployment = readResource(resourcePath);
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/67e868eb/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/DescribeAutoScalingPolicyCommand.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/DescribeAutoScalingPolicyCommand.java b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/DescribeAutoScalingPolicyCommand.java
index 195b417..22173b3 100644
--- a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/DescribeAutoScalingPolicyCommand.java
+++ b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/DescribeAutoScalingPolicyCommand.java
@@ -51,7 +51,7 @@ public class DescribeAutoScalingPolicyCommand implements Command<StratosCommandC
}
@Override
- public int execute(StratosCommandContext context, String[] args) throws CommandException {
+ public int execute(StratosCommandContext context, String[] args, Option[] already_parsed_opts) throws CommandException {
if (logger.isDebugEnabled()) {
logger.debug("Executing {} command...", getName());
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/67e868eb/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/DescribeCartridgeCommand.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/DescribeCartridgeCommand.java b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/DescribeCartridgeCommand.java
index 3ae2b42..f6bbff5 100644
--- a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/DescribeCartridgeCommand.java
+++ b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/DescribeCartridgeCommand.java
@@ -51,7 +51,7 @@ public class DescribeCartridgeCommand implements Command<StratosCommandContext>
}
@Override
- public int execute(StratosCommandContext context, String[] args) throws CommandException {
+ public int execute(StratosCommandContext context, String[] args, Option[] already_parsed_opts) throws CommandException {
if (logger.isDebugEnabled()) {
logger.debug("Executing {} command...", getName());
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/67e868eb/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/DescribeDeploymentPolicyCommand.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/DescribeDeploymentPolicyCommand.java b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/DescribeDeploymentPolicyCommand.java
index ce31127..21c3370 100644
--- a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/DescribeDeploymentPolicyCommand.java
+++ b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/DescribeDeploymentPolicyCommand.java
@@ -51,7 +51,7 @@ public class DescribeDeploymentPolicyCommand implements Command<StratosCommandCo
}
@Override
- public int execute(StratosCommandContext context, String[] args) throws CommandException {
+ public int execute(StratosCommandContext context, String[] args, Option[] already_parsed_opts) throws CommandException {
if (logger.isDebugEnabled()) {
logger.debug("Executing {} command...", getName());
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/67e868eb/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/DescribePartitionCommand.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/DescribePartitionCommand.java b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/DescribePartitionCommand.java
index 950a957..ee79aec 100644
--- a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/DescribePartitionCommand.java
+++ b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/DescribePartitionCommand.java
@@ -18,6 +18,7 @@
*/
package org.apache.stratos.cli.commands;
+import org.apache.commons.cli.Option;
import org.apache.commons.cli.Options;
import org.apache.stratos.cli.Command;
import org.apache.stratos.cli.RestCommandLineService;
@@ -51,7 +52,7 @@ public class DescribePartitionCommand implements Command<StratosCommandContext>
}
@Override
- public int execute(StratosCommandContext context, String[] args) throws CommandException {
+ public int execute(StratosCommandContext context, String[] args, Option[] already_parsed_opts) throws CommandException {
if (logger.isDebugEnabled()) {
logger.debug("Executing {} command...", getName());
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/67e868eb/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/ExitCommand.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/ExitCommand.java b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/ExitCommand.java
index 1dbd7d4..65e91e5 100644
--- a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/ExitCommand.java
+++ b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/ExitCommand.java
@@ -18,6 +18,7 @@
*/
package org.apache.stratos.cli.commands;
+import org.apache.commons.cli.Option;
import org.apache.commons.cli.Options;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -26,11 +27,6 @@ import org.apache.stratos.cli.StratosCommandContext;
import org.apache.stratos.cli.exception.CommandException;
import org.apache.stratos.cli.utils.CliConstants;
-import java.io.File;
-
-import static org.apache.stratos.cli.utils.CliConstants.STRATOS_DIR;
-import static org.apache.stratos.cli.utils.CliConstants.STRATOS_HISTORY_DIR;
-
public class ExitCommand implements Command<StratosCommandContext> {
private static final Logger logger = LoggerFactory.getLogger(ExitCommand.class);
@@ -54,7 +50,7 @@ public class ExitCommand implements Command<StratosCommandContext> {
}
@Override
- public int execute(StratosCommandContext context, String[] args) throws CommandException {
+ public int execute(StratosCommandContext context, String[] args, Option[] already_parsed_opts) throws CommandException {
// Nothing to execute here. This is a special command.
if (logger.isDebugEnabled()) {
logger.debug("Executing {} command...", getName());
http://git-wip-us.apache.org/repos/asf/stratos/blob/67e868eb/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/HelpCommand.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/HelpCommand.java b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/HelpCommand.java
index 0593b4e..17e135d 100644
--- a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/HelpCommand.java
+++ b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/HelpCommand.java
@@ -18,6 +18,7 @@
*/
package org.apache.stratos.cli.commands;
+import org.apache.commons.cli.Option;
import org.apache.commons.cli.Options;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -49,7 +50,7 @@ public class HelpCommand implements Command<StratosCommandContext> {
}
@Override
- public int execute(StratosCommandContext context, String[] args) throws CommandException {
+ public int execute(StratosCommandContext context, String[] args, Option[] already_parsed_opts) throws CommandException {
if (logger.isDebugEnabled()) {
logger.debug("Executing {} command...", getName());
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/67e868eb/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/InfoCommand.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/InfoCommand.java b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/InfoCommand.java
index d3c071a..07cbfa4 100644
--- a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/InfoCommand.java
+++ b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/InfoCommand.java
@@ -18,6 +18,7 @@
*/
package org.apache.stratos.cli.commands;
+import org.apache.commons.cli.Option;
import org.apache.commons.cli.Options;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -50,7 +51,7 @@ public class InfoCommand implements Command<StratosCommandContext> {
}
@Override
- public int execute(StratosCommandContext context, String[] args) throws CommandException {
+ public int execute(StratosCommandContext context, String[] args, Option[] already_parsed_opts) throws CommandException {
if (logger.isDebugEnabled()) {
logger.debug("Executing {} command...", getName());
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/67e868eb/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/ListAllTenants.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/ListAllTenants.java b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/ListAllTenants.java
index f9f7e09..9a00357 100644
--- a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/ListAllTenants.java
+++ b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/ListAllTenants.java
@@ -18,6 +18,7 @@
*/
package org.apache.stratos.cli.commands;
+import org.apache.commons.cli.Option;
import org.apache.commons.cli.Options;
import org.apache.stratos.cli.Command;
import org.apache.stratos.cli.RestCommandLineService;
@@ -46,7 +47,7 @@ public class ListAllTenants implements Command<StratosCommandContext> {
return null;
}
- public int execute(StratosCommandContext context, String[] args) throws CommandException {
+ public int execute(StratosCommandContext context, String[] args, Option[] already_parsed_opts) throws CommandException {
if (logger.isDebugEnabled()) {
logger.debug("Executing {} command...", getName());
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/67e868eb/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/ListCartridgesCommand.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/ListCartridgesCommand.java b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/ListCartridgesCommand.java
index 3874d41..412bfa6 100644
--- a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/ListCartridgesCommand.java
+++ b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/ListCartridgesCommand.java
@@ -18,6 +18,7 @@
*/
package org.apache.stratos.cli.commands;
+import org.apache.commons.cli.Option;
import org.apache.commons.cli.Options;
import org.apache.stratos.cli.RestCommandLineService;
import org.slf4j.Logger;
@@ -46,7 +47,7 @@ public class ListCartridgesCommand implements Command<StratosCommandContext> {
return null;
}
- public int execute(StratosCommandContext context, String[] args) throws CommandException {
+ public int execute(StratosCommandContext context, String[] args, Option[] already_parsed_opts) throws CommandException {
if (logger.isDebugEnabled()) {
logger.debug("Executing {} command...", getName());
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/67e868eb/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/ListDeployServiceCommand.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/ListDeployServiceCommand.java b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/ListDeployServiceCommand.java
index 7580c56..af97c22 100644
--- a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/ListDeployServiceCommand.java
+++ b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/ListDeployServiceCommand.java
@@ -18,6 +18,7 @@
*/
package org.apache.stratos.cli.commands;
+import org.apache.commons.cli.Option;
import org.apache.commons.cli.Options;
import org.apache.stratos.cli.Command;
import org.apache.stratos.cli.RestCommandLineService;
@@ -46,7 +47,7 @@ public class ListDeployServiceCommand implements Command<StratosCommandContext>
return null;
}
- public int execute(StratosCommandContext context, String[] args) throws CommandException {
+ public int execute(StratosCommandContext context, String[] args, Option[] already_parsed_opts) throws CommandException {
if (logger.isDebugEnabled()) {
logger.debug("Executing {} command...", getName());
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/67e868eb/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/ListMemberCommand.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/ListMemberCommand.java b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/ListMemberCommand.java
index 4ce5ac7..28cbf48 100644
--- a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/ListMemberCommand.java
+++ b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/ListMemberCommand.java
@@ -27,6 +27,8 @@ import org.apache.stratos.cli.utils.CliConstants;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import static org.apache.stratos.cli.utils.CommandLineUtils.mergeOptionArrays;
+
public class ListMemberCommand implements Command<StratosCommandContext> {
private static final Logger logger = LoggerFactory.getLogger(ListMemberCommand.class);
@@ -78,7 +80,7 @@ public class ListMemberCommand implements Command<StratosCommandContext> {
}
@Override
- public int execute(StratosCommandContext context, String[] args) throws CommandException {
+ public int execute(StratosCommandContext context, String[] args, Option[] already_parsed_opts) throws CommandException {
if (logger.isDebugEnabled()) {
logger.debug("Executing {} command...", getName());
}
@@ -90,21 +92,23 @@ public class ListMemberCommand implements Command<StratosCommandContext> {
CommandLine commandLine;
try {
commandLine = parser.parse(options, args);
+ //merge newly discovered options with previously discovered ones.
+ Options opts = mergeOptionArrays(already_parsed_opts, commandLine.getOptions());
if (logger.isDebugEnabled()) {
logger.debug("Subscribing to {} cartridge with alias {}", type, alias);
}
- if (commandLine.hasOption(CliConstants.CARTRIDGE_TYPE_OPTION)) {
+ if (opts.hasOption(CliConstants.CARTRIDGE_TYPE_OPTION)) {
if (logger.isTraceEnabled()) {
logger.trace("Autoscaling policy option is passed");
}
- type = commandLine.getOptionValue(CliConstants.CARTRIDGE_TYPE_OPTION);
+ type = opts.getOption(CliConstants.CARTRIDGE_TYPE_OPTION).getValue();
}
- if (commandLine.hasOption(CliConstants.ALIAS_OPTION)) {
+ if (opts.hasOption(CliConstants.ALIAS_OPTION)) {
if (logger.isTraceEnabled()) {
logger.trace("Deployment policy option is passed");
}
- alias = commandLine.getOptionValue(CliConstants.ALIAS_OPTION);
+ alias = opts.getOption(CliConstants.ALIAS_OPTION).getValue();
}
if (type == null) {
http://git-wip-us.apache.org/repos/asf/stratos/blob/67e868eb/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/ListSubscribedCartridgesCommand.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/ListSubscribedCartridgesCommand.java b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/ListSubscribedCartridgesCommand.java
index 080a72c..57adcce 100644
--- a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/ListSubscribedCartridgesCommand.java
+++ b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/ListSubscribedCartridgesCommand.java
@@ -32,6 +32,8 @@ import org.apache.stratos.cli.StratosCommandContext;
import org.apache.stratos.cli.exception.CommandException;
import org.apache.stratos.cli.utils.CliConstants;
+import static org.apache.stratos.cli.utils.CommandLineUtils.mergeOptionArrays;
+
public class ListSubscribedCartridgesCommand implements Command<StratosCommandContext> {
private static final Logger logger = LoggerFactory.getLogger(ListSubscribedCartridgesCommand.class);
@@ -67,7 +69,7 @@ public class ListSubscribedCartridgesCommand implements Command<StratosCommandCo
return null;
}
- public int execute(StratosCommandContext context, String[] args) throws CommandException {
+ public int execute(StratosCommandContext context, String[] args, Option[] already_parsed_opts) throws CommandException {
if (logger.isDebugEnabled()) {
logger.debug("Executing {} command...", getName());
}
@@ -83,12 +85,15 @@ public class ListSubscribedCartridgesCommand implements Command<StratosCommandCo
try {
commandLine = parser.parse(options, args);
remainingArgs = commandLine.getArgs();
+ //merge newly discovered options with previously discovered ones.
+ Options opts = mergeOptionArrays(already_parsed_opts, commandLine.getOptions());
+
if (!(remainingArgs == null || remainingArgs.length == 0)) {
context.getStratosApplication().printUsage(getName());
return CliConstants.BAD_ARGS_CODE;
}
- if (commandLine.hasOption(CliConstants.FULL_OPTION)) {
+ if (opts.hasOption(CliConstants.FULL_OPTION)) {
if (logger.isTraceEnabled()) {
logger.trace("Full option is passed");
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/67e868eb/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/PartitionCommand.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/PartitionCommand.java b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/PartitionCommand.java
index 4e5f4a8..ad856e2 100644
--- a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/PartitionCommand.java
+++ b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/PartitionCommand.java
@@ -46,7 +46,7 @@ public class PartitionCommand implements Command<StratosCommandContext> {
return null;
}
- public int execute(StratosCommandContext context, String[] args) throws CommandException {
+ public int execute(StratosCommandContext context, String[] args, Option[] already_parsed_opts) throws CommandException {
if (logger.isDebugEnabled()) {
logger.debug("Executing {} command...", getName());
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/67e868eb/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/PartitionDeploymentCommand.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/PartitionDeploymentCommand.java b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/PartitionDeploymentCommand.java
index b1e5989..b973536 100644
--- a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/PartitionDeploymentCommand.java
+++ b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/PartitionDeploymentCommand.java
@@ -30,6 +30,8 @@ import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
+import static org.apache.stratos.cli.utils.CommandLineUtils.mergeOptionArrays;
+
public class PartitionDeploymentCommand implements Command<StratosCommandContext> {
private static final Logger logger = LoggerFactory.getLogger(PartitionDeploymentCommand.class);
@@ -63,7 +65,7 @@ public class PartitionDeploymentCommand implements Command<StratosCommandContext
return null;
}
- public int execute(StratosCommandContext context, String[] args) throws CommandException {
+ public int execute(StratosCommandContext context, String[] args, Option[] already_parsed_opts) throws CommandException {
if (logger.isDebugEnabled()) {
logger.debug("Executing {} command...", getName());
}
@@ -77,16 +79,18 @@ public class PartitionDeploymentCommand implements Command<StratosCommandContext
try {
commandLine = parser.parse(options, args);
+ //merge newly discovered options with previously discovered ones.
+ Options opts = mergeOptionArrays(already_parsed_opts, commandLine.getOptions());
if (logger.isDebugEnabled()) {
logger.debug("Partition deployment");
}
- if (commandLine.hasOption(CliConstants.RESOURCE_PATH)) {
+ if (opts.hasOption(CliConstants.RESOURCE_PATH)) {
if (logger.isTraceEnabled()) {
logger.trace("Resource path option is passed");
}
- resourcePath = commandLine.getOptionValue(CliConstants.RESOURCE_PATH);
+ resourcePath = opts.getOption(CliConstants.RESOURCE_PATH).getValue();
partionDeployment = readResource(resourcePath);
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/67e868eb/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/PoliciesCommand.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/PoliciesCommand.java b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/PoliciesCommand.java
index b63f400..305440e 100644
--- a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/PoliciesCommand.java
+++ b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/PoliciesCommand.java
@@ -18,6 +18,7 @@
*/
package org.apache.stratos.cli.commands;
+import org.apache.commons.cli.Option;
import org.apache.commons.cli.Options;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -50,7 +51,7 @@ public class PoliciesCommand implements Command<StratosCommandContext> {
}
@Override
- public int execute(StratosCommandContext context, String[] args) throws CommandException {
+ public int execute(StratosCommandContext context, String[] args, Option[] already_parsed_opts) throws CommandException {
if (logger.isDebugEnabled()) {
logger.debug("Executing {} command...", getName());
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/67e868eb/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/RemoveDomainMappingCommand.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/RemoveDomainMappingCommand.java b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/RemoveDomainMappingCommand.java
index 06e6b11..74aed7d 100644
--- a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/RemoveDomainMappingCommand.java
+++ b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/RemoveDomainMappingCommand.java
@@ -18,6 +18,7 @@
*/
package org.apache.stratos.cli.commands;
+import org.apache.commons.cli.Option;
import org.apache.stratos.cli.Command;
import org.apache.stratos.cli.CommandLineService;
import org.apache.stratos.cli.StratosCommandContext;
@@ -50,7 +51,7 @@ public class RemoveDomainMappingCommand implements Command<StratosCommandContext
}
@Override
- public int execute(StratosCommandContext context, String[] args) throws CommandException {
+ public int execute(StratosCommandContext context, String[] args, Option[] already_parsed_opts) throws CommandException {
if (logger.isDebugEnabled()) {
logger.debug("Executing {} command...", getName());
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/67e868eb/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 6479a06..6232893 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
@@ -33,6 +33,8 @@ import org.apache.stratos.cli.StratosCommandContext;
import org.apache.stratos.cli.exception.CommandException;
import org.apache.stratos.cli.utils.CliConstants;
+import static org.apache.stratos.cli.utils.CommandLineUtils.mergeOptionArrays;
+
public class SubscribeCommand implements Command<StratosCommandContext> {
private static final Logger logger = LoggerFactory.getLogger(ListSubscribedCartridgesCommand.class);
@@ -75,6 +77,10 @@ public class SubscribeCommand implements Command<StratosCommandContext> {
size.setArgName("volume-size");
options.addOption(size);
+ Option volumeId = new Option(CliConstants.VOLUME_ID_OPTION, CliConstants.VOLUME_ID_LONG_OPTION, true, "Volume-id");
+ volumeId.setArgName("volume-id");
+ options.addOption(volumeId);
+
Option persistance = new Option(CliConstants.PERSISTANCE_VOLUME_OPTION, CliConstants.PERSISTANCE_VOLUME_LONG_OPTION,
true, "Persistance-volume");
persistance.setArgName("persistance-volume");
@@ -120,7 +126,7 @@ public class SubscribeCommand implements Command<StratosCommandContext> {
return "[Cartridge type] [Cartridge alias]";
}
- public int execute(StratosCommandContext context, String[] args) throws CommandException {
+ public int execute(StratosCommandContext context, String[] args, Option[] already_parsed_opts) throws CommandException {
if (logger.isDebugEnabled()) {
logger.debug("Executing {} command...", getName());
}
@@ -133,6 +139,7 @@ public class SubscribeCommand implements Command<StratosCommandContext> {
String depPolicy = null;
String repoURL = null, username = "", password = "";
String size = null;
+ String volumeID = null;
boolean removeOnTermination = false;
boolean privateRepo = false;
@@ -144,6 +151,8 @@ public class SubscribeCommand implements Command<StratosCommandContext> {
try {
commandLine = parser.parse(options, args);
remainingArgs = commandLine.getArgs();
+ //merge newly discovered options with previously discovered ones.
+ Options opts = mergeOptionArrays(already_parsed_opts, commandLine.getOptions());
if (remainingArgs != null && remainingArgs.length == 2) {
// Get type
type = remainingArgs[0];
@@ -157,70 +166,80 @@ public class SubscribeCommand implements Command<StratosCommandContext> {
logger.debug("Subscribing to {} cartridge with alias {}", type, alias);
}
- //if (commandLine.hasOption(CliConstants.POLICY_OPTION)) {
+ //if (opts.hasOption(CliConstants.POLICY_OPTION)) {
// if (logger.isTraceEnabled()) {
// logger.trace("Policy option is passed");
// }
- // policy = commandLine.getOptionValue(CliConstants.POLICY_OPTION);
+ // policy = opts.getOptionValue(CliConstants.POLICY_OPTION);
//}
- if (commandLine.hasOption(CliConstants.AUTOSCALING_POLICY_OPTION)) {
+ if (opts.hasOption(CliConstants.AUTOSCALING_POLICY_OPTION)) {
if (logger.isTraceEnabled()) {
logger.trace("Autoscaling policy option is passed");
}
- asPolicy = commandLine.getOptionValue(CliConstants.AUTOSCALING_POLICY_OPTION);
+ asPolicy = opts.getOption(CliConstants.AUTOSCALING_POLICY_OPTION).getValue();
}
- if (commandLine.hasOption(CliConstants.DEPLOYMENT_POLICY_OPTION)) {
+ if (opts.hasOption(CliConstants.DEPLOYMENT_POLICY_OPTION)) {
if (logger.isTraceEnabled()) {
logger.trace("Deployment policy option is passed");
}
- depPolicy = commandLine.getOptionValue(CliConstants.DEPLOYMENT_POLICY_OPTION);
+ depPolicy = opts.getOption(CliConstants.DEPLOYMENT_POLICY_OPTION).getValue();
}
- if (commandLine.hasOption(CliConstants.REPO_URL_OPTION)) {
+ if (opts.hasOption(CliConstants.REPO_URL_OPTION)) {
if (logger.isTraceEnabled()) {
logger.trace("RepoURL option is passed");
}
- repoURL = commandLine.getOptionValue(CliConstants.REPO_URL_OPTION);
+ repoURL = opts.getOption(CliConstants.REPO_URL_OPTION).getValue();
}
- //if (commandLine.hasOption(CliConstants.PRIVATE_REPO_OPTION)) {
+ //if (opts.hasOption(CliConstants.PRIVATE_REPO_OPTION)) {
// if (logger.isTraceEnabled()) {
// logger.trace("privateRepo option is passed");
// }
// privateRepo = true;
//}
- if (commandLine.hasOption(CliConstants.VOLUME_SIZE_OPTION)) {
+ if (opts.hasOption(CliConstants.VOLUME_SIZE_OPTION)) {
if (logger.isTraceEnabled()) {
logger.trace("Volume size option is passed");
}
- size = commandLine.getOptionValue(CliConstants.VOLUME_SIZE_OPTION);
+ size = opts.getOption(CliConstants.VOLUME_SIZE_OPTION).getValue();
}
- if (commandLine.hasOption(CliConstants.REMOVE_ON_TERMINATION_OPTION)) {
+
+ if (opts.hasOption(CliConstants.VOLUME_ID_OPTION)) {
+ if (logger.isTraceEnabled()) {
+ logger.trace("Volume id option is passed");
+
+ }
+ volumeID = opts.getOption(CliConstants.VOLUME_ID_OPTION).getValue();
+ }
+
+
+ if (opts.hasOption(CliConstants.REMOVE_ON_TERMINATION_OPTION)) {
if (logger.isTraceEnabled()) {
logger.trace("Remove on termination option is passed");
}
removeOnTermination = true;
}
- if (commandLine.hasOption(CliConstants.PERSISTANCE_VOLUME_OPTION)) {
+ if (opts.hasOption(CliConstants.PERSISTANCE_VOLUME_OPTION)) {
if (logger.isTraceEnabled()) {
logger.trace("Persistance volume option is passed");
}
persistanceMapping = true;
}
- if (commandLine.hasOption(CliConstants.USERNAME_OPTION)) {
+ if (opts.hasOption(CliConstants.USERNAME_OPTION)) {
if (logger.isTraceEnabled()) {
logger.trace("Username option is passed");
}
- username = commandLine.getOptionValue(CliConstants.USERNAME_OPTION);
+ username = opts.getOption(CliConstants.USERNAME_OPTION).getValue();
}
- if (commandLine.hasOption(CliConstants.PASSWORD_OPTION)) {
+ if (opts.hasOption(CliConstants.PASSWORD_OPTION)) {
if (logger.isTraceEnabled()) {
logger.trace("Password option is passed");
}
- password = commandLine.getOptionValue(CliConstants.PASSWORD_OPTION);
+ password = opts.getOption(CliConstants.PASSWORD_OPTION).getValue();
}
- if (commandLine.hasOption(CliConstants.ENABLE_COMMITS_OPTION)) {
+ if (opts.hasOption(CliConstants.ENABLE_COMMITS_OPTION)) {
if (logger.isTraceEnabled()) {
logger.trace("Upstream git commits are enabled");
}
@@ -251,7 +270,7 @@ public class SubscribeCommand implements Command<StratosCommandContext> {
RestCommandLineService.getInstance().subscribe(type, alias, repoURL, privateRepo, username,
password, asPolicy, depPolicy, size, removeOnTermination,
- persistanceMapping, commitsEnabled);
+ persistanceMapping, commitsEnabled, volumeID);
return CliConstants.SUCCESSFUL_CODE;
http://git-wip-us.apache.org/repos/asf/stratos/blob/67e868eb/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/SubscribedCartridgeInfoCommand.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/SubscribedCartridgeInfoCommand.java b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/SubscribedCartridgeInfoCommand.java
index cc002a3..2762b25 100644
--- a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/SubscribedCartridgeInfoCommand.java
+++ b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/SubscribedCartridgeInfoCommand.java
@@ -18,12 +18,8 @@
*/
package org.apache.stratos.cli.commands;
-import org.apache.commons.cli.CommandLine;
-import org.apache.commons.cli.CommandLineParser;
-import org.apache.commons.cli.GnuParser;
import org.apache.commons.cli.Option;
import org.apache.commons.cli.Options;
-import org.apache.commons.cli.ParseException;
import org.apache.commons.lang3.StringUtils;
import org.apache.stratos.cli.Command;
import org.apache.stratos.cli.RestCommandLineService;
@@ -76,7 +72,7 @@ public class SubscribedCartridgeInfoCommand implements Command<StratosCommandCon
}
@Override
- public int execute(StratosCommandContext context, String[] args) throws CommandException {
+ public int execute(StratosCommandContext context, String[] args, Option[] already_parsed_opts) throws CommandException {
if (logger.isDebugEnabled()) {
logger.debug("Executing {} command...", getName());
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/67e868eb/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/SyncCommand.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/SyncCommand.java b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/SyncCommand.java
index f866813..29c146f 100644
--- a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/SyncCommand.java
+++ b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/SyncCommand.java
@@ -18,6 +18,7 @@
*/
package org.apache.stratos.cli.commands;
+import org.apache.commons.cli.Option;
import org.apache.commons.cli.Options;
import org.apache.stratos.cli.Command;
import org.apache.stratos.cli.RestCommandLineService;
@@ -50,7 +51,7 @@ public class SyncCommand implements Command<StratosCommandContext> {
}
@Override
- public int execute(StratosCommandContext context, String[] args) throws CommandException {
+ public int execute(StratosCommandContext context, String[] args, Option[] already_parsed_opts) throws CommandException {
if (logger.isDebugEnabled()) {
logger.debug("Executing {} command...", getName());
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/67e868eb/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/UndeployCartridgeDefinitionCommand.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/UndeployCartridgeDefinitionCommand.java b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/UndeployCartridgeDefinitionCommand.java
index 52f2a9a..e69880b 100644
--- a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/UndeployCartridgeDefinitionCommand.java
+++ b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/UndeployCartridgeDefinitionCommand.java
@@ -18,6 +18,7 @@
*/
package org.apache.stratos.cli.commands;
+import org.apache.commons.cli.Option;
import org.apache.commons.cli.Options;
import org.apache.stratos.cli.Command;
import org.apache.stratos.cli.RestCommandLineService;
@@ -51,7 +52,7 @@ public class UndeployCartridgeDefinitionCommand implements Command<StratosComman
}
@Override
- public int execute(StratosCommandContext context, String[] args) throws CommandException {
+ public int execute(StratosCommandContext context, String[] args, Option[] already_parsed_opts) throws CommandException {
if (logger.isDebugEnabled()) {
logger.debug("Executing {} command...", getName());
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/67e868eb/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/UndeployServiceDefinitionCommand.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/UndeployServiceDefinitionCommand.java b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/UndeployServiceDefinitionCommand.java
index c830052..7c05a8f 100644
--- a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/UndeployServiceDefinitionCommand.java
+++ b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/UndeployServiceDefinitionCommand.java
@@ -18,6 +18,7 @@
*/
package org.apache.stratos.cli.commands;
+import org.apache.commons.cli.Option;
import org.apache.commons.cli.Options;
import org.apache.stratos.cli.Command;
import org.apache.stratos.cli.RestCommandLineService;
@@ -51,7 +52,7 @@ public class UndeployServiceDefinitionCommand implements Command<StratosCommandC
}
@Override
- public int execute(StratosCommandContext context, String[] args) throws CommandException {
+ public int execute(StratosCommandContext context, String[] args, Option[] already_parsed_opts) throws CommandException {
if (logger.isDebugEnabled()) {
logger.debug("Executing {} command...", getName());
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/67e868eb/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/UnsubscribeCommand.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/UnsubscribeCommand.java b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/UnsubscribeCommand.java
index e63c799..20f3676 100644
--- a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/UnsubscribeCommand.java
+++ b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/UnsubscribeCommand.java
@@ -32,6 +32,8 @@ import org.apache.stratos.cli.StratosCommandContext;
import org.apache.stratos.cli.exception.CommandException;
import org.apache.stratos.cli.utils.CliConstants;
+import static org.apache.stratos.cli.utils.CommandLineUtils.mergeOptionArrays;
+
public class UnsubscribeCommand implements Command<StratosCommandContext> {
private static final Logger logger = LoggerFactory.getLogger(UnsubscribeCommand.class);
@@ -71,7 +73,7 @@ public class UnsubscribeCommand implements Command<StratosCommandContext> {
}
@Override
- public int execute(StratosCommandContext context, String[] args) throws CommandException {
+ public int execute(StratosCommandContext context, String[] args, Option[] already_parsed_opts) throws CommandException {
if (logger.isDebugEnabled()) {
logger.debug("Executing {} command...", getName());
}
@@ -84,6 +86,9 @@ public class UnsubscribeCommand implements Command<StratosCommandContext> {
try {
commandLine = parser.parse(options, args);
remainingArgs = commandLine.getArgs();
+ //merge newly discovered options with previously discovered ones.
+ Options opts = mergeOptionArrays(already_parsed_opts, commandLine.getOptions());
+
if (remainingArgs != null && remainingArgs.length == 1) {
// Get alias
alias = remainingArgs[0];
@@ -95,7 +100,7 @@ public class UnsubscribeCommand implements Command<StratosCommandContext> {
return CliConstants.BAD_ARGS_CODE;
}
- if (commandLine.hasOption(CliConstants.FORCE_OPTION)) {
+ if (opts.hasOption(CliConstants.FORCE_OPTION)) {
if (logger.isTraceEnabled()) {
logger.trace("Force option is passed");
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/67e868eb/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 0f6a901..2e898f4 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
@@ -224,6 +224,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 VOLUME_ID_OPTION = "vi";
+ public static final String VOLUME_ID_LONG_OPTION = "volume-id";
+
public static final String PERSISTANCE_VOLUME_OPTION = "pv";
public static final String PERSISTANCE_VOLUME_LONG_OPTION = "persistance-volume";
http://git-wip-us.apache.org/repos/asf/stratos/blob/67e868eb/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/utils/CommandLineUtils.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/utils/CommandLineUtils.java b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/utils/CommandLineUtils.java
index 91e2251..d9747df 100644
--- a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/utils/CommandLineUtils.java
+++ b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/utils/CommandLineUtils.java
@@ -18,6 +18,9 @@
*/
package org.apache.stratos.cli.utils;
+import org.apache.commons.cli.Option;
+import org.apache.commons.cli.Options;
+
import java.text.MessageFormat;
import java.util.ResourceBundle;
@@ -91,4 +94,15 @@ public class CommandLineUtils {
}
return message;
}
+
+ public static Options mergeOptionArrays(Option[] a, Option[] b) {
+ Options opts = new Options();
+ for (Option o: a) {
+ opts.addOption(o);
+ }
+ for (Option o: b) {
+ opts.addOption(o);
+ }
+ return opts;
+ }
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/67e868eb/components/org.apache.stratos.cli/src/main/resources/log4j.properties
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cli/src/main/resources/log4j.properties b/components/org.apache.stratos.cli/src/main/resources/log4j.properties
index c5d2084..15304ee 100644
--- a/components/org.apache.stratos.cli/src/main/resources/log4j.properties
+++ b/components/org.apache.stratos.cli/src/main/resources/log4j.properties
@@ -33,4 +33,4 @@ log4j.appender.file.layout.conversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p %c
#Loggers
log4j.rootLogger=info, file
-log4j.logger.org.wso2.carbon.adc.mgt.cli=info
+log4j.logger.org.wso2.carbon.adc.mgt.cli=DEBUG
http://git-wip-us.apache.org/repos/asf/stratos/blob/67e868eb/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/exception/InvalidCompositeApplicationDefinitionException.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/exception/InvalidCompositeApplicationDefinitionException.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/exception/InvalidCompositeApplicationDefinitionException.java
new file mode 100644
index 0000000..a7c2bb6
--- /dev/null
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/exception/InvalidCompositeApplicationDefinitionException.java
@@ -0,0 +1,44 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.stratos.cloud.controller.exception;
+
+public class InvalidCompositeApplicationDefinitionException extends Exception {
+
+ private static final long serialVersionUID = -1L;
+ private String message;
+
+ public InvalidCompositeApplicationDefinitionException(String msg) {
+ super(msg);
+ this.setMessage(msg);
+ }
+
+ public InvalidCompositeApplicationDefinitionException(String msg, Exception ex) {
+ super(msg, ex);
+ this.setMessage(msg);
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/stratos/blob/67e868eb/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/AWSEC2Iaas.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/AWSEC2Iaas.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/AWSEC2Iaas.java
index eafbade..e4d5477 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/AWSEC2Iaas.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/AWSEC2Iaas.java
@@ -22,6 +22,7 @@ import com.google.common.base.Predicate;
import com.google.common.collect.Iterables;
import com.google.common.collect.Lists;
+import org.apache.commons.lang.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.stratos.cloud.controller.exception.CloudControllerException;
@@ -457,7 +458,7 @@ public class AWSEC2Iaas extends Iaas {
}
@Override
- public String createVolume(int sizeGB) {
+ public String createVolume(int sizeGB, String snapshotId) {
IaasProvider iaasInfo = getIaasProvider();
ComputeServiceContext context = iaasInfo.getComputeService()
@@ -474,7 +475,19 @@ public class AWSEC2Iaas extends Iaas {
ElasticBlockStoreApi blockStoreApi = context.unwrapApi(AWSEC2Api.class).getElasticBlockStoreApiForRegion(region).get();
- Volume volume = blockStoreApi.createVolumeInAvailabilityZone(zone, sizeGB);
+ Volume volume;
+ if(StringUtils.isEmpty(snapshotId)){
+ if(log.isDebugEnabled()){
+ log.info("Creating a volume in the zone " + zone);
+ }
+ volume = blockStoreApi.createVolumeInAvailabilityZone(zone, sizeGB);
+ }else{
+ if(log.isDebugEnabled()){
+ log.info("Creating a volume in the zone " + zone + " from the shanpshot " + snapshotId);
+ }
+ volume = blockStoreApi.createVolumeFromSnapshotInAvailabilityZone(zone, snapshotId);
+ }
+
if (volume == null) {
log.fatal("Volume creation was unsuccessful. [region] : " + region