[EDP] Refactor job manager to support multiple implementations

Registered by Trevor McKay

The original job manager was written to execute and monitor jobs via an Oozie server. As we add new provisioning plugin types, for example the Spark plugin, we will need new EDP implementations for clusters that do not support Oozie.

There are 3 basic operations that the job manager currently performs:
* run a job
* get job status
* cancel a job

If the job manager can select a class which implements these three operations for a particular cluster, then the job manager can be generalized and deal only with high level logic and update of job execution objects.

(detailed spec on its way)

Blueprint information

Status:
Complete
Approver:
Sergey Lukjanov
Priority:
High
Drafter:
Trevor McKay
Direction:
Approved
Assignee:
Trevor McKay
Definition:
Approved
Series goal:
Accepted for juno
Implementation:
Implemented
Milestone target:
milestone icon 2014.2
Started by
Trevor McKay
Completed by
Sergey Lukjanov

Related branches

Sprints

Whiteboard

Gerrit topic: https://review.openstack.org/#q,topic:bp/edp-refactor-job-manager,n,z

Addressed by: https://review.openstack.org/100622
    Refactor the job manager to allow multiple execution engines

Addressed by: https://review.openstack.org/100678
    [EDP] Refactor job manager to support multiple implementations

Addressed by: https://review.openstack.org/101016
    Allow plugins to choose the EDP implementation

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.