Merge "Fix numbered NIC mapping when using dotted VLAN notation" into stable/queens
This commit is contained in:
commit
ebf14d2f54
|
@ -262,14 +262,22 @@ class _BaseOpts(object):
|
|||
self.hwaddr = None
|
||||
self.hwname = None
|
||||
self.renamed = False
|
||||
if name in mapped_nic_names:
|
||||
# Split name to support <nic>.<vlan_id> format, e.g. em1.10 or nic1.10
|
||||
if len(name.split('.')) > 1 and name.split('.')[1].isdigit():
|
||||
base_name = name.split('.')[0]
|
||||
vlan_suffix = '.%s' % name.split('.')[1]
|
||||
else:
|
||||
base_name = name
|
||||
vlan_suffix = ''
|
||||
if base_name in mapped_nic_names:
|
||||
if persist_mapping:
|
||||
self.name = name
|
||||
self.hwname = mapped_nic_names[name]
|
||||
self.hwname = '%s%s' % (mapped_nic_names[base_name],
|
||||
vlan_suffix)
|
||||
self.hwaddr = utils.interface_mac(self.hwname)
|
||||
self.renamed = True
|
||||
else:
|
||||
self.name = mapped_nic_names[name]
|
||||
self.name = '%s%s' % (mapped_nic_names[base_name], vlan_suffix)
|
||||
else:
|
||||
self.name = name
|
||||
|
||||
|
|
|
@ -102,6 +102,15 @@ class TestInterface(base.TestCase):
|
|||
self.assertEqual("em1", interface.name)
|
||||
self.assertTrue(interface.use_dhcp)
|
||||
|
||||
def test_from_json_dotted_vlan(self):
|
||||
def dummy_mapped_nics(nic_mapping=None):
|
||||
return {"nic1": "em3"}
|
||||
self.stub_out('os_net_config.objects.mapped_nics', dummy_mapped_nics)
|
||||
|
||||
data = '{"type": "interface", "name": "nic1.10", "use_dhcp": true}'
|
||||
interface = objects.object_from_json(json.loads(data))
|
||||
self.assertEqual("em3.10", interface.name)
|
||||
|
||||
def test_from_json_hotplug(self):
|
||||
data = """{
|
||||
"type": "interface",
|
||||
|
|
Loading…
Reference in New Issue