cinder-specs/specs/stein/improve-volume-transfer-records.rst
Yikun Jiang ac54793f1f Appending change for improve-volume-transfer-records bp
1. Use source/destination instead of original/current, because
"current" is misleading since it will no longer be accurate if
two transfers have occurred for the same volume.
2. Change "accept" to " accepted".

Part of blueprint: improve-volume-transfer-records

Change-Id: I5d7c948ee51503e3a92543ba3855171f98a7ea81
2018-12-10 15:59:46 +08:00

151 lines
3.4 KiB
ReStructuredText

..
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
``source_project_id`` and ``destination_project_id``, ``accepted`` 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 destination
project_id after transferring and the source 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:
* ``source_project_id``, this field records the source project_id
before volume transferring.
* ``destination_project_id``, this field records the destination project_id
after volume transferring.
* ``accepted``, 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 ``source_project_id`` and ``destination_project_id``, ``accepted``
fields to ``transfer`` table
* Add ``source_project_id`` and ``destination_project_id``, ``accepted``
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