TestSecurityGroupsBasicOps: log console from access point instance
If a test case fails, we log console output for all servers registered
in tenant.servers. So far we have not included the access point servers
for alt_tenant in the log, so in case of failure we miss a crucial data
point: what happened inside the "access point" instance itself.
Change-Id: I52594fb6d2a86abeb2e00c2ff24b3f7d6042222d
diff --git a/tempest/scenario/manager.py b/tempest/scenario/manager.py
index c1270c7..3418a2f 100644
--- a/tempest/scenario/manager.py
+++ b/tempest/scenario/manager.py
@@ -411,16 +411,17 @@
return image
- def _log_console_output(self, servers=None):
+ def _log_console_output(self, servers=None, client=None):
if not CONF.compute_feature_enabled.console_output:
LOG.debug('Console output not supported, cannot log')
return
+ client = client or self.servers_client
if not servers:
- servers = self.servers_client.list_servers()
+ servers = client.list_servers()
servers = servers['servers']
for server in servers:
try:
- console_output = self.servers_client.get_console_output(
+ console_output = client.get_console_output(
server['id'])['output']
LOG.debug('Console output for %s\nbody=\n%s',
server['id'], console_output)
diff --git a/tempest/scenario/test_security_groups_basic_ops.py b/tempest/scenario/test_security_groups_basic_ops.py
index 72b61c8..401ad8d 100644
--- a/tempest/scenario/test_security_groups_basic_ops.py
+++ b/tempest/scenario/test_security_groups_basic_ops.py
@@ -122,6 +122,7 @@
self.router = None
self.security_groups = {}
self.servers = list()
+ self.access_point = None
def set_network(self, network, subnet, router):
self.network = network
@@ -458,6 +459,14 @@
subnet_id = tenant.subnet['id']
self.assertIn((subnet_id, server_ip, mac_addr), port_detail_list)
+ def _log_console_output_for_all_tenants(self):
+ for tenant in self.tenants.values():
+ client = tenant.manager.servers_client
+ self._log_console_output(servers=tenant.servers, client=client)
+ if tenant.access_point is not None:
+ self._log_console_output(
+ servers=[tenant.access_point], client=client)
+
@decorators.idempotent_id('e79f879e-debb-440c-a7e4-efeda05b6848')
@test.services('compute', 'network')
def test_cross_tenant_traffic(self):
@@ -475,8 +484,7 @@
self._test_cross_tenant_block(source_tenant, dest_tenant)
self._test_cross_tenant_allow(source_tenant, dest_tenant)
except Exception:
- for tenant in self.tenants.values():
- self._log_console_output(servers=tenant.servers)
+ self._log_console_output_for_all_tenants()
raise
@decorators.idempotent_id('63163892-bbf6-4249-aa12-d5ea1f8f421b')
@@ -489,8 +497,7 @@
self._test_in_tenant_block(self.primary_tenant)
self._test_in_tenant_allow(self.primary_tenant)
except Exception:
- for tenant in self.tenants.values():
- self._log_console_output(servers=tenant.servers)
+ self._log_console_output_for_all_tenants()
raise
@decorators.idempotent_id('f4d556d7-1526-42ad-bafb-6bebf48568f6')
@@ -544,8 +551,7 @@
source=access_point_ssh,
dest=self._get_server_ip(server))
except Exception:
- for tenant in self.tenants.values():
- self._log_console_output(servers=tenant.servers)
+ self._log_console_output_for_all_tenants()
raise
@decorators.idempotent_id('d2f77418-fcc4-439d-b935-72eca704e293')
@@ -618,8 +624,7 @@
source=access_point_ssh,
dest=self._get_server_ip(server))
except Exception:
- for tenant in self.tenants.values():
- self._log_console_output(servers=tenant.servers)
+ self._log_console_output_for_all_tenants()
raise
@test.attr(type='slow')