Add response schemas for list_instance_actions 2.58

In microversion 2.58, the 'updated_at' and 'links' fields were added to
the GET /servers/{server_id}/os-instance-actions API response.

Schemas had not been updated for this in the past, causing tests
calling the API with newer microversions to fail response schema
validation.

This adds the missing schemas.

Change-Id: I7e46e12540a7b9771dbd411911dfe839bc34a076
Signed-off-by: melanie witt <melwittt@gmail.com>
diff --git a/tempest/lib/api_schema/response/compute/v2_100/servers.py b/tempest/lib/api_schema/response/compute/v2_100/servers.py
index 8a2c15d..44ffc5e 100644
--- a/tempest/lib/api_schema/response/compute/v2_100/servers.py
+++ b/tempest/lib/api_schema/response/compute/v2_100/servers.py
@@ -126,5 +126,6 @@
 show_server_diagnostics = copy.deepcopy(servers299.show_server_diagnostics)
 get_remote_consoles = copy.deepcopy(servers299.get_remote_consoles)
 show_instance_action = copy.deepcopy(servers299.show_instance_action)
+list_instance_actions = copy.deepcopy(servers299.list_instance_actions)
 create_backup = copy.deepcopy(servers299.create_backup)
 list_live_migrations = copy.deepcopy(servers299.list_live_migrations)
diff --git a/tempest/lib/api_schema/response/compute/v2_16/servers.py b/tempest/lib/api_schema/response/compute/v2_16/servers.py
index f09ea7f..eb38fff 100644
--- a/tempest/lib/api_schema/response/compute/v2_16/servers.py
+++ b/tempest/lib/api_schema/response/compute/v2_16/servers.py
@@ -172,5 +172,6 @@
 show_volume_attachment = copy.deepcopy(servers.show_volume_attachment)
 list_volume_attachments = copy.deepcopy(servers.list_volume_attachments)
 show_instance_action = copy.deepcopy(servers.show_instance_action)
+list_instance_actions = copy.deepcopy(servers.list_instance_actions)
 create_backup = copy.deepcopy(servers.create_backup)
 list_live_migrations = copy.deepcopy(servers.list_live_migrations)
diff --git a/tempest/lib/api_schema/response/compute/v2_19/servers.py b/tempest/lib/api_schema/response/compute/v2_19/servers.py
index 5cb5bf3..d51bcd9 100644
--- a/tempest/lib/api_schema/response/compute/v2_19/servers.py
+++ b/tempest/lib/api_schema/response/compute/v2_19/servers.py
@@ -62,5 +62,6 @@
 show_volume_attachment = copy.deepcopy(serversv216.show_volume_attachment)
 list_volume_attachments = copy.deepcopy(serversv216.list_volume_attachments)
 show_instance_action = copy.deepcopy(serversv216.show_instance_action)
+list_instance_actions = copy.deepcopy(serversv216.list_instance_actions)
 create_backup = copy.deepcopy(serversv216.create_backup)
 list_live_migrations = copy.deepcopy(serversv216.list_live_migrations)
diff --git a/tempest/lib/api_schema/response/compute/v2_26/servers.py b/tempest/lib/api_schema/response/compute/v2_26/servers.py
index 4ce7f90..436c185 100644
--- a/tempest/lib/api_schema/response/compute/v2_26/servers.py
+++ b/tempest/lib/api_schema/response/compute/v2_26/servers.py
@@ -105,5 +105,6 @@
 show_volume_attachment = copy.deepcopy(servers219.show_volume_attachment)
 list_volume_attachments = copy.deepcopy(servers219.list_volume_attachments)
 show_instance_action = copy.deepcopy(servers219.show_instance_action)
+list_instance_actions = copy.deepcopy(servers219.list_instance_actions)
 create_backup = copy.deepcopy(servers219.create_backup)
 list_live_migrations = copy.deepcopy(servers219.list_live_migrations)
diff --git a/tempest/lib/api_schema/response/compute/v2_3/servers.py b/tempest/lib/api_schema/response/compute/v2_3/servers.py
index c7e0147..f6afc92 100644
--- a/tempest/lib/api_schema/response/compute/v2_3/servers.py
+++ b/tempest/lib/api_schema/response/compute/v2_3/servers.py
@@ -177,5 +177,6 @@
 show_volume_attachment = copy.deepcopy(servers.show_volume_attachment)
 list_volume_attachments = copy.deepcopy(servers.list_volume_attachments)
 show_instance_action = copy.deepcopy(servers.show_instance_action)
+list_instance_actions = copy.deepcopy(servers.list_instance_actions)
 create_backup = copy.deepcopy(servers.create_backup)
 list_live_migrations = copy.deepcopy(servers.list_live_migrations)
diff --git a/tempest/lib/api_schema/response/compute/v2_45/servers.py b/tempest/lib/api_schema/response/compute/v2_45/servers.py
index 0746465..cc3cefa 100644
--- a/tempest/lib/api_schema/response/compute/v2_45/servers.py
+++ b/tempest/lib/api_schema/response/compute/v2_45/servers.py
@@ -47,4 +47,6 @@
 attach_volume = copy.deepcopy(servers226.attach_volume)
 show_volume_attachment = copy.deepcopy(servers226.show_volume_attachment)
 list_volume_attachments = copy.deepcopy(servers226.list_volume_attachments)
+show_instance_action = copy.deepcopy(servers226.show_instance_action)
+list_instance_actions = copy.deepcopy(servers226.list_instance_actions)
 list_live_migrations = copy.deepcopy(servers226.list_live_migrations)
diff --git a/tempest/lib/api_schema/response/compute/v2_47/servers.py b/tempest/lib/api_schema/response/compute/v2_47/servers.py
index d24cc25..7131fcb 100644
--- a/tempest/lib/api_schema/response/compute/v2_47/servers.py
+++ b/tempest/lib/api_schema/response/compute/v2_47/servers.py
@@ -71,5 +71,6 @@
 show_volume_attachment = copy.deepcopy(servers245.show_volume_attachment)
 list_volume_attachments = copy.deepcopy(servers245.list_volume_attachments)
 show_instance_action = copy.deepcopy(servers226.show_instance_action)
+list_instance_actions = copy.deepcopy(servers226.list_instance_actions)
 create_backup = copy.deepcopy(servers245.create_backup)
 list_live_migrations = copy.deepcopy(servers245.list_live_migrations)
diff --git a/tempest/lib/api_schema/response/compute/v2_48/servers.py b/tempest/lib/api_schema/response/compute/v2_48/servers.py
index a500155..358b79a 100644
--- a/tempest/lib/api_schema/response/compute/v2_48/servers.py
+++ b/tempest/lib/api_schema/response/compute/v2_48/servers.py
@@ -133,5 +133,6 @@
 show_volume_attachment = copy.deepcopy(servers247.show_volume_attachment)
 list_volume_attachments = copy.deepcopy(servers247.list_volume_attachments)
 show_instance_action = copy.deepcopy(servers247.show_instance_action)
+list_instance_actions = copy.deepcopy(servers247.list_instance_actions)
 create_backup = copy.deepcopy(servers247.create_backup)
 list_live_migrations = copy.deepcopy(servers247.list_live_migrations)
diff --git a/tempest/lib/api_schema/response/compute/v2_51/servers.py b/tempest/lib/api_schema/response/compute/v2_51/servers.py
index 27e5f45..6cd6998 100644
--- a/tempest/lib/api_schema/response/compute/v2_51/servers.py
+++ b/tempest/lib/api_schema/response/compute/v2_51/servers.py
@@ -40,5 +40,6 @@
 attach_volume = copy.deepcopy(servers248.attach_volume)
 show_volume_attachment = copy.deepcopy(servers248.show_volume_attachment)
 list_volume_attachments = copy.deepcopy(servers248.list_volume_attachments)
+list_instance_actions = copy.deepcopy(servers248.list_instance_actions)
 create_backup = copy.deepcopy(servers248.create_backup)
 list_live_migrations = copy.deepcopy(servers248.list_live_migrations)
diff --git a/tempest/lib/api_schema/response/compute/v2_54/servers.py b/tempest/lib/api_schema/response/compute/v2_54/servers.py
index bef1e7f..7caf040 100644
--- a/tempest/lib/api_schema/response/compute/v2_54/servers.py
+++ b/tempest/lib/api_schema/response/compute/v2_54/servers.py
@@ -59,5 +59,6 @@
 show_volume_attachment = copy.deepcopy(servers251.show_volume_attachment)
 list_volume_attachments = copy.deepcopy(servers251.list_volume_attachments)
 show_instance_action = copy.deepcopy(servers251.show_instance_action)
+list_instance_actions = copy.deepcopy(servers251.list_instance_actions)
 create_backup = copy.deepcopy(servers251.create_backup)
 list_live_migrations = copy.deepcopy(servers251.list_live_migrations)
diff --git a/tempest/lib/api_schema/response/compute/v2_57/servers.py b/tempest/lib/api_schema/response/compute/v2_57/servers.py
index 7bee542..4d61ea5 100644
--- a/tempest/lib/api_schema/response/compute/v2_57/servers.py
+++ b/tempest/lib/api_schema/response/compute/v2_57/servers.py
@@ -63,5 +63,6 @@
 show_volume_attachment = copy.deepcopy(servers254.show_volume_attachment)
 list_volume_attachments = copy.deepcopy(servers254.list_volume_attachments)
 show_instance_action = copy.deepcopy(servers254.show_instance_action)
+list_instance_actions = copy.deepcopy(servers254.list_instance_actions)
 create_backup = copy.deepcopy(servers254.create_backup)
 list_live_migrations = copy.deepcopy(servers254.list_live_migrations)
diff --git a/tempest/lib/api_schema/response/compute/v2_58/servers.py b/tempest/lib/api_schema/response/compute/v2_58/servers.py
index 3e7be49..7c3f881 100644
--- a/tempest/lib/api_schema/response/compute/v2_58/servers.py
+++ b/tempest/lib/api_schema/response/compute/v2_58/servers.py
@@ -12,6 +12,7 @@
 import copy
 
 from tempest.lib.api_schema.response.compute.v2_1 import parameter_types
+from tempest.lib.api_schema.response.compute.v2_1 import servers as servers2_1
 from tempest.lib.api_schema.response.compute.v2_57 import servers as servers257
 
 # microversion 2.58 added updated_at to the response
@@ -21,6 +22,15 @@
 show_instance_action['response_body']['properties']['instanceAction'][
     'required'].append('updated_at')
 
+# microversion 2.58 added updated_at and optionally links to the response
+list_instance_actions = copy.deepcopy(servers2_1.list_instance_actions)
+list_instance_actions['response_body']['properties']['instanceActions'][
+    'items']['properties']['updated_at'] = parameter_types.date_time
+list_instance_actions['response_body']['properties']['instanceActions'][
+    'items']['required'].append('updated_at')
+list_instance_actions['response_body']['properties'][
+    'links'] = parameter_types.links
+
 # Below are the unchanged schema in this microversion. We need
 # to keep this schema in this file to have the generic way to select the
 # right schema based on self.schema_versions_info mapping in service client.
diff --git a/tempest/lib/api_schema/response/compute/v2_59/servers.py b/tempest/lib/api_schema/response/compute/v2_59/servers.py
index a52c3f4..faf18f4 100644
--- a/tempest/lib/api_schema/response/compute/v2_59/servers.py
+++ b/tempest/lib/api_schema/response/compute/v2_59/servers.py
@@ -54,4 +54,5 @@
 show_volume_attachment = copy.deepcopy(servers258.show_volume_attachment)
 list_volume_attachments = copy.deepcopy(servers258.list_volume_attachments)
 show_instance_action = copy.deepcopy(servers258.show_instance_action)
+list_instance_actions = copy.deepcopy(servers258.list_instance_actions)
 create_backup = copy.deepcopy(servers258.create_backup)
diff --git a/tempest/lib/api_schema/response/compute/v2_6/servers.py b/tempest/lib/api_schema/response/compute/v2_6/servers.py
index d3fc884..827cf31 100644
--- a/tempest/lib/api_schema/response/compute/v2_6/servers.py
+++ b/tempest/lib/api_schema/response/compute/v2_6/servers.py
@@ -32,6 +32,7 @@
 show_volume_attachment = copy.deepcopy(servers.show_volume_attachment)
 list_volume_attachments = copy.deepcopy(servers.list_volume_attachments)
 show_instance_action = copy.deepcopy(servers.show_instance_action)
+list_instance_actions = copy.deepcopy(servers.list_instance_actions)
 create_backup = copy.deepcopy(servers.create_backup)
 list_live_migrations = copy.deepcopy(servers.list_live_migrations)
 
diff --git a/tempest/lib/api_schema/response/compute/v2_62/servers.py b/tempest/lib/api_schema/response/compute/v2_62/servers.py
index 829479f..7e74cd9 100644
--- a/tempest/lib/api_schema/response/compute/v2_62/servers.py
+++ b/tempest/lib/api_schema/response/compute/v2_62/servers.py
@@ -47,3 +47,4 @@
 list_volume_attachments = copy.deepcopy(servers259.list_volume_attachments)
 create_backup = copy.deepcopy(servers259.create_backup)
 list_live_migrations = copy.deepcopy(servers259.list_live_migrations)
+list_instance_actions = copy.deepcopy(servers259.list_instance_actions)
diff --git a/tempest/lib/api_schema/response/compute/v2_63/servers.py b/tempest/lib/api_schema/response/compute/v2_63/servers.py
index fe596f5..64f363a 100644
--- a/tempest/lib/api_schema/response/compute/v2_63/servers.py
+++ b/tempest/lib/api_schema/response/compute/v2_63/servers.py
@@ -77,5 +77,6 @@
 show_volume_attachment = copy.deepcopy(servers262.show_volume_attachment)
 list_volume_attachments = copy.deepcopy(servers262.list_volume_attachments)
 show_instance_action = copy.deepcopy(servers262.show_instance_action)
+list_instance_actions = copy.deepcopy(servers262.list_instance_actions)
 create_backup = copy.deepcopy(servers262.create_backup)
 list_live_migrations = copy.deepcopy(servers262.list_live_migrations)
diff --git a/tempest/lib/api_schema/response/compute/v2_70/servers.py b/tempest/lib/api_schema/response/compute/v2_70/servers.py
index bafc7cb..86a6274 100644
--- a/tempest/lib/api_schema/response/compute/v2_70/servers.py
+++ b/tempest/lib/api_schema/response/compute/v2_70/servers.py
@@ -79,5 +79,6 @@
 update_tag = copy.deepcopy(servers263.update_tag)
 delete_tag = copy.deepcopy(servers263.delete_tag)
 show_instance_action = copy.deepcopy(servers263.show_instance_action)
+list_instance_actions = copy.deepcopy(servers263.list_instance_actions)
 create_backup = copy.deepcopy(servers263.create_backup)
 list_live_migrations = copy.deepcopy(servers263.list_live_migrations)
diff --git a/tempest/lib/api_schema/response/compute/v2_71/servers.py b/tempest/lib/api_schema/response/compute/v2_71/servers.py
index 6444e7b..eb5812c 100644
--- a/tempest/lib/api_schema/response/compute/v2_71/servers.py
+++ b/tempest/lib/api_schema/response/compute/v2_71/servers.py
@@ -83,5 +83,6 @@
 show_volume_attachment = copy.deepcopy(servers270.show_volume_attachment)
 list_volume_attachments = copy.deepcopy(servers270.list_volume_attachments)
 show_instance_action = copy.deepcopy(servers270.show_instance_action)
+list_instance_actions = copy.deepcopy(servers270.list_instance_actions)
 create_backup = copy.deepcopy(servers270.create_backup)
 list_live_migrations = copy.deepcopy(servers270.list_live_migrations)
diff --git a/tempest/lib/api_schema/response/compute/v2_73/servers.py b/tempest/lib/api_schema/response/compute/v2_73/servers.py
index e6ca52e..132de74 100644
--- a/tempest/lib/api_schema/response/compute/v2_73/servers.py
+++ b/tempest/lib/api_schema/response/compute/v2_73/servers.py
@@ -80,5 +80,6 @@
 show_volume_attachment = copy.deepcopy(servers271.show_volume_attachment)
 list_volume_attachments = copy.deepcopy(servers271.list_volume_attachments)
 show_instance_action = copy.deepcopy(servers271.show_instance_action)
+list_instance_actions = copy.deepcopy(servers271.list_instance_actions)
 create_backup = copy.deepcopy(servers271.create_backup)
 list_live_migrations = copy.deepcopy(servers271.list_live_migrations)
diff --git a/tempest/lib/api_schema/response/compute/v2_75/servers.py b/tempest/lib/api_schema/response/compute/v2_75/servers.py
index a06355b..5825712 100644
--- a/tempest/lib/api_schema/response/compute/v2_75/servers.py
+++ b/tempest/lib/api_schema/response/compute/v2_75/servers.py
@@ -61,5 +61,6 @@
 show_volume_attachment = copy.deepcopy(servers273.show_volume_attachment)
 list_volume_attachments = copy.deepcopy(servers273.list_volume_attachments)
 show_instance_action = copy.deepcopy(servers273.show_instance_action)
+list_instance_actions = copy.deepcopy(servers273.list_instance_actions)
 create_backup = copy.deepcopy(servers273.create_backup)
 list_live_migrations = copy.deepcopy(servers273.list_live_migrations)
diff --git a/tempest/lib/api_schema/response/compute/v2_79/servers.py b/tempest/lib/api_schema/response/compute/v2_79/servers.py
index f2d3103..25217ca 100644
--- a/tempest/lib/api_schema/response/compute/v2_79/servers.py
+++ b/tempest/lib/api_schema/response/compute/v2_79/servers.py
@@ -66,5 +66,6 @@
 update_tag = copy.deepcopy(servers275.update_tag)
 delete_tag = copy.deepcopy(servers275.delete_tag)
 show_instance_action = copy.deepcopy(servers275.show_instance_action)
+list_instance_actions = copy.deepcopy(servers275.list_instance_actions)
 create_backup = copy.deepcopy(servers275.create_backup)
 list_live_migrations = copy.deepcopy(servers275.list_live_migrations)
diff --git a/tempest/lib/api_schema/response/compute/v2_8/servers.py b/tempest/lib/api_schema/response/compute/v2_8/servers.py
index 0d37155..4761817 100644
--- a/tempest/lib/api_schema/response/compute/v2_8/servers.py
+++ b/tempest/lib/api_schema/response/compute/v2_8/servers.py
@@ -39,5 +39,6 @@
 show_volume_attachment = copy.deepcopy(servers.show_volume_attachment)
 list_volume_attachments = copy.deepcopy(servers.list_volume_attachments)
 show_instance_action = copy.deepcopy(servers.show_instance_action)
+list_instance_actions = copy.deepcopy(servers.list_instance_actions)
 create_backup = copy.deepcopy(servers.create_backup)
 list_live_migrations = copy.deepcopy(servers.list_live_migrations)
diff --git a/tempest/lib/api_schema/response/compute/v2_80/servers.py b/tempest/lib/api_schema/response/compute/v2_80/servers.py
index cde1612..ad58594 100644
--- a/tempest/lib/api_schema/response/compute/v2_80/servers.py
+++ b/tempest/lib/api_schema/response/compute/v2_80/servers.py
@@ -54,6 +54,7 @@
 update_tag = copy.deepcopy(servers279.update_tag)
 delete_tag = copy.deepcopy(servers279.delete_tag)
 show_instance_action = copy.deepcopy(servers279.show_instance_action)
+list_instance_actions = copy.deepcopy(servers279.list_instance_actions)
 create_backup = copy.deepcopy(servers279.create_backup)
 attach_volume = copy.deepcopy(servers279.attach_volume)
 show_volume_attachment = copy.deepcopy(servers279.show_volume_attachment)
diff --git a/tempest/lib/api_schema/response/compute/v2_89/servers.py b/tempest/lib/api_schema/response/compute/v2_89/servers.py
index f072eda..389fc08 100644
--- a/tempest/lib/api_schema/response/compute/v2_89/servers.py
+++ b/tempest/lib/api_schema/response/compute/v2_89/servers.py
@@ -81,5 +81,6 @@
 update_tag = copy.deepcopy(servers280.update_tag)
 delete_tag = copy.deepcopy(servers280.delete_tag)
 show_instance_action = copy.deepcopy(servers280.show_instance_action)
+list_instance_actions = copy.deepcopy(servers280.list_instance_actions)
 create_backup = copy.deepcopy(servers280.create_backup)
 list_live_migrations = copy.deepcopy(servers280.list_live_migrations)
diff --git a/tempest/lib/api_schema/response/compute/v2_9/servers.py b/tempest/lib/api_schema/response/compute/v2_9/servers.py
index ad39b14..a0c18f4 100644
--- a/tempest/lib/api_schema/response/compute/v2_9/servers.py
+++ b/tempest/lib/api_schema/response/compute/v2_9/servers.py
@@ -58,5 +58,6 @@
 show_volume_attachment = copy.deepcopy(servers.show_volume_attachment)
 list_volume_attachments = copy.deepcopy(servers.list_volume_attachments)
 show_instance_action = copy.deepcopy(servers.show_instance_action)
+list_instance_actions = copy.deepcopy(servers.list_instance_actions)
 create_backup = copy.deepcopy(servers.create_backup)
 list_live_migrations = copy.deepcopy(servers.list_live_migrations)
diff --git a/tempest/lib/api_schema/response/compute/v2_96/servers.py b/tempest/lib/api_schema/response/compute/v2_96/servers.py
index 0c4be65..559a6aa 100644
--- a/tempest/lib/api_schema/response/compute/v2_96/servers.py
+++ b/tempest/lib/api_schema/response/compute/v2_96/servers.py
@@ -83,5 +83,6 @@
 update_tag = copy.deepcopy(servers289.update_tag)
 delete_tag = copy.deepcopy(servers289.delete_tag)
 show_instance_action = copy.deepcopy(servers289.show_instance_action)
+list_instance_actions = copy.deepcopy(servers289.list_instance_actions)
 create_backup = copy.deepcopy(servers289.create_backup)
 list_live_migrations = copy.deepcopy(servers289.list_live_migrations)
diff --git a/tempest/lib/api_schema/response/compute/v2_98/servers.py b/tempest/lib/api_schema/response/compute/v2_98/servers.py
index 0296410..7170bd1 100644
--- a/tempest/lib/api_schema/response/compute/v2_98/servers.py
+++ b/tempest/lib/api_schema/response/compute/v2_98/servers.py
@@ -82,5 +82,6 @@
 update_tag = copy.deepcopy(servers296.update_tag)
 delete_tag = copy.deepcopy(servers296.delete_tag)
 show_instance_action = copy.deepcopy(servers296.show_instance_action)
+list_instance_actions = copy.deepcopy(servers296.list_instance_actions)
 create_backup = copy.deepcopy(servers296.create_backup)
 list_live_migrations = copy.deepcopy(servers296.list_live_migrations)
diff --git a/tempest/lib/api_schema/response/compute/v2_99/servers.py b/tempest/lib/api_schema/response/compute/v2_99/servers.py
index 25b3150..da24729 100644
--- a/tempest/lib/api_schema/response/compute/v2_99/servers.py
+++ b/tempest/lib/api_schema/response/compute/v2_99/servers.py
@@ -30,6 +30,7 @@
 show_volume_attachment = copy.deepcopy(servers.show_volume_attachment)
 list_volume_attachments = copy.deepcopy(servers.list_volume_attachments)
 show_instance_action = copy.deepcopy(servers.show_instance_action)
+list_instance_actions = copy.deepcopy(servers.list_instance_actions)
 create_backup = copy.deepcopy(servers.create_backup)
 list_live_migrations = copy.deepcopy(servers.list_live_migrations)
 
diff --git a/tempest/lib/services/compute/servers_client.py b/tempest/lib/services/compute/servers_client.py
index 1778194..56a8721 100644
--- a/tempest/lib/services/compute/servers_client.py
+++ b/tempest/lib/services/compute/servers_client.py
@@ -767,6 +767,7 @@
         resp, body = self.get("servers/%s/os-instance-actions" %
                               server_id)
         body = json.loads(body)
+        schema = self.get_schema(self.schema_versions_info)
         self.validate_response(schema.list_instance_actions, resp, body)
         return rest_client.ResponseBody(resp, body)