Improve volume transfer records
This spec proposes to improve volume transfer records by adding ``original_project_id`` and ``current_project_id``, ``accept`` fields to ``transfer`` table and related api responses, makes it easier for users to trace and audit the volume transfer history. Change-Id: Ia6f1824f44a6297fc3696bdf4a86f0d0758583c6 Blueprint: improve-volume-transfer-records
This commit is contained in:
parent
539f85ecc5
commit
e460d8dcdb
|
@ -0,0 +1,150 @@
|
||||||
|
..
|
||||||
|
This work is licensed under a Creative Commons Attribution 3.0 Unported
|
||||||
|
License.
|
||||||
|
|
||||||
|
http://creativecommons.org/licenses/by/3.0/legalcode
|
||||||
|
|
||||||
|
===============================
|
||||||
|
Improve volume transfer records
|
||||||
|
===============================
|
||||||
|
https://blueprints.launchpad.net/cinder/+spec/improve-volume-transfer-records
|
||||||
|
|
||||||
|
This blueprint proposes to improve volume transfer records by adding
|
||||||
|
``original_project_id`` and ``current_project_id``, ``accept`` fields to
|
||||||
|
``transfer`` table and related api responses, makes it easier for users to
|
||||||
|
trace the volume transfer history.
|
||||||
|
|
||||||
|
Problem description
|
||||||
|
===================
|
||||||
|
|
||||||
|
Currently, the volume transfer record does not include the current project_id
|
||||||
|
after transferring and the original project_id before transferring. These
|
||||||
|
fields are very useful for admins and operators to trace the transfer
|
||||||
|
history.
|
||||||
|
|
||||||
|
And also once the transfer is deleted, the user can't determine if this
|
||||||
|
transfer had been accepted or not before it was deleted.
|
||||||
|
|
||||||
|
It is bad for admins and users to trace volume historical track between
|
||||||
|
project and audit the volume records.
|
||||||
|
|
||||||
|
Use Cases
|
||||||
|
===================
|
||||||
|
* In order to trace the volume transfer history, the admin wants to know who
|
||||||
|
was the volume owner before transferring.
|
||||||
|
* The admin wants to know whether a deleted transfer had been accepted or not.
|
||||||
|
|
||||||
|
Proposed change
|
||||||
|
===============
|
||||||
|
This spec proposes to do
|
||||||
|
|
||||||
|
1. Add three new fields to ``transfer`` table:
|
||||||
|
|
||||||
|
* ``original_project_id``, this field records the original project_id
|
||||||
|
before volume transferring.
|
||||||
|
|
||||||
|
* ``current_project_id``, this field records the current project_id after
|
||||||
|
volume transferring.
|
||||||
|
|
||||||
|
* ``accept``, this field records if this transfer was accepted or not.
|
||||||
|
|
||||||
|
2. Add a new microverion API to add above fields to the response of follow
|
||||||
|
API:
|
||||||
|
|
||||||
|
- Create a volume transfer POST /v3/{project_id}/volume-transfers
|
||||||
|
|
||||||
|
- Show volume transfer detail GET /v3/{project_id}/volume-transfers
|
||||||
|
|
||||||
|
- List volume transfer and detail GET
|
||||||
|
/v3/{project_id}/volume-transfers/detail
|
||||||
|
|
||||||
|
And the response of "List volume transfer (non-detail)" API will not
|
||||||
|
include these fields.
|
||||||
|
|
||||||
|
Alternatives
|
||||||
|
------------
|
||||||
|
|
||||||
|
The admins could find part of volume transferring info from log, but it's
|
||||||
|
difficult to find it out easily, especially when the user wants to audit a
|
||||||
|
very old volume transfer.
|
||||||
|
|
||||||
|
|
||||||
|
REST API impact
|
||||||
|
---------------
|
||||||
|
|
||||||
|
A new microversion will be created to add these new added fields to transfer
|
||||||
|
related API responses.
|
||||||
|
|
||||||
|
Data model impact
|
||||||
|
-----------------
|
||||||
|
|
||||||
|
None
|
||||||
|
|
||||||
|
Security impact
|
||||||
|
---------------
|
||||||
|
|
||||||
|
None
|
||||||
|
|
||||||
|
Notifications impact
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
Notifications will be changed to add these new added fields.
|
||||||
|
|
||||||
|
Other end user impact
|
||||||
|
---------------------
|
||||||
|
|
||||||
|
None
|
||||||
|
|
||||||
|
Performance Impact
|
||||||
|
------------------
|
||||||
|
|
||||||
|
None
|
||||||
|
|
||||||
|
Other deployer impact
|
||||||
|
---------------------
|
||||||
|
|
||||||
|
None
|
||||||
|
|
||||||
|
Developer impact
|
||||||
|
----------------
|
||||||
|
|
||||||
|
None
|
||||||
|
|
||||||
|
Implementation
|
||||||
|
==============
|
||||||
|
|
||||||
|
Assignee(s)
|
||||||
|
-----------
|
||||||
|
|
||||||
|
Primary assignee:
|
||||||
|
Yikun Jiang <yikunkero@gmail.com>
|
||||||
|
|
||||||
|
Work Items
|
||||||
|
----------
|
||||||
|
* Add ``original_project_id`` and ``current_project_id``, ``accept`` fields to
|
||||||
|
``transfer`` table
|
||||||
|
* Add ``original_project_id`` and ``current_project_id``, ``accept`` fields to
|
||||||
|
related API.
|
||||||
|
* Implement changes for python-cinderclient to support list transfer with
|
||||||
|
``--detail``.
|
||||||
|
* Update related transfer api doc.
|
||||||
|
|
||||||
|
Dependencies
|
||||||
|
============
|
||||||
|
|
||||||
|
None
|
||||||
|
|
||||||
|
Testing
|
||||||
|
=======
|
||||||
|
|
||||||
|
* Unit-tests, tempest and other related test should be implemented
|
||||||
|
|
||||||
|
Documentation Impact
|
||||||
|
====================
|
||||||
|
|
||||||
|
None
|
||||||
|
|
||||||
|
References
|
||||||
|
==========
|
||||||
|
|
||||||
|
None
|
Loading…
Reference in New Issue