HDFS-10540. Diskbalancer: The CLI error message for disk balancer is not enabled is not clear. Contributed by Anu Engineer.

This commit is contained in:
Anu Engineer 2016-06-17 23:25:26 -07:00 committed by Arpit Agarwal
parent 3225c24e0e
commit cb68e5b3bd
3 changed files with 28 additions and 38 deletions

View File

@ -256,6 +256,8 @@ public String getVolumeNames() throws DiskBalancerException {
}
ObjectMapper mapper = new ObjectMapper();
return mapper.writeValueAsString(pathMap);
} catch (DiskBalancerException ex) {
throw ex;
} catch (IOException e) {
throw new DiskBalancerException("Internal error, Unable to " +
"create JSON string.", e,

View File

@ -171,7 +171,7 @@ protected void setOutputPath(String path) throws IOException {
diskBalancerLogs = new Path(path);
}
if (fs.exists(diskBalancerLogs)) {
LOG.error("Another Diskbalancer instance is running ? - Target " +
LOG.debug("Another Diskbalancer instance is running ? - Target " +
"Directory already exists. {}", diskBalancerLogs);
throw new IOException("Another DiskBalancer files already exist at the " +
"target location. " + diskBalancerLogs.toString());

View File

@ -36,9 +36,7 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.IOException;
import java.io.PrintStream;
import java.net.URISyntaxException;
/**
* DiskBalancer is a tool that can be used to ensure that data is spread evenly
@ -169,7 +167,7 @@ public static void main(String[] argv) throws Exception {
res = ToolRunner.run(shell, argv);
} catch (Exception ex) {
LOG.error(ex.toString());
System.exit(1);
res = 1;
}
System.exit(res);
}
@ -449,51 +447,41 @@ private CommandLine parseArgs(String[] argv, Options opts)
* @param cmd - CommandLine
* @param opts options of command line
* @param out the output stream used for printing
* @throws IOException
* @throws URISyntaxException
*/
private int dispatch(CommandLine cmd, Options opts, final PrintStream out)
throws IOException, URISyntaxException {
throws Exception {
Command currentCommand = null;
if (cmd.hasOption(DiskBalancer.PLAN)) {
currentCommand = new PlanCommand(getConf());
}
try {
if (cmd.hasOption(DiskBalancer.EXECUTE)) {
currentCommand = new ExecuteCommand(getConf());
}
if (cmd.hasOption(DiskBalancer.PLAN)) {
currentCommand = new PlanCommand(getConf());
}
if (cmd.hasOption(DiskBalancer.QUERY)) {
currentCommand = new QueryCommand(getConf());
}
if (cmd.hasOption(DiskBalancer.EXECUTE)) {
currentCommand = new ExecuteCommand(getConf());
}
if (cmd.hasOption(DiskBalancer.CANCEL)) {
currentCommand = new CancelCommand(getConf());
}
if (cmd.hasOption(DiskBalancer.QUERY)) {
currentCommand = new QueryCommand(getConf());
}
if (cmd.hasOption(DiskBalancer.REPORT)) {
currentCommand = new ReportCommand(getConf(), out);
}
if (cmd.hasOption(DiskBalancer.CANCEL)) {
currentCommand = new CancelCommand(getConf());
}
if (cmd.hasOption(DiskBalancer.HELP)) {
currentCommand = new HelpCommand(getConf());
}
if (cmd.hasOption(DiskBalancer.REPORT)) {
currentCommand = new ReportCommand(getConf(), out);
}
if (cmd.hasOption(DiskBalancer.HELP)) {
currentCommand = new HelpCommand(getConf());
}
// Invoke Main help here.
if (currentCommand == null) {
new HelpCommand(getConf()).execute(null);
return 1;
}
currentCommand.execute(cmd);
} catch (Exception ex) {
System.err.printf(ex.getMessage());
// Invoke main help here.
if (currentCommand == null) {
new HelpCommand(getConf()).execute(null);
return 1;
}
currentCommand.execute(cmd);
return 0;
}
}