Jump to: navigation, search

Difference between revisions of "Sahara/api-v2"

(adding cancel job item)
(Endpoint Updates)
 
(37 intermediate revisions by 7 users not shown)
Line 1: Line 1:
 
This page is currently being refactored to track the API conversion efforts for sahara.
 
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 https://review.openstack.org/#/c/212172
+
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 [https://etherpad.openstack.org/p/sahara-mitaka-apiv2 etherpad for the Mitaka design summit].
 
The process describing the general workflow process for implementing the new API can be found within the [https://etherpad.openstack.org/p/sahara-mitaka-apiv2 etherpad for the Mitaka design summit].
Line 34: Line 34:
  
 
=== New Features ===
 
=== New Features ===
 +
 +
==== 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
  
 
=== Endpoint Updates ===
 
=== Endpoint Updates ===
Line 45: Line 81:
 
'''Requires Spec''': no
 
'''Requires Spec''': no
  
'''Assignee''':
+
'''Assignee''': shuyingya
  
'''Status''': not started
+
'''Status''': completed https://review.openstack.org/#/c/421827/
  
 
==== Rename job execution and templates endpoints ====
 
==== Rename job execution and templates endpoints ====
Line 57: Line 93:
 
'''Requires Spec''': no
 
'''Requires Spec''': no
  
'''Assignee''':
+
'''Assignee''': Shu Yingya
  
'''Status''': not started
+
'''Status''': completed https://review.openstack.org/#/c/441915/
  
 
==== Refactor start job process ====
 
==== Refactor start job process ====
Line 69: Line 105:
 
'''Requires Spec''': no
 
'''Requires Spec''': no
  
'''Assignee''':
+
'''Assignee''': Shu Yingya
  
'''Status''': not started
+
'''Status''': completed https://review.openstack.org/#/c/443155/
  
 
==== Refactor cancel job process ====
 
==== 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.
 
'''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/
 +
 +
=== JSON Payload Changes ===
 +
 +
==== 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
 
'''Estimated Load''': medium

Latest revision as of 15:43, 5 May 2017

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.

Foundation

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/

New Features

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

Endpoint Updates

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/

JSON Payload Changes

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