public virtual void SetUp() { conf = new Configuration(); conf.Set(YarnConfiguration.RmHaIds, RmNodeIdsUntrimmed); conf.Set(YarnConfiguration.RmHaId, Rm1NodeIdUntrimmed); foreach (string confKey in YarnConfiguration.GetServiceAddressConfKeys(conf)) { // configuration key itself cannot contains space/tab/return chars. conf.Set(HAUtil.AddSuffix(confKey, Rm1NodeId), Rm1AddressUntrimmed); conf.Set(HAUtil.AddSuffix(confKey, Rm2NodeId), Rm2Address); } }
public virtual void TestVerifyAndSetConfiguration() { try { HAUtil.VerifyAndSetConfiguration(conf); } catch (YarnRuntimeException) { NUnit.Framework.Assert.Fail("Should not throw any exceptions."); } NUnit.Framework.Assert.AreEqual("Should be saved as Trimmed collection", StringUtils .GetStringCollection(RmNodeIds), HAUtil.GetRMHAIds(conf)); NUnit.Framework.Assert.AreEqual("Should be saved as Trimmed string", Rm1NodeId, HAUtil .GetRMHAId(conf)); foreach (string confKey in YarnConfiguration.GetServiceAddressConfKeys(conf)) { NUnit.Framework.Assert.AreEqual("RPC address not set for " + confKey, Rm1Address, conf.Get(confKey)); } conf.Clear(); conf.Set(YarnConfiguration.RmHaIds, Rm1NodeId); try { HAUtil.VerifyAndSetConfiguration(conf); } catch (YarnRuntimeException e) { NUnit.Framework.Assert.AreEqual("YarnRuntimeException by verifyAndSetRMHAIds()", HAUtil.BadConfigMessagePrefix + HAUtil.GetInvalidValueMessage(YarnConfiguration. RmHaIds, conf.Get(YarnConfiguration.RmHaIds) + "\nHA mode requires atleast two RMs" ), e.Message); } conf.Clear(); // simulate the case YarnConfiguration.RM_HA_ID is not set conf.Set(YarnConfiguration.RmHaIds, Rm1NodeId + "," + Rm2NodeId); foreach (string confKey_1 in YarnConfiguration.GetServiceAddressConfKeys(conf)) { conf.Set(HAUtil.AddSuffix(confKey_1, Rm1NodeId), Rm1Address); conf.Set(HAUtil.AddSuffix(confKey_1, Rm2NodeId), Rm2Address); } try { HAUtil.VerifyAndSetConfiguration(conf); } catch (YarnRuntimeException e) { NUnit.Framework.Assert.AreEqual("YarnRuntimeException by getRMId()", HAUtil.BadConfigMessagePrefix + HAUtil.GetNeedToSetValueMessage(YarnConfiguration.RmHaId), e.Message); } conf.Clear(); conf.Set(YarnConfiguration.RmHaId, RmInvalidNodeId); conf.Set(YarnConfiguration.RmHaIds, RmInvalidNodeId + "," + Rm1NodeId); foreach (string confKey_2 in YarnConfiguration.GetServiceAddressConfKeys(conf)) { // simulate xml with invalid node id conf.Set(confKey_2 + RmInvalidNodeId, RmInvalidNodeId); } try { HAUtil.VerifyAndSetConfiguration(conf); } catch (YarnRuntimeException e) { NUnit.Framework.Assert.AreEqual("YarnRuntimeException by addSuffix()", HAUtil.BadConfigMessagePrefix + HAUtil.GetInvalidValueMessage(YarnConfiguration.RmHaId, RmInvalidNodeId), e.Message ); } conf.Clear(); // simulate the case HAUtil.RM_RPC_ADDRESS_CONF_KEYS are not set conf.Set(YarnConfiguration.RmHaId, Rm1NodeId); conf.Set(YarnConfiguration.RmHaIds, Rm1NodeId + "," + Rm2NodeId); try { HAUtil.VerifyAndSetConfiguration(conf); NUnit.Framework.Assert.Fail("Should throw YarnRuntimeException. by Configuration#set()" ); } catch (YarnRuntimeException e) { string confKey_3 = HAUtil.AddSuffix(YarnConfiguration.RmAddress, Rm1NodeId); NUnit.Framework.Assert.AreEqual("YarnRuntimeException by Configuration#set()", HAUtil .BadConfigMessagePrefix + HAUtil.GetNeedToSetValueMessage(HAUtil.AddSuffix(YarnConfiguration .RmHostname, Rm1NodeId) + " or " + confKey_3), e.Message); } // simulate the case YarnConfiguration.RM_HA_IDS doesn't contain // the value of YarnConfiguration.RM_HA_ID conf.Clear(); conf.Set(YarnConfiguration.RmHaIds, Rm2NodeId + "," + Rm3NodeId); conf.Set(YarnConfiguration.RmHaId, Rm1NodeIdUntrimmed); foreach (string confKey_4 in YarnConfiguration.GetServiceAddressConfKeys(conf)) { conf.Set(HAUtil.AddSuffix(confKey_4, Rm1NodeId), Rm1AddressUntrimmed); conf.Set(HAUtil.AddSuffix(confKey_4, Rm2NodeId), Rm2Address); conf.Set(HAUtil.AddSuffix(confKey_4, Rm3NodeId), Rm3Address); } try { HAUtil.VerifyAndSetConfiguration(conf); } catch (YarnRuntimeException e) { NUnit.Framework.Assert.AreEqual("YarnRuntimeException by getRMId()'s validation", HAUtil.BadConfigMessagePrefix + HAUtil.GetRMHAIdNeedToBeIncludedMessage("[rm2, rm3]" , Rm1NodeId), e.Message); } }