Skip to content

Commit 34cf63c

Browse files
YARN-10157. FS-CS converter: initPropertyActions() is not called without rules file. Contributed by Peter Bacsko
1 parent 9290040 commit 34cf63c

File tree

3 files changed

+40
-3
lines changed

3 files changed

+40
-3
lines changed

hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/fair/converter/FSConfigToCSConfigConverter.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -166,11 +166,13 @@ private Resource getClusterResource(
166166
private void loadConversionRules(String rulesFile) throws IOException {
167167
if (rulesFile != null) {
168168
LOG.info("Reading conversion rules file from: " + rulesFile);
169-
this.ruleHandler.loadRulesFromFile(rulesFile);
169+
ruleHandler.loadRulesFromFile(rulesFile);
170170
} else {
171171
LOG.info("Conversion rules file is not defined, " +
172172
"using default conversion config!");
173173
}
174+
175+
ruleHandler.initPropertyActions();
174176
}
175177

176178
private Configuration getInputYarnSiteConfig(

hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/fair/converter/FSConfigToCSConfigRuleHandler.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,6 @@ void loadRulesFromFile(String ruleFile) throws IOException {
9595
properties.load(is);
9696
}
9797
actions = new HashMap<>();
98-
initPropertyActions();
9998
}
10099

101100
public FSConfigToCSConfigRuleHandler(ConversionOptions conversionOptions) {
@@ -113,7 +112,7 @@ public FSConfigToCSConfigRuleHandler(ConversionOptions conversionOptions) {
113112
initPropertyActions();
114113
}
115114

116-
private void initPropertyActions() {
115+
public void initPropertyActions() {
117116
setActionForProperty(MAX_CAPACITY_PERCENTAGE);
118117
setActionForProperty(MAX_CHILD_CAPACITY);
119118
setActionForProperty(USER_MAX_RUNNING_APPS);

hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/fair/converter/TestFSConfigToCSConfigConverter.java

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
import static org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.converter.FSConfigToCSConfigRuleHandler.USER_MAX_APPS_DEFAULT;
2727
import static org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.converter.FSConfigToCSConfigRuleHandler.USER_MAX_RUNNING_APPS;
2828
import static org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.converter.FSConfigToCSConfigRuleHandler.RuleAction.ABORT;
29+
import static org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.converter.FSConfigToCSConfigRuleHandler.RuleAction.WARNING;
2930
import static org.junit.Assert.assertEquals;
3031
import static org.junit.Assert.assertNull;
3132
import static org.junit.Assert.assertTrue;
@@ -372,6 +373,41 @@ public void testConvertFSConfigurationRulesFile() throws Exception {
372373
ABORT, actions.get(QUEUE_AUTO_CREATE));
373374
}
374375

376+
@Test
377+
public void testConvertFSConfigurationWithoutRulesFile() throws Exception {
378+
ruleHandler = new FSConfigToCSConfigRuleHandler(
379+
createDefaultConversionOptions());
380+
createConverter();
381+
382+
FSConfigToCSConfigConverterParams params =
383+
createDefaultParamsBuilder()
384+
.withClusterResource(CLUSTER_RESOURCE_STRING)
385+
.build();
386+
387+
converter.convert(params);
388+
389+
ruleHandler = converter.getRuleHandler();
390+
Map<String, FSConfigToCSConfigRuleHandler.RuleAction> actions =
391+
ruleHandler.getActions();
392+
393+
assertEquals("maxCapacityPercentage",
394+
WARNING, actions.get(MAX_CAPACITY_PERCENTAGE));
395+
assertEquals("maxChildCapacity",
396+
WARNING, actions.get(MAX_CHILD_CAPACITY));
397+
assertEquals("userMaxRunningApps",
398+
WARNING, actions.get(USER_MAX_RUNNING_APPS));
399+
assertEquals("userMaxAppsDefault",
400+
WARNING, actions.get(USER_MAX_APPS_DEFAULT));
401+
assertEquals("dynamicMaxAssign",
402+
WARNING, actions.get(DYNAMIC_MAX_ASSIGN));
403+
assertEquals("specifiedNotFirstRule",
404+
WARNING, actions.get(SPECIFIED_NOT_FIRST));
405+
assertEquals("reservationSystem",
406+
WARNING, actions.get(RESERVATION_SYSTEM));
407+
assertEquals("queueAutoCreate",
408+
WARNING, actions.get(QUEUE_AUTO_CREATE));
409+
}
410+
375411
@Test
376412
public void testConvertFSConfigurationUndefinedYarnSiteConfig()
377413
throws Exception {

0 commit comments

Comments
 (0)