class EffectiveUserTest(MiniClusterTestBase): ERR_MSG_TOUCH = "org.apache.hadoop.security.AccessControlException\nPermission denied: user=__foobar" ERR_MSG_STAT = "`/foobar2': No such file or directory" VALID_FILE = '/foobar' INVALID_FILE = '/foobar2' def setUp(self): self.custom_client = Client(self.cluster.host, self.cluster.port) self.custom_foobar_client = Client(host=self.cluster.host, port=self.cluster.port, effective_user='******') def test_touch(self): print(tuple(self.custom_client.touchz([self.VALID_FILE]))) try: tuple(self.custom_foobar_client.touchz([self.INVALID_FILE])) except Exception as e: self.assertTrue(e.args[0].startswith(self.ERR_MSG_TOUCH)) self.custom_client.stat([self.VALID_FILE]) try: self.custom_client.stat([self.INVALID_FILE]) except Exception as e: self.assertEquals(e.args[0], self.ERR_MSG_STAT)
class EffectiveUserTest(MiniClusterTestBase): ERR_MSG_TOUCH = "org.apache.hadoop.security.AccessControlException\nPermission denied: user=__foobar" ERR_MSG_STAT = "`/foobar2': No such file or directory" VALID_FILE = '/foobar' INVALID_FILE = '/foobar2' def setUp(self): self.custom_client = Client(self.cluster.host, self.cluster.port) self.custom_foobar_client = Client(host=self.cluster.host, port=self.cluster.port, effective_user='******') def test_touch(self): print tuple(self.custom_client.touchz([self.VALID_FILE])) try: tuple(self.custom_foobar_client.touchz([self.INVALID_FILE])) except Exception, e: self.assertTrue(e.message.startswith(self.ERR_MSG_TOUCH)) self.custom_client.stat([self.VALID_FILE]) try: self.custom_client.stat([self.INVALID_FILE]) except Exception, e: self.assertEquals(e.message, self.ERR_MSG_STAT)
from snakebite.client import Client from constants import * client = Client('localhost', NAMENODE_PORT) # Create input.txt print list(client.touchz(['/input/input.txt'])) # copy over input.txt for f in client.copyToLocal(['/input/input.txt'], '/tmp'): print f # print text for l in client.text(['/input/input.txt']): print l