diff options
| author | Stephen Finucane <sfinucan@redhat.com> | 2021-01-20 10:11:37 +0000 |
|---|---|---|
| committer | Stephen Finucane <sfinucan@redhat.com> | 2021-01-21 11:01:15 +0000 |
| commit | f80fe2d8cf50f85601e2895a5f878764fa77c154 (patch) | |
| tree | 2fbff7edcc92776e692dc5c08715c2f024fcd0b5 /openstackclient/compute | |
| parent | 32ae1857d12fc2d5b4292e2d98caed0238959081 (diff) | |
| download | python-openstackclient-f80fe2d8cf50f85601e2895a5f878764fa77c154.tar.gz | |
compute: Add 'server migration show' command
This replaces the 'server-migration-show' command provided by
novaclient.
Change-Id: I413310b481cc13b70853eb579417f6e6fad10d98
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
Diffstat (limited to 'openstackclient/compute')
| -rw-r--r-- | openstackclient/compute/v2/server.py | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/openstackclient/compute/v2/server.py b/openstackclient/compute/v2/server.py index 92942883..3c598981 100644 --- a/openstackclient/compute/v2/server.py +++ b/openstackclient/compute/v2/server.py @@ -2603,6 +2603,70 @@ class ListMigration(command.Lister): return self.print_migrations(parsed_args, compute_client, migrations) +class ShowMigration(command.Command): + """Show a migration for a given server.""" + + def get_parser(self, prog_name): + parser = super().get_parser(prog_name) + parser.add_argument( + 'server', + metavar='<server>', + help=_('Server (name or ID)'), + ) + parser.add_argument( + 'migration', + metavar='<migration>', + help=_("Migration (ID)"), + ) + return parser + + def take_action(self, parsed_args): + compute_client = self.app.client_manager.compute + + if compute_client.api_version < api_versions.APIVersion('2.24'): + msg = _( + '--os-compute-api-version 2.24 or greater is required to ' + 'support the server migration show command' + ) + raise exceptions.CommandError(msg) + + server = utils.find_resource( + compute_client.servers, + parsed_args.server, + ) + server_migration = compute_client.server_migrations.get( + server.id, parsed_args.migration, + ) + + columns = ( + 'ID', + 'Server UUID', + 'Status', + 'Source Compute', + 'Source Node', + 'Dest Compute', + 'Dest Host', + 'Dest Node', + 'Memory Total Bytes', + 'Memory Processed Bytes', + 'Memory Remaining Bytes', + 'Disk Total Bytes', + 'Disk Processed Bytes', + 'Disk Remaining Bytes', + 'Created At', + 'Updated At', + ) + + if compute_client.api_version >= api_versions.APIVersion('2.59'): + columns += ('UUID',) + + if compute_client.api_version >= api_versions.APIVersion('2.80'): + columns += ('User ID', 'Project ID') + + data = utils.get_item_properties(server_migration, columns) + return columns, data + + class AbortMigration(command.Command): """Cancel an ongoing live migration. |
