Exemplo n.º 1
0
    def test_update_trigger_rules(self):
        oozie_node = ET.Element("dummy")
        op1 = parsed_node.ParsedNode(dummy_mapper.DummyMapper(oozie_node=oozie_node, name="task1"))
        op1.downstream_names = ["task2", "task3"]
        op1.error_xml = "fail1"
        op2 = parsed_node.ParsedNode(dummy_mapper.DummyMapper(oozie_node=oozie_node, name="task2"))
        op2.downstream_names = ["task3"]
        op2.error_xml = "fail1"
        op3 = parsed_node.ParsedNode(dummy_mapper.DummyMapper(oozie_node=oozie_node, name="task3"))
        op3.downstream_names = ["end1"]
        op3.error_xml = "fail1"
        end = parsed_node.ParsedNode(dummy_mapper.DummyMapper(oozie_node=oozie_node, name="end1"))
        fail = parsed_node.ParsedNode(dummy_mapper.DummyMapper(oozie_node=oozie_node, name="fail1"))
        op_dict = {"task1": op1, "task2": op2, "task3": op3, "end1": end, "fail1": fail}

        self.parser.workflow.nodes.update(op_dict)
        self.parser.create_relations()
        self.parser.update_trigger_rules()

        self.assertFalse(op1.is_ok)
        self.assertFalse(op1.is_error)
        self.assertTrue(op2.is_ok)
        self.assertFalse(op2.is_error)
        self.assertTrue(op3.is_ok)
        self.assertFalse(op2.is_error)
        self.assertTrue(end.is_ok)
        self.assertFalse(end.is_error)
        self.assertFalse(fail.is_ok)
        self.assertTrue(fail.is_error)
Exemplo n.º 2
0
    def test_convert_relations(self):
        oozie_node = ET.Element("dummy")
        op1 = parsed_action_node.ParsedActionNode(
            dummy_mapper.DummyMapper(oozie_node=oozie_node, name="task1", dag_name="DAG_NAME_B1"),
            tasks=[self._create_task("task1")],
        )
        op1.downstream_names = ["task2", "task3"]
        op1.error_xml = "fail1"
        op2 = parsed_action_node.ParsedActionNode(
            dummy_mapper.DummyMapper(oozie_node=oozie_node, name="task2", dag_name="DAG_NAME_B2"),
            tasks=[self._create_task("task2")],
        )
        op2.downstream_names = ["task3", "task4"]
        op2.error_xml = "fail1"
        op3 = parsed_action_node.ParsedActionNode(
            dummy_mapper.DummyMapper(oozie_node=oozie_node, name="task3", dag_name="DAG_NAME_B3"),
            tasks=[self._create_task("task3")],
        )
        op3.downstream_names = ["end1"]
        op3.error_xml = "fail1"
        op4 = mock.Mock(
            **{
                "first_task_id": "task4_first",
                "last_task_id": "task4_last",
                "get_downstreams.return_value": ["task1", "task2", "task3"],
                "get_error_downstream_name.return_value": "fail1",
            }
        )
        end = parsed_action_node.ParsedActionNode(
            dummy_mapper.DummyMapper(oozie_node=oozie_node, name="end1", dag_name="DAG_NAME_B4"),
            tasks=[self._create_task("end1")],
        )
        fail = parsed_action_node.ParsedActionNode(
            dummy_mapper.DummyMapper(oozie_node=oozie_node, name="fail1", dag_name="DAG_NAME_B5"),
            tasks=[self._create_task("fail1")],
        )
        op_dict = {"task1": op1, "task2": op2, "task3": op3, "task4": op4, "end1": end, "fail1": fail}
        workflow = self._create_workflow(nodes=op_dict)
        converter = self._create_converter()
        workflow.relations = set()
        converter.convert_relations(workflow)

        self.assertEqual(
            workflow.relations,
            {
                Relation(from_task_id="task1", to_task_id="fail1", is_error=True),
                Relation(from_task_id="task1", to_task_id="task2"),
                Relation(from_task_id="task1", to_task_id="task3"),
                Relation(from_task_id="task2", to_task_id="fail1", is_error=True),
                Relation(from_task_id="task2", to_task_id="task3"),
                Relation(from_task_id="task2", to_task_id="task4_first"),
                Relation(from_task_id="task3", to_task_id="end1"),
                Relation(from_task_id="task3", to_task_id="fail1", is_error=True),
                Relation(from_task_id="task4_last", to_task_id="fail1", is_error=True),
                Relation(from_task_id="task4_last", to_task_id="task1"),
                Relation(from_task_id="task4_last", to_task_id="task2"),
                Relation(from_task_id="task4_last", to_task_id="task3"),
            },
        )
Exemplo n.º 3
0
    def test_update_trigger_rules(self):
        oozie_node = ET.Element("dummy")
        op1 = parsed_action_node.ParsedActionNode(
            dummy_mapper.DummyMapper(oozie_node=oozie_node, name="task1", dag_name="DAG_NAME_B"),
            tasks=[self._create_task("task1")],
        )
        op1.downstream_names = ["task2", "task3"]
        op1.error_xml = "fail1"
        op2 = parsed_action_node.ParsedActionNode(
            dummy_mapper.DummyMapper(oozie_node=oozie_node, name="task2", dag_name="DAG_NAME_B"),
            tasks=[self._create_task("task2")],
        )
        op2.downstream_names = ["task3"]
        op2.error_xml = "fail1"
        op3 = parsed_action_node.ParsedActionNode(
            dummy_mapper.DummyMapper(oozie_node=oozie_node, name="task3", dag_name="DAG_NAME_B"),
            tasks=[self._create_task("task3")],
        )
        op3.downstream_names = ["end1"]
        op3.error_xml = "fail1"
        end = parsed_action_node.ParsedActionNode(
            dummy_mapper.DummyMapper(oozie_node=oozie_node, name="end1", dag_name="DAG_NAME_B"),
            tasks=[self._create_task("end1")],
        )
        fail = parsed_action_node.ParsedActionNode(
            dummy_mapper.DummyMapper(oozie_node=oozie_node, name="fail1", dag_name="DAG_NAME_B"),
            tasks=[self._create_task("fail1")],
        )
        op_dict = {"task1": op1, "task2": op2, "task3": op3, "end1": end, "fail1": fail}
        workflow = self._create_workflow(nodes=op_dict)
        converter = self._create_converter()

        workflow.relations = set()
        converter.convert_relations(workflow)
        converter.update_trigger_rules(workflow)

        self.assertFalse(op1.is_ok)
        self.assertFalse(op1.is_error)
        self.assertTrue(op2.is_ok)
        self.assertFalse(op2.is_error)
        self.assertTrue(op3.is_ok)
        self.assertFalse(op2.is_error)
        self.assertTrue(end.is_ok)
        self.assertFalse(end.is_error)
        self.assertFalse(fail.is_ok)
        self.assertTrue(fail.is_error)
Exemplo n.º 4
0
    def test_create_relations(self):
        oozie_node = ET.Element("dummy")
        op1 = parsed_node.ParsedNode(dummy_mapper.DummyMapper(oozie_node=oozie_node, name="task1"))
        op1.downstream_names = ["task2", "task3"]
        op1.error_xml = "fail1"
        op2 = parsed_node.ParsedNode(dummy_mapper.DummyMapper(oozie_node=oozie_node, name="task2"))
        op2.downstream_names = ["task3", "task4"]
        op2.error_xml = "fail1"
        op3 = parsed_node.ParsedNode(dummy_mapper.DummyMapper(oozie_node=oozie_node, name="task3"))
        op3.downstream_names = ["end1"]
        op3.error_xml = "fail1"
        op4 = mock.Mock(
            **{
                "first_task_id": "task4_first",
                "last_task_id": "task4_last",
                "get_downstreams.return_value": ["task1", "task2", "task3"],
                "get_error_downstream_name.return_value": "fail1",
            }
        )
        end = parsed_node.ParsedNode(dummy_mapper.DummyMapper(oozie_node=oozie_node, name="end1"))
        fail = parsed_node.ParsedNode(dummy_mapper.DummyMapper(oozie_node=oozie_node, name="fail1"))
        op_dict = {"task1": op1, "task2": op2, "task3": op3, "task4": op4, "end1": end, "fail1": fail}
        self.parser.workflow.nodes.update(op_dict)
        self.parser.create_relations()

        self.assertEqual(
            self.parser.workflow.relations,
            {
                Relation(from_task_id="task1", to_task_id="fail1"),
                Relation(from_task_id="task1", to_task_id="task2"),
                Relation(from_task_id="task1", to_task_id="task3"),
                Relation(from_task_id="task2", to_task_id="fail1"),
                Relation(from_task_id="task2", to_task_id="task3"),
                Relation(from_task_id="task2", to_task_id="task4_first"),
                Relation(from_task_id="task3", to_task_id="end1"),
                Relation(from_task_id="task3", to_task_id="fail1"),
                Relation(from_task_id="task4_last", to_task_id="fail1"),
                Relation(from_task_id="task4_last", to_task_id="task1"),
                Relation(from_task_id="task4_last", to_task_id="task2"),
                Relation(from_task_id="task4_last", to_task_id="task3"),
            },
        )
 def _get_dummy_mapper(self):
     return dummy_mapper.DummyMapper(oozie_node=self.oozie_node,
                                     name="test_id",
                                     trigger_rule=TriggerRule.DUMMY)
 def _get_dummy_mapper(self):
     return dummy_mapper.DummyMapper(oozie_node=self.oozie_node,
                                     name="test_id",
                                     dag_name="DAG_NAME_B")
 def setUp(self):
     oozie_node = Element("dummy")
     op1 = dummy_mapper.DummyMapper(oozie_node=oozie_node, name="task1")
     self.p_node = parsed_action_node.ParsedActionNode(op1)