|
@@ -23,7 +23,9 @@ import static org.junit.Assert.assertNull;
|
|
|
import static org.junit.Assert.assertTrue;
|
|
|
|
|
|
import org.apache.hadoop.hdfs.protocol.HdfsConstants;
|
|
|
+import org.apache.hadoop.hdfs.server.common.HdfsServerConstants.RollingUpgradeStartupOption;
|
|
|
import org.apache.hadoop.hdfs.server.common.HdfsServerConstants.StartupOption;
|
|
|
+import org.junit.Assert;
|
|
|
import org.junit.Test;
|
|
|
|
|
|
public class TestNameNodeOptionParsing {
|
|
@@ -102,4 +104,47 @@ public class TestNameNodeOptionParsing {
|
|
|
assertNull(opt);
|
|
|
}
|
|
|
|
|
|
+ @Test(timeout = 10000)
|
|
|
+ public void testRollingUpgrade() {
|
|
|
+ {
|
|
|
+ final String[] args = {"-rollingUpgrade"};
|
|
|
+ final StartupOption opt = NameNode.parseArguments(args);
|
|
|
+ assertNull(opt);
|
|
|
+ }
|
|
|
+
|
|
|
+ {
|
|
|
+ final String[] args = {"-rollingUpgrade", "started"};
|
|
|
+ final StartupOption opt = NameNode.parseArguments(args);
|
|
|
+ assertEquals(StartupOption.ROLLINGUPGRADE, opt);
|
|
|
+ assertEquals(RollingUpgradeStartupOption.STARTED, opt.getRollingUpgradeStartupOption());
|
|
|
+ assertTrue(RollingUpgradeStartupOption.STARTED.matches(opt));
|
|
|
+ }
|
|
|
+
|
|
|
+ {
|
|
|
+ final String[] args = {"-rollingUpgrade", "downgrade"};
|
|
|
+ final StartupOption opt = NameNode.parseArguments(args);
|
|
|
+ assertEquals(StartupOption.ROLLINGUPGRADE, opt);
|
|
|
+ assertEquals(RollingUpgradeStartupOption.DOWNGRADE, opt.getRollingUpgradeStartupOption());
|
|
|
+ assertTrue(RollingUpgradeStartupOption.DOWNGRADE.matches(opt));
|
|
|
+ }
|
|
|
+
|
|
|
+ {
|
|
|
+ final String[] args = {"-rollingUpgrade", "rollback"};
|
|
|
+ final StartupOption opt = NameNode.parseArguments(args);
|
|
|
+ assertEquals(StartupOption.ROLLINGUPGRADE, opt);
|
|
|
+ assertEquals(RollingUpgradeStartupOption.ROLLBACK, opt.getRollingUpgradeStartupOption());
|
|
|
+ assertTrue(RollingUpgradeStartupOption.ROLLBACK.matches(opt));
|
|
|
+ }
|
|
|
+
|
|
|
+ {
|
|
|
+ final String[] args = {"-rollingUpgrade", "foo"};
|
|
|
+ try {
|
|
|
+ NameNode.parseArguments(args);
|
|
|
+ Assert.fail();
|
|
|
+ } catch(IllegalArgumentException iae) {
|
|
|
+ // the exception is expected.
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
}
|