From 1ea95cb04ef6dddba35383d204c1768b31be237e Mon Sep 17 00:00:00 2001 From: Daniel Wilson Date: Sat, 12 Nov 2022 13:38:36 -0500 Subject: [PATCH] Fix server topology and diagnostics Server topology assumed that the response from a topology request included a top-level topology attribute, which actually does not exist. Server diagnostics expected that server_id was a body field, but it is actually a URI field. Change-Id: I18baf1a8c39c5f150b64ce9c0d8944214c9e8024 --- openstack/compute/v2/server.py | 4 +--- openstack/compute/v2/server_diagnostics.py | 2 +- openstack/tests/unit/compute/v2/test_server.py | 4 +--- 3 files changed, 3 insertions(+), 7 deletions(-) diff --git a/openstack/compute/v2/server.py b/openstack/compute/v2/server.py index 4a864dc84..5f95bccb4 100644 --- a/openstack/compute/v2/server.py +++ b/openstack/compute/v2/server.py @@ -596,9 +596,7 @@ class Server(resource.Resource, metadata.MetadataMixin, tag.TagMixin): exceptions.raise_from_response(response) try: - data = response.json() - if 'topology' in data: - return data['topology'] + return response.json() except ValueError: pass diff --git a/openstack/compute/v2/server_diagnostics.py b/openstack/compute/v2/server_diagnostics.py index faed7e9d7..1208639ed 100644 --- a/openstack/compute/v2/server_diagnostics.py +++ b/openstack/compute/v2/server_diagnostics.py @@ -51,4 +51,4 @@ class ServerDiagnostics(resource.Resource): #: The list of dictionaries with detailed information about VM NICs. nic_details = resource.Body('nic_details') #: The ID for the server. - server_id = resource.Body('server_id') + server_id = resource.URI('server_id') diff --git a/openstack/tests/unit/compute/v2/test_server.py b/openstack/tests/unit/compute/v2/test_server.py index 85adacc92..9f2ffd254 100644 --- a/openstack/tests/unit/compute/v2/test_server.py +++ b/openstack/tests/unit/compute/v2/test_server.py @@ -1097,9 +1097,7 @@ class TestServer(base.TestCase): } response.status_code = 200 - response.json.return_value = { - 'topology': topology - } + response.json.return_value = topology self.sess.get.return_value = response