Volume delete parameters
Handle combinations of "cascade" and "force" for delete operations. APIImpact: New volume delete params Change-Id: Ie57a3d5cc525830b99717e73aba7267a0592c3ca
This commit is contained in:
parent
c0c01576ba
commit
fad493c27c
154
specs/newton/delete-parameters.rst
Normal file
154
specs/newton/delete-parameters.rst
Normal file
@ -0,0 +1,154 @@
|
|||||||
|
..
|
||||||
|
This work is licensed under a Creative Commons Attribution 3.0 Unported
|
||||||
|
License.
|
||||||
|
|
||||||
|
http://creativecommons.org/licenses/by/3.0/legalcode
|
||||||
|
|
||||||
|
===================================================
|
||||||
|
Parameter combinations for delete (vol, snap, etc.)
|
||||||
|
===================================================
|
||||||
|
|
||||||
|
https://blueprints.launchpad.net/cinder/+spec/volume-delete-parameters
|
||||||
|
|
||||||
|
This spec outlines how to improve our volume delete functionality
|
||||||
|
with regards to optional parameters which request non-default
|
||||||
|
behaviors.
|
||||||
|
|
||||||
|
Problem description
|
||||||
|
===================
|
||||||
|
|
||||||
|
It is not possible to combine both volume force delete and cascade delete.
|
||||||
|
|
||||||
|
It is also difficult to add more parameters to volume delete, since
|
||||||
|
they have to interact in a reasonable way with things like os-force-delete,
|
||||||
|
which is part of volume delete from a user's point of view, but not the
|
||||||
|
same API action.
|
||||||
|
|
||||||
|
Use Cases
|
||||||
|
=========
|
||||||
|
|
||||||
|
This makes it easier to delete a volume which may be in an odd state.
|
||||||
|
|
||||||
|
It also simplifies our API by passing optional parameters to delete
|
||||||
|
rather than separate action calls. This allows us to combine the parameters
|
||||||
|
in meaningful ways (force + cascade), as well as extend the same combinations
|
||||||
|
to snapshot-delete, cg-delete, etc., without having to make X delete API
|
||||||
|
actions for each parameter. (eg. os-force-delete, os-force-delete-snapshot,
|
||||||
|
os-force-delete-cg, etc.)
|
||||||
|
|
||||||
|
Also consider if we wish to add the option later to delete an
|
||||||
|
attached volume with a "force-detach" parameter, etc.
|
||||||
|
|
||||||
|
This also should reduce the number of cases where an admin/user needs to use
|
||||||
|
reset-state operations.
|
||||||
|
|
||||||
|
Proposed change
|
||||||
|
===============
|
||||||
|
|
||||||
|
Deprecate use of os-force-delete and make "force" a parameter passed to
|
||||||
|
volume delete like "cascade" is.
|
||||||
|
|
||||||
|
The ability to default "force" to be an admin-only operation via config
|
||||||
|
will be maintained.
|
||||||
|
|
||||||
|
Alternatives
|
||||||
|
------------
|
||||||
|
|
||||||
|
Change nothing.
|
||||||
|
|
||||||
|
Data model impact
|
||||||
|
-----------------
|
||||||
|
|
||||||
|
None
|
||||||
|
|
||||||
|
REST API impact
|
||||||
|
---------------
|
||||||
|
|
||||||
|
* New boolean "force" parameter for volume delete,
|
||||||
|
which defaults to False.
|
||||||
|
|
||||||
|
This will behave the same as os-force-delete if not
|
||||||
|
combined with other arguments.
|
||||||
|
|
||||||
|
If combined with cascade, a cascade delete which
|
||||||
|
ignores the volume and snapshot states will be performed.
|
||||||
|
|
||||||
|
Security impact
|
||||||
|
---------------
|
||||||
|
|
||||||
|
None
|
||||||
|
|
||||||
|
Notifications impact
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
None
|
||||||
|
|
||||||
|
Other end user impact
|
||||||
|
---------------------
|
||||||
|
|
||||||
|
$ cinder delete --force --cascade <volume>
|
||||||
|
|
||||||
|
will be accepted. This gives a "delete this volume regardless
|
||||||
|
of the state of things" operation which does not exist today.
|
||||||
|
|
||||||
|
Performance Impact
|
||||||
|
------------------
|
||||||
|
|
||||||
|
None
|
||||||
|
|
||||||
|
Other deployer impact
|
||||||
|
---------------------
|
||||||
|
|
||||||
|
None
|
||||||
|
|
||||||
|
Developer impact
|
||||||
|
----------------
|
||||||
|
|
||||||
|
None
|
||||||
|
|
||||||
|
Implementation
|
||||||
|
==============
|
||||||
|
|
||||||
|
Assignee(s)
|
||||||
|
-----------
|
||||||
|
|
||||||
|
Primary assignee:
|
||||||
|
eharney
|
||||||
|
|
||||||
|
Work Items
|
||||||
|
----------
|
||||||
|
|
||||||
|
* Add "force" as a parameter to volume delete API
|
||||||
|
* Add logic to handle combination of force and cascade
|
||||||
|
* (eventually) remove os-force-delete with a new API microversion
|
||||||
|
* Look at what to do, if anything, in this same regard for
|
||||||
|
"unmanage", e.g., "unmanage --cascade".
|
||||||
|
|
||||||
|
|
||||||
|
Dependencies
|
||||||
|
============
|
||||||
|
|
||||||
|
None
|
||||||
|
|
||||||
|
|
||||||
|
Testing
|
||||||
|
=======
|
||||||
|
|
||||||
|
New tempest test for volume delete which uses the parameterized
|
||||||
|
version rather than os-force-delete.
|
||||||
|
|
||||||
|
Tempest test for cascade + force volume delete.
|
||||||
|
|
||||||
|
|
||||||
|
Documentation Impact
|
||||||
|
====================
|
||||||
|
|
||||||
|
New arguments for cinderclient volume delete.
|
||||||
|
|
||||||
|
|
||||||
|
References
|
||||||
|
==========
|
||||||
|
|
||||||
|
* Cascade delete
|
||||||
|
https://review.openstack.org/#/c/201748/
|
||||||
|
|
Loading…
Reference in New Issue
Block a user