|
|
@@ -1371,6 +1371,56 @@ def test_hive_site_sasl():
|
|
|
shutil.rmtree(tmpdir)
|
|
|
|
|
|
|
|
|
+def test_hive_site_multi_metastore_uris():
|
|
|
+ """Test hive-site parsing"""
|
|
|
+ HIVE_SITE = """
|
|
|
+ <configuration>
|
|
|
+ <property>
|
|
|
+ <name>hive.metastore.local</name>
|
|
|
+ <value>false</value>
|
|
|
+ </property>
|
|
|
+
|
|
|
+ <property>
|
|
|
+ <name>hive.metastore.uris</name>
|
|
|
+ <value>thrift://darkside-12345:9998,thrift://darkside-1234:9999</value>
|
|
|
+ </property>
|
|
|
+
|
|
|
+ <property>
|
|
|
+ <name>hive.metastore.warehouse.dir</name>
|
|
|
+ <value>/abc</value>
|
|
|
+ </property>
|
|
|
+
|
|
|
+ <property>
|
|
|
+ <name>hive.metastore.kerberos.principal</name>
|
|
|
+ <value>test/test.com@TEST.COM</value>
|
|
|
+ </property>
|
|
|
+ </configuration>
|
|
|
+ """
|
|
|
+
|
|
|
+ beeswax.hive_site.reset()
|
|
|
+ tmpdir = tempfile.mkdtemp()
|
|
|
+ saved = None
|
|
|
+ try:
|
|
|
+ file(os.path.join(tmpdir, 'hive-site.xml'), 'w').write(HIVE_SITE)
|
|
|
+
|
|
|
+ # We just replace the Beeswax conf variable
|
|
|
+ class Getter(object):
|
|
|
+ def get(self):
|
|
|
+ return tmpdir
|
|
|
+
|
|
|
+ saved = beeswax.conf.BEESWAX_HIVE_CONF_DIR
|
|
|
+ beeswax.conf.BEESWAX_HIVE_CONF_DIR = Getter()
|
|
|
+
|
|
|
+ is_local, host, port, kerberos_principal = beeswax.hive_site.get_metastore()
|
|
|
+ assert_false(is_local)
|
|
|
+ assert_equal(host, 'darkside-12345')
|
|
|
+ assert_equal(port, 9998)
|
|
|
+ finally:
|
|
|
+ if saved is not None:
|
|
|
+ beeswax.conf.BEESWAX_HIVE_CONF_DIR = saved
|
|
|
+ shutil.rmtree(tmpdir)
|
|
|
+
|
|
|
+
|
|
|
def test_collapse_whitespace():
|
|
|
assert_equal("", collapse_whitespace("\t\n\n \n\t \n"))
|
|
|
assert_equal("x", collapse_whitespace("\t\nx\n \n\t \n"))
|