Have scenario tests use ipv4
The scenario tests currently use the first ip address (or in the case of clusters, all) that is found. Unfortunately some datastores don't support IPV6, so if a non-ipv4 ip is used, the test will fail. Until all datastores support IPV6 (or we can come up with a strategy to intelligently decide which to use) we should only use the IPV4 ips, so the tests have been changed to accomodate this. Closes-Bug: 1642741 Depends-On: Ia4fc545a10c7c16532aefd73818dd7d90c9c271b Change-Id: I6aff776680c9c0632d8965c3ed70ed26db0a63f2
This commit is contained in:
parent
0d514081c9
commit
7b36391800
|
@ -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):
|
||||
|
|
|
@ -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)
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
Loading…
Reference in New Issue