diff --git a/os_net_config/impl_ifcfg.py b/os_net_config/impl_ifcfg.py index e09574c9..0b6a9f50 100644 --- a/os_net_config/impl_ifcfg.py +++ b/os_net_config/impl_ifcfg.py @@ -459,7 +459,7 @@ class IfcfgNetConfig(os_net_config.NetConfig): if isinstance(base_opt, objects.OvsBridge): data += "DEVICETYPE=ovs\n" data += "TYPE=OVSBridge\n" - if base_opt.use_dhcp: + if base_opt.use_dhcp or base_opt.use_dhcpv6: data += "OVSBOOTPROTO=dhcp\n" if base_opt.members: members = [member.name for member in base_opt.members] @@ -476,7 +476,7 @@ class IfcfgNetConfig(os_net_config.NetConfig): elif isinstance(base_opt, objects.OvsUserBridge): data += "DEVICETYPE=ovs\n" data += "TYPE=OVSUserBridge\n" - if base_opt.use_dhcp: + if base_opt.use_dhcp or base_opt.use_dhcpv6: data += "OVSBOOTPROTO=dhcp\n" if base_opt.members: members = [member.name for member in base_opt.members] @@ -492,7 +492,7 @@ class IfcfgNetConfig(os_net_config.NetConfig): self.bond_primary_ifaces[base_opt.name] = primary_name data += "DEVICETYPE=ovs\n" data += "TYPE=OVSBond\n" - if base_opt.use_dhcp: + if base_opt.use_dhcp or base_opt.use_dhcpv6: data += "OVSBOOTPROTO=dhcp\n" if base_opt.members: members = [member.name for member in base_opt.members] diff --git a/os_net_config/tests/test_impl_ifcfg.py b/os_net_config/tests/test_impl_ifcfg.py index 270d8353..fd49a2ce 100644 --- a/os_net_config/tests/test_impl_ifcfg.py +++ b/os_net_config/tests/test_impl_ifcfg.py @@ -270,6 +270,19 @@ OVSBOOTPROTO=dhcp OVSDHCPINTERFACES="em1" """ +_OVS_BRIDGE_DHCPV6 = """# This file is autogenerated by os-net-config +DEVICE=br-ctlplane +ONBOOT=yes +HOTPLUG=no +NM_CONTROLLED=no +PEERDNS=no +DEVICETYPE=ovs +TYPE=OVSBridge +OVSBOOTPROTO=dhcp +IPV6INIT=yes +DHCPV6C=yes +""" + _NM_CONTROLLED_INTERFACE = _BASE_IFCFG_NETWORKMANAGER + """MASTER=bond1 SLAVE=yes BOOTPROTO=none @@ -821,6 +834,16 @@ class TestIfcfgNetConfig(base.TestCase): self.assertEqual(_OVS_BRIDGE_DHCP, self.provider.bridge_data['br-ctlplane']) + def test_network_ovs_bridge_with_dhcpv6(self): + interface = objects.Interface('em1') + bridge = objects.OvsBridge('br-ctlplane', use_dhcpv6=True, + members=[interface]) + self.provider.add_interface(interface) + self.provider.add_bridge(bridge) + self.assertEqual(_OVS_INTERFACE, self.get_interface_config()) + self.assertEqual(_OVS_BRIDGE_DHCPV6, + self.provider.bridge_data['br-ctlplane']) + def test_network_ovs_bridge_with_standalone_fail_mode(self): interface = objects.Interface('em1') bridge = objects.OvsBridge('br-ctlplane', use_dhcp=True,