|
@@ -19,7 +19,9 @@ package org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.converter;
|
|
|
import static org.junit.Assert.assertEquals;
|
|
|
import static org.junit.Assert.assertFalse;
|
|
|
import static org.junit.Assert.assertTrue;
|
|
|
+import static org.mockito.ArgumentMatchers.anyString;
|
|
|
import static org.mockito.Mockito.verify;
|
|
|
+import static org.mockito.Mockito.verifyZeroInteractions;
|
|
|
|
|
|
import java.io.File;
|
|
|
import java.io.IOException;
|
|
@@ -28,6 +30,7 @@ import java.util.List;
|
|
|
|
|
|
import org.apache.commons.io.FileUtils;
|
|
|
import org.apache.hadoop.yarn.conf.YarnConfiguration;
|
|
|
+import org.apache.hadoop.yarn.server.resourcemanager.scheduler.QueueMetrics;
|
|
|
import org.junit.After;
|
|
|
import org.junit.Before;
|
|
|
import org.junit.Rule;
|
|
@@ -59,6 +62,9 @@ public class TestFSConfigToCSConfigArgumentHandler {
|
|
|
@Mock
|
|
|
private FSConfigToCSConfigConverter mockConverter;
|
|
|
|
|
|
+ @Mock
|
|
|
+ private ConvertedConfigValidator mockValidator;
|
|
|
+
|
|
|
private DryRunResultHolder dryRunResultHolder;
|
|
|
private ConversionOptions conversionOptions;
|
|
|
|
|
@@ -74,6 +80,7 @@ public class TestFSConfigToCSConfigArgumentHandler {
|
|
|
|
|
|
@After
|
|
|
public void tearDown() {
|
|
|
+ QueueMetrics.clearQueueMetrics();
|
|
|
fsTestCommons.tearDown();
|
|
|
}
|
|
|
|
|
@@ -290,7 +297,7 @@ public class TestFSConfigToCSConfigArgumentHandler {
|
|
|
argumentHandler.parseAndConvert(args);
|
|
|
|
|
|
// validate params
|
|
|
- Mockito.verify(mockConverter).convert(conversionParams.capture());
|
|
|
+ verify(mockConverter).convert(conversionParams.capture());
|
|
|
FSConfigToCSConfigConverterParams params = conversionParams.getValue();
|
|
|
LOG.info("FS config converter parameters: " + params);
|
|
|
|
|
@@ -322,7 +329,7 @@ public class TestFSConfigToCSConfigArgumentHandler {
|
|
|
argumentHandler.parseAndConvert(args);
|
|
|
|
|
|
// validate params
|
|
|
- Mockito.verify(mockConverter).convert(conversionParams.capture());
|
|
|
+ verify(mockConverter).convert(conversionParams.capture());
|
|
|
FSConfigToCSConfigConverterParams params = conversionParams.getValue();
|
|
|
LOG.info("FS config converter parameters: " + params);
|
|
|
|
|
@@ -355,7 +362,7 @@ public class TestFSConfigToCSConfigArgumentHandler {
|
|
|
argumentHandler.parseAndConvert(args);
|
|
|
|
|
|
// validate params
|
|
|
- Mockito.verify(mockConverter).convert(conversionParams.capture());
|
|
|
+ verify(mockConverter).convert(conversionParams.capture());
|
|
|
FSConfigToCSConfigConverterParams params = conversionParams.getValue();
|
|
|
LOG.info("FS config converter parameters: " + params);
|
|
|
|
|
@@ -446,7 +453,7 @@ public class TestFSConfigToCSConfigArgumentHandler {
|
|
|
"-r", FSConfigConverterTestCommons.CONVERSION_RULES_FILE,
|
|
|
"-d");
|
|
|
FSConfigToCSConfigArgumentHandler argumentHandler =
|
|
|
- new FSConfigToCSConfigArgumentHandler(conversionOptions);
|
|
|
+ new FSConfigToCSConfigArgumentHandler(conversionOptions, mockValidator);
|
|
|
argumentHandler.setConverterSupplier(this::getMockConverter);
|
|
|
|
|
|
Mockito.doThrow(exception).when(mockConverter)
|
|
@@ -470,7 +477,7 @@ public class TestFSConfigToCSConfigArgumentHandler {
|
|
|
"-t");
|
|
|
|
|
|
FSConfigToCSConfigArgumentHandler argumentHandler =
|
|
|
- new FSConfigToCSConfigArgumentHandler(conversionOptions);
|
|
|
+ new FSConfigToCSConfigArgumentHandler(conversionOptions, mockValidator);
|
|
|
argumentHandler.setConverterSupplier(this::getMockConverter);
|
|
|
|
|
|
argumentHandler.parseAndConvert(args);
|
|
@@ -488,7 +495,7 @@ public class TestFSConfigToCSConfigArgumentHandler {
|
|
|
"-r", FSConfigConverterTestCommons.CONVERSION_RULES_FILE, "-p");
|
|
|
|
|
|
FSConfigToCSConfigArgumentHandler argumentHandler =
|
|
|
- new FSConfigToCSConfigArgumentHandler(conversionOptions);
|
|
|
+ new FSConfigToCSConfigArgumentHandler(conversionOptions, mockValidator);
|
|
|
argumentHandler.setConverterSupplier(this::getMockConverter);
|
|
|
|
|
|
argumentHandler.parseAndConvert(args);
|
|
@@ -581,7 +588,8 @@ public class TestFSConfigToCSConfigArgumentHandler {
|
|
|
"-p");
|
|
|
}
|
|
|
FSConfigToCSConfigArgumentHandler argumentHandler =
|
|
|
- new FSConfigToCSConfigArgumentHandler(conversionOptions);
|
|
|
+ new FSConfigToCSConfigArgumentHandler(conversionOptions,
|
|
|
+ mockValidator);
|
|
|
argumentHandler.setConverterSupplier(this::getMockConverter);
|
|
|
|
|
|
argumentHandler.parseAndConvert(args);
|
|
@@ -598,4 +606,49 @@ public class TestFSConfigToCSConfigArgumentHandler {
|
|
|
params.isConvertPlacementRules());
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ public void testValidatorInvocation() throws Exception {
|
|
|
+ setupFSConfigConversionFiles(true);
|
|
|
+
|
|
|
+ FSConfigToCSConfigArgumentHandler argumentHandler =
|
|
|
+ new FSConfigToCSConfigArgumentHandler(conversionOptions,
|
|
|
+ mockValidator);
|
|
|
+
|
|
|
+ String[] args = getArgumentsAsArrayWithDefaults("-f",
|
|
|
+ FSConfigConverterTestCommons.FS_ALLOC_FILE);
|
|
|
+ argumentHandler.parseAndConvert(args);
|
|
|
+
|
|
|
+ verify(mockValidator).validateConvertedConfig(anyString());
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void testValidationSkippedWhenCmdLineSwitchIsDefined()
|
|
|
+ throws Exception {
|
|
|
+ setupFSConfigConversionFiles(true);
|
|
|
+
|
|
|
+ FSConfigToCSConfigArgumentHandler argumentHandler =
|
|
|
+ new FSConfigToCSConfigArgumentHandler(conversionOptions,
|
|
|
+ mockValidator);
|
|
|
+
|
|
|
+ String[] args = getArgumentsAsArrayWithDefaults("-f",
|
|
|
+ FSConfigConverterTestCommons.FS_ALLOC_FILE, "-s");
|
|
|
+ argumentHandler.parseAndConvert(args);
|
|
|
+
|
|
|
+ verifyZeroInteractions(mockValidator);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void testValidationSkippedWhenOutputIsConsole() throws Exception {
|
|
|
+ setupFSConfigConversionFiles(true);
|
|
|
+
|
|
|
+ FSConfigToCSConfigArgumentHandler argumentHandler =
|
|
|
+ new FSConfigToCSConfigArgumentHandler(conversionOptions,
|
|
|
+ mockValidator);
|
|
|
+
|
|
|
+ String[] args = getArgumentsAsArrayWithDefaults("-f",
|
|
|
+ FSConfigConverterTestCommons.FS_ALLOC_FILE, "-s", "-p");
|
|
|
+ argumentHandler.parseAndConvert(args);
|
|
|
+
|
|
|
+ verifyZeroInteractions(mockValidator);
|
|
|
+ }
|
|
|
}
|