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/03/14 06:41:39 UTC

[5/9] stratos git commit: Fixed the short-format issue in list-kubernetes-host CLI command

Fixed the short-format issue in list-kubernetes-host CLI command


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

Branch: refs/heads/master
Commit: 6a6a962d169d1e24ca542da4e97a769bfeadbf9e
Parents: 49780e8
Author: Dinithi <di...@wso2.com>
Authored: Thu Mar 12 10:10:08 2015 +0530
Committer: Imesh Gunaratne <im...@apache.org>
Committed: Sat Mar 14 11:11:29 2015 +0530

----------------------------------------------------------------------
 .../commands/ListKubernetesHostsCommand.java    | 88 +++++++++++++++-----
 1 file changed, 69 insertions(+), 19 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/6a6a962d/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/ListKubernetesHostsCommand.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/ListKubernetesHostsCommand.java b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/ListKubernetesHostsCommand.java
index dcb21d8..b240cfa 100644
--- a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/ListKubernetesHostsCommand.java
+++ b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/ListKubernetesHostsCommand.java
@@ -19,8 +19,7 @@
 
 package org.apache.stratos.cli.commands;
 
-import org.apache.commons.cli.Option;
-import org.apache.commons.cli.Options;
+import org.apache.commons.cli.*;
 import org.apache.stratos.cli.Command;
 import org.apache.stratos.cli.RestCommandLineService;
 import org.apache.stratos.cli.StratosCommandContext;
@@ -29,12 +28,28 @@ import org.apache.stratos.cli.utils.CliConstants;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import static org.apache.stratos.cli.utils.CliUtils.mergeOptionArrays;
+
 public class ListKubernetesHostsCommand implements Command<StratosCommandContext> {
 
 	private static final Logger logger = LoggerFactory.getLogger(ListKubernetesHostsCommand.class);
 
-	public ListKubernetesHostsCommand() {
-	}
+    private final Options options;
+
+    public ListKubernetesHostsCommand(){
+        options = constructOptions();
+    }
+
+    private Options constructOptions() {
+        final Options options = new Options();
+
+        Option clusterId = new Option(CliConstants.CLUSTER_ID_OPTION, CliConstants.CLUSTER_ID_LONG_OPTION, true,
+                "Cluster id");
+        clusterId.setArgName("cluster id");
+        options.addOption(clusterId);
+
+        return options;
+    }
 
 	public String getName() {
 		return "list-kubernetes-hosts";
@@ -45,24 +60,59 @@ public class ListKubernetesHostsCommand implements Command<StratosCommandContext
 	}
 
 	public String getArgumentSyntax() {
-		return "[cluster-id]";
+		return null;
 	}
 
-	public int execute(StratosCommandContext context, String[] args, Option[] already_parsed_opts) throws CommandException {
-		if (logger.isDebugEnabled()) {
-			logger.debug("Executing command: ", getName());
-		}
-		if ((args == null) || (args.length == 0)) {
+    public int execute(StratosCommandContext context, String[] args, Option[] already_parsed_opts) throws CommandException {
+        if (logger.isDebugEnabled()) {
+            logger.debug("Executing {} command...", getName());
+        }
+
+        if (args != null && args.length > 0) {
+            String clusterId= null;
+
+            final CommandLineParser parser = new GnuParser();
+            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("List kubernetes hosts of a cluster");
+                }
+
+                if (opts.hasOption(CliConstants.CLUSTER_ID_OPTION)) {
+                    if (logger.isTraceEnabled()) {
+                        logger.trace("Cluster id option is passed");
+                    }
+                    clusterId = opts.getOption(CliConstants.CLUSTER_ID_OPTION).getValue();
+                }
+
+                if (clusterId == null) {
+                    System.out.println("usage: " + getName() + "usage: " + getName() + " [-c <cluster-id>]");
+                    return CliConstants.COMMAND_FAILED;
+                }
+
+                RestCommandLineService.getInstance().listKubernetesHosts(clusterId);
+                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;
-		} else {
-            String clusterId = args[0];
-            RestCommandLineService.getInstance().listKubernetesHosts(clusterId);
-            return CliConstants.COMMAND_SUCCESSFULL;
-		}
-	}
+        }
+    }
 
-	public Options getOptions() {
-		return null;
-	}
+    public Options getOptions() {
+        return options;
+    }
 }