HDDS-1357. ozone s3 shell command has confusing subcommands (#663)

This commit is contained in:
Elek, Márton 2019-03-30 18:13:29 +01:00 committed by Bharat Viswanadham
parent d9e9e5657d
commit ec82e4cab2
4 changed files with 68 additions and 38 deletions

View File

@ -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)

View File

@ -59,6 +59,7 @@
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 static void init() throws Exception {
baseDir = new File(path);
baseDir.mkdirs();
shell = new Shell();
shell = new OzoneShell();
cluster = MiniOzoneCluster.newBuilder(conf)
.setNumDatanodes(3)

View File

@ -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
* <p>
* http://www.apache.org/licenses/LICENSE-2.0
* <p>
* 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);
}
}
}

View File

@ -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 @@
* 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) {