Add Manila Support on OpenStack SDK

This is the spec for adding Manila supprt on the OpenStackSDK.

Change-Id: I0c0119595019d6c2f1655f45649cb55925351fe5
This commit is contained in:
ashrod98 2020-12-25 17:52:28 +00:00
parent 899ea32680
commit 181b1c400e
1 changed files with 182 additions and 0 deletions

View File

@ -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 <ashrod98>
* Nicole Chen <arkaruki>
* 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