From e460d8dcdb601f4d3897218c39f26c008b7b1ac5 Mon Sep 17 00:00:00 2001 From: Yikun Jiang Date: Tue, 23 Oct 2018 20:34:21 +0800 Subject: [PATCH] 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 --- .../stein/improve-volume-transfer-records.rst | 150 ++++++++++++++++++ 1 file changed, 150 insertions(+) create mode 100644 specs/stein/improve-volume-transfer-records.rst diff --git a/specs/stein/improve-volume-transfer-records.rst b/specs/stein/improve-volume-transfer-records.rst new file mode 100644 index 00000000..3bd5e109 --- /dev/null +++ b/specs/stein/improve-volume-transfer-records.rst @@ -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 + +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