Sahara/api-v2

This page is currently being refactored to track the API conversion efforts for sahara.

The specification describing the high level changes to the API can be found at http://specs.openstack.org/openstack/sahara-specs/specs/backlog/api-v2-experimental-impl.html

The process describing the general workflow process for implementing the new API can be found within the etherpad for the Mitaka design summit.

Work Items
The following sub-sections will contain itemized lists of the individual changes to be done for the experimental phases of the API conversion process.

Each item should contain the following entries:
 * Name
 * Description of work
 * Estimated Load
 * Requires Spec
 * Assignee
 * Status

Most of these entries are self explanatory, the "Estimated Load" entry should be one of "small", "medium", or "large", this should describe the estimated size of the task where small is less than 1 day work, medium may be less than 5 days work, and large is greater than 5 days. These are not meant to be hard deadlines, but general estimates of the complexity for any given task.

The "Status" entry should be one of; "not started", "started", or a link to the review(s) for the task.

initial v2 commit
Description: this patch will create the initial "/v2" endpoint structure. it will migrate all the current endpoints into the new URIs. this change will also remove the project ID from the URI and add it to an OpenStack-Project-ID header.

Estimated Load: medium

Assignee: elmiko (Michael McCune)

Status: https://review.openstack.org/#/c/273316/

Add microversion support
Description: The v2 endpoints should all respect microversion requests. These should follow the current best practices as described by the API working group and implemented by projects like Nova and Ironic. The current state of API-WG guidelines is in process, but these should be followed as they develop.

Estimated Load: large

Requires Spec: yes

Assignee:

Status: not started

Add version discovery
Description: The root version discovery mechanism should be upgraded to follow the API-WG guidelines on this process, alternatively the json-home draft should be investigated for usage here. The spec for this feature should address the current version page, the new version page, and the eventual deprecation of the v1.1 api.

Estimated Load: medium

Requires Spec: yes

Assignee:

Status: not started

Add an "actions" endpoint
Description: To help with asynchronous actions, and workflows which require greater introspection, an action style endpoint should be added. This endpoint may initially be limited to the cluster operations only, but as the feature is explored it may also encompass job style actions.

Estimated Load: large

Requires Spec: yes

Assignee:

Status: not started

Update registry images tagging
Description: The /images/.../tag and /images/.../untag endpoints should be refactored to conform with API working group guidelines for metadata described at http://specs.openstack.org/openstack/api-wg/guidelines/metadata.html

Estimated Load: medium

Requires Spec: no

Assignee: shuyingya

Status: completed https://review.openstack.org/#/c/421827/

Rename job execution and templates endpoints
Description: The .../jobs endpoint should be renamed to .../job-templates, and then the .../job-executions endpoint should be renamed to .../jobs

Estimated Load: small

Requires Spec: no

Assignee: Shu Yingya

Status: completed https://review.openstack.org/#/c/441915/

Refactor start job process
Description: executing a job template through the /jobs/{job_id}/execute endpoint should be changed to a POST operation on the new /jobs endpoint.

Estimated Load: medium

Requires Spec: no

Assignee: Shu Yingya

Status: completed https://review.openstack.org/#/c/443155/

Refactor cancel job process
Description: cancelling a job execution through the /job-executions/{job_execution_id}/cancel endpoint should be removed in favor of requesting a cancelled state on a PATCH to the new /jobs/{job_id} endpoint.

Estimated Load: medium

Requires Spec: no

Assignee: Shu Yingya

Status: completed https://review.openstack.org/#/c/443156/

Remove job-binary-internal endpoint
Description: /job-binary-internals should be removed in favor of /job-binaries as the latter accepts internal database referenced items, an endpoint under /job-binaries can be created for uploading files(if required).

Estimated Load: large (if replacement is required)

Requires Spec: yes

Assignee: Marianne Linhares Monteiro

Status: started https://review.openstack.org/#/c/448113/1

Refactor refresh-status for jobs
Description: /job-executions/{job_execution_id}/refresh-status should be removed in favor of using a GET on the new /jobs/{job_id} endpoint for running job executions.

Estimated Load: medium

Requires Spec: no

Assignee: Shu Yingya

Status: completed https://review.openstack.org/444103

Convert update methods to use PATCH
Description: all update operations should synchronize around using PATCH instead of PUT for partial resource updates.

Estimated Load: small

Requires Spec: no

Assignee: Marianne Linhares Monteiro

Status: completed https://review.openstack.org/#/c/450484/

Rename hadoop_version
Description: hadoop_version should be changed to plugin_version

Estimated Load: small

Requires Spec: no

Assignee: Marianne Linhares Monteiro

Status: completed https://review.openstack.org/#/c/454758/

Rename oozie_job_id
Description: oozie_job_id should be changed to engine_job_id

Estimated Load: small

Requires Spec: no

Assignee: Marianne Linhares Monteiro

Status: completed https://review.openstack.org/#/c/455066/

Confirm payload wrapping
Description: all returned payloads should be wrapped in their type, this is currently true for the API and should remain so for consistency.

Estimated Load: medium

Requires Spec: no

Assignee:

Status: not started