You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by im...@apache.org on 2015/02/14 15:23:40 UTC

[1/2] stratos git commit: This closes #220 on GitHub

Repository: stratos
Updated Branches:
  refs/heads/master f948707fc -> 187a24730


This closes #220 on GitHub


Project: http://git-wip-us.apache.org/repos/asf/stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/187a2473
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/187a2473
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/187a2473

Branch: refs/heads/master
Commit: 187a24730d8f1464a160a215cd5e89b33b0ebddf
Parents: cadfb9f
Author: Imesh Gunaratne <im...@apache.org>
Authored: Sat Feb 14 19:53:34 2015 +0530
Committer: Imesh Gunaratne <im...@apache.org>
Committed: Sat Feb 14 19:53:34 2015 +0530

----------------------------------------------------------------------

----------------------------------------------------------------------



[2/2] stratos git commit: list-cartridges-by-filter command added to CLI

Posted by im...@apache.org.
list-cartridges-by-filter command added to CLI


Project: http://git-wip-us.apache.org/repos/asf/stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/cadfb9f7
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/cadfb9f7
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/cadfb9f7

Branch: refs/heads/master
Commit: cadfb9f79a99456f38a204d8247995b625b740e5
Parents: f948707
Author: Dinithi <di...@wso2.com>
Authored: Thu Feb 12 17:09:13 2015 +0530
Committer: Imesh Gunaratne <im...@apache.org>
Committed: Sat Feb 14 19:53:34 2015 +0530

----------------------------------------------------------------------
 .../stratos/cli/RestCommandLineService.java     | 45 +++++++++
 .../apache/stratos/cli/StratosApplication.java  |  3 +
 .../commands/ListCartridgesByFilterCommand.java | 98 ++++++++++++++++++++
 .../apache/stratos/cli/utils/CliConstants.java  | 10 +-
 .../common/beans/cartridge/CartridgeBean.java   |  4 +-
 .../common/beans/cartridge/PersistenceBean.java |  8 +-
 6 files changed, 161 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/cadfb9f7/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 476e060..a698744 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
@@ -105,6 +105,7 @@ public class RestCommandLineService {
     private static final String ENDPOINT_LIST_SERVICE_GROUP = API_CONTEXT + "/cartridgeGroups/{groupDefinitionName}";
     private static final String ENDPOINT_LIST_APPLICATION = API_CONTEXT + "/applications";
     private static final String ENDPOINT_LIST_NETWORK_PARTITIONS = API_CONTEXT + "/networkPartitions";
+    private static final String ENDPOINT_LIST_CARTRIDGES_BY_FILTER = API_CONTEXT + "/cartridges/filter/{filter}";
 
     private static final String ENDPOINT_DOMAIN_MAPPINGS = API_CONTEXT + "/applications/{applicationId}/domainMappings";
 
@@ -298,6 +299,50 @@ public class RestCommandLineService {
     }
 
     /**
+     * List cartridges By Filter
+     * @throws CommandException
+     */
+    public void listCartridgesByFilter(String filter) throws CommandException {
+        try {
+            Type listType = new TypeToken<ArrayList<CartridgeBean>>() {
+            }.getType();
+            List<CartridgeBean> cartridgeList = (List<CartridgeBean>) restClient.listEntity(ENDPOINT_LIST_CARTRIDGES_BY_FILTER.replace("{filter}",filter),
+                    listType, "cartridges");
+
+            System.out.println("Test:"+ENDPOINT_LIST_CARTRIDGES_BY_FILTER.replace("{filter}",filter));
+
+            if ((cartridgeList == null) || (cartridgeList.size() == 0)) {
+                System.out.println("No cartridges found");
+                return;
+            }
+
+            RowMapper<CartridgeBean> cartridgeMapper = new RowMapper<CartridgeBean>() {
+                public String[] getData(CartridgeBean cartridge) {
+                    String[] data = new String[6];
+                    data[0] = cartridge.getType();
+                    data[1] = cartridge.getCategory();
+                    data[2] = cartridge.getDisplayName();
+                    data[3] = cartridge.getDescription();
+                    data[4] = cartridge.getVersion();
+                    data[5] = String.valueOf(cartridge.isMultiTenant());
+                    return data;
+                }
+            };
+
+            CartridgeBean[] cartridges = new CartridgeBean[cartridgeList.size()];
+            cartridges = cartridgeList.toArray(cartridges);
+
+            System.out.println("Cartridges found:");
+            CliUtils.printTable(cartridges, cartridgeMapper, "Type", "Category", "Name", "Description", "Version",
+                    "Multi-Tenant");
+        } catch (Exception e) {
+            String message = "Error in listing cartridges";
+            printError(message, e);
+        }
+    }
+
+
+    /**
      * List cartridge groups
      *
      * @throws CommandException

http://git-wip-us.apache.org/repos/asf/stratos/blob/cadfb9f7/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 af99c1d..863adcf 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
@@ -222,6 +222,9 @@ public class StratosApplication extends CommandLineApplication<StratosCommandCon
         command = new AddApplicationSignupCommand();
         commands.put(command.getName(), command);
 
+        command = new ListCartridgesByFilterCommand();
+        commands.put(command.getName(), command);
+
         if (logger.isDebugEnabled()) {
             logger.debug("Created {} commands for the application. {}", commands.size(), commands.keySet());
         }

http://git-wip-us.apache.org/repos/asf/stratos/blob/cadfb9f7/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/ListCartridgesByFilterCommand.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/ListCartridgesByFilterCommand.java b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/ListCartridgesByFilterCommand.java
new file mode 100644
index 0000000..1fcf70f
--- /dev/null
+++ b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/ListCartridgesByFilterCommand.java
@@ -0,0 +1,98 @@
+package org.apache.stratos.cli.commands;
+
+import org.apache.commons.cli.*;
+import org.apache.stratos.cli.Command;
+import org.apache.stratos.cli.RestCommandLineService;
+import org.apache.stratos.cli.StratosCommandContext;
+import org.apache.stratos.cli.exception.CommandException;
+import org.apache.stratos.cli.utils.CliConstants;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * Created by dinithi on 2/11/15.
+ */
+public class ListCartridgesByFilterCommand implements Command<StratosCommandContext>{
+
+    private static final Logger logger = LoggerFactory.getLogger(ListCartridgesByFilterCommand.class);
+
+    private final Options options;
+
+    public ListCartridgesByFilterCommand(){
+        options = constructOptions();
+    }
+
+    private Options constructOptions() {
+        final Options options = new Options();
+
+        Option filterOption = new Option(CliConstants.CARTRIDGE_FILTER_OPTION, CliConstants.CARTRIDGE_FILTER_LONG_OPTION, true,
+                "Filter");
+        filterOption.setArgName("filter");
+        options.addOption(filterOption);
+
+        return options;
+    }
+
+    public String getName() {
+        return "list-cartridges-by-filter";
+    }
+
+    public String getDescription() {
+        return "List cartridges by a filter";
+    }
+
+    public String getArgumentSyntax() {
+        return null;
+    }
+
+    public int execute(StratosCommandContext context, String[] args) throws CommandException {
+        if (logger.isDebugEnabled()) {
+            logger.debug("Executing {} command...", getName());
+        }
+
+        if (args != null && args.length > 0) {
+            String filter= null;
+
+            final CommandLineParser parser = new GnuParser();
+            CommandLine commandLine;
+
+            try {
+                commandLine = parser.parse(options, args);
+
+                if (logger.isDebugEnabled()) {
+                    logger.debug("List cartridges by a filter");
+                }
+
+                if (commandLine.hasOption(CliConstants.CARTRIDGE_FILTER_OPTION)) {
+                    if (logger.isTraceEnabled()) {
+                        logger.trace("Filter option is passed");
+                    }
+                    filter = commandLine.getOptionValue(CliConstants.CARTRIDGE_FILTER_OPTION);
+                }
+
+                if (filter == null) {
+                    System.out.println("usage: " + getName() + "usage: " + getName() + " [-f <filter>]");
+                    return CliConstants.COMMAND_FAILED;
+                }
+
+                RestCommandLineService.getInstance().listCartridgesByFilter(filter);
+                return CliConstants.COMMAND_SUCCESSFULL;
+
+            } catch (ParseException e) {
+                if (logger.isErrorEnabled()) {
+                    logger.error("Error parsing arguments", e);
+                }
+                System.out.println(e.getMessage());
+                return CliConstants.COMMAND_FAILED;
+            }
+
+        } else {
+            context.getStratosApplication().printUsage(getName());
+            return CliConstants.COMMAND_FAILED;
+        }
+    }
+
+    public Options getOptions() {
+        return options;
+    }
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/cadfb9f7/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 4e39bca..415577a 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
@@ -66,6 +66,11 @@ public class CliConstants {
     public static final String CARTRIDGES_ACTION = "list-cartridges";
 
     /**
+     * List the available cartridges by filter
+     */
+    public static final String CARTRIDGES_BY_FILTER_ACTION = "list-cartridges-by-filter";
+
+    /**
      * List the available network partitions
      */
     public static final String NETWORK_PARTITION_ACTION = "list-network-partitions";
@@ -93,7 +98,7 @@ public class CliConstants {
     /**
      * Add application signup
      */
-    public static final String ADD_APPLICATION_SIGNUP = "add-application";
+    public static final String ADD_APPLICATION_SIGNUP = "add-application-signup";
 
     /**
      * Add user
@@ -312,6 +317,9 @@ public class CliConstants {
     public static final String CARTRIDGE_TYPE_OPTION = "t";
     public static final String CARTRIDGE_TYPE_LONG_OPTION = "cartridge-type";
 
+    public static final String CARTRIDGE_FILTER_OPTION = "f";
+    public static final String CARTRIDGE_FILTER_LONG_OPTION = "filter";
+
     public static final String FULL_OPTION = "f";
     public static final String FULL_LONG_OPTION = "full";
 

http://git-wip-us.apache.org/repos/asf/stratos/blob/cadfb9f7/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/cartridge/CartridgeBean.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/cartridge/CartridgeBean.java b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/cartridge/CartridgeBean.java
index 6c7f46b..38c09c6 100644
--- a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/cartridge/CartridgeBean.java
+++ b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/cartridge/CartridgeBean.java
@@ -54,8 +54,8 @@ public class CartridgeBean {
         return "Type: " + getType() + ", Provider: " + getProvider() + ", Category: " + getCategory() + ", Host: " + getHost() + ", Display Name: " + getDisplayName() +
                 ", Description: " + getDescription() +  ", Version: " + getVersion() + ", Multitenant " + isMultiTenant() +", Public " + isPublic() + "\n" +
                 getDeploymentDetails() + "\n PortMapping: " + getPortMappings() + "\n IaaS: " + getIaasProviders() +
-                "\n Properties: " + getProperties() +"\n VolumeBean mappings "+ getPersistence().toString()
-                + "\n Exports " + getExportingProperties().toString();
+                "\n Properties: " + getProperties() +"\n VolumeBean mappings "+ (getPersistence() == null ? "" : getPersistence().toString())
+                + "\n Exports " + (getExportingProperties() == null ? "" : getExportingProperties().toString()) ;
     }
 
 	private String getDeploymentDetails () {

http://git-wip-us.apache.org/repos/asf/stratos/blob/cadfb9f7/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/cartridge/PersistenceBean.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/cartridge/PersistenceBean.java b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/cartridge/PersistenceBean.java
index 70ef494..f35eb82 100644
--- a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/cartridge/PersistenceBean.java
+++ b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/cartridge/PersistenceBean.java
@@ -26,7 +26,7 @@ import java.util.List;
 public class PersistenceBean {
 
     private boolean isRequired;
-    private List<VolumeBean> volume;
+    private List<VolumeBean> volumes;
 
     public String toString () {
         return " [ Persistence Required : " + isRequired() + "\n" +
@@ -52,10 +52,10 @@ public class PersistenceBean {
     }
 
     public List<VolumeBean> getVolume() {
-        return volume;
+        return volumes;
     }
 
-    public void setVolume(List<VolumeBean> volume) {
-        this.volume = volume;
+    public void setVolume(List<VolumeBean> volumes) {
+        this.volumes = volumes;
     }
 }