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
150
specs/stein/improve-volume-transfer-records.rst
Normal file
150
specs/stein/improve-volume-transfer-records.rst
Normal file
@ -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…
x
Reference in New Issue
Block a user