From f00d545041b75b5d3e215bf435689e933dbb4f62 Mon Sep 17 00:00:00 2001 From: Gonéri Le Bouder Date: Fri, 20 Nov 2015 15:56:37 -0500 Subject: ifcfg: add VLAN=yes when needed Add the VLAN=yes parameter if the interface name is in the foo.123 format. This is the behavior and Debian allow the same os-net-config configuration file to be consistent with Red Hat systems. See also: https://bugzilla.redhat.com/show_bug.cgi?id=1283812 Change-Id: Iab2a4861e2231b34899c379963abbef59cf73328 Closes-Bug: #1518449 --- os_net_config/impl_ifcfg.py | 3 +++ os_net_config/tests/test_impl_ifcfg.py | 14 ++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/os_net_config/impl_ifcfg.py b/os_net_config/impl_ifcfg.py index 0deb61e..70f5065 100644 --- a/os_net_config/impl_ifcfg.py +++ b/os_net_config/impl_ifcfg.py @@ -16,6 +16,7 @@ import glob import logging +import re import os_net_config from os_net_config import objects @@ -83,6 +84,8 @@ class IfcfgNetConfig(os_net_config.NetConfig): data += "VLAN=yes\n" if base_opt.device: data += "PHYSDEV=%s\n" % base_opt.device + elif re.match('\w+\.\d+$', base_opt.name): + data += "VLAN=yes\n" if base_opt.ovs_port: data += "DEVICETYPE=ovs\n" if base_opt.bridge_name: diff --git a/os_net_config/tests/test_impl_ifcfg.py b/os_net_config/tests/test_impl_ifcfg.py index db61795..c914ea2 100644 --- a/os_net_config/tests/test_impl_ifcfg.py +++ b/os_net_config/tests/test_impl_ifcfg.py @@ -39,6 +39,15 @@ IPADDR=192.168.1.2 NETMASK=255.255.255.0 """ +_IFCFG_VLAN = """# This file is autogenerated by os-net-config +DEVICE=em1.120 +ONBOOT=yes +HOTPLUG=no +NM_CONTROLLED=no +VLAN=yes +BOOTPROTO=none +""" + _V4_IFCFG_MAPPED = _V4_IFCFG.replace('em1', 'nic1') + "HWADDR=a1:b2:c3:d4:e5\n" _V4_IFCFG_MULTIPLE = _V4_IFCFG + """IPADDR1=192.168.1.3 @@ -199,6 +208,11 @@ class TestIfcfgNetConfig(base.TestCase): self.provider.add_interface(interface) self.assertEqual(_NO_IP, self.get_interface_config()) + def test_add_base_interface_vlan(self): + interface = objects.Interface('em1.120') + self.provider.add_interface(interface) + self.assertEqual(_IFCFG_VLAN, self.get_interface_config('em1.120')) + def test_add_ovs_interface(self): interface = objects.Interface('em1') interface.ovs_port = True -- cgit 1.2.3-korg