diff options
author | Dan Prince <dprince@redhat.com> | 2015-07-01 17:18:49 -0400 |
---|---|---|
committer | Dan Prince <dprince@redhat.com> | 2015-07-01 17:18:49 -0400 |
commit | cb578ed9b94ff9a34b41d91ada94e3375436b60c (patch) | |
tree | 528009ce2c83c07e6b5f75511e9a90d10249e75f /os_net_config/objects.py | |
parent | 9355a535e71407911332c228a382ee592452f5e7 (diff) |
Add support for dhclient_args
This patch adds an optional flag that can be used to
pass in args for dhclient when using DHCP.
This use case for this is to be able to control which
DHCP options dhclient listens for and we can thus
disable specific options (like routing) for some
network configurations.
Change-Id: Ic21de0615ea0ef304843c55cc5abe43cb1771169
Diffstat (limited to 'os_net_config/objects.py')
-rw-r--r-- | os_net_config/objects.py | 39 |
1 files changed, 24 insertions, 15 deletions
diff --git a/os_net_config/objects.py b/os_net_config/objects.py index ea9c11c..8899164 100644 --- a/os_net_config/objects.py +++ b/os_net_config/objects.py @@ -130,7 +130,7 @@ class _BaseOpts(object): def __init__(self, name, use_dhcp=False, use_dhcpv6=False, addresses=[], routes=[], mtu=1500, primary=False, nic_mapping=None, - persist_mapping=False, defroute=True): + persist_mapping=False, defroute=True, dhclient_args=None): numbered_nic_names = _numbered_nics(nic_mapping) self.hwaddr = None self.hwname = None @@ -153,6 +153,7 @@ class _BaseOpts(object): self.routes = routes self.primary = primary self.defroute = defroute + self.dhclient_args = dhclient_args self.bridge_name = None # internal self.ovs_port = False # internal self.primary_interface_name = None # internal @@ -181,6 +182,7 @@ class _BaseOpts(object): defroute = strutils.bool_from_string(str(json.get('defroute', True))) mtu = json.get('mtu', 1500) + dhclient_args = json.get('dhclient_args') primary = strutils.bool_from_string(str(json.get('primary', False))) addresses = [] routes = [] @@ -210,10 +212,10 @@ class _BaseOpts(object): if include_primary: return (use_dhcp, use_dhcpv6, addresses, routes, mtu, primary, - nic_mapping, persist_mapping, defroute) + nic_mapping, persist_mapping, defroute, dhclient_args) else: return (use_dhcp, use_dhcpv6, addresses, routes, mtu, - nic_mapping, persist_mapping, defroute) + nic_mapping, persist_mapping, defroute, dhclient_args) class Interface(_BaseOpts): @@ -221,10 +223,11 @@ class Interface(_BaseOpts): def __init__(self, name, use_dhcp=False, use_dhcpv6=False, addresses=[], routes=[], mtu=1500, primary=False, nic_mapping=None, - persist_mapping=False, defroute=True): + persist_mapping=False, defroute=True, dhclient_args=None): super(Interface, self).__init__(name, use_dhcp, use_dhcpv6, addresses, routes, mtu, primary, nic_mapping, - persist_mapping, defroute) + persist_mapping, defroute, + dhclient_args) @staticmethod def from_json(json): @@ -242,11 +245,12 @@ class Vlan(_BaseOpts): def __init__(self, device, vlan_id, use_dhcp=False, use_dhcpv6=False, addresses=[], routes=[], mtu=1500, primary=False, - nic_mapping=None, persist_mapping=False, defroute=True): + nic_mapping=None, persist_mapping=False, defroute=True, + dhclient_args=None): name = 'vlan%i' % vlan_id super(Vlan, self).__init__(name, use_dhcp, use_dhcpv6, addresses, routes, mtu, primary, nic_mapping, - persist_mapping, defroute) + persist_mapping, defroute, dhclient_args) self.vlan_id = int(vlan_id) numbered_nic_names = _numbered_nics(nic_mapping) @@ -270,10 +274,11 @@ class OvsBridge(_BaseOpts): def __init__(self, name, use_dhcp=False, use_dhcpv6=False, addresses=[], routes=[], mtu=1500, members=[], ovs_options=None, ovs_extra=[], nic_mapping=None, persist_mapping=False, - defroute=True): + defroute=True, dhclient_args=None): super(OvsBridge, self).__init__(name, use_dhcp, use_dhcpv6, addresses, routes, mtu, False, nic_mapping, - persist_mapping, defroute) + persist_mapping, defroute, + dhclient_args) self.members = members self.ovs_options = ovs_options self.ovs_extra = ovs_extra @@ -293,7 +298,8 @@ class OvsBridge(_BaseOpts): def from_json(json): name = _get_required_field(json, 'name', 'OvsBridge') (use_dhcp, use_dhcpv6, addresses, routes, mtu, nic_mapping, - persist_mapping, defroute) = _BaseOpts.base_opts_from_json( + persist_mapping, defroute, + dhclient_args) = _BaseOpts.base_opts_from_json( json, include_primary=False) ovs_options = json.get('ovs_options') ovs_extra = json.get('ovs_extra', []) @@ -313,7 +319,8 @@ class OvsBridge(_BaseOpts): addresses=addresses, routes=routes, mtu=mtu, members=members, ovs_options=ovs_options, ovs_extra=ovs_extra, nic_mapping=nic_mapping, - persist_mapping=persist_mapping, defroute=defroute) + persist_mapping=persist_mapping, defroute=defroute, + dhclient_args=dhclient_args) class OvsBond(_BaseOpts): @@ -322,10 +329,10 @@ class OvsBond(_BaseOpts): def __init__(self, name, use_dhcp=False, use_dhcpv6=False, addresses=[], routes=[], mtu=1500, primary=False, members=[], ovs_options=None, ovs_extra=[], nic_mapping=None, - persist_mapping=False, defroute=True): + persist_mapping=False, defroute=True, dhclient_args=None): super(OvsBond, self).__init__(name, use_dhcp, use_dhcpv6, addresses, routes, mtu, primary, nic_mapping, - persist_mapping, defroute) + persist_mapping, defroute, dhclient_args) self.members = members self.ovs_options = ovs_options self.ovs_extra = ovs_extra @@ -347,7 +354,8 @@ class OvsBond(_BaseOpts): def from_json(json): name = _get_required_field(json, 'name', 'OvsBond') (use_dhcp, use_dhcpv6, addresses, routes, mtu, nic_mapping, - persist_mapping, defroute) = _BaseOpts.base_opts_from_json( + persist_mapping, defroute, + dhclient_args) = _BaseOpts.base_opts_from_json( json, include_primary=False) ovs_options = json.get('ovs_options') ovs_extra = json.get('ovs_extra', []) @@ -367,4 +375,5 @@ class OvsBond(_BaseOpts): addresses=addresses, routes=routes, mtu=mtu, members=members, ovs_options=ovs_options, ovs_extra=ovs_extra, nic_mapping=nic_mapping, - persist_mapping=persist_mapping, defroute=defroute) + persist_mapping=persist_mapping, defroute=defroute, + dhclient_args=dhclient_args) |