From 4b63e3e504e9e226acda67f9d880ab923da2ea97 Mon Sep 17 00:00:00 2001 From: Weiwei Yang Date: Sat, 1 Jul 2017 15:22:22 +0800 Subject: [PATCH] HDFS-12002. Ozone : SCM cli misc fixes/improvements. Contributed by Chen Liang. --- .../container/ContainerCommandHandler.java | 5 ++- .../cli/container/DeleteContainerHandler.java | 24 ++++++++--- .../cli/container/InfoContainerHandler.java | 27 ++++++++++-- .../hadoop/ozone/web/ozShell/Shell.java | 1 + .../apache/hadoop/ozone/scm/TestSCMCli.java | 43 ++++++++++++++----- 5 files changed, 79 insertions(+), 21 deletions(-) diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/scm/cli/container/ContainerCommandHandler.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/scm/cli/container/ContainerCommandHandler.java index f4e428ea83..822c8b51d9 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/scm/cli/container/ContainerCommandHandler.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/scm/cli/container/ContainerCommandHandler.java @@ -92,9 +92,9 @@ private static void addCommandsOption(Options options) { Option createContainer = new Option(CONTAINER_CREATE, false, "Create container"); Option infoContainer = - new Option(CONTAINER_INFO, true, "Info container"); + new Option(CONTAINER_INFO, false, "Info container"); Option deleteContainer = - new Option(CONTAINER_DELETE, true, "Delete container"); + new Option(CONTAINER_DELETE, false, "Delete container"); options.addOption(createContainer); options.addOption(deleteContainer); @@ -107,6 +107,7 @@ public static void addOptions(Options options) { // for create container options. CreateContainerHandler.addOptions(options); DeleteContainerHandler.addOptions(options); + InfoContainerHandler.addOptions(options); // TODO : add other options such as delete, close etc. } } diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/scm/cli/container/DeleteContainerHandler.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/scm/cli/container/DeleteContainerHandler.java index fc83e05001..0782af3b04 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/scm/cli/container/DeleteContainerHandler.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/scm/cli/container/DeleteContainerHandler.java @@ -30,14 +30,16 @@ import java.io.IOException; import static org.apache.hadoop.ozone.scm.cli.SCMCLI.CMD_WIDTH; +import static org.apache.hadoop.ozone.scm.cli.SCMCLI.HELP_OP; /** * This is the handler that process delete container command. */ public class DeleteContainerHandler extends OzoneCommandHandler { - protected static final String CONTAINER_DELETE = "del"; + protected static final String CONTAINER_DELETE = "delete"; protected static final String OPT_FORCE = "f"; + protected static final String OPT_CONTAINER_NAME = "c"; public DeleteContainerHandler(ScmClient scmClient) { super(scmClient); @@ -46,9 +48,17 @@ public DeleteContainerHandler(ScmClient scmClient) { @Override public void execute(CommandLine cmd) throws IOException { Preconditions.checkArgument(cmd.hasOption(CONTAINER_DELETE), - "Expecting command del"); + "Expecting command delete"); + if (!cmd.hasOption(OPT_CONTAINER_NAME)) { + displayHelp(); + if (!cmd.hasOption(HELP_OP)) { + throw new IOException("Expecting container name"); + } else { + return; + } + } - String containerName = cmd.getOptionValue(CONTAINER_DELETE); + String containerName = cmd.getOptionValue(OPT_CONTAINER_NAME); Pipeline pipeline = getScmClient().getContainer(containerName); if (pipeline == null) { @@ -61,11 +71,12 @@ public void execute(CommandLine cmd) throws IOException { logOut("Container %s deleted.", containerName); } - @Override public void displayHelp() { + @Override + public void displayHelp() { Options options = new Options(); addOptions(options); HelpFormatter helpFormatter = new HelpFormatter(); - helpFormatter.printHelp(CMD_WIDTH, "hdfs scm -container -del