From 19e1d490de10fab04faf5f0b11c5c5983b26b172 Mon Sep 17 00:00:00 2001 From: Oleg Bonar Date: Mon, 9 Dec 2019 18:53:36 +0400 Subject: [PATCH 1/3] YARN-10014. Refactor boolean flag based approach in SchedConfCLI#run. --- .../hadoop/yarn/client/cli/SchedConfCLI.java | 48 +++++++------------ 1 file changed, 16 insertions(+), 32 deletions(-) diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/cli/SchedConfCLI.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/cli/SchedConfCLI.java index 2f2b601f2081c..59a32388c00c7 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/cli/SchedConfCLI.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/cli/SchedConfCLI.java @@ -130,58 +130,42 @@ public int run(String[] args) throws Exception { return 0; } - boolean hasOption = false; - boolean format = false; - boolean getConf = false; + if (parsedCli.hasOption(FORMAT_CONF)) { + return WebAppUtils.execOnActiveRM(getConf(), this::formatSchedulerConf, null); + } + if (parsedCli.hasOption(GET_SCHEDULER_CONF)) { + return WebAppUtils.execOnActiveRM(getConf(), this::getSchedulerConf, null); + } + if (!parsedCli.hasOption(ADD_QUEUES_OPTION) + && !parsedCli.hasOption(REMOVE_QUEUES_OPTION) + && !parsedCli.hasOption(UPDATE_QUEUES_OPTION) + && !parsedCli.hasOption(GLOBAL_OPTIONS)) { + System.err.println("Invalid Command Usage: "); + printUsage(); + return -1; + } SchedConfUpdateInfo updateInfo = new SchedConfUpdateInfo(); try { if (parsedCli.hasOption(ADD_QUEUES_OPTION)) { - hasOption = true; addQueues(parsedCli.getOptionValue(ADD_QUEUES_OPTION), updateInfo); } if (parsedCli.hasOption(REMOVE_QUEUES_OPTION)) { - hasOption = true; removeQueues(parsedCli.getOptionValue(REMOVE_QUEUES_OPTION), updateInfo); } if (parsedCli.hasOption(UPDATE_QUEUES_OPTION)) { - hasOption = true; updateQueues(parsedCli.getOptionValue(UPDATE_QUEUES_OPTION), updateInfo); } if (parsedCli.hasOption(GLOBAL_OPTIONS)) { - hasOption = true; globalUpdates(parsedCli.getOptionValue(GLOBAL_OPTIONS), updateInfo); } - if (parsedCli.hasOption((FORMAT_CONF))) { - hasOption = true; - format = true; - } - if (parsedCli.hasOption(GET_SCHEDULER_CONF)) { - hasOption = true; - getConf = true; - } - } catch (IllegalArgumentException e) { System.err.println(e.getMessage()); return -1; } - - if (!hasOption) { - System.err.println("Invalid Command Usage: "); - printUsage(); - return -1; - } - - Configuration conf = getConf(); - if (format) { - return WebAppUtils.execOnActiveRM(conf, this::formatSchedulerConf, null); - } else if (getConf) { - return WebAppUtils.execOnActiveRM(conf, this::getSchedulerConf, null); - } else { - return WebAppUtils.execOnActiveRM(conf, - this::updateSchedulerConfOnRMNode, updateInfo); - } + return WebAppUtils.execOnActiveRM(getConf(), + this::updateSchedulerConfOnRMNode, updateInfo); } private static void prettyFormatWithIndent(String input, int indent) From c1d3ff5fd6840b21e9aaa39cafe2c1ef39b1b5d6 Mon Sep 17 00:00:00 2001 From: Oleg Bonar Date: Mon, 9 Dec 2019 21:09:19 +0400 Subject: [PATCH 2/3] Fix code style. --- .../org/apache/hadoop/yarn/client/cli/SchedConfCLI.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/cli/SchedConfCLI.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/cli/SchedConfCLI.java index 59a32388c00c7..f1cd6ea70a933 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/cli/SchedConfCLI.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/cli/SchedConfCLI.java @@ -131,10 +131,12 @@ public int run(String[] args) throws Exception { } if (parsedCli.hasOption(FORMAT_CONF)) { - return WebAppUtils.execOnActiveRM(getConf(), this::formatSchedulerConf, null); + return WebAppUtils.execOnActiveRM(getConf(), this::formatSchedulerConf, + null); } if (parsedCli.hasOption(GET_SCHEDULER_CONF)) { - return WebAppUtils.execOnActiveRM(getConf(), this::getSchedulerConf, null); + return WebAppUtils.execOnActiveRM(getConf(), this::getSchedulerConf, + null); } if (!parsedCli.hasOption(ADD_QUEUES_OPTION) && !parsedCli.hasOption(REMOVE_QUEUES_OPTION) From efeb1e7c40f7d3827da0bc1ba28f1faabd3768c6 Mon Sep 17 00:00:00 2001 From: Oleg <25862932+olegbonar@users.noreply.github.com> Date: Thu, 2 Jan 2020 14:17:39 +0400 Subject: [PATCH 3/3] Refactor with if-else-if --- .../hadoop/yarn/client/cli/SchedConfCLI.java | 61 +++++++++---------- 1 file changed, 29 insertions(+), 32 deletions(-) diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/cli/SchedConfCLI.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/cli/SchedConfCLI.java index f1cd6ea70a933..47c0dd25accbd 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/cli/SchedConfCLI.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/cli/SchedConfCLI.java @@ -128,46 +128,43 @@ public int run(String[] args) throws Exception { if (parsedCli.hasOption(HELP_CMD)) { printUsage(); return 0; - } - - if (parsedCli.hasOption(FORMAT_CONF)) { + } else if (parsedCli.hasOption(FORMAT_CONF)) { return WebAppUtils.execOnActiveRM(getConf(), this::formatSchedulerConf, null); - } - if (parsedCli.hasOption(GET_SCHEDULER_CONF)) { + } else if (parsedCli.hasOption(GET_SCHEDULER_CONF)) { return WebAppUtils.execOnActiveRM(getConf(), this::getSchedulerConf, null); - } - if (!parsedCli.hasOption(ADD_QUEUES_OPTION) - && !parsedCli.hasOption(REMOVE_QUEUES_OPTION) - && !parsedCli.hasOption(UPDATE_QUEUES_OPTION) - && !parsedCli.hasOption(GLOBAL_OPTIONS)) { + } else if (parsedCli.hasOption(ADD_QUEUES_OPTION) + || parsedCli.hasOption(REMOVE_QUEUES_OPTION) + || parsedCli.hasOption(UPDATE_QUEUES_OPTION) + || parsedCli.hasOption(GLOBAL_OPTIONS)) { + SchedConfUpdateInfo updateInfo = new SchedConfUpdateInfo(); + try { + if (parsedCli.hasOption(ADD_QUEUES_OPTION)) { + addQueues(parsedCli.getOptionValue(ADD_QUEUES_OPTION), updateInfo); + } + if (parsedCli.hasOption(REMOVE_QUEUES_OPTION)) { + removeQueues(parsedCli.getOptionValue(REMOVE_QUEUES_OPTION), + updateInfo); + } + if (parsedCli.hasOption(UPDATE_QUEUES_OPTION)) { + updateQueues(parsedCli.getOptionValue(UPDATE_QUEUES_OPTION), + updateInfo); + } + if (parsedCli.hasOption(GLOBAL_OPTIONS)) { + globalUpdates(parsedCli.getOptionValue(GLOBAL_OPTIONS), updateInfo); + } + return WebAppUtils.execOnActiveRM(getConf(), + this::updateSchedulerConfOnRMNode, updateInfo); + } catch (IllegalArgumentException e) { + System.err.println(e.getMessage()); + return -1; + } + } else { System.err.println("Invalid Command Usage: "); printUsage(); return -1; } - SchedConfUpdateInfo updateInfo = new SchedConfUpdateInfo(); - try { - if (parsedCli.hasOption(ADD_QUEUES_OPTION)) { - addQueues(parsedCli.getOptionValue(ADD_QUEUES_OPTION), updateInfo); - } - if (parsedCli.hasOption(REMOVE_QUEUES_OPTION)) { - removeQueues(parsedCli.getOptionValue(REMOVE_QUEUES_OPTION), - updateInfo); - } - if (parsedCli.hasOption(UPDATE_QUEUES_OPTION)) { - updateQueues(parsedCli.getOptionValue(UPDATE_QUEUES_OPTION), - updateInfo); - } - if (parsedCli.hasOption(GLOBAL_OPTIONS)) { - globalUpdates(parsedCli.getOptionValue(GLOBAL_OPTIONS), updateInfo); - } - } catch (IllegalArgumentException e) { - System.err.println(e.getMessage()); - return -1; - } - return WebAppUtils.execOnActiveRM(getConf(), - this::updateSchedulerConfOnRMNode, updateInfo); } private static void prettyFormatWithIndent(String input, int indent)