diff options
| author | melanie witt <melwittt@gmail.com> | 2022-02-09 19:48:42 +0000 |
|---|---|---|
| committer | melanie witt <melwittt@gmail.com> | 2022-02-09 23:26:25 +0000 |
| commit | 72a2477ec07851f13dbc05e6777f7f60573d75dd (patch) | |
| tree | b9045c454daa5a686e4a1387653e9ff8426a4ec0 /openstackclient/tests | |
| parent | 27843fc232622a756d0c6a0e7d4ddecbddb2ae11 (diff) | |
| download | python-openstackclient-72a2477ec07851f13dbc05e6777f7f60573d75dd.tar.gz | |
Fix 'server event list|show' for deleted servers
As of compute microversion >= 2.21, support for list and show of server
events for deleted servers was added. This however wasn't working using
the openstackclient because the compute GET /servers/{server_id} will
not return a deleted server, so osc_lib.utils.find_resource() fails to
find the server and the command bails early.
This adds a check for a uuid-like <server> arg and uses it directly if
the <server> cannot be found via find_resource().
A note is also added to the command help to indicate that list and show
for deleted servers will only work if a server ID is passed (name will
not work).
Story: 2009841
Task: 44443
Change-Id: Icd33b3b9a3a1855d7893dd111bbb2aca059f45fd
Diffstat (limited to 'openstackclient/tests')
| -rw-r--r-- | openstackclient/tests/functional/compute/v2/test_server_event.py | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/openstackclient/tests/functional/compute/v2/test_server_event.py b/openstackclient/tests/functional/compute/v2/test_server_event.py index 953ade43..b4725fe6 100644 --- a/openstackclient/tests/functional/compute/v2/test_server_event.py +++ b/openstackclient/tests/functional/compute/v2/test_server_event.py @@ -82,3 +82,38 @@ class ServerEventTests(common.ComputeTestCase): self.assertEqual('reboot', cmd_output.get('action')) self.assertIsNotNone(cmd_output.get('events')) self.assertIsInstance(cmd_output.get('events'), list) + + def test_server_event_list_and_show_deleted_server(self): + # Need to create a new server that will not attempt cleanup because we + # are going to delete it during the test and cleanup would fail with + # 404. + cmd_output = self.server_create(cleanup=False) + server_id = cmd_output['id'] + # Delete the server + self.openstack('server delete --wait ' + server_id) + # And verify we can get the event list after it's deleted + # Test 'server event list' for deleting + cmd_output = json.loads(self.openstack( + '--os-compute-api-version 2.21 ' + 'server event list -f json ' + server_id + )) + request_id = None + for each_event in cmd_output: + self.assertNotIn('Message', each_event) + self.assertNotIn('Project ID', each_event) + self.assertNotIn('User ID', each_event) + if each_event.get('Action') == 'delete': + self.assertEqual(server_id, each_event.get('Server ID')) + request_id = each_event.get('Request ID') + break + self.assertIsNotNone(request_id) + # Test 'server event show' for deleting + cmd_output = json.loads(self.openstack( + '--os-compute-api-version 2.21 ' + 'server event show -f json ' + server_id + ' ' + request_id + )) + self.assertEqual(server_id, cmd_output.get('instance_uuid')) + self.assertEqual(request_id, cmd_output.get('request_id')) + self.assertEqual('delete', cmd_output.get('action')) + self.assertIsNotNone(cmd_output.get('events')) + self.assertIsInstance(cmd_output.get('events'), list) |
