API: pyoozie package

Module contents

class pyoozie.WorkflowBuilder(name)[source]
add_action(name, action, action_on_error, kill_on_error='${wf:lastErrorNode()} - ${wf:id()}')[source]
build(indent=False)[source]
class pyoozie.OozieClient(url=None, user=None, timeout=None, verbose=True, **_)[source]
JOB_TYPES = {<ArtifactType.Coordinator: 1>: <class 'pyoozie.model.Coordinator'>, <ArtifactType.CoordinatorAction: 2>: <class 'pyoozie.model.CoordinatorAction'>, <ArtifactType.Workflow: 3>: <class 'pyoozie.model.Workflow'>, <ArtifactType.WorkflowAction: 4>: <class 'pyoozie.model.WorkflowAction'>}
JOB_TYPE_STRINGS = {<ArtifactType.Coordinator: 1>: ('coordinator', 'coordinatorjobs'), <ArtifactType.Workflow: 3>: ('wf', 'workflows')}
STATUS_TYPES = {<ArtifactType.Coordinator: 1>: <enum 'CoordinatorStatus'>, <ArtifactType.CoordinatorAction: 2>: <enum 'CoordinatorActionStatus'>, <ArtifactType.Workflow: 3>: <enum 'WorkflowStatus'>, <ArtifactType.WorkflowAction: 4>: <enum 'WorkflowActionStatus'>}
class Stats[source]
bytes_received
elapsed
errors
requests
reset()[source]
update(response)[source]
admin_available_oozie_servers()[source]
admin_available_timezones()[source]
admin_build_version()[source]
admin_configuration()[source]
admin_instrumentation()[source]
admin_java_properties()[source]
admin_list_all_sharelib()[source]
admin_list_sharelib()[source]
admin_metrics()[source]
admin_os_env()[source]
admin_queue_dump()[source]
admin_status()[source]
job_action_info(job_id)[source]
job_coordinator_action(coordinator_id=None, name=None, user=None, action_number=0, coordinator=None)[source]
job_coordinator_all_active_actions(coordinator_id=None, name=None, user=None, coordinator=None)[source]
job_coordinator_info(coordinator_id=None, name=None, user=None, limit=0)[source]
job_coordinator_kill(coordinator_id=None, name=None, user=None)[source]
job_coordinator_rerun(coordinator_id)[source]
job_coordinator_resume(coordinator_id=None, name=None, user=None)[source]
job_coordinator_suspend(coordinator_id=None, name=None, user=None)[source]
job_coordinator_update(coordinator_id, xml_path, configuration=None)[source]
job_info(job_id)[source]
job_last_coordinator_info(coordinator_id=None, name=None, user=None)[source]
job_workflow_info(workflow_id=None, name=None, user=None)[source]
job_workflow_kill(workflow_id=None, name=None, user=None)[source]
job_workflow_resume(workflow_id=None, name=None, user=None)[source]
job_workflow_start(workflow_id=None, name=None, user=None)[source]
job_workflow_suspend(workflow_id=None, name=None, user=None)[source]
jobs_all_active_coordinators(user=None)[source]
jobs_all_active_workflows(user=None)[source]
jobs_all_coordinators(name=None, user=None, limit=0)[source]
jobs_all_running_coordinators(user=None)[source]
jobs_all_running_workflows(user=None)[source]
jobs_all_suspended_coordinators(user=None)[source]
jobs_all_workflows(name=None, user=None, limit=0)[source]
jobs_coordinator_names(user=None)[source]
jobs_last_coordinator(name, user=None)[source]
jobs_last_workflow(name, user=None)[source]
jobs_running_coordinators(name, user=None)[source]
jobs_running_workflows(name, user=None)[source]
jobs_submit_coordinator(xml_path, configuration=None)[source]
jobs_submit_workflow(xml_path, configuration=None, start=False)[source]
jobs_workflow_names(user=None)[source]
report_stats(to_logger=None)[source]
reset_stats()[source]
exception pyoozie.OozieException(message='', caused_by=None)[source]
classmethod communication_error(message=None, caused_by=None)[source]
classmethod coordinator_action_not_found(artifact_id, action, caused_by=None)[source]
classmethod coordinator_not_found(artifact_id, caused_by=None)[source]
classmethod job_not_found(artifact_id, caused_by=None)[source]
classmethod operation_failed(operation, caused_by=None)[source]
classmethod parse_error(message, caused_by=None)[source]
classmethod required_key_missing(key, artifact, caused_by=None)[source]
classmethod workflow_action_not_found(artifact_id, action, caused_by=None)[source]
classmethod workflow_not_found(artifact_id, caused_by=None)[source]
class pyoozie.ArtifactType[source]

An enumeration.

Coordinator = 1
CoordinatorAction = 2
Workflow = 3
WorkflowAction = 4
class pyoozie.CoordinatorActionStatus[source]

An enumeration.

FAILED = _StatusValue(status_id=1, is_active=False, is_running=False, is_suspendable=False, is_suspended=False)
IGNORED = _StatusValue(status_id=2, is_active=False, is_running=False, is_suspendable=False, is_suspended=False)
KILLED = _StatusValue(status_id=3, is_active=False, is_running=False, is_suspendable=False, is_suspended=False)
READY = _StatusValue(status_id=4, is_active=True, is_running=False, is_suspendable=False, is_suspended=False)
RUNNING = _StatusValue(status_id=5, is_active=True, is_running=True, is_suspendable=True, is_suspended=False)
SKIPPED = _StatusValue(status_id=6, is_active=False, is_running=False, is_suspendable=False, is_suspended=False)
SUBMITTED = _StatusValue(status_id=7, is_active=True, is_running=False, is_suspendable=False, is_suspended=False)
SUCCEEDED = _StatusValue(status_id=8, is_active=False, is_running=False, is_suspendable=False, is_suspended=False)
SUSPENDED = _StatusValue(status_id=9, is_active=True, is_running=True, is_suspendable=False, is_suspended=True)
TIMEDOUT = _StatusValue(status_id=10, is_active=False, is_running=False, is_suspendable=False, is_suspended=False)
UNKNOWN = _StatusValue(status_id=0, is_active=False, is_running=False, is_suspendable=False, is_suspended=False)
WAITING = _StatusValue(status_id=11, is_active=True, is_running=False, is_suspendable=False, is_suspended=False)
class pyoozie.CoordinatorStatus[source]

An enumeration.

DONEWITHERROR = _StatusValue(status_id=1, is_active=False, is_running=False, is_suspendable=False, is_suspended=False)
FAILED = _StatusValue(status_id=2, is_active=False, is_running=False, is_suspendable=False, is_suspended=False)
IGNORED = _StatusValue(status_id=3, is_active=False, is_running=False, is_suspendable=False, is_suspended=False)
KILLED = _StatusValue(status_id=4, is_active=False, is_running=False, is_suspendable=False, is_suspended=False)
PAUSED = _StatusValue(status_id=5, is_active=True, is_running=False, is_suspendable=False, is_suspended=False)
PAUSEDWITHERROR = _StatusValue(status_id=6, is_active=True, is_running=False, is_suspendable=False, is_suspended=False)
PREMATER = _StatusValue(status_id=7, is_active=True, is_running=False, is_suspendable=False, is_suspended=False)
PREP = _StatusValue(status_id=8, is_active=True, is_running=False, is_suspendable=True, is_suspended=False)
PREPPAUSED = _StatusValue(status_id=9, is_active=True, is_running=False, is_suspendable=False, is_suspended=False)
PREPSUSPENDED = _StatusValue(status_id=10, is_active=True, is_running=False, is_suspendable=False, is_suspended=True)
RUNNING = _StatusValue(status_id=11, is_active=True, is_running=True, is_suspendable=True, is_suspended=False)
RUNNINGWITHERROR = _StatusValue(status_id=12, is_active=True, is_running=True, is_suspendable=True, is_suspended=False)
SUCCEEDED = _StatusValue(status_id=13, is_active=False, is_running=False, is_suspendable=False, is_suspended=False)
SUSPENDED = _StatusValue(status_id=14, is_active=True, is_running=True, is_suspendable=False, is_suspended=True)
SUSPENDEDWITHERROR = _StatusValue(status_id=15, is_active=True, is_running=True, is_suspendable=False, is_suspended=True)
UNKNOWN = _StatusValue(status_id=0, is_active=False, is_running=False, is_suspendable=False, is_suspended=False)
class pyoozie.WorkflowActionStatus[source]

An enumeration.

DONE = _StatusValue(status_id=1, is_active=False, is_running=False, is_suspendable=False, is_suspended=False)
END_MANUAL = _StatusValue(status_id=2, is_active=False, is_running=False, is_suspendable=False, is_suspended=False)
END_RETRY = _StatusValue(status_id=3, is_active=False, is_running=False, is_suspendable=False, is_suspended=False)
ERROR = _StatusValue(status_id=4, is_active=False, is_running=False, is_suspendable=False, is_suspended=False)
FAILED = _StatusValue(status_id=5, is_active=False, is_running=False, is_suspendable=False, is_suspended=False)
KILLED = _StatusValue(status_id=6, is_active=False, is_running=False, is_suspendable=False, is_suspended=False)
OK = _StatusValue(status_id=7, is_active=False, is_running=False, is_suspendable=False, is_suspended=False)
PREP = _StatusValue(status_id=8, is_active=True, is_running=False, is_suspendable=False, is_suspended=False)
RUNNING = _StatusValue(status_id=9, is_active=True, is_running=True, is_suspendable=False, is_suspended=False)
START_MANUAL = _StatusValue(status_id=10, is_active=False, is_running=False, is_suspendable=False, is_suspended=False)
START_RETRY = _StatusValue(status_id=11, is_active=False, is_running=False, is_suspendable=False, is_suspended=False)
UNKNOWN = _StatusValue(status_id=0, is_active=False, is_running=False, is_suspendable=False, is_suspended=False)
USER_RETRY = _StatusValue(status_id=12, is_active=True, is_running=False, is_suspendable=False, is_suspended=False)
class pyoozie.WorkflowStatus[source]

An enumeration.

FAILED = _StatusValue(status_id=1, is_active=False, is_running=False, is_suspendable=False, is_suspended=False)
KILLED = _StatusValue(status_id=2, is_active=False, is_running=False, is_suspendable=False, is_suspended=False)
PREP = _StatusValue(status_id=3, is_active=True, is_running=False, is_suspendable=False, is_suspended=False)
RUNNING = _StatusValue(status_id=4, is_active=True, is_running=True, is_suspendable=True, is_suspended=False)
SUCCEEDED = _StatusValue(status_id=5, is_active=False, is_running=False, is_suspendable=False, is_suspended=False)
SUSPENDED = _StatusValue(status_id=6, is_active=True, is_running=True, is_suspendable=False, is_suspended=True)
UNKNOWN = _StatusValue(status_id=0, is_active=False, is_running=False, is_suspendable=False, is_suspended=False)
pyoozie.parse_coordinator_id(string)[source]
pyoozie.parse_workflow_id(string)[source]
class pyoozie.Action(action, name=None, credential=None, retry_max=None, retry_interval=None, on_error=None)[source]

Workflow action nodes carrying concrete actions that perform an action.

credential()[source]
class pyoozie.Configuration(values=None)[source]

Coordinator job submission, workflow, workflow action configuration XML.

class pyoozie.CoordinatorApp(name, workflow_app_path, frequency, start, end=None, timezone=None, workflow_configuration=None, timeout=None, concurrency=None, execution_order=None, throttle=None, parameters=None)[source]
class pyoozie.Credential(values, credential_name, credential_type)[source]

HCatalog, Hive Metastore, HBase, or Hive Server 2 action credentials.

Generates XML of the form:

...
<credentials>
  <credential name='my-hcat-creds' type='hcat'>
     <property>
        <name>hcat.metastore.uri</name>
        <value>HCAT_URI</value>
     </property>
     ...
  </credential>
 </credentials>
 <action name='pig' cred='my-hcat-creds'>
   <pig>
   ...
class pyoozie.Decision(default, choices, name=None, on_error=None)[source]

Node specifying a switch/case.

class pyoozie.Email(to, subject, body, cc=None, bcc=None, content_type=None, attachments=None)[source]

Email action for use within a workflow.

class pyoozie.ExecutionOrder[source]

Execution order used for coordinator jobs.

FIFO = 'FIFO'
LAST_ONLY = 'LAST_ONLY'
LIFO = 'LIFO'
NONE = 'NONE'
class pyoozie.GlobalConfiguration(job_tracker=None, name_node=None, job_xml_files=None, configuration=None)[source]

Global configuration values for all actions in a workflow.

“Oozie allows a global section to reduce the redundant job-tracker and name-node declarations for each action. […] The global section may contain the job-xml, configuration, job-tracker, or name-node that the user would like to set for every action. If a user then redefines one of these in a specific action node, Oozie will update [sic] use the specific declaration instead of the global one for that action.”

“The job-xml element, if present, must refer to a Hadoop JobConf job.xml file bundled in the workflow application.”

class pyoozie.Kill(message, name=None)[source]

Workflow graph terminal node(s) to end upon to indicate failure.

class pyoozie.Parallel(*entities, **kwargs)[source]

Set of entities to execute in parallel (implemented as fork/join tag pair)

class pyoozie.Parameters(values=None)[source]

Coordinator/workflow parameters.

Allows one to specify properties that can be reused in actions. “Properties that are a valid Java identifier, [A-Za-z_][0-9A-Za-z_]* , are available as ‘${NAME}’ variables within the workflow definition.”

“Properties that are not valid Java Identifier, for example ‘job.tracker’, are available via the String wf:conf(String name) function. Valid identifier properties are available via this function as well.”

class pyoozie.Serial(*entities, **kwargs)[source]

Sequence of entities to execute (implemented by chaining entities and ‘OK’ transitions)

identifier()[source]
class pyoozie.Shell(exec_command, job_tracker=None, name_node=None, prepare=None, job_xml_files=None, configuration=None, arguments=None, env_vars=None, files=None, archives=None, capture_output=False)[source]

Workflow shell action (v0.3).

class pyoozie.SubWorkflow(app_path, propagate_configuration=True, configuration=None)[source]

Run another workflow defined in another XML file on HDFS.

An Oozie sub-workflow is an “action [that] runs a child workflow job […]. The parent workflow job will wait until the child workflow job has completed.”

pyoozie.validate_xml_id(identifier)[source]
pyoozie.validate_xml_name(name)[source]
class pyoozie.WorkflowApp(name, parameters=None, configuration=None, credentials=None, job_tracker=None, name_node=None, job_xml_files=None, entities=None)[source]