Support Manila APIs in the OpenStackSDK¶
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.
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.
Resources and methods are listed in order of priority
The following tasks will be a part of the
Share Export Locations
Share network subnets
Share actions - grant access, revoke access, list access rules, change share size, revert to snapshot
Share access rules
The following will be part of the cycle(s) following Wallaby
Share snapshots - List share snapshots, Show share snapshot details, Create share snapshot, * Update share snapshot, Delete share snapshot
Quota class sets
Share replica export locations
Share access rule metadata
Share group types
Share group snapshots
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
Share snapshot instances
Share instance export location
Experimental api/share migration
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.
No security impact as authentication is already provided by OpenStackCloud before OpenStackSDK is used.
No notifications impact.
Other end user impact¶
Improves user experience by providing user the ability to interact with Manila API through OpenStackSDK.
No current performance impact. Future impact may include mitigating the use of plug-in clients.
Other deployer impact¶
No other deployer 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.
Primary assignee: * Ashley Rodriguez <ashrod98> * Nicole Chen <arkaruki> * Mark Tony
Implement proposed changes
Write unit tests
Write functional tests
Write end user guide
No dependencies at the moment of writing for this project.
Unit tests will be required for each resource. Functional tests will also be written.
For each resource coded, we will concurrently write its documentation. We will also write an End User Guide.
End User Guide OSSDK: https://docs.openstack.org/openstacksdk/latest/user/guides
Manila API Ref: https://docs.openstack.org/api-ref/shared-file-system/