From be18387a8c69f84895aabf1229a5df2e8c2373bc Mon Sep 17 00:00:00 2001 From: richradics Date: Wed, 23 Nov 2016 17:51:19 +0100 Subject: [PATCH] add effective user parameter --- snakebite/commandlineparser.py | 9 ++++++++- test/commandlineparser_test.py | 8 +++++++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/snakebite/commandlineparser.py b/snakebite/commandlineparser.py index 90306bd..5180e1a 100644 --- a/snakebite/commandlineparser.py +++ b/snakebite/commandlineparser.py @@ -118,7 +118,11 @@ class CommandLineParser(object): 'v': {"short": '-v', "long": '--ver', "help": 'Display snakebite version', - "type": int} + "type": int}, + 'u': {"short": '-u', + "long": '--user', + "help": 'Effective HDFS username', + "type": str} } SUB_OPTS = {'R': {"short": '-R', @@ -443,6 +447,9 @@ def setup_client(self): use_trash = self.args.usetrash and not self.args.skiptrash else: use_trash = self.args.usetrash + if 'user' in self.args: + self.user = self.args.user + self.client = HAClient(self.namenodes, use_trash, self.user, self.use_sasl, self.configs['hdfs_namenode_principal'], self.configs['failover_max_attempts'], self.configs['client_retries'], self.configs['client_sleep_base_millis'], self.configs['client_sleep_max_millis'], diff --git a/test/commandlineparser_test.py b/test/commandlineparser_test.py index 4f630ab..6f2c2af 100644 --- a/test/commandlineparser_test.py +++ b/test/commandlineparser_test.py @@ -69,13 +69,19 @@ def test_general_options(self): output = parser.parse('--version 4 ls some_folder'.split()) self.assertEqual(output.version, 4) + output = parser.parse('-u someuser ls some_folder'.split()) + self.assertEqual(output.user, 'someuser') + output = parser.parse('--user someuser ls some_folder'.split()) + self.assertEqual(output.user, 'someuser') + #all options - output = parser.parse('-D -j -n namenode_fqdn -p 1234 -V 4 ls some_folder'.split()) + output = parser.parse('-D -j -n namenode_fqdn -p 1234 -u someuser -V 4 ls some_folder'.split()) self.assertTrue(output.debug) self.assertTrue(output.json) self.assertEqual(output.namenode, "namenode_fqdn") self.assertEqual(output.port, 1234) self.assertEqual(output.version, 4) + self.assertEqual(output.user, 'someuser') #options in illegal position with self.assertRaises(SystemExit):