cinder-specs/specs/juno/deprecate_v1_api.rst
Mike Perez 8ca13afc49 Introduce use case section
This will now require a separate section "Use Cases". This was
originally within "Problem description", but use cases seems to be
missed when it was filled out. This will hopefully improve spec
submission.

Change-Id: I3615ca5ff5c46851e682739a8343242e2f1b0a8d
2015-04-15 22:20:56 -07:00

135 lines
3.1 KiB
ReStructuredText

..
This work is licensed under a Creative Commons Attribution 3.0 Unported
License.
http://creativecommons.org/licenses/by/3.0/legalcode
==========================================
Deprecate Cinder V1 API
==========================================
https://blueprints.launchpad.net/cinder/+spec/deprecate-v1-api
The Cinder V1 API should be deprecated as v2 has been developed back in
Grizzly and stable. Newer features are being developed to v2, that v1 will
never have.
Problem description
===================
The v2 API switch involves some changes from clients to make things more
consistent like `display_name` becoming `name` and `display_description` and
`description`. This is done on both volume and snapshot controllers. It is
assumed there are many clients out there still supporting v1, as well as many
deployed clouds still using v1 that would need to make some changes to ease the
switch.
Use Cases
=========
Proposed change
===============
Leave v1 enabled for Juno, give a warning for enabling it though in Cinder API
service startup. Both /v1 and /v2 can work at the same time which can allow
time to switch clients over in the user's pace. In K, turn off v1.
Alternatives
------------
n/a
Data model impact
-----------------
n/a
REST API impact
---------------
/v1 will continue to work as normal and serve incoming requests.
Security impact
---------------
n/a
Notifications impact
--------------------
n/a
Other end user impact
---------------------
/v1 will continue to work as normal and serve incoming requests. If the end
user hits <ip>:8776/ they will see v2 listed as current and v1 listed as
deprecated.
Performance Impact
------------------
n/a
Other deployer impact
---------------------
The deployer will have to make sure they have enable_v1_api=true in their
cinder.conf. In versions older than Juno, enable_v1_api was default to true,
but Juno will have this option set to false by default.
Developer impact
----------------
n/a
Implementation
==============
Assignee(s)
-----------
Primary assignee:
<thingee>
Work Items
----------
* Have devstack set enable_v1_api=true in lib/cinder.
* Add changes to grenade to set enable_v1_api=true.
* Add v2 support to Nova when using Cinder client, but to also support v1 if
still enabled.
* Add deprecation warnings to Cinder API for enabling v1 API, and set
enable_v1_api to default to false.
* Update documentation API ref/spec pages. Update the ops guide where
appropriate.
Dependencies
============
* Devstack support for Cinder v2: https://review.openstack.org/#/c/22489/
* Nova support for Cinder for v2: https://review.openstack.org/#/c/43986/
* Devstack defaulting to enable_v1_api=true:
https://review.openstack.org/#/c/102568
* Make sure greneade tests still pass.
Testing
=======
Unit tests for v1 will still exist. Tempest will still do v1 tests in Juno.
Documentation Impact
====================
V1 Cinder documentation will mention it's deprecated where it's appropriate.
Instructions for upgrade and keeping v1 enabled can also be provided. This
includes the reference, spec, and ops docs.
References
==========
n/a