summaryrefslogtreecommitdiff
path: root/openstackclient/compute
diff options
context:
space:
mode:
authormelanie witt <melwittt@gmail.com>2021-07-26 22:13:55 +0000
committermelanie witt <melwittt@gmail.com>2021-07-28 15:25:06 +0000
commited87f7949ef1ef580ed71b9820e16823c0466472 (patch)
tree0b8db9263ef3ba4dc4b6129379f90a73aa2308ff /openstackclient/compute
parent59256becc93d7953f983e0fbbdef098fefba73ff (diff)
downloadpython-openstackclient-ed87f7949ef1ef580ed71b9820e16823c0466472.tar.gz
Correct REST API response fields for /os-migrations API
The compute APIs are unfortunately inconsistent with regard to the response parameters for migrations. * GET /servers/{server_id}/migrations returns server_uuid * GET /os-migrations returns instance_uuid Because the 'Server UUID' column is being specified for parsing the response from GET /os-migrations, it is always showing as an empty string to users. There are a few other mismatches between the column names and the REST API response fields [1]: * 'Old Flavor' vs 'old_instance_type_id' * 'New Flavor' vs 'new_instance_type_id' * 'Type' vs 'migration_type' This adds a new list containing the REST API response field names to pass to utils.get_item_properties so that the responses are correctly parsed and the client output contains the response data instead of empty strings. Story: 2009078 Task: 42890 [1] https://docs.openstack.org/api-ref/compute/?expanded=list-migrations-detail#list-migrations Change-Id: I8aab60619e0225047f6a1c31e44917ca8fcc799e
Diffstat (limited to 'openstackclient/compute')
-rw-r--r--openstackclient/compute/v2/server.py27
1 files changed, 20 insertions, 7 deletions
diff --git a/openstackclient/compute/v2/server.py b/openstackclient/compute/v2/server.py
index 24df46d8..a09fd44d 100644
--- a/openstackclient/compute/v2/server.py
+++ b/openstackclient/compute/v2/server.py
@@ -2781,28 +2781,41 @@ class ListMigration(command.Lister):
return parser
def print_migrations(self, parsed_args, compute_client, migrations):
- columns = [
+ column_headers = [
'Source Node', 'Dest Node', 'Source Compute', 'Dest Compute',
'Dest Host', 'Status', 'Server UUID', 'Old Flavor', 'New Flavor',
'Created At', 'Updated At',
]
+ # Response fields coming back from the REST API are not always exactly
+ # the same as the column header names.
+ columns = [
+ 'source_node', 'dest_node', 'source_compute', 'dest_compute',
+ 'dest_host', 'status', 'instance_uuid', 'old_instance_type_id',
+ 'new_instance_type_id', 'created_at', 'updated_at',
+ ]
+
# Insert migrations UUID after ID
if compute_client.api_version >= api_versions.APIVersion("2.59"):
- columns.insert(0, "UUID")
+ column_headers.insert(0, "UUID")
+ columns.insert(0, "uuid")
if compute_client.api_version >= api_versions.APIVersion("2.23"):
- columns.insert(0, "Id")
- columns.insert(len(columns) - 2, "Type")
+ column_headers.insert(0, "Id")
+ columns.insert(0, "id")
+ column_headers.insert(len(column_headers) - 2, "Type")
+ columns.insert(len(columns) - 2, "migration_type")
if compute_client.api_version >= api_versions.APIVersion("2.80"):
if parsed_args.project:
- columns.insert(len(columns) - 2, "Project")
+ column_headers.insert(len(column_headers) - 2, "Project")
+ columns.insert(len(columns) - 2, "project_id")
if parsed_args.user:
- columns.insert(len(columns) - 2, "User")
+ column_headers.insert(len(column_headers) - 2, "User")
+ columns.insert(len(columns) - 2, "user_id")
return (
- columns,
+ column_headers,
(utils.get_item_properties(mig, columns) for mig in migrations),
)