in o2a/converter/workflow_xml_parser.py [0:0]
def parse_start_node(self, start_node):
"""
The start node is the entry point for a workflow job, it indicates the
first workflow node the workflow job must transition to.
When a workflow is started, it automatically transitions to the
node specified in the start.
A workflow definition must have one start node.
"""
# Theoretically this could cause conflicts, but it is very unlikely
start_name = "start_node_" + str(uuid.uuid4())[:4]
mapper = StartMapper(
oozie_node=start_node,
name=start_name,
dag_name=self.workflow.dag_name,
props=self.props,
trigger_rule=TriggerRule.ALWAYS,
)
oozie_control_node = OozieControlNode(mapper)
oozie_control_node.downstream_names.append(start_node.attrib["to"])
mapper.on_parse_node()
logging.info(f"Parsed {mapper.name} as Start Node.")
self.workflow.nodes[start_name] = oozie_control_node