Log vms' console output in scenario tests
If any of scenario tests will fail in check_remote_connectivity(),
it will log console output of the VMs which should make
debugging of test failures easier.
Change-Id: Ib6b2e6ea5c4465ec76699bf42b82e2bae448436d
diff --git a/neutron_tempest_plugin/scenario/admin/test_floatingip.py b/neutron_tempest_plugin/scenario/admin/test_floatingip.py
index 511452c..a08acc3 100644
--- a/neutron_tempest_plugin/scenario/admin/test_floatingip.py
+++ b/neutron_tempest_plugin/scenario/admin/test_floatingip.py
@@ -85,7 +85,7 @@
server_ssh_clients.append(ssh.Client(
fips[i]['floating_ip_address'], CONF.validation.image_ssh_user,
pkey=self.keypair['private_key']))
- return server_ssh_clients, fips
+ return servers, server_ssh_clients, fips
@decorators.idempotent_id('6bba729b-3fb6-494b-9e1e-82bbd89a1045')
def test_two_vms_fips(self):
@@ -99,6 +99,7 @@
hyper = self._list_hypervisors()[0]['hypervisor_hostname']
# Get availability zone list to pass it for vm creation
avail_zone = self._list_availability_zones()[0]['zoneName']
- server_ssh_clients, fips = self._create_vms(hyper, avail_zone)
+ servers, server_ssh_clients, fips = self._create_vms(hyper, avail_zone)
self.check_remote_connectivity(
- server_ssh_clients[0], fips[1]['floating_ip_address'])
+ server_ssh_clients[0], fips[1]['floating_ip_address'],
+ servers=servers)
diff --git a/neutron_tempest_plugin/scenario/test_connectivity.py b/neutron_tempest_plugin/scenario/test_connectivity.py
index 5aa8f73..1a7468a 100644
--- a/neutron_tempest_plugin/scenario/test_connectivity.py
+++ b/neutron_tempest_plugin/scenario/test_connectivity.py
@@ -66,6 +66,8 @@
for vm in vms:
self.wait_for_server_active(vm['server'])
+ return vms
+
@decorators.idempotent_id('8944b90d-1766-4669-bd8a-672b5d106bb7')
def test_connectivity_through_2_routers(self):
ap1_net = self.create_network()
@@ -109,7 +111,7 @@
routes=[{"destination": ap1_subnet['cidr'],
"nexthop": ap1_wan_port['fixed_ips'][0]['ip_address']}])
- self._create_servers(ap1_internal_port, ap2_internal_port)
+ servers = self._create_servers(ap1_internal_port, ap2_internal_port)
ap1_fip = self.create_and_associate_floatingip(
ap1_internal_port['id'])
@@ -118,7 +120,8 @@
pkey=self.keypair['private_key'])
self.check_remote_connectivity(
- ap1_sshclient, ap2_internal_port['fixed_ips'][0]['ip_address'])
+ ap1_sshclient, ap2_internal_port['fixed_ips'][0]['ip_address'],
+ servers=servers)
@decorators.idempotent_id('b72c3b77-3396-4144-b05d-9cd3c0099893')
def test_connectivity_router_east_west_traffic(self):
@@ -145,7 +148,7 @@
self.create_router_interface(router['id'], subnet_1['id'])
self.create_router_interface(router['id'], subnet_2['id'])
- self._create_servers(internal_port_1, internal_port_2)
+ servers = self._create_servers(internal_port_1, internal_port_2)
fip = self.create_and_associate_floatingip(
internal_port_1['id'])
@@ -155,7 +158,7 @@
self.check_remote_connectivity(
sshclient, internal_port_2['fixed_ips'][0]['ip_address'],
- ping_count=10)
+ ping_count=10, servers=servers)
@utils.requires_ext(extension="dvr", service="network")
@decorators.idempotent_id('69d3650a-5c32-40bc-ae56-5c4c849ddd37')
@@ -237,7 +240,8 @@
fip['floating_ip_address'], CONF.validation.image_ssh_user,
pkey=self.keypair['private_key'])
- self.check_remote_connectivity(sshclient, str(gw_ip), ping_count=10)
+ self.check_remote_connectivity(
+ sshclient, str(gw_ip), ping_count=10, servers=[vm])
self.check_remote_connectivity(
sshclient, dvr_router_port['fixed_ips'][0]['ip_address'],
- ping_count=10)
+ ping_count=10, servers=[vm])
diff --git a/neutron_tempest_plugin/scenario/test_floatingip.py b/neutron_tempest_plugin/scenario/test_floatingip.py
index e276a02..37df5be 100644
--- a/neutron_tempest_plugin/scenario/test_floatingip.py
+++ b/neutron_tempest_plugin/scenario/test_floatingip.py
@@ -134,10 +134,12 @@
# Check connectivity
self.check_remote_connectivity(ssh_client,
- dest_server['port']['fixed_ips'][0]['ip_address'])
+ dest_server['port']['fixed_ips'][0]['ip_address'],
+ servers=[src_server, dest_server])
if self.dest_has_fip:
self.check_remote_connectivity(ssh_client,
- dest_server['fip']['floating_ip_address'])
+ dest_server['fip']['floating_ip_address'],
+ servers=[src_server, dest_server])
class FloatingIpSameNetwork(FloatingIpTestCasesMixin,
@@ -200,7 +202,8 @@
pkey=self.keypair['private_key'],
proxy_client=proxy_client)
self.check_remote_connectivity(ssh_client,
- gateway_external_ip)
+ gateway_external_ip,
+ servers=[proxy, src_server])
class FloatingIPPortDetailsTest(FloatingIpTestCasesMixin,
@@ -418,7 +421,8 @@
self.fip = self.create_floatingip(port=ports[0])
self.check_connectivity(self.fip['floating_ip_address'],
CONF.validation.image_ssh_user,
- self.keypair['private_key'])
+ self.keypair['private_key'],
+ servers=servers)
self.client.update_floatingip(self.fip['id'], port_id=ports[1]['id'])
def _wait_for_fip_associated():
diff --git a/neutron_tempest_plugin/scenario/test_internal_dns.py b/neutron_tempest_plugin/scenario/test_internal_dns.py
index 13ca797..d19286c 100644
--- a/neutron_tempest_plugin/scenario/test_internal_dns.py
+++ b/neutron_tempest_plugin/scenario/test_internal_dns.py
@@ -69,11 +69,14 @@
# in very long boot times.
self.check_remote_connectivity(
ssh_client, leia_port['fixed_ips'][0]['ip_address'],
- timeout=CONF.validation.ping_timeout * 10)
+ timeout=CONF.validation.ping_timeout * 10,
+ servers=[self.server, leia])
resolv_conf = ssh_client.exec_command('cat /etc/resolv.conf')
self.assertIn('openstackgate.local', resolv_conf)
self.assertNotIn('starwars', resolv_conf)
- self.check_remote_connectivity(ssh_client, 'leia')
- self.check_remote_connectivity(ssh_client, 'leia.openstackgate.local')
+ self.check_remote_connectivity(ssh_client, 'leia',
+ servers=[self.server, leia])
+ self.check_remote_connectivity(ssh_client, 'leia.openstackgate.local',
+ servers=[self.server, leia])
diff --git a/neutron_tempest_plugin/scenario/test_mtu.py b/neutron_tempest_plugin/scenario/test_mtu.py
index df730c6..31319ec 100644
--- a/neutron_tempest_plugin/scenario/test_mtu.py
+++ b/neutron_tempest_plugin/scenario/test_mtu.py
@@ -129,7 +129,8 @@
for fip in (fip1, fip2):
self.check_connectivity(
fip['floating_ip_address'],
- self.username, self.keypair['private_key'])
+ self.username, self.keypair['private_key'],
+ servers=[server1, server2])
return server_ssh_client1, fip1, server_ssh_client2, fip2
@testtools.skipUnless(
diff --git a/neutron_tempest_plugin/scenario/test_security_groups.py b/neutron_tempest_plugin/scenario/test_security_groups.py
index 67d9306..dc14857 100644
--- a/neutron_tempest_plugin/scenario/test_security_groups.py
+++ b/neutron_tempest_plugin/scenario/test_security_groups.py
@@ -141,11 +141,12 @@
# make sure ICMP connectivity works
self.check_remote_connectivity(server_ssh_clients[0], fips[1][
- 'fixed_ip_address'], should_succeed=should_succeed)
+ 'fixed_ip_address'], should_succeed=should_succeed,
+ servers=servers)
@decorators.idempotent_id('3d73ec1a-2ec6-45a9-b0f8-04a283d9d764')
def test_default_sec_grp_scenarios(self):
- server_ssh_clients, fips, _ = self.create_vm_testing_sec_grp()
+ server_ssh_clients, fips, servers = self.create_vm_testing_sec_grp()
# Check ssh connectivity when you add sec group rule, enabling ssh
self.create_loginable_secgroup_rule(
self.os_primary.network_client.list_security_groups()[
@@ -162,7 +163,8 @@
# Check ICMP connectivity between VMs without specific rule for that
# It should work though the rule is not configured
self.check_remote_connectivity(
- server_ssh_clients[0], fips[1]['fixed_ip_address'])
+ server_ssh_clients[0], fips[1]['fixed_ip_address'],
+ servers=servers)
# Check ICMP connectivity from VM to external network
subnets = self.os_admin.network_client.list_subnets(
@@ -173,7 +175,8 @@
ext_net_ip = subnet['gateway_ip']
break
self.assertTrue(ext_net_ip)
- self.check_remote_connectivity(server_ssh_clients[0], ext_net_ip)
+ self.check_remote_connectivity(server_ssh_clients[0], ext_net_ip,
+ servers=servers)
@decorators.idempotent_id('3d73ec1a-2ec6-45a9-b0f8-04a283d9d864')
def test_protocol_number_rule(self):
@@ -297,7 +300,8 @@
rule_list, secgroup_id=ssh_secgrp['security_group']['id'])
# verify ICMP connectivity between instances works
self.check_remote_connectivity(
- server_ssh_clients[0], fips[1]['fixed_ip_address'])
+ server_ssh_clients[0], fips[1]['fixed_ip_address'],
+ servers=servers)
# make sure ICMP connectivity doesn't work from framework
self.ping_ip_address(fips[0]['floating_ip_address'],
should_succeed=False)
diff --git a/neutron_tempest_plugin/scenario/test_trunk.py b/neutron_tempest_plugin/scenario/test_trunk.py
index 6d855f1..7fd6c52 100644
--- a/neutron_tempest_plugin/scenario/test_trunk.py
+++ b/neutron_tempest_plugin/scenario/test_trunk.py
@@ -282,7 +282,8 @@
self.create_pingable_secgroup_rule(self.security_group['id'])
self.check_remote_connectivity(
vm1.ssh_client,
- vm2.subport['fixed_ips'][0]['ip_address'])
+ vm2.subport['fixed_ips'][0]['ip_address'],
+ servers=[vm1, vm2])
@testtools.skipUnless(
(CONF.neutron_plugin_options.advanced_image_ref or
@@ -308,11 +309,12 @@
use_advanced_image=use_advanced_image)
normal_network_server = self._create_server_with_network(self.network)
vlan_network_server = self._create_server_with_network(vlan_network)
+ vms = [normal_network_server, vlan_network_server]
self._configure_vlan_subport(vm=trunk_network_server,
vlan_tag=vlan_tag,
vlan_subnet=vlan_subnet)
- for vm in [normal_network_server, vlan_network_server]:
+ for vm in vms:
self.wait_for_server_active(vm.server)
# allow ICMP traffic
@@ -323,14 +325,16 @@
self.check_remote_connectivity(
trunk_network_server.ssh_client,
normal_network_server.port['fixed_ips'][0]['ip_address'],
- should_succeed=True)
+ should_succeed=True,
+ servers=vms)
# Ping from trunk_network_server to vlan_network_server via VLAN
# interface should success
self.check_remote_connectivity(
trunk_network_server.ssh_client,
vlan_network_server.port['fixed_ips'][0]['ip_address'],
- should_succeed=True)
+ should_succeed=True,
+ servers=vms)
# Delete the trunk
self.delete_trunk(
@@ -344,7 +348,8 @@
self.check_remote_connectivity(
trunk_network_server.ssh_client,
normal_network_server.port['fixed_ips'][0]['ip_address'],
- should_succeed=True)
+ should_succeed=True,
+ servers=vms)
# Ping from trunk_network_server to vlan_network_server via VLAN
# interface should fail after trunk deleted