Update server nic handling for LXD style nic names

Nova-LXD/LXD supports hotplugging of network interfaces, but
nic names are a little different to those in qemu/kvm:

  1249: eth0@if1250: <BROADCAST...> mtu 1450 ... 1000

These are actually part of a veth pair (hence the @ annotation).

Update server nic handling to deal with trailing '@if<peerid>'
so that nics get correctly detected when testing LXD based
OpenStack Clouds.

Change-Id: Ic7eb222d627513b9251772e2a3bf4909c4794a9f
This commit is contained in:
James Page 2017-06-09 12:05:09 +01:00
parent a863236795
commit a9366270c2
2 changed files with 3 additions and 3 deletions

View File

@ -93,12 +93,12 @@ class RemoteClient(remote_client.RemoteClient):
def get_nic_name_by_mac(self, address):
cmd = "ip -o link | awk '/%s/ {print $2}'" % address
nic = self.exec_command(cmd)
return nic.strip().strip(":").lower()
return nic.strip().strip(":").split('@')[0].lower()
def get_nic_name_by_ip(self, address):
cmd = "ip -o addr | awk '/%s/ {print $2}'" % address
nic = self.exec_command(cmd)
return nic.strip().strip(":").lower()
return nic.strip().strip(":").split('@')[0].lower()
def get_dns_servers(self):
cmd = 'cat /etc/resolv.conf'

View File

@ -295,7 +295,7 @@ class TestNetworkBasicOps(manager.NetworkScenarioTest):
ssh_client.exec_command("sudo ip link set %s up" % new_nic)
def _get_server_nics(self, ssh_client):
reg = re.compile(r'(?P<num>\d+): (?P<nic_name>\w+):')
reg = re.compile(r'(?P<num>\d+): (?P<nic_name>\w+)[@]?.*:')
ipatxt = ssh_client.exec_command("ip address")
return reg.findall(ipatxt)