# Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. """ migration interface """ from novaclient import api_versions from novaclient import base class Migration(base.Resource): def __repr__(self): return "" % self.id class MigrationManager(base.ManagerWithFind): resource_class = Migration def _list_base(self, host=None, status=None, instance_uuid=None, marker=None, limit=None, changes_since=None, changes_before=None): opts = {} if host: opts['host'] = host if status: opts['status'] = status if instance_uuid: opts['instance_uuid'] = instance_uuid if marker: opts['marker'] = marker if limit: opts['limit'] = limit if changes_since: opts['changes-since'] = changes_since if changes_before: opts['changes-before'] = changes_before return self._list("/os-migrations", "migrations", filters=opts) @api_versions.wraps("2.0", "2.58") def list(self, host=None, status=None, instance_uuid=None): """ Get a list of migrations. :param host: filter migrations by host name (optional). :param status: filter migrations by status (optional). :param instance_uuid: filter migrations by instance uuid (optional). """ return self._list_base(host=host, status=status, instance_uuid=instance_uuid) @api_versions.wraps("2.59", "2.65") def list(self, host=None, status=None, instance_uuid=None, marker=None, limit=None, changes_since=None): """ Get a list of migrations. :param host: filter migrations by host name (optional). :param status: filter migrations by status (optional). :param instance_uuid: filter migrations by instance uuid (optional). :param marker: Begin returning migrations that appear later in the migrations list than that represented by this migration UUID (optional). :param limit: maximum number of migrations to return (optional). Note the API server has a configurable default limit. If no limit is specified here or limit is larger than default, the default limit will be used. :param changes_since: only return migrations changed later or equal to a certain point of time. The provided time should be an ISO 8061 formatted time. e.g. 2016-03-04T06:27:59Z . (optional). """ return self._list_base(host=host, status=status, instance_uuid=instance_uuid, marker=marker, limit=limit, changes_since=changes_since) @api_versions.wraps("2.66") def list(self, host=None, status=None, instance_uuid=None, marker=None, limit=None, changes_since=None, changes_before=None): """ Get a list of migrations. :param host: filter migrations by host name (optional). :param status: filter migrations by status (optional). :param instance_uuid: filter migrations by instance uuid (optional). :param marker: Begin returning migrations that appear later in the migrations list than that represented by this migration UUID (optional). :param limit: maximum number of migrations to return (optional). Note the API server has a configurable default limit. If no limit is specified here or limit is larger than default, the default limit will be used. :param changes_since: Only return migrations changed later or equal to a certain point of time. The provided time should be an ISO 8061 formatted time. e.g. 2016-03-04T06:27:59Z . (optional). :param changes_before: Only return migrations changed earlier or equal to a certain point of time. The provided time should be an ISO 8061 formatted time. e.g. 2016-03-05T06:27:59Z . (optional). """ return self._list_base(host=host, status=status, instance_uuid=instance_uuid, marker=marker, limit=limit, changes_since=changes_since, changes_before=changes_before)