diff --git a/tempest/scenario/test_network_basic_ops.py b/tempest/scenario/test_network_basic_ops.py index d8584ec88b..f466729b41 100644 --- a/tempest/scenario/test_network_basic_ops.py +++ b/tempest/scenario/test_network_basic_ops.py @@ -297,9 +297,19 @@ class TestNetworkBasicOps(manager.NetworkScenarioTest): ip_mask = CONF.network.project_network_mask_bits # check if the address is not already in use, if not, set it if ' ' + ip_address + '/' + str(ip_mask) not in ip_output: - ssh_client.exec_command("sudo ip addr add %s/%s dev %s" % ( - ip_address, ip_mask, new_nic)) - ssh_client.exec_command("sudo ip link set %s up" % new_nic) + try: + ssh_client.exec_command("sudo ip addr add %s/%s dev %s" % ( + ip_address, ip_mask, new_nic)) + ssh_client.exec_command("sudo ip link set %s up" % new_nic) + except exceptions.SSHExecCommandFailed as exc: + if 'RTNETLINK answers: File exists' in str(exc): + LOG.debug( + 'IP address %(ip_address)s is already set in device ' + '%(device)s\nPrevious "ip a" output: %(ip_output)s', + {'ip_address': ip_address, 'device': new_nic, + 'ip_output': ip_output}) + else: + raise exc def _get_server_nics(self, ssh_client): reg = re.compile(r'(?P\d+): (?P\w+)[@]?.*:')