![Andreas Jaeger](/assets/img/avatar_default.png)
This repo is now testing only with Python 3, so let's make a few cleanups: - Remove obsolete sections from setup.cfg - Update requirements, no need for python_version anymore - Switch to using sphinx-build, fix problems found - Use newer openstackdocstheme and Sphinx versions - Cleanup */source/conf.py to remove now obsolete content. - Remove install_command from tox.ini, the default is fine Change-Id: I6c593dff382a7aac4d758f802173f5a9f1e66182
4.3 KiB
Add 'volume_type' parameter to instance create
Cinder allows for multiple storage backends. When creating a volume, the 'volume_type' parameter will be used in determining which type of backend to send to.1 The user should be allowed to specify the backends for Trove volumes on instance/cluster creation.
Launchpad Blueprint: https://blueprints.launchpad.net/trove/+spec/volume-type-on-create
Problem Description
Trove operators would like to expose different types of storage to their Trove users to provide more flexibility in the types of configurations they can use for their database instances and database clusters
Proposed Change
An optional 'volume_type' property will be added to the volume information accepted by the API for instance and cluster create API calls. This property will be passed to the Cinder client when a new Trove volume gets created. Default configuration value will be used if no volume_type is specified by the user.
Configuration
None
Database
None
Public API
An optional 'volume_type' property will be added to the volume information structure accepted by the instance and cluster create API calls.
API payload defining a volume of size '1' and Cinder volume type 'my-type-1':
'volume': {'size': '1', 'type': 'my-type-1'}
API payload defining a volume of size '1' and no Cinder volume type:
'volume': {'size': '1', 'type': None}
'volume': {'size': '1'}
Public API Security
None
Python API
None
CLI (python-troveclient)
The volume_type value is a string name of the volume type as returned by the 'cinder type-list' command. The value won't be validated on the client site.
For instance creation an optional '--volume_type' argument will be added. The volume type will be appended to the volume size in the volume information structure. If volume support is disabled or '--size' argument is not specified on instance create the 'volume_type' argument will be ignored.
trove create ... --size 1 --volume_type my-type-1 ...
For cluster creation the '--instance' argument will be extended with a 'volume_type' option. If volume support is not enabled or volume size is not specified the 'volume_type' option will be ignored.
trove cluster-create ... --instance volume=1,volume_type=my-type-1 ...
Internal API
A new 'volume_type' argument will be added where necessary.
Guest Agent
None
Alternatives
None
Dashboard Impact (UX)
TBD (section added after approval)
Implementation
Assignee(s)
<pmalik>
Milestones
Mitaka-1
Work Items
This work will consist of updates to the Trove client and server code.
Upgrade Implications
None
Dependencies
None
Testing
The existing Trove tests will be extended to test the 'volume_type' argument. New client tests will be added to cover the added arguments.
Documentation Impact
The new 'volume_type' arguments on instance and cluster create commands need to be documented.
References
Appendix
None