Merge "Associate flavor types with datastore versions"

This commit is contained in:
Jenkins 2014-12-09 11:15:02 +00:00 committed by Gerrit Code Review
commit 4d8e1567ec
2 changed files with 24 additions and 3 deletions
troveclient/v1

@ -30,11 +30,20 @@ class Flavors(base.ManagerWithFind):
def list(self):
"""Get a list of all flavors.
:rtype: list of :class:`Flavor`.
"""
return self._list("/flavors", "flavors")
def list_datastore_version_associated_flavors(self, datastore,
version_id):
"""Get a list of all flavors for the specified datastore type
and datastore version .
:rtype: list of :class:`Flavor`.
"""
return self._list("/datastores/%s/versions/%s/flavors" %
(datastore, version_id),
"flavors")
def get(self, flavor):
"""Get a specific flavor.

@ -111,11 +111,23 @@ def _find_backup(cs, backup):
# Flavor related calls
@utils.arg('--datastore_type', metavar='<datastore_type>',
default=None,
help='Type of the datastore. For eg: mysql.')
@utils.arg("--datastore_version_id", metavar="<datastore_version_id>",
default=None, help="ID of the datastore version.")
@utils.service_type('database')
def do_flavor_list(cs, args):
"""Lists available flavors."""
flavors = cs.flavors.list()
if args.datastore_type and args.datastore_version_id:
flavors = cs.flavors.list_datastore_version_associated_flavors(
args.datastore_type, args.datastore_version_id)
elif not args.datastore_type and not args.datastore_version_id:
flavors = cs.flavors.list()
else:
err_msg = ("Specify both <datastore_type> and <datastore_version_id>"
" to list datastore version associated flavors.")
raise exceptions.CommandError(err_msg)
utils.print_list(flavors, ['id', 'name', 'ram'],
labels={'ram': 'RAM'})