From ec82e4cab25fa4f240449f2721f7b321cf3b0c10 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elek=2C=20M=C3=A1rton?= Date: Sat, 30 Mar 2019 18:13:29 +0100 Subject: [PATCH] HDDS-1357. ozone s3 shell command has confusing subcommands (#663) --- hadoop-ozone/common/src/main/bin/ozone | 2 +- .../hadoop/ozone/ozShell/TestOzoneShell.java | 3 +- .../hadoop/ozone/web/ozShell/OzoneShell.java | 64 +++++++++++++++++++ .../hadoop/ozone/web/ozShell/Shell.java | 37 +---------- 4 files changed, 68 insertions(+), 38 deletions(-) create mode 100644 hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/web/ozShell/OzoneShell.java diff --git a/hadoop-ozone/common/src/main/bin/ozone b/hadoop-ozone/common/src/main/bin/ozone index d36e08c6743..6984c9d8237 100755 --- a/hadoop-ozone/common/src/main/bin/ozone +++ b/hadoop-ozone/common/src/main/bin/ozone @@ -128,7 +128,7 @@ function ozonecmd_case OZONE_RUN_ARTIFACT_NAME="hadoop-ozone-ozone-manager" ;; sh | shell) - HADOOP_CLASSNAME=org.apache.hadoop.ozone.web.ozShell.Shell + HADOOP_CLASSNAME=org.apache.hadoop.ozone.web.ozShell.OzoneShell OZONE_RUN_ARTIFACT_NAME="hadoop-ozone-ozone-manager" ;; s3) diff --git a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/ozShell/TestOzoneShell.java b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/ozShell/TestOzoneShell.java index 012c66803db..1b1013533cc 100644 --- a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/ozShell/TestOzoneShell.java +++ b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/ozShell/TestOzoneShell.java @@ -59,6 +59,7 @@ import org.apache.hadoop.ozone.om.exceptions.OMException; import org.apache.hadoop.ozone.om.exceptions.OMException.ResultCodes; import org.apache.hadoop.ozone.om.helpers.ServiceInfo; import org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.ServicePort; +import org.apache.hadoop.ozone.web.ozShell.OzoneShell; import org.apache.hadoop.ozone.web.ozShell.Shell; import org.apache.hadoop.ozone.web.request.OzoneQuota; import org.apache.hadoop.ozone.web.response.BucketInfo; @@ -142,7 +143,7 @@ public class TestOzoneShell { baseDir = new File(path); baseDir.mkdirs(); - shell = new Shell(); + shell = new OzoneShell(); cluster = MiniOzoneCluster.newBuilder(conf) .setNumDatanodes(3) diff --git a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/web/ozShell/OzoneShell.java b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/web/ozShell/OzoneShell.java new file mode 100644 index 00000000000..239cee928fb --- /dev/null +++ b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/web/ozShell/OzoneShell.java @@ -0,0 +1,64 @@ +/** + * 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.hadoop.ozone.web.ozShell; + +import org.apache.hadoop.hdds.cli.HddsVersionProvider; +import org.apache.hadoop.hdds.tracing.TracingUtil; +import org.apache.hadoop.ozone.web.ozShell.bucket.BucketCommands; +import org.apache.hadoop.ozone.web.ozShell.keys.KeyCommands; +import org.apache.hadoop.ozone.web.ozShell.token.TokenCommands; +import org.apache.hadoop.ozone.web.ozShell.volume.VolumeCommands; + +import io.opentracing.Scope; +import io.opentracing.util.GlobalTracer; +import picocli.CommandLine.Command; + +/** + * Shell commands for native rpc object manipulation. + */ +@Command(name = "ozone sh", + description = "Shell for Ozone object store", + subcommands = { + VolumeCommands.class, + BucketCommands.class, + KeyCommands.class, + TokenCommands.class + }, + versionProvider = HddsVersionProvider.class, + mixinStandardHelpOptions = true) +public class OzoneShell extends Shell { + + /** + * Main for the ozShell Command handling. + * + * @param argv - System Args Strings[] + * @throws Exception + */ + public static void main(String[] argv) throws Exception { + new OzoneShell().run(argv); + } + + @Override + public void execute(String[] argv) { + TracingUtil.initTracing("shell"); + try (Scope scope = GlobalTracer.get().buildSpan("main").startActive(true)) { + super.execute(argv); + } + } + +} diff --git a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/web/ozShell/Shell.java b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/web/ozShell/Shell.java index 18fcdbde297..118a8a4fcfe 100644 --- a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/web/ozShell/Shell.java +++ b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/web/ozShell/Shell.java @@ -19,19 +19,10 @@ package org.apache.hadoop.ozone.web.ozShell; import org.apache.hadoop.hdds.cli.GenericCli; -import org.apache.hadoop.hdds.cli.HddsVersionProvider; -import org.apache.hadoop.hdds.tracing.TracingUtil; import org.apache.hadoop.ozone.om.exceptions.OMException; -import org.apache.hadoop.ozone.web.ozShell.bucket.BucketCommands; -import org.apache.hadoop.ozone.web.ozShell.keys.KeyCommands; -import org.apache.hadoop.ozone.web.ozShell.token.TokenCommands; -import org.apache.hadoop.ozone.web.ozShell.volume.VolumeCommands; -import io.opentracing.Scope; -import io.opentracing.util.GlobalTracer; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import picocli.CommandLine.Command; /** * Ozone user interface commands. @@ -39,17 +30,7 @@ import picocli.CommandLine.Command; * This class uses dispatch method to make calls * to appropriate handlers that execute the ozone functions. */ -@Command(name = "ozone sh", - description = "Shell for Ozone object store", - subcommands = { - VolumeCommands.class, - BucketCommands.class, - KeyCommands.class, - TokenCommands.class - }, - versionProvider = HddsVersionProvider.class, - mixinStandardHelpOptions = true) -public class Shell extends GenericCli { +public abstract class Shell extends GenericCli { private static final Logger LOG = LoggerFactory.getLogger(Shell.class); @@ -75,23 +56,7 @@ public class Shell extends GenericCli { // General options public static final int DEFAULT_OZONE_PORT = 50070; - @Override - public void execute(String[] argv) { - TracingUtil.initTracing("shell"); - try (Scope scope = GlobalTracer.get().buildSpan("main").startActive(true)) { - super.execute(argv); - } - } - /** - * Main for the ozShell Command handling. - * - * @param argv - System Args Strings[] - * @throws Exception - */ - public static void main(String[] argv) throws Exception { - new Shell().run(argv); - } @Override protected void printError(Throwable errorArg) {