diff options
author | Dan Prince <dprince@redhat.com> | 2015-09-23 15:59:44 -0400 |
---|---|---|
committer | Dan Prince <dprince@redhat.com> | 2015-09-23 15:59:44 -0400 |
commit | d788652276344c8dbe5a97d629f19a66c9de97f4 (patch) | |
tree | b834442dc349fab54e416f614e26c3dc507a2f9d /os_net_config/objects.py | |
parent | 64123ba0e7ddda112b646bfa5e48f15402921350 (diff) |
ifcfg: Add support for dns_servers
Adds in the ability to optionally configure DNS
server settings via the ifcfg file formats.
The dns_servers JSON is an array which currently
supports either 1 or 2 DNS servers (per limitations
of the ifcfg format).
Change-Id: I9edecfdd4e1d0f39883b72be554cd92c5685881d
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 8899164..388ea7c 100644 --- a/os_net_config/objects.py +++ b/os_net_config/objects.py @@ -130,7 +130,8 @@ 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, dhclient_args=None): + persist_mapping=False, defroute=True, dhclient_args=None, + dns_servers=[]): numbered_nic_names = _numbered_nics(nic_mapping) self.hwaddr = None self.hwname = None @@ -154,6 +155,7 @@ class _BaseOpts(object): self.primary = primary self.defroute = defroute self.dhclient_args = dhclient_args + self.dns_servers = dns_servers self.bridge_name = None # internal self.ovs_port = False # internal self.primary_interface_name = None # internal @@ -183,6 +185,7 @@ class _BaseOpts(object): True))) mtu = json.get('mtu', 1500) dhclient_args = json.get('dhclient_args') + dns_servers = json.get('dns_servers') primary = strutils.bool_from_string(str(json.get('primary', False))) addresses = [] routes = [] @@ -212,10 +215,12 @@ class _BaseOpts(object): if include_primary: return (use_dhcp, use_dhcpv6, addresses, routes, mtu, primary, - nic_mapping, persist_mapping, defroute, dhclient_args) + nic_mapping, persist_mapping, defroute, dhclient_args, + dns_servers) else: return (use_dhcp, use_dhcpv6, addresses, routes, mtu, - nic_mapping, persist_mapping, defroute, dhclient_args) + nic_mapping, persist_mapping, defroute, dhclient_args, + dns_servers) class Interface(_BaseOpts): @@ -223,11 +228,12 @@ 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, dhclient_args=None): + persist_mapping=False, defroute=True, dhclient_args=None, + dns_servers=[]): super(Interface, self).__init__(name, use_dhcp, use_dhcpv6, addresses, routes, mtu, primary, nic_mapping, persist_mapping, defroute, - dhclient_args) + dhclient_args, dns_servers) @staticmethod def from_json(json): @@ -246,11 +252,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, - dhclient_args=None): + dhclient_args=None, dns_servers=[]): name = 'vlan%i' % vlan_id super(Vlan, self).__init__(name, use_dhcp, use_dhcpv6, addresses, routes, mtu, primary, nic_mapping, - persist_mapping, defroute, dhclient_args) + persist_mapping, defroute, dhclient_args, + dns_servers) self.vlan_id = int(vlan_id) numbered_nic_names = _numbered_nics(nic_mapping) @@ -274,11 +281,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, dhclient_args=None): + defroute=True, dhclient_args=None, dns_servers=[]): super(OvsBridge, self).__init__(name, use_dhcp, use_dhcpv6, addresses, routes, mtu, False, nic_mapping, persist_mapping, defroute, - dhclient_args) + dhclient_args, dns_servers) self.members = members self.ovs_options = ovs_options self.ovs_extra = ovs_extra @@ -299,7 +306,7 @@ class OvsBridge(_BaseOpts): name = _get_required_field(json, 'name', 'OvsBridge') (use_dhcp, use_dhcpv6, addresses, routes, mtu, nic_mapping, persist_mapping, defroute, - dhclient_args) = _BaseOpts.base_opts_from_json( + dhclient_args, dns_servers) = _BaseOpts.base_opts_from_json( json, include_primary=False) ovs_options = json.get('ovs_options') ovs_extra = json.get('ovs_extra', []) @@ -320,7 +327,7 @@ class OvsBridge(_BaseOpts): members=members, ovs_options=ovs_options, ovs_extra=ovs_extra, nic_mapping=nic_mapping, persist_mapping=persist_mapping, defroute=defroute, - dhclient_args=dhclient_args) + dhclient_args=dhclient_args, dns_servers=dns_servers) class OvsBond(_BaseOpts): @@ -329,10 +336,12 @@ 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, dhclient_args=None): + persist_mapping=False, defroute=True, dhclient_args=None, + dns_servers=[]): super(OvsBond, self).__init__(name, use_dhcp, use_dhcpv6, addresses, routes, mtu, primary, nic_mapping, - persist_mapping, defroute, dhclient_args) + persist_mapping, defroute, dhclient_args, + dns_servers) self.members = members self.ovs_options = ovs_options self.ovs_extra = ovs_extra @@ -355,7 +364,7 @@ class OvsBond(_BaseOpts): name = _get_required_field(json, 'name', 'OvsBond') (use_dhcp, use_dhcpv6, addresses, routes, mtu, nic_mapping, persist_mapping, defroute, - dhclient_args) = _BaseOpts.base_opts_from_json( + dhclient_args, dns_servers) = _BaseOpts.base_opts_from_json( json, include_primary=False) ovs_options = json.get('ovs_options') ovs_extra = json.get('ovs_extra', []) @@ -376,4 +385,4 @@ class OvsBond(_BaseOpts): members=members, ovs_options=ovs_options, ovs_extra=ovs_extra, nic_mapping=nic_mapping, persist_mapping=persist_mapping, defroute=defroute, - dhclient_args=dhclient_args) + dhclient_args=dhclient_args, dns_servers=dns_servers) |