Repository URL to install this package:
|
Version:
6.0.24.1.dev2 ▾
|
python3-workloadmgrclient
/
usr
/
lib
/
python3
/
dist-packages
/
workloadmgrclient
/
v1
/
managers
/
migration.py
|
|---|
# Copyright (c) 2014 TrilioData, Inc.
# All Rights Reserved.
"""
Migrations interface (1.1 extension).
"""
import six
try:
from urllib import urlencode
except ImportError:
from urllib.parse import urlencode
from workloadmgrclient import base
class Migration(base.Resource):
def __repr__(self):
return "<Migration: %s>" % self.id
def delete(self):
"""Delete this migration."""
return self.manager.delete(self)
def cancel(self):
"""Cancel this migration."""
return self.manager.cancel(self)
class MigrationManager(base.ManagerWithFind):
"""Manage :class:`Migration` resources."""
resource_class = Migration
def create(self, migration_plan_id, options):
"""Create a migration for a migration plan
"""
body = {
"migration": {
"migration_plan_id": migration_plan_id,
"options": options,
}
}
return self._create("/migrations", body, "migration")
def get(self, migration_id, query_string=None):
"""
Show details of a migration.
:param migration_id: The ID of the migration to display.
:rtype: :class:`Migration`
"""
return self._get("/migrations/%s" % migration_id, "migration")
def list(self, detailed=True, search_opts=None):
"""
Get a list of all migrations
:rtype: list of :class:`Migration`
"""
if not search_opts:
search_opts = {}
qparams = {opt: val for opt, val in six.iteritems(search_opts) if val}
query_string = "?%s" % urlencode(qparams) if qparams else ""
detail = "/detail" if detailed else ""
return self._list("/migrations%s%s" % (detail, query_string), "migrations")
def delete(self, migration_id):
"""
Delete a migration.
:param migration_id: The :class:`Migration` to delete.
"""
self._delete("/migrations/%s" % base.getid(migration_id))
def cancel(self, migration_id):
"""
Cancel a migration.
:param migration_id: The :class:`Migration` to cancel
"""
self._cancel("/migrations/%s/cancel" % base.getid(migration_id))