-from __future__ import absolute_import
-
-import common
-
+from cinderv3.common import send
+from cinderv3.arg_converter import get_by_name_or_uuid_multiple
try:
from urllib.parse import urlencode
except ImportError:
from urllib import urlencode
-@common.send("get")
-def volume_list(**kwargs):
- """
- Return list of cinder volumes.
- """
- url = '/volumes?{}'.format(urlencode(kwargs))
- return url, {}
-
-
-@common.send("get")
-def volume_type_list(**kwargs):
- """
- Return list of volume types
- """
- url = '/types?{}'.format(urlencode(kwargs))
- return url, {}
-
-
-@common.get_by_name_or_uuid(volume_type_list, 'volume_types')
-@common.send("get")
-def volume_type_get(volume_type_id, **kwargs):
+@get_by_name_or_uuid_multiple([('volume_type', 'volume_type_id')])
+@send("get")
+def volume_type_get_details(volume_type_id, **kwargs):
"""
Returns id of the specified volume type name
"""
url = "/types/{volume_type_id}".format(volume_type_id=volume_type_id)
- return url, {}
+ return url, None
-@common.get_by_name_or_uuid(volume_type_list, 'volume_types')
-@common.send("delete")
+@get_by_name_or_uuid_multiple([('volume_type', 'volume_type_id')])
+@send("delete")
def volume_type_delete(volume_type_id, **kwargs):
"""
delete the specified volume type
"""
url = "/types/{volume_type_id}".format(volume_type_id=volume_type_id)
- return url, {}
+ return url, None
-@common.send("post")
+@send("post")
def volume_type_create(name, **kwargs):
"""
Create cinder volume type
"""
url = "/types"
req = {"volume_type": {"name": name}}
- return url, {'json': req}
+ return url, req
-@common.get_by_name_or_uuid(volume_type_list, 'volume_types')
-@common.send("get")
+@get_by_name_or_uuid_multiple([('volume_type', 'volume_type_id')])
+@send("get")
def keys_volume_type_get(volume_type_id, **kwargs):
"""
Return extra specs of the specified volume type.
"""
url = "/types/{volume_type_id}/extra_specs".format(
volume_type_id=volume_type_id)
- return url, {}
+ return url, None
-@common.send("put")
+@send("put")
def _key_volume_type_set(type_id, key, value, **kwargs):
url = "/types/{volume_type_id}/extra_specs/{key}".format(
volume_type_id=type_id, key=key)
- return url, {'json': {str(key): str(value)}}
+ return url, {str(key): str(value)}
-@common.get_by_name_or_uuid(volume_type_list, 'volume_types')
+@get_by_name_or_uuid_multiple([('volume_type', 'volume_type_id')])
def keys_volume_type_set(volume_type_id, keys=None, **kwargs):
"""
Set extra specs of the specified volume type.