diff --git a/trove/tests/scenario/runners/cluster_actions_runners.py b/trove/tests/scenario/runners/cluster_actions_runners.py index ad863870ed..2a2f075976 100644 --- a/trove/tests/scenario/runners/cluster_actions_runners.py +++ b/trove/tests/scenario/runners/cluster_actions_runners.py @@ -168,13 +168,12 @@ class ClusterActionsRunner(TestRunner): instance['id']) self.assert_true(root_enabled_test.rootEnabled) - for ip in cluster.ip: - self.report.log("Pinging cluster as superuser via node: %s" % ip) + for ipv4 in self.extract_ipv4s(cluster.ip): + self.report.log("Pinging cluster as superuser via node: %s" % ipv4) ping_response = self.test_helper.ping( - ip, + ipv4, username=self.current_root_creds[0], - password=self.current_root_creds[1] - ) + password=self.current_root_creds[1]) self.assert_true(ping_response) def run_add_initial_cluster_data(self, data_type=DataType.tiny): @@ -185,7 +184,7 @@ class ClusterActionsRunner(TestRunner): def assert_add_cluster_data(self, data_type, cluster_id): cluster = self.auth_client.clusters.get(cluster_id) - self.test_helper.add_data(data_type, cluster.ip[0]) + self.test_helper.add_data(data_type, self.extract_ipv4s(cluster.ip)[0]) def run_verify_initial_cluster_data(self, data_type=DataType.tiny): self.assert_verify_cluster_data(data_type, self.cluster_id) @@ -195,9 +194,9 @@ class ClusterActionsRunner(TestRunner): def assert_verify_cluster_data(self, data_type, cluster_id): cluster = self.auth_client.clusters.get(cluster_id) - for ip in cluster.ip: - self.report.log("Verifying cluster data via node: %s" % ip) - self.test_helper.verify_data(data_type, ip) + for ipv4 in self.extract_ipv4s(cluster.ip): + self.report.log("Verifying cluster data via node: %s" % ipv4) + self.test_helper.verify_data(data_type, ipv4) def run_remove_initial_cluster_data(self, data_type=DataType.tiny): self.assert_remove_cluster_data(data_type, self.cluster_id) @@ -207,7 +206,8 @@ class ClusterActionsRunner(TestRunner): def assert_remove_cluster_data(self, data_type, cluster_id): cluster = self.auth_client.clusters.get(cluster_id) - self.test_helper.remove_data(data_type, cluster.ip[0]) + self.test_helper.remove_data( + data_type, self.extract_ipv4s(cluster.ip)[0]) def run_cluster_grow(self, expected_task_name='GROWING_CLUSTER', expected_http_code=202): diff --git a/trove/tests/scenario/runners/replication_runners.py b/trove/tests/scenario/runners/replication_runners.py index 2d40232116..b6a178eada 100644 --- a/trove/tests/scenario/runners/replication_runners.py +++ b/trove/tests/scenario/runners/replication_runners.py @@ -206,8 +206,7 @@ class ReplicationRunner(TestRunner): def assert_verify_replica_data(self, master_id, data_type): replica_ids = self._get_replica_set(master_id) for replica_id in replica_ids: - replica_instance = self.get_instance(replica_id) - host = str(replica_instance._info['ip'][0]) + host = self.get_instance_host(replica_id) self.report.log("Checking data on host %s" % host) self.assert_verify_replication_data(data_type, host) diff --git a/trove/tests/scenario/runners/test_runners.py b/trove/tests/scenario/runners/test_runners.py index ebf1ecb469..3b610c3ddb 100644 --- a/trove/tests/scenario/runners/test_runners.py +++ b/trove/tests/scenario/runners/test_runners.py @@ -14,6 +14,7 @@ # under the License. import datetime +import netaddr import os import proboscis import time as timer @@ -628,10 +629,16 @@ class TestRunner(object): client = client or self.auth_client return client.instances.get(instance_id) + def extract_ipv4s(self, ips): + ipv4s = [str(ip) for ip in ips if netaddr.valid_ipv4(ip)] + if not ipv4s: + self.fail("No IPV4 ip found") + return ipv4s + def get_instance_host(self, instance_id=None): instance_id = instance_id or self.instance_info.id instance = self.get_instance(instance_id) - host = str(instance._info['ip'][0]) + host = self.extract_ipv4s(instance._info['ip'])[0] self.report.log("Found host %s for instance %s." % (host, instance_id)) return host