Merge "Added volume_transfer client models for v1 and v2 -removed instances of v1 on url and comments -changed names for clarity"
This commit is contained in:
commit
5c32613975
@ -265,3 +265,89 @@ class BaseVolumesClient(AutoMarshallingHTTPClient):
|
||||
'GET', url,
|
||||
response_entity_type=self.response_models.QuotaSet,
|
||||
requestslib_kwargs=requestslib_kwargs)
|
||||
|
||||
# Volume Transfers
|
||||
def create_volume_transfer(
|
||||
self, target_tenant_id, volume_id, name=None,
|
||||
requestslib_kwargs=None):
|
||||
"""POST /{target_tenant_id}/os-volume-transfer"""
|
||||
|
||||
url = '{url}/{target_tenant_id}/os-volume-transfer'.format(
|
||||
url=self.url, target_tenant_id=target_tenant_id)
|
||||
|
||||
request_entity = self.request_models.VolumeTransferRequest(
|
||||
volume_id=volume_id, name=name)
|
||||
|
||||
return self.request(
|
||||
'POST', url, request_entity=request_entity,
|
||||
response_entity_type=self.response_models.VolumeTransferResponse,
|
||||
requestslib_kwargs=requestslib_kwargs)
|
||||
|
||||
def list_all_volume_transfers(
|
||||
self, target_tenant_id, requestslib_kwargs=None):
|
||||
"""GET /{tenant_id}/os-volume-transfer"""
|
||||
|
||||
url = '{url}/{target_tenant_id}/os-volume-transfer'.format(
|
||||
url=self.url, target_tenant_id=target_tenant_id)
|
||||
|
||||
return self.request(
|
||||
'GET', url,
|
||||
response_entity_type=self.response_models.
|
||||
VolumeTransfersListResponse,
|
||||
requestslib_kwargs=requestslib_kwargs)
|
||||
|
||||
def list_all_volume_transfers_info(
|
||||
self, target_tenant_id, requestslib_kwargs=None):
|
||||
"""GET /{tenant_id}/os-volume-transfer/detail"""
|
||||
|
||||
url = '{url}/{target_tenant_id}/os-volume-transfer/detail'.format(
|
||||
url=self.url, target_tenant_id=target_tenant_id)
|
||||
|
||||
return self.request(
|
||||
'GET', url,
|
||||
response_entity_type=self.response_models.
|
||||
VolumeTransfersListDetailedResponse,
|
||||
requestslib_kwargs=requestslib_kwargs)
|
||||
|
||||
def get_volume_transfer(
|
||||
self, target_tenant_id, target_transfer_id,
|
||||
requestslib_kwargs=None):
|
||||
"""GET /{tenant_id}/os-volume-transfer/{transfer_id}"""
|
||||
|
||||
url = '{url}/{target_tenant_id}/os-volume-transfer/ \
|
||||
{target_transfer_id}'.format(
|
||||
url=self.url, target_tenant_id=target_tenant_id,
|
||||
target_transfer_id=target_transfer_id)
|
||||
|
||||
return self.request(
|
||||
'GET', url, response_entity_type=self.response_models.
|
||||
VolumeTransferDetailedResponse,
|
||||
requestslib_kwargs=requestslib_kwargs)
|
||||
|
||||
def delete_volume_transfer(
|
||||
self, target_tenant_id, target_transfer_id,
|
||||
requestslib_kwargs=None):
|
||||
"""DELETE /{tenant_id}/os-volume-transfer/{transfer_id}"""
|
||||
|
||||
url = '{url}/{target_tenant_id}/os-volume-transfer/ \
|
||||
{target_transfer_id}'.format(
|
||||
url=self.url, target_tenant_id=target_tenant_id,
|
||||
target_transfer_id=target_transfer_id)
|
||||
|
||||
return self.request(
|
||||
'DELETE', url, requestslib_kwargs=requestslib_kwargs)
|
||||
|
||||
def accept_volume_transfer(
|
||||
self, target_tenant_id, target_transfer_id,
|
||||
requestslib_kwargs=None):
|
||||
"""POST /{tenant_id}/os-volume-transfer/{transfer_id}/accept"""
|
||||
|
||||
url = '{url}/{target_tenant_id}/os-volume-transfer/ \
|
||||
{target_transfer_id}/accept'.format(
|
||||
url=self.url, target_tenant_id=target_tenant_id,
|
||||
target_transfer_id=target_transfer_id)
|
||||
|
||||
return self.request(
|
||||
'POST', url, response_entity_type=self.response_models.
|
||||
VolumeTransferAcceptResponse,
|
||||
requestslib_kwargs=requestslib_kwargs)
|
||||
|
@ -10,3 +10,18 @@ class StatusResetRequest(AutoMarshallingModel):
|
||||
def _obj_to_json(self):
|
||||
data = {"os-reset_status": {"status": self.status}}
|
||||
return json.dumps(data)
|
||||
|
||||
|
||||
class VolumeTransferRequest(AutoMarshallingModel):
|
||||
def __init__(self, volume_id=None, name=None):
|
||||
super(VolumeTransferRequest, self).__init__()
|
||||
self.volume_id = volume_id
|
||||
self.name = name
|
||||
|
||||
def _obj_to_json(self):
|
||||
volume_attrs = {
|
||||
"volume_id": self.volume_id,
|
||||
"name": self.name}
|
||||
|
||||
return json.dumps(
|
||||
{'transfer': self._remove_empty_values(volume_attrs)})
|
||||
|
@ -1,6 +1,24 @@
|
||||
import json
|
||||
from cafe.engine.models.base import \
|
||||
AutoMarshallingDictModel, AutoMarshallingModel
|
||||
from cloudcafe.blockstorage.volumes_api.common.models.automarshalling import \
|
||||
_VolumesAPIBaseModel, _VolumesAPIBaseListModel
|
||||
|
||||
|
||||
class _LinksItem(_VolumesAPIBaseModel):
|
||||
kwarg_map = {
|
||||
"href": "href",
|
||||
"rel": "rel"}
|
||||
|
||||
def __init__(self, href=None, rel=None):
|
||||
super(_LinksItem, self).__init__()
|
||||
self.href = href
|
||||
self.rel = rel
|
||||
|
||||
|
||||
class _LinksList(_VolumesAPIBaseListModel):
|
||||
list_model_key = 'links'
|
||||
ObjectModel = _LinksItem
|
||||
|
||||
|
||||
class QuotaUsageResponse(AutoMarshallingDictModel):
|
||||
@ -57,3 +75,145 @@ class QuotaSet(AutoMarshallingModel):
|
||||
for k, v in data.items():
|
||||
setattr(quotaset, k, v)
|
||||
return quotaset
|
||||
|
||||
|
||||
class VolumeTransferResponse(_VolumesAPIBaseModel):
|
||||
obj_model_key = 'transfer'
|
||||
kwarg_map = {
|
||||
"id_": "id",
|
||||
"created_at": "created_at",
|
||||
"name": "name",
|
||||
"volume_id": "volume_id",
|
||||
"auth_key": "auth_key",
|
||||
"links": "links"}
|
||||
|
||||
def __init__(
|
||||
self, id_=None, created_at=None, name=None, volume_id=None,
|
||||
auth_key=None, links=None):
|
||||
|
||||
super(VolumeTransferResponse, self).__init__()
|
||||
self.id_ = id_
|
||||
self.created_at = created_at
|
||||
self.name = name
|
||||
self.volume_id = volume_id
|
||||
self.auth_key = auth_key
|
||||
self.links = links
|
||||
|
||||
@classmethod
|
||||
def _json_dict_to_obj(cls, json_dict):
|
||||
volume_transfer = cls._map_values_to_kwargs(json_dict)
|
||||
volume_transfer.links = _LinksList._json_dict_to_obj(
|
||||
volume_transfer.links)
|
||||
return volume_transfer
|
||||
|
||||
|
||||
class _VolumeTransfersListResponseItem(_VolumesAPIBaseModel):
|
||||
kwarg_map = {
|
||||
"id_": "id",
|
||||
"name": "name",
|
||||
"volume_id": "volume_id",
|
||||
"links": "links"}
|
||||
|
||||
def __init__(
|
||||
self, id_=None, name=None, volume_id=None, links=None):
|
||||
|
||||
super(_VolumeTransfersListResponseItem, self).__init__()
|
||||
self.id_ = id_
|
||||
self.name = name
|
||||
self.volume_id = volume_id
|
||||
self.links = links
|
||||
|
||||
@classmethod
|
||||
def _json_dict_to_obj(cls, json_dict):
|
||||
volume_transfer = cls._map_values_to_kwargs(json_dict)
|
||||
volume_transfer.links = _LinksList._json_dict_to_obj(
|
||||
volume_transfer.links)
|
||||
return volume_transfer
|
||||
|
||||
|
||||
class VolumeTransfersListResponse(_VolumesAPIBaseListModel):
|
||||
list_model_key = 'transfers'
|
||||
ObjectModel = _VolumeTransfersListResponseItem
|
||||
|
||||
|
||||
class _VolumeTransfersListDetailedResponseItem(_VolumesAPIBaseModel):
|
||||
kwarg_map = {
|
||||
"id_": "id",
|
||||
"created_at": "created_at",
|
||||
"name": "name",
|
||||
"volume_id": "volume_id",
|
||||
"links": "links"}
|
||||
|
||||
def __init__(
|
||||
self, id_=None, created_at=None, name=None, volume_id=None,
|
||||
links=None):
|
||||
|
||||
super(_VolumeTransfersListDetailedResponseItem, self).__init__()
|
||||
self.id_ = id_
|
||||
self.created_at = created_at
|
||||
self.name = name
|
||||
self.volume_id = volume_id
|
||||
self.links = links
|
||||
|
||||
@classmethod
|
||||
def _json_dict_to_obj(cls, json_dict):
|
||||
volume_transfer = cls._map_values_to_kwargs(json_dict)
|
||||
volume_transfer.links = _LinksList._json_dict_to_obj(
|
||||
volume_transfer.links)
|
||||
return volume_transfer
|
||||
|
||||
|
||||
class VolumeTransfersListDetailedResponse(_VolumesAPIBaseListModel):
|
||||
list_model_key = 'transfers'
|
||||
ObjectModel = _VolumeTransfersListDetailedResponseItem
|
||||
|
||||
|
||||
class VolumeTransferDetailedResponse(_VolumesAPIBaseModel):
|
||||
kwarg_map = {
|
||||
"id_": "id",
|
||||
"created_at": "created_at",
|
||||
"name": "name",
|
||||
"volume_id": "volume_id",
|
||||
"links": "links"}
|
||||
|
||||
def __init__(
|
||||
self, id_=None, created_at=None, name=None, volume_id=None,
|
||||
links=None):
|
||||
|
||||
super(VolumeTransferDetailedResponse, self).__init__()
|
||||
self.id_ = id_
|
||||
self.created_at = created_at
|
||||
self.name = name
|
||||
self.volume_id = volume_id
|
||||
self.links = links
|
||||
|
||||
@classmethod
|
||||
def _json_dict_to_obj(cls, json_dict):
|
||||
volume_transfer = cls._map_values_to_kwargs(json_dict)
|
||||
volume_transfer.links = _LinksList._json_dict_to_obj(
|
||||
volume_transfer.links)
|
||||
return volume_transfer
|
||||
|
||||
|
||||
class VolumeTransferAcceptResponse(_VolumesAPIBaseModel):
|
||||
kwarg_map = {
|
||||
"id_": "id",
|
||||
"name": "name",
|
||||
"volume_id": "volume_id",
|
||||
"links": "links"}
|
||||
|
||||
def __init__(
|
||||
self, id_=None, name=None, volume_id=None, links=None):
|
||||
|
||||
super(VolumeTransferAcceptResponse, self).__init__()
|
||||
self.id_ = id_
|
||||
self.name = name
|
||||
self.volume_id = volume_id
|
||||
self.links = links
|
||||
|
||||
@classmethod
|
||||
def _json_dict_to_obj(cls, json_dict):
|
||||
volume_transfer = cls._map_values_to_kwargs(json_dict)
|
||||
volume_transfer.links = _LinksList._json_dict_to_obj(
|
||||
volume_transfer.links)
|
||||
return volume_transfer
|
||||
|
@ -23,7 +23,7 @@ from cloudcafe.blockstorage.volumes_api.common.models.automarshalling import \
|
||||
|
||||
# Import common requests
|
||||
from cloudcafe.blockstorage.volumes_api.common.models.requests import \
|
||||
StatusResetRequest
|
||||
StatusResetRequest, VolumeTransferRequest
|
||||
|
||||
|
||||
class VolumeRequest(CommonModelProperties, AutoMarshallingModel):
|
||||
|
@ -23,7 +23,7 @@ from cloudcafe.blockstorage.volumes_api.common.models.automarshalling import \
|
||||
|
||||
# Import common requests
|
||||
from cloudcafe.blockstorage.volumes_api.common.models.requests import \
|
||||
StatusResetRequest
|
||||
StatusResetRequest, VolumeTransferRequest
|
||||
|
||||
|
||||
class VolumeRequest(CommonModelProperties, AutoMarshallingModel):
|
||||
|
Loading…
x
Reference in New Issue
Block a user