From 181b1c400ebced6d51517bb38cc73b7612943c85 Mon Sep 17 00:00:00 2001 From: ashrod98 Date: Fri, 25 Dec 2020 17:52:28 +0000 Subject: [PATCH] Add Manila Support on OpenStack SDK This is the spec for adding Manila supprt on the OpenStackSDK. Change-Id: I0c0119595019d6c2f1655f45649cb55925351fe5 --- .../openstacksdk-manila-support.rst | 182 ++++++++++++++++++ 1 file changed, 182 insertions(+) create mode 100644 specs/release_independent/openstacksdk-manila-support.rst diff --git a/specs/release_independent/openstacksdk-manila-support.rst b/specs/release_independent/openstacksdk-manila-support.rst new file mode 100644 index 0000000..dd5fee5 --- /dev/null +++ b/specs/release_independent/openstacksdk-manila-support.rst @@ -0,0 +1,182 @@ +======================================= +Support Manila APIs in the OpenStackSDK +======================================= + +Blueprint link: + +https://tree.taiga.io/project/ashrod98-openstacksdk-manila-support/kanban + +Problem Description +=================== + +Manila is an open source OpenStack Shared File System service that is a software that exists within the OpenStack cloud. It is a collection of microservices and other components that provide self-service management of elastic file system storage infrastructure that can allow you to work with and provision storage via 30+ storage technologies over file system protocols. It is unique in how it is able to add RESTful semantics to consuming shared storage in a reliable and scalable manner. +We aim to improve the common user experience by adding Manila support to the OpenStackSDK, and to reuse OpenStack Identity, Logging, Configuration integration modules without duplicating them into a separate SDK. +This project is part of the resolution defined by the TC Stance on OpenStackSDK and the OpenStackClient. + +Use Cases +========= + +OpenStack Client will be affected as current manila commands are being implemented using python-manilaclient SDK. +OpenStack's Ansible Collections will be affected as it directly uses of the OpenStack SDK. +Developers that use automation tooling will also benefit from incorporating Manila into OpenStack SDK. + +Proposed Changes +================ + +Resources and methods are listed in order of priority + + +The following tasks will be a part of the ``Wallaby Cycle`` + + +Priority 1 +------------ + +* Shares +* Share Export Locations +* Share networks +* Share network subnets +* Share types + +Priority 2 +------------ + +* Share actions - grant access, revoke access, list access rules, change share size, revert to snapshot +* Security services +* User messages +* Share access rules + + +The following will be part of the cycle(s) following Wallaby + +Priority 3 +------------ + +* Share metadata +* Share snapshots - List share snapshots, Show share snapshot details, Create share snapshot, * Update share snapshot, Delete share snapshot +* Scheduler stats +* Availability zones +* Quota sets +* Quota class sets + +Priority 4 +------------ + +* Share replicas +* Share replica export locations +* Share servers +* Services +* Share access rule metadata +* Share groups +* Share group types +* Share group snapshots + +Priority 5 +------------ + +* Share Actions - Reset share state, force delete share, unmanage share +* Share Snapshot - manage share snapshot, unmanage share snapshot, reset share snapshot state, force delete share snapshot +* Share Replicas - resync share replica, reset status of share replica, reset state of share replica, force delete share replica +* Share Servers - reset status of share server + +Priority 6 +------------ + +* Share snapshot instances +* Share instances +* Share instance export location +* Experimental api/share migration + + +Alternatives +--------------- + +Continue using python-manilaclient SDK. +Continue maintenance for python-manilaclient SDK. +Do not implement support for manila in OpenStackSDK. + +These alternative are not inline with TC resolution: +https://review.opendev.org/c/openstack/governance/+/759904 + +Data model impact +-------------------------- + +No impact on the data model. + +Security impact +--------------------- + +No security impact as authentication is already provided by OpenStackCloud before OpenStackSDK is used. + +Notifications impact +--------------------------- + +No notifications impact. + +Other end user impact +------------------------------ + +Improves user experience by providing user the ability to interact with Manila API through OpenStackSDK. + +Performance Impact +---------------------------- + +No current performance impact. Future impact may include mitigating the use of plug-in clients. + +Other deployer impact +----------------------------- + +No other deployer impact. + +Developer impact +------------------------ +Implementing Manila support may make it easier for developers to code scripts using the SDK. +Manila will not stand out within the OpenStackSDK as it is part of a cohesive design. + +Implementation +============== + +Assignee(s) +---------------- + +Primary assignee: +* Ashley Rodriguez +* Nicole Chen +* Mark Tony + +Other contributors: + + +Work Items +---------------- + +* Implement proposed changes +* Write unit tests +* Write documentation +* Write functional tests +* Write end user guide + +Dependencies +============ + +No dependencies at the moment of writing for this project. + +Testing +======= + +Unit tests will be required for each resource. +Functional tests will also be written. + +Documentation Impact +==================== + +For each resource coded, we will concurrently write its documentation. +We will also write an End User Guide. + +References +========== + +* End User Guide OSSDK: https://docs.openstack.org/openstacksdk/latest/user/guides +* Manila API Ref: https://docs.openstack.org/api-ref/shared-file-system/ +* TC Stance: https://review.opendev.org/c/openstack/governance/+/759904 +