def setUp(self): super(TestWithHadoop, self).setUp() # FIXME (HUE-2562): The tests unfortunately require superuser at the # moment, but should be rewritten to not need it. self.c = make_logged_in_client(is_superuser=True) grant_access("test", "test", "pig") self.user = User.objects.get(username='******') self.c.post(reverse('pig:install_examples')) self.cluster = pseudo_hdfs4.shared_cluster() self.api = OozieApi(self.cluster.fs, self.cluster.jt, self.user)
def test_create_workflow(self): cluster = pseudo_hdfs4.shared_cluster() api = OozieApi(cluster.fs, self.user) xattrs = { 'parameters': [ {'name': 'output', 'value': '/tmp'}, {'name': '-param', 'value': 'input=/data'}, # Alternative way for params {'name': '-optimizer_off', 'value': 'SplitFilter'}, {'name': '-v', 'value': ''}, ], 'resources': [ {'type': 'file', 'value': '/tmp/file'}, {'type': 'archive', 'value': '/tmp/file.zip'}, ], 'hadoopProperties': [ {'name': 'mapred.map.tasks.speculative.execution', 'value': 'false'}, {'name': 'mapred.job.queue', 'value': 'fast'}, ] } pig_script = create_script(self.user, xattrs) params = json.dumps([ {'name': 'output', 'value': '/tmp2'}, ]) workflow = api._create_workflow(pig_script, params) pig_action = workflow.start.get_child('to').get_full_node() assert_equal([ {u'type': u'argument', u'value': u'-param'}, {u'type': u'argument', u'value': u'output=/tmp2'}, {u'type': u'argument', u'value': u'-param'}, {u'type': u'argument', u'value': u'input=/data'}, {u'type': u'argument', u'value': u'-optimizer_off'}, {u'type': u'argument', u'value': u'SplitFilter'}, {u'type': u'argument', u'value': u'-v'}, ], pig_action.get_params()) assert_equal([ {u'name': u'mapred.map.tasks.speculative.execution', u'value': u'false'}, {u'name': u'mapred.job.queue', u'value': u'fast'}, ], pig_action.get_properties()) assert_equal(['/tmp/file'], pig_action.get_files()) assert_equal([ {u'dummy': u'', u'name': u'/tmp/file.zip'}, ], pig_action.get_archives())