Repository URL to install this package:
|
Version:
4.2.35 ▾
|
# Copyright (c) 2014 TrilioData, Inc.
# All Rights Reserved.
"""
Workload transfer interface.
"""
from workloadmgrclient import base
class WorkloadmgrTransfer(base.Resource):
"""Transfer a workload from one tenant to another"""
def __repr__(self):
return "<WorkloadmgrTransfer: %s>" % self.id
def delete(self):
"""Delete this workload transfer."""
return self.manager.delete(self)
class WorkloadmgrTransferManager(base.ManagerWithFind):
"""Manage :class:`WorkloadmgrTransfer` resources."""
resource_class = WorkloadmgrTransfer
def create(self, workload_id, name=None):
"""Creates a workload transfer.
:param workload_id: The ID of the workload to transfer.
:param name: The name of the transfer.
:rtype: :class:`WorkloadmgrTransfer`
"""
body = {"transfer": {"workload_id": workload_id, "name": name}}
return self._create("/transfers", body, "transfer")
def accept(self, transfer_id, auth_key):
"""Accept a workload transfer.
:param transfer_id: The ID of the transfer to accept.
:param auth_key: The auth_key of the transfer.
:rtype: :class:`WorkloadmgrTransfer`
"""
body = {"accept": {"auth_key": auth_key}}
return self._accept("/transfers/%s/accept" % transfer_id, body)
def complete(self, transfer_id):
"""Complete a workload transfer.
:param transfer_id: The ID of the transfer to accept.
:rtype: :class:`WorkloadmgrTransfer`
"""
body = {}
return self._complete("/transfers/%s/complete" % transfer_id)
def get(self, transfer_id):
"""Show details of a workload transfer.
:param transfer_id: The ID of the workload transfer to display.
:rtype: :class:`WorkloadmgrTransfer`
"""
return self._get("/transfers/%s" % transfer_id, "transfer")
def list(self, detailed=False, search_opts=None):
"""Get a list of all workload transfer.
:rtype: list of :class:`WorkloadmgrTransfer`
"""
if detailed is True:
return self._list("/transfers/detail", "transfers")
else:
return self._list("/transfers", "transfers")
def delete(self, transfer_id):
"""Delete a workload transfer.
:param transfer_id: The :class:`WorkloadmgrTransfer` to delete.
"""
self._delete("/transfers/%s" % base.getid(transfer_id))