Enable setting domain parameter for interfaces
This enables the setting of a static domain that will be used to aid DNS queries. Change-Id: I284691444b2f10cc831d4b3148d41100f6c7796d
This commit is contained in:
committed by
Harald Jensås
parent
d18d35223f
commit
fc9fbd4461
@@ -605,6 +605,8 @@ class IfcfgNetConfig(os_net_config.NetConfig):
|
||||
data += "DNS2=%s\n" % base_opt.dns_servers[1]
|
||||
if len(base_opt.dns_servers) > 2:
|
||||
logger.warning('ifcfg format supports max 2 resolvers.')
|
||||
if base_opt.domain:
|
||||
data += "DOMAIN=%s\n" % base_opt.domain
|
||||
return data
|
||||
|
||||
def _add_routes(self, interface_name, routes=[]):
|
||||
|
||||
@@ -322,7 +322,7 @@ class _BaseOpts(object):
|
||||
routes=None, rules=None, mtu=None, primary=False,
|
||||
nic_mapping=None, persist_mapping=False, defroute=True,
|
||||
dhclient_args=None, dns_servers=None, nm_controlled=False,
|
||||
onboot=True):
|
||||
onboot=True, domain=None):
|
||||
addresses = addresses or []
|
||||
routes = routes or []
|
||||
rules = rules or []
|
||||
@@ -360,6 +360,7 @@ class _BaseOpts(object):
|
||||
self.defroute = defroute
|
||||
self.dhclient_args = dhclient_args
|
||||
self.dns_servers = dns_servers
|
||||
self.domain = domain
|
||||
self.nm_controlled = nm_controlled
|
||||
self.onboot = onboot
|
||||
self.bridge_name = None # internal
|
||||
@@ -397,6 +398,7 @@ class _BaseOpts(object):
|
||||
mtu = json.get('mtu', None)
|
||||
dhclient_args = json.get('dhclient_args')
|
||||
dns_servers = json.get('dns_servers')
|
||||
domain = json.get('domain')
|
||||
nm_controlled = strutils.bool_from_string(str(json.get('nm_controlled',
|
||||
False)))
|
||||
onboot = strutils.bool_from_string(str(json.get('onboot',
|
||||
@@ -442,11 +444,11 @@ class _BaseOpts(object):
|
||||
if include_primary:
|
||||
return (use_dhcp, use_dhcpv6, addresses, routes, rules, mtu,
|
||||
primary, nic_mapping, persist_mapping, defroute,
|
||||
dhclient_args, dns_servers, nm_controlled, onboot)
|
||||
dhclient_args, dns_servers, nm_controlled, onboot, domain)
|
||||
else:
|
||||
return (use_dhcp, use_dhcpv6, addresses, routes, rules, mtu,
|
||||
nic_mapping, persist_mapping, defroute, dhclient_args,
|
||||
dns_servers, nm_controlled, onboot)
|
||||
dns_servers, nm_controlled, onboot, domain)
|
||||
|
||||
|
||||
class Interface(_BaseOpts):
|
||||
@@ -456,7 +458,7 @@ class Interface(_BaseOpts):
|
||||
routes=None, rules=None, mtu=None, primary=False,
|
||||
nic_mapping=None, persist_mapping=False, defroute=True,
|
||||
dhclient_args=None, dns_servers=None, nm_controlled=False,
|
||||
onboot=True, ethtool_opts=None, hotplug=False):
|
||||
onboot=True, domain=None, ethtool_opts=None, hotplug=False):
|
||||
addresses = addresses or []
|
||||
routes = routes or []
|
||||
rules = rules or []
|
||||
@@ -465,7 +467,7 @@ class Interface(_BaseOpts):
|
||||
routes, rules, mtu, primary,
|
||||
nic_mapping, persist_mapping, defroute,
|
||||
dhclient_args, dns_servers,
|
||||
nm_controlled, onboot)
|
||||
nm_controlled, onboot, domain)
|
||||
self.ethtool_opts = ethtool_opts
|
||||
self.hotplug = hotplug
|
||||
|
||||
@@ -490,7 +492,7 @@ class Vlan(_BaseOpts):
|
||||
addresses=None, routes=None, rules=None, mtu=None,
|
||||
primary=False, nic_mapping=None, persist_mapping=False,
|
||||
defroute=True, dhclient_args=None, dns_servers=None,
|
||||
nm_controlled=False, onboot=True):
|
||||
nm_controlled=False, onboot=True, domain=None):
|
||||
addresses = addresses or []
|
||||
routes = routes or []
|
||||
rules = rules or []
|
||||
@@ -499,7 +501,7 @@ class Vlan(_BaseOpts):
|
||||
super(Vlan, self).__init__(name, use_dhcp, use_dhcpv6, addresses,
|
||||
routes, rules, mtu, primary, nic_mapping,
|
||||
persist_mapping, defroute, dhclient_args,
|
||||
dns_servers, nm_controlled, onboot)
|
||||
dns_servers, nm_controlled, onboot, domain)
|
||||
self.vlan_id = int(vlan_id)
|
||||
mapped_nic_names = mapped_nics(nic_mapping)
|
||||
if device in mapped_nic_names:
|
||||
@@ -523,7 +525,7 @@ class IvsInterface(_BaseOpts):
|
||||
addresses=None, routes=None, rules=None, mtu=1500,
|
||||
primary=False, nic_mapping=None, persist_mapping=False,
|
||||
defroute=True, dhclient_args=None, dns_servers=None,
|
||||
nm_controlled=False, onboot=True):
|
||||
nm_controlled=False, onboot=True, domain=None):
|
||||
addresses = addresses or []
|
||||
routes = routes or []
|
||||
rules = rules or []
|
||||
@@ -534,7 +536,7 @@ class IvsInterface(_BaseOpts):
|
||||
primary, nic_mapping,
|
||||
persist_mapping, defroute,
|
||||
dhclient_args, dns_servers,
|
||||
nm_controlled, onboot)
|
||||
nm_controlled, onboot, domain)
|
||||
self.vlan_id = int(vlan_id)
|
||||
|
||||
@staticmethod
|
||||
@@ -552,7 +554,8 @@ class NfvswitchInternal(_BaseOpts):
|
||||
use_dhcpv6=False, addresses=None, routes=None, rules=None,
|
||||
mtu=1500, primary=False, nic_mapping=None,
|
||||
persist_mapping=False, defroute=True, dhclient_args=None,
|
||||
dns_servers=None, nm_controlled=False, onboot=True):
|
||||
dns_servers=None, nm_controlled=False, onboot=True,
|
||||
domain=None):
|
||||
addresses = addresses or []
|
||||
routes = routes or []
|
||||
rules = rules or []
|
||||
@@ -564,7 +567,7 @@ class NfvswitchInternal(_BaseOpts):
|
||||
nic_mapping, persist_mapping,
|
||||
defroute, dhclient_args,
|
||||
dns_servers, nm_controlled,
|
||||
onboot)
|
||||
onboot, domain)
|
||||
self.vlan_id = int(vlan_id)
|
||||
|
||||
@staticmethod
|
||||
@@ -583,7 +586,7 @@ class OvsBridge(_BaseOpts):
|
||||
ovs_options=None, ovs_extra=None, nic_mapping=None,
|
||||
persist_mapping=False, defroute=True, dhclient_args=None,
|
||||
dns_servers=None, nm_controlled=False, onboot=True,
|
||||
fail_mode=None):
|
||||
domain=None, fail_mode=None):
|
||||
|
||||
check_ovs_installed(self.__class__.__name__)
|
||||
|
||||
@@ -596,7 +599,7 @@ class OvsBridge(_BaseOpts):
|
||||
routes, rules, mtu, False, nic_mapping,
|
||||
persist_mapping, defroute,
|
||||
dhclient_args, dns_servers,
|
||||
nm_controlled, onboot)
|
||||
nm_controlled, onboot, domain)
|
||||
self.members = members
|
||||
self.ovs_options = ovs_options
|
||||
ovs_extra = ovs_extra or []
|
||||
@@ -643,7 +646,7 @@ class OvsBridge(_BaseOpts):
|
||||
name = _get_required_field(json, 'name', 'OvsBridge')
|
||||
(use_dhcp, use_dhcpv6, addresses, routes, rules, mtu, nic_mapping,
|
||||
persist_mapping, defroute, dhclient_args, dns_servers,
|
||||
nm_controlled, onboot) = _BaseOpts.base_opts_from_json(
|
||||
nm_controlled, onboot, domain) = _BaseOpts.base_opts_from_json(
|
||||
json, include_primary=False)
|
||||
ovs_options = json.get('ovs_options')
|
||||
ovs_extra = json.get('ovs_extra', [])
|
||||
@@ -660,7 +663,7 @@ class OvsBridge(_BaseOpts):
|
||||
persist_mapping=persist_mapping, defroute=defroute,
|
||||
dhclient_args=dhclient_args, dns_servers=dns_servers,
|
||||
nm_controlled=nm_controlled, onboot=onboot,
|
||||
fail_mode=fail_mode)
|
||||
domain=domain, fail_mode=fail_mode)
|
||||
|
||||
|
||||
class OvsUserBridge(_BaseOpts):
|
||||
@@ -671,7 +674,7 @@ class OvsUserBridge(_BaseOpts):
|
||||
ovs_options=None, ovs_extra=None, nic_mapping=None,
|
||||
persist_mapping=False, defroute=True, dhclient_args=None,
|
||||
dns_servers=None, nm_controlled=False, onboot=True,
|
||||
fail_mode=None):
|
||||
domain=None, fail_mode=None):
|
||||
|
||||
check_ovs_installed(self.__class__.__name__)
|
||||
|
||||
@@ -680,7 +683,7 @@ class OvsUserBridge(_BaseOpts):
|
||||
False, nic_mapping,
|
||||
persist_mapping, defroute,
|
||||
dhclient_args, dns_servers,
|
||||
nm_controlled, onboot)
|
||||
nm_controlled, onboot, domain)
|
||||
self.members = members or []
|
||||
self.ovs_options = ovs_options
|
||||
ovs_extra = ovs_extra or []
|
||||
@@ -707,7 +710,7 @@ class OvsUserBridge(_BaseOpts):
|
||||
name = _get_required_field(json, 'name', 'OvsUserBridge')
|
||||
(use_dhcp, use_dhcpv6, addresses, routes, rules, mtu, nic_mapping,
|
||||
persist_mapping, defroute, dhclient_args, dns_servers,
|
||||
nm_controlled, onboot) = _BaseOpts.base_opts_from_json(
|
||||
nm_controlled, onboot, domain) = _BaseOpts.base_opts_from_json(
|
||||
json, include_primary=False)
|
||||
ovs_options = json.get('ovs_options')
|
||||
ovs_extra = json.get('ovs_extra', [])
|
||||
@@ -725,7 +728,7 @@ class OvsUserBridge(_BaseOpts):
|
||||
defroute=defroute, dhclient_args=dhclient_args,
|
||||
dns_servers=dns_servers,
|
||||
nm_controlled=nm_controlled, onboot=onboot,
|
||||
fail_mode=fail_mode)
|
||||
domain=domain, fail_mode=fail_mode)
|
||||
|
||||
|
||||
class LinuxBridge(_BaseOpts):
|
||||
@@ -735,7 +738,7 @@ class LinuxBridge(_BaseOpts):
|
||||
routes=None, rules=None, mtu=None, members=None,
|
||||
nic_mapping=None, persist_mapping=False, defroute=True,
|
||||
dhclient_args=None, dns_servers=None, nm_controlled=False,
|
||||
onboot=True):
|
||||
onboot=True, domain=None):
|
||||
addresses = addresses or []
|
||||
routes = routes or []
|
||||
rules = rules or []
|
||||
@@ -745,7 +748,7 @@ class LinuxBridge(_BaseOpts):
|
||||
addresses, routes, rules, mtu, False,
|
||||
nic_mapping, persist_mapping,
|
||||
defroute, dhclient_args, dns_servers,
|
||||
nm_controlled, onboot)
|
||||
nm_controlled, onboot, domain)
|
||||
self.members = members
|
||||
for member in self.members:
|
||||
member.linux_bridge_name = name
|
||||
@@ -764,7 +767,8 @@ class LinuxBridge(_BaseOpts):
|
||||
name = _get_required_field(json, 'name', 'LinuxBridge')
|
||||
(use_dhcp, use_dhcpv6, addresses, routes, rules, mtu, nic_mapping,
|
||||
persist_mapping, defroute, dhclient_args, dns_servers, nm_controlled,
|
||||
onboot) = _BaseOpts.base_opts_from_json(json, include_primary=False)
|
||||
onboot, domain) = _BaseOpts.base_opts_from_json(json,
|
||||
include_primary=False)
|
||||
|
||||
members = _update_members(json, nic_mapping, persist_mapping)
|
||||
|
||||
@@ -774,7 +778,8 @@ class LinuxBridge(_BaseOpts):
|
||||
persist_mapping=persist_mapping, defroute=defroute,
|
||||
dhclient_args=dhclient_args,
|
||||
dns_servers=dns_servers,
|
||||
nm_controlled=nm_controlled, onboot=onboot)
|
||||
nm_controlled=nm_controlled, onboot=onboot,
|
||||
domain=domain)
|
||||
|
||||
|
||||
class IvsBridge(_BaseOpts):
|
||||
@@ -794,7 +799,8 @@ class IvsBridge(_BaseOpts):
|
||||
addresses=None, rules=None, routes=None,
|
||||
mtu=1500, members=None, nic_mapping=None,
|
||||
persist_mapping=False, defroute=True, dhclient_args=None,
|
||||
dns_servers=None, nm_controlled=False, onboot=True):
|
||||
dns_servers=None, nm_controlled=False, onboot=True,
|
||||
domain=None):
|
||||
addresses = addresses or []
|
||||
routes = routes or []
|
||||
rules = rules or []
|
||||
@@ -804,7 +810,7 @@ class IvsBridge(_BaseOpts):
|
||||
addresses, routes, rules, mtu, False,
|
||||
nic_mapping, persist_mapping,
|
||||
defroute, dhclient_args, dns_servers,
|
||||
nm_controlled, onboot)
|
||||
nm_controlled, onboot, domain)
|
||||
self.members = members
|
||||
for member in self.members:
|
||||
if isinstance(member, OvsBond) or isinstance(member, LinuxBond):
|
||||
@@ -819,7 +825,8 @@ class IvsBridge(_BaseOpts):
|
||||
name = 'ivs'
|
||||
(use_dhcp, use_dhcpv6, addresses, routes, rules, mtu, nic_mapping,
|
||||
persist_mapping, defroute, dhclient_args, dns_servers, nm_controlled,
|
||||
onboot) = _BaseOpts.base_opts_from_json(json, include_primary=False)
|
||||
onboot, domain) = _BaseOpts.base_opts_from_json(json,
|
||||
include_primary=False)
|
||||
|
||||
members = _update_members(json, nic_mapping, persist_mapping)
|
||||
|
||||
@@ -829,7 +836,7 @@ class IvsBridge(_BaseOpts):
|
||||
persist_mapping=persist_mapping, defroute=defroute,
|
||||
dhclient_args=dhclient_args,
|
||||
dns_servers=dns_servers, nm_controlled=nm_controlled,
|
||||
onboot=onboot)
|
||||
onboot=onboot, domain=domain)
|
||||
|
||||
|
||||
class NfvswitchBridge(_BaseOpts):
|
||||
@@ -844,7 +851,7 @@ class NfvswitchBridge(_BaseOpts):
|
||||
addresses=None, routes=None, rules=None, mtu=1500,
|
||||
members=None, nic_mapping=None, persist_mapping=False,
|
||||
defroute=True, dhclient_args=None, dns_servers=None,
|
||||
nm_controlled=False, onboot=True, options=""):
|
||||
nm_controlled=False, onboot=True, domain=None, options=""):
|
||||
addresses = addresses or []
|
||||
routes = routes or []
|
||||
rules = rules or []
|
||||
@@ -855,7 +862,7 @@ class NfvswitchBridge(_BaseOpts):
|
||||
False, nic_mapping,
|
||||
persist_mapping, defroute,
|
||||
dhclient_args, dns_servers,
|
||||
nm_controlled, onboot)
|
||||
nm_controlled, onboot, domain)
|
||||
self.options = options
|
||||
self.members = members
|
||||
for member in self.members:
|
||||
@@ -871,7 +878,8 @@ class NfvswitchBridge(_BaseOpts):
|
||||
name = 'nfvswitch'
|
||||
(use_dhcp, use_dhcpv6, addresses, routes, rules, mtu, nic_mapping,
|
||||
persist_mapping, defroute, dhclient_args, dns_servers, nm_controlled,
|
||||
onboot) = _BaseOpts.base_opts_from_json(json, include_primary=False)
|
||||
onboot, domain) = _BaseOpts.base_opts_from_json(json,
|
||||
include_primary=False)
|
||||
|
||||
members = _update_members(json, nic_mapping, persist_mapping)
|
||||
|
||||
@@ -888,7 +896,7 @@ class NfvswitchBridge(_BaseOpts):
|
||||
defroute=defroute, dhclient_args=dhclient_args,
|
||||
dns_servers=dns_servers,
|
||||
nm_controlled=nm_controlled, onboot=onboot,
|
||||
options=options)
|
||||
domain=domain, options=options)
|
||||
|
||||
|
||||
class LinuxTeam(_BaseOpts):
|
||||
@@ -898,7 +906,8 @@ class LinuxTeam(_BaseOpts):
|
||||
routes=None, rules=None, mtu=None, primary=False,
|
||||
members=None, bonding_options=None, nic_mapping=None,
|
||||
persist_mapping=False, defroute=True, dhclient_args=None,
|
||||
dns_servers=None, nm_controlled=False, onboot=True):
|
||||
dns_servers=None, nm_controlled=False, onboot=True,
|
||||
domain=None):
|
||||
addresses = addresses or []
|
||||
routes = routes or []
|
||||
rules = rules or []
|
||||
@@ -908,7 +917,7 @@ class LinuxTeam(_BaseOpts):
|
||||
routes, rules, mtu, primary,
|
||||
nic_mapping, persist_mapping, defroute,
|
||||
dhclient_args, dns_servers,
|
||||
nm_controlled, onboot)
|
||||
nm_controlled, onboot, domain)
|
||||
self.members = members
|
||||
self.bonding_options = bonding_options
|
||||
for member in self.members:
|
||||
@@ -927,7 +936,8 @@ class LinuxTeam(_BaseOpts):
|
||||
name = _get_required_field(json, 'name', 'LinuxTeam')
|
||||
(use_dhcp, use_dhcpv6, addresses, routes, rules, mtu, nic_mapping,
|
||||
persist_mapping, defroute, dhclient_args, dns_servers, nm_controlled,
|
||||
onboot) = _BaseOpts.base_opts_from_json(json, include_primary=False)
|
||||
onboot, domain) = _BaseOpts.base_opts_from_json(json,
|
||||
include_primary=False)
|
||||
|
||||
bonding_options = json.get('bonding_options')
|
||||
members = _update_members(json, nic_mapping, persist_mapping)
|
||||
@@ -939,7 +949,8 @@ class LinuxTeam(_BaseOpts):
|
||||
nic_mapping=nic_mapping,
|
||||
persist_mapping=persist_mapping, defroute=defroute,
|
||||
dhclient_args=dhclient_args, dns_servers=dns_servers,
|
||||
nm_controlled=nm_controlled, onboot=onboot)
|
||||
nm_controlled=nm_controlled, onboot=onboot,
|
||||
domain=domain)
|
||||
|
||||
|
||||
class LinuxBond(_BaseOpts):
|
||||
@@ -949,7 +960,8 @@ class LinuxBond(_BaseOpts):
|
||||
routes=None, rules=None, mtu=None, primary=False,
|
||||
members=None, bonding_options=None, nic_mapping=None,
|
||||
persist_mapping=False, defroute=True, dhclient_args=None,
|
||||
dns_servers=None, nm_controlled=False, onboot=True):
|
||||
dns_servers=None, nm_controlled=False, onboot=True,
|
||||
domain=None):
|
||||
addresses = addresses or []
|
||||
routes = routes or []
|
||||
rules = rules or []
|
||||
@@ -959,7 +971,7 @@ class LinuxBond(_BaseOpts):
|
||||
routes, rules, mtu, primary,
|
||||
nic_mapping, persist_mapping, defroute,
|
||||
dhclient_args, dns_servers,
|
||||
nm_controlled, onboot)
|
||||
nm_controlled, onboot, domain)
|
||||
self.members = members
|
||||
self.bonding_options = bonding_options
|
||||
for member in self.members:
|
||||
@@ -999,8 +1011,8 @@ class LinuxBond(_BaseOpts):
|
||||
def from_json(json):
|
||||
name = _get_required_field(json, 'name', 'LinuxBond')
|
||||
(use_dhcp, use_dhcpv6, addresses, routes, rules, mtu, nic_mapping,
|
||||
persist_mapping, defroute, dhclient_args,
|
||||
dns_servers, nm_controlled, onboot) = _BaseOpts.base_opts_from_json(
|
||||
persist_mapping, defroute, dhclient_args, dns_servers, nm_controlled,
|
||||
onboot, domain) = _BaseOpts.base_opts_from_json(
|
||||
json, include_primary=False)
|
||||
bonding_options = json.get('bonding_options')
|
||||
|
||||
@@ -1013,7 +1025,8 @@ class LinuxBond(_BaseOpts):
|
||||
nic_mapping=nic_mapping,
|
||||
persist_mapping=persist_mapping, defroute=defroute,
|
||||
dhclient_args=dhclient_args, dns_servers=dns_servers,
|
||||
nm_controlled=nm_controlled, onboot=onboot)
|
||||
nm_controlled=nm_controlled, onboot=onboot,
|
||||
domain=domain)
|
||||
|
||||
|
||||
class OvsBond(_BaseOpts):
|
||||
@@ -1024,7 +1037,7 @@ class OvsBond(_BaseOpts):
|
||||
members=None, ovs_options=None, ovs_extra=None,
|
||||
nic_mapping=None, persist_mapping=False, defroute=True,
|
||||
dhclient_args=None, dns_servers=None, nm_controlled=False,
|
||||
onboot=True):
|
||||
onboot=True, domain=None):
|
||||
|
||||
check_ovs_installed(self.__class__.__name__)
|
||||
|
||||
@@ -1036,7 +1049,8 @@ class OvsBond(_BaseOpts):
|
||||
super(OvsBond, self).__init__(name, use_dhcp, use_dhcpv6, addresses,
|
||||
routes, rules, mtu, primary, nic_mapping,
|
||||
persist_mapping, defroute, dhclient_args,
|
||||
dns_servers, nm_controlled, onboot)
|
||||
dns_servers, nm_controlled, onboot,
|
||||
domain)
|
||||
self.members = members
|
||||
self.ovs_options = ovs_options
|
||||
self.ovs_extra = format_ovs_extra(self, ovs_extra)
|
||||
@@ -1080,8 +1094,8 @@ class OvsBond(_BaseOpts):
|
||||
def from_json(json):
|
||||
name = _get_required_field(json, 'name', 'OvsBond')
|
||||
(use_dhcp, use_dhcpv6, addresses, routes, rules, mtu, nic_mapping,
|
||||
persist_mapping, defroute, dhclient_args,
|
||||
dns_servers, nm_controlled, onboot) = _BaseOpts.base_opts_from_json(
|
||||
persist_mapping, defroute, dhclient_args, dns_servers, nm_controlled,
|
||||
onboot, domain) = _BaseOpts.base_opts_from_json(
|
||||
json, include_primary=False)
|
||||
ovs_options = json.get('ovs_options')
|
||||
ovs_extra = json.get('ovs_extra', [])
|
||||
@@ -1096,7 +1110,8 @@ class OvsBond(_BaseOpts):
|
||||
ovs_extra=ovs_extra, nic_mapping=nic_mapping,
|
||||
persist_mapping=persist_mapping, defroute=defroute,
|
||||
dhclient_args=dhclient_args, dns_servers=dns_servers,
|
||||
nm_controlled=nm_controlled, onboot=onboot)
|
||||
nm_controlled=nm_controlled, onboot=onboot,
|
||||
domain=domain)
|
||||
|
||||
|
||||
class OvsTunnel(_BaseOpts):
|
||||
@@ -1106,7 +1121,7 @@ class OvsTunnel(_BaseOpts):
|
||||
routes=None, rules=None, mtu=None, primary=False,
|
||||
nic_mapping=None, persist_mapping=False, defroute=True,
|
||||
dhclient_args=None, dns_servers=None, nm_controlled=False,
|
||||
onboot=True, tunnel_type=None, ovs_options=None,
|
||||
onboot=True, domain=None, tunnel_type=None, ovs_options=None,
|
||||
ovs_extra=None):
|
||||
|
||||
check_ovs_installed(self.__class__.__name__)
|
||||
@@ -1119,7 +1134,7 @@ class OvsTunnel(_BaseOpts):
|
||||
routes, rules, mtu, primary,
|
||||
nic_mapping, persist_mapping, defroute,
|
||||
dhclient_args, dns_servers,
|
||||
nm_controlled, onboot)
|
||||
nm_controlled, onboot, domain)
|
||||
self.tunnel_type = tunnel_type
|
||||
self.ovs_options = ovs_options or []
|
||||
self.ovs_extra = format_ovs_extra(self, ovs_extra)
|
||||
@@ -1145,8 +1160,8 @@ class OvsPatchPort(_BaseOpts):
|
||||
routes=None, rules=None, mtu=None, primary=False,
|
||||
nic_mapping=None, persist_mapping=False, defroute=True,
|
||||
dhclient_args=None, dns_servers=None, nm_controlled=False,
|
||||
onboot=True, bridge_name=None, peer=None, ovs_options=None,
|
||||
ovs_extra=None):
|
||||
onboot=True, domain=None, bridge_name=None, peer=None,
|
||||
ovs_options=None, ovs_extra=None):
|
||||
|
||||
check_ovs_installed(self.__class__.__name__)
|
||||
|
||||
@@ -1159,7 +1174,7 @@ class OvsPatchPort(_BaseOpts):
|
||||
primary, nic_mapping,
|
||||
persist_mapping, defroute,
|
||||
dhclient_args, dns_servers,
|
||||
nm_controlled, onboot)
|
||||
nm_controlled, onboot, domain)
|
||||
self.bridge_name = bridge_name
|
||||
self.peer = peer
|
||||
self.ovs_options = ovs_options or []
|
||||
@@ -1187,7 +1202,7 @@ class IbInterface(_BaseOpts):
|
||||
routes=None, rules=None, mtu=None, primary=False,
|
||||
nic_mapping=None, persist_mapping=False, defroute=True,
|
||||
dhclient_args=None, dns_servers=None, nm_controlled=False,
|
||||
onboot=True, ethtool_opts=None):
|
||||
onboot=True, domain=None, ethtool_opts=None):
|
||||
addresses = addresses or []
|
||||
routes = routes or []
|
||||
rules = rules or []
|
||||
@@ -1197,7 +1212,7 @@ class IbInterface(_BaseOpts):
|
||||
primary, nic_mapping,
|
||||
persist_mapping, defroute,
|
||||
dhclient_args, dns_servers,
|
||||
nm_controlled, onboot)
|
||||
nm_controlled, onboot, domain)
|
||||
self.ethtool_opts = ethtool_opts
|
||||
|
||||
@staticmethod
|
||||
@@ -1215,7 +1230,7 @@ class OvsDpdkPort(_BaseOpts):
|
||||
routes=None, rules=None, mtu=None, primary=False,
|
||||
nic_mapping=None, persist_mapping=False, defroute=True,
|
||||
dhclient_args=None, dns_servers=None, nm_controlled=False,
|
||||
onboot=True, members=None, driver='vfio-pci',
|
||||
onboot=True, domain=None, members=None, driver='vfio-pci',
|
||||
ovs_options=None, ovs_extra=None, rx_queue=None):
|
||||
|
||||
check_ovs_installed(self.__class__.__name__)
|
||||
@@ -1225,7 +1240,7 @@ class OvsDpdkPort(_BaseOpts):
|
||||
primary, nic_mapping,
|
||||
persist_mapping, defroute,
|
||||
dhclient_args, dns_servers,
|
||||
nm_controlled, onboot)
|
||||
nm_controlled, onboot, domain)
|
||||
self.members = members or []
|
||||
self.ovs_options = ovs_options or []
|
||||
self.ovs_extra = format_ovs_extra(self, ovs_extra)
|
||||
@@ -1258,7 +1273,7 @@ class OvsDpdkPort(_BaseOpts):
|
||||
(use_dhcp, use_dhcpv6, addresses, routes, rules, mtu, primary,
|
||||
nic_mapping, persist_mapping, defroute, dhclient_args,
|
||||
dns_servers, nm_controlled,
|
||||
onboot) = _BaseOpts.base_opts_from_json(json)
|
||||
onboot, domain) = _BaseOpts.base_opts_from_json(json)
|
||||
|
||||
driver = json.get('driver')
|
||||
if not driver:
|
||||
@@ -1309,7 +1324,7 @@ class OvsDpdkPort(_BaseOpts):
|
||||
dhclient_args=dhclient_args,
|
||||
dns_servers=dns_servers,
|
||||
nm_controlled=nm_controlled, onboot=onboot,
|
||||
members=members, driver=driver,
|
||||
domain=domain, members=members, driver=driver,
|
||||
ovs_options=ovs_options,
|
||||
ovs_extra=ovs_extra, rx_queue=rx_queue)
|
||||
|
||||
@@ -1321,8 +1336,8 @@ class SriovVF(_BaseOpts):
|
||||
addresses=None, routes=None, rules=None, mtu=None,
|
||||
primary=False, nic_mapping=None, persist_mapping=False,
|
||||
defroute=True, dhclient_args=None, dns_servers=None,
|
||||
nm_controlled=False, onboot=True, vlan_id=0, qos=0,
|
||||
spoofcheck=None, trust=None, state=None, macaddr=None,
|
||||
nm_controlled=False, onboot=True, domain=None, vlan_id=0,
|
||||
qos=0, spoofcheck=None, trust=None, state=None, macaddr=None,
|
||||
promisc=None):
|
||||
addresses = addresses or []
|
||||
routes = routes or []
|
||||
@@ -1339,7 +1354,7 @@ class SriovVF(_BaseOpts):
|
||||
routes, rules, mtu, primary, nic_mapping,
|
||||
persist_mapping, defroute,
|
||||
dhclient_args, dns_servers,
|
||||
nm_controlled, onboot)
|
||||
nm_controlled, onboot, domain)
|
||||
self.vfid = int(vfid)
|
||||
self.device = device
|
||||
self.vlan_id = int(vlan_id)
|
||||
@@ -1399,7 +1414,8 @@ class SriovPF(_BaseOpts):
|
||||
addresses=None, routes=None, rules=None, mtu=None,
|
||||
primary=False, nic_mapping=None, persist_mapping=False,
|
||||
defroute=True, dhclient_args=None, dns_servers=None,
|
||||
nm_controlled=False, onboot=True, members=None, promisc=None):
|
||||
nm_controlled=False, onboot=True, domain=None, members=None,
|
||||
promisc=None):
|
||||
addresses = addresses or []
|
||||
routes = routes or []
|
||||
rules = rules or []
|
||||
@@ -1408,7 +1424,7 @@ class SriovPF(_BaseOpts):
|
||||
routes, rules, mtu, primary, nic_mapping,
|
||||
persist_mapping, defroute,
|
||||
dhclient_args, dns_servers,
|
||||
nm_controlled, onboot)
|
||||
nm_controlled, onboot, domain)
|
||||
self.numvfs = int(numvfs)
|
||||
mapped_nic_names = mapped_nics(nic_mapping)
|
||||
if name in mapped_nic_names:
|
||||
@@ -1445,7 +1461,7 @@ class OvsDpdkBond(_BaseOpts):
|
||||
members=None, ovs_options=None, ovs_extra=None,
|
||||
nic_mapping=None, persist_mapping=False, defroute=True,
|
||||
dhclient_args=None, dns_servers=None, nm_controlled=False,
|
||||
onboot=True, rx_queue=None):
|
||||
onboot=True, domain=None, rx_queue=None):
|
||||
|
||||
check_ovs_installed(self.__class__.__name__)
|
||||
|
||||
@@ -1454,7 +1470,7 @@ class OvsDpdkBond(_BaseOpts):
|
||||
primary, nic_mapping,
|
||||
persist_mapping, defroute,
|
||||
dhclient_args, dns_servers,
|
||||
nm_controlled, onboot)
|
||||
nm_controlled, onboot, domain)
|
||||
self.members = members or []
|
||||
self.ovs_options = ovs_options
|
||||
self.ovs_extra = format_ovs_extra(self, ovs_extra)
|
||||
@@ -1478,8 +1494,8 @@ class OvsDpdkBond(_BaseOpts):
|
||||
def from_json(json):
|
||||
name = _get_required_field(json, 'name', 'OvsDpdkBond')
|
||||
(use_dhcp, use_dhcpv6, addresses, routes, rules, mtu, nic_mapping,
|
||||
persist_mapping, defroute, dhclient_args,
|
||||
dns_servers, nm_controlled, onboot) = _BaseOpts.base_opts_from_json(
|
||||
persist_mapping, defroute, dhclient_args, dns_servers, nm_controlled,
|
||||
onboot, domain) = _BaseOpts.base_opts_from_json(
|
||||
json, include_primary=False)
|
||||
rx_queue = json.get('rx_queue', None)
|
||||
ovs_options = json.get('ovs_options')
|
||||
@@ -1514,7 +1530,7 @@ class OvsDpdkBond(_BaseOpts):
|
||||
defroute=defroute, dhclient_args=dhclient_args,
|
||||
dns_servers=dns_servers,
|
||||
nm_controlled=nm_controlled, onboot=onboot,
|
||||
rx_queue=rx_queue)
|
||||
domain=domain, rx_queue=rx_queue)
|
||||
|
||||
|
||||
class VppInterface(_BaseOpts):
|
||||
@@ -1545,7 +1561,8 @@ class VppInterface(_BaseOpts):
|
||||
routes=None, rules=None, mtu=None, primary=False,
|
||||
nic_mapping=None, persist_mapping=False, defroute=True,
|
||||
dhclient_args=None, dns_servers=None, nm_controlled=False,
|
||||
onboot=True, uio_driver='vfio-pci', options=None):
|
||||
onboot=True, domain=None, uio_driver='vfio-pci',
|
||||
options=None):
|
||||
addresses = addresses or []
|
||||
routes = routes or []
|
||||
rules = rules or []
|
||||
@@ -1555,7 +1572,7 @@ class VppInterface(_BaseOpts):
|
||||
primary, nic_mapping,
|
||||
persist_mapping, defroute,
|
||||
dhclient_args, dns_servers,
|
||||
nm_controlled, onboot)
|
||||
nm_controlled, onboot, domain)
|
||||
self.uio_driver = uio_driver
|
||||
self.options = options
|
||||
# pci_dev contains pci address for the interface, it will be populated
|
||||
@@ -1580,7 +1597,7 @@ class VppBond(_BaseOpts):
|
||||
routes=None, rules=None, mtu=None, primary=False,
|
||||
nic_mapping=None, persist_mapping=False, defroute=True,
|
||||
dhclient_args=None, dns_servers=None, nm_controlled=False,
|
||||
onboot=True, members=None, bonding_options=None):
|
||||
onboot=True, domain=None, members=None, bonding_options=None):
|
||||
addresses = addresses or []
|
||||
members = members or []
|
||||
routes = routes or []
|
||||
@@ -1590,7 +1607,8 @@ class VppBond(_BaseOpts):
|
||||
addresses, routes, rules, mtu, primary,
|
||||
nic_mapping, persist_mapping,
|
||||
defroute, dhclient_args,
|
||||
dns_servers, nm_controlled, onboot)
|
||||
dns_servers, nm_controlled, onboot,
|
||||
domain)
|
||||
self.members = members
|
||||
self.bonding_options = bonding_options
|
||||
|
||||
@@ -1601,7 +1619,8 @@ class VppBond(_BaseOpts):
|
||||
|
||||
(use_dhcp, use_dhcpv6, addresses, routes, rules, mtu, nic_mapping,
|
||||
persist_mapping, defroute, dhclient_args, dns_servers, nm_controlled,
|
||||
onboot) = _BaseOpts.base_opts_from_json(json, include_primary=False)
|
||||
onboot, domain) = _BaseOpts.base_opts_from_json(json,
|
||||
include_primary=False)
|
||||
|
||||
members = []
|
||||
members_json = json.get('members', None)
|
||||
@@ -1627,7 +1646,8 @@ class VppBond(_BaseOpts):
|
||||
persist_mapping=persist_mapping,
|
||||
defroute=defroute, dhclient_args=dhclient_args,
|
||||
dns_servers=dns_servers, nm_controlled=nm_controlled,
|
||||
onboot=onboot, bonding_options=bonding_options)
|
||||
onboot=onboot, domain=domain,
|
||||
bonding_options=bonding_options)
|
||||
|
||||
|
||||
class ContrailVrouter(_BaseOpts):
|
||||
@@ -1643,7 +1663,7 @@ class ContrailVrouter(_BaseOpts):
|
||||
routes=None, rules=None, mtu=None, primary=False,
|
||||
nic_mapping=None, persist_mapping=False, defroute=True,
|
||||
dhclient_args=None, dns_servers=None, nm_controlled=False,
|
||||
onboot=True, members=None):
|
||||
onboot=True, domain=None, members=None):
|
||||
addresses = addresses or []
|
||||
|
||||
super(ContrailVrouter, self).__init__(name, use_dhcp, use_dhcpv6,
|
||||
@@ -1651,7 +1671,7 @@ class ContrailVrouter(_BaseOpts):
|
||||
primary, nic_mapping,
|
||||
persist_mapping, defroute,
|
||||
dhclient_args, dns_servers,
|
||||
nm_controlled, onboot)
|
||||
nm_controlled, onboot, domain)
|
||||
self.members = members or []
|
||||
|
||||
@staticmethod
|
||||
@@ -1660,7 +1680,8 @@ class ContrailVrouter(_BaseOpts):
|
||||
|
||||
(_use_dhcp, _use_dhcpv6, _addresses, _routes, _rules, _mtu, _primary,
|
||||
nic_mapping, persist_mapping, _defroute, _dhclient_args, _dns_servers,
|
||||
_nm_controlled, _onboot) = opts = _BaseOpts.base_opts_from_json(json)
|
||||
_nm_controlled, _onboot,
|
||||
_domain) = opts = _BaseOpts.base_opts_from_json(json)
|
||||
members = _update_members(json, nic_mapping, persist_mapping)
|
||||
|
||||
return ContrailVrouter(name, *opts, members=members)
|
||||
@@ -1683,8 +1704,8 @@ class ContrailVrouterDpdk(_BaseOpts):
|
||||
routes=None, rules=None, mtu=None, primary=False,
|
||||
nic_mapping=None, persist_mapping=False, defroute=True,
|
||||
dhclient_args=None, dns_servers=None, nm_controlled=False,
|
||||
onboot=True, members=None, bond_mode=None, bond_policy=None,
|
||||
driver=None, cpu_list='0-31', vlan_id=None):
|
||||
onboot=True, domain=None, members=None, bond_mode=None,
|
||||
bond_policy=None, driver=None, cpu_list='0-31', vlan_id=None):
|
||||
addresses = addresses or []
|
||||
|
||||
super(ContrailVrouterDpdk, self).__init__(name, use_dhcp, use_dhcpv6,
|
||||
@@ -1692,7 +1713,8 @@ class ContrailVrouterDpdk(_BaseOpts):
|
||||
mtu, primary, nic_mapping,
|
||||
persist_mapping, defroute,
|
||||
dhclient_args, dns_servers,
|
||||
nm_controlled, onboot)
|
||||
nm_controlled, onboot,
|
||||
domain)
|
||||
|
||||
self.members = members or []
|
||||
self.bond_mode = bond_mode
|
||||
@@ -1712,7 +1734,8 @@ class ContrailVrouterDpdk(_BaseOpts):
|
||||
|
||||
(_use_dhcp, _use_dhcpv6, _addresses, _routes, _rules, _mtu, _primary,
|
||||
nic_mapping, persist_mapping, _defroute, _dhclient_args, _dns_servers,
|
||||
_nm_controlled, _onboot) = opts = _BaseOpts.base_opts_from_json(json)
|
||||
_nm_controlled, _onboot,
|
||||
_domain) = opts = _BaseOpts.base_opts_from_json(json)
|
||||
members = _update_members(json, nic_mapping, persist_mapping)
|
||||
|
||||
return ContrailVrouterDpdk(name, *opts, members=members,
|
||||
|
||||
@@ -107,6 +107,10 @@ definitions:
|
||||
required:
|
||||
- list_join
|
||||
additionalProperties: False
|
||||
domain_name_string:
|
||||
type: string
|
||||
pattern: >-
|
||||
^(?=^.{1,255}$)(?!.*\.\..*)(.{1,63}\.)+(.{0,63}\.?)|(?!\.)(?!.*\.\..*)(^.{1,63}$)|(^\.$)$
|
||||
|
||||
# os-net-config derived types
|
||||
address:
|
||||
@@ -272,6 +276,8 @@ definitions:
|
||||
$ref: "#/definitions/bool_or_param"
|
||||
onboot:
|
||||
$ref: "#/definitions/bool_or_param"
|
||||
domain:
|
||||
$ref: "#/definitions/domain_name_string"
|
||||
required:
|
||||
- type
|
||||
- name
|
||||
@@ -336,6 +342,8 @@ definitions:
|
||||
$ref: "#/definitions/bool_or_param"
|
||||
onboot:
|
||||
$ref: "#/definitions/bool_or_param"
|
||||
domain:
|
||||
$ref: "#/definitions/domain_name_string"
|
||||
required:
|
||||
- type
|
||||
- name
|
||||
@@ -396,6 +404,8 @@ definitions:
|
||||
$ref: "#/definitions/bool_or_param"
|
||||
onboot:
|
||||
$ref: "#/definitions/bool_or_param"
|
||||
domain:
|
||||
$ref: "#/definitions/domain_name_string"
|
||||
required:
|
||||
- type
|
||||
- device
|
||||
@@ -440,6 +450,8 @@ definitions:
|
||||
$ref: "#/definitions/bool_or_param"
|
||||
onboot:
|
||||
$ref: "#/definitions/bool_or_param"
|
||||
domain:
|
||||
$ref: "#/definitions/domain_name_string"
|
||||
required:
|
||||
- type
|
||||
- vlan_id
|
||||
@@ -496,6 +508,8 @@ definitions:
|
||||
$ref: "#/definitions/bool_or_param"
|
||||
onboot:
|
||||
$ref: "#/definitions/bool_or_param"
|
||||
domain:
|
||||
$ref: "#/definitions/domain_name_string"
|
||||
required:
|
||||
- type
|
||||
- name
|
||||
@@ -553,6 +567,8 @@ definitions:
|
||||
$ref: "#/definitions/bool_or_param"
|
||||
onboot:
|
||||
$ref: "#/definitions/bool_or_param"
|
||||
domain:
|
||||
$ref: "#/definitions/domain_name_string"
|
||||
required:
|
||||
- type
|
||||
- name
|
||||
@@ -605,6 +621,8 @@ definitions:
|
||||
$ref: "#/definitions/bool_or_param"
|
||||
onboot:
|
||||
$ref: "#/definitions/bool_or_param"
|
||||
domain:
|
||||
$ref: "#/definitions/domain_name_string"
|
||||
required:
|
||||
- type
|
||||
- name
|
||||
@@ -655,6 +673,8 @@ definitions:
|
||||
$ref: "#/definitions/bool_or_param"
|
||||
onboot:
|
||||
$ref: "#/definitions/bool_or_param"
|
||||
domain:
|
||||
$ref: "#/definitions/domain_name_string"
|
||||
required:
|
||||
- type
|
||||
- name
|
||||
@@ -704,6 +724,8 @@ definitions:
|
||||
$ref: "#/definitions/bool_or_param"
|
||||
onboot:
|
||||
$ref: "#/definitions/bool_or_param"
|
||||
domain:
|
||||
$ref: "#/definitions/domain_name_string"
|
||||
required:
|
||||
- type
|
||||
- name
|
||||
@@ -754,6 +776,8 @@ definitions:
|
||||
$ref: "#/definitions/bool_or_param"
|
||||
onboot:
|
||||
$ref: "#/definitions/bool_or_param"
|
||||
domain:
|
||||
$ref: "#/definitions/domain_name_string"
|
||||
required:
|
||||
- type
|
||||
- name
|
||||
@@ -812,6 +836,8 @@ definitions:
|
||||
$ref: "#/definitions/bool_or_param"
|
||||
onboot:
|
||||
$ref: "#/definitions/bool_or_param"
|
||||
domain:
|
||||
$ref: "#/definitions/domain_name_string"
|
||||
required:
|
||||
- type
|
||||
- name
|
||||
@@ -856,6 +882,8 @@ definitions:
|
||||
$ref: "#/definitions/bool_or_param"
|
||||
onboot:
|
||||
$ref: "#/definitions/bool_or_param"
|
||||
domain:
|
||||
$ref: "#/definitions/domain_name_string"
|
||||
required:
|
||||
- type
|
||||
- name
|
||||
@@ -899,6 +927,8 @@ definitions:
|
||||
$ref: "#/definitions/bool_or_param"
|
||||
onboot:
|
||||
$ref: "#/definitions/bool_or_param"
|
||||
domain:
|
||||
$ref: "#/definitions/domain_name_string"
|
||||
members:
|
||||
type: array
|
||||
items:
|
||||
@@ -1058,6 +1088,8 @@ definitions:
|
||||
$ref: "#/definitions/bool_or_param"
|
||||
onboot:
|
||||
$ref: "#/definitions/bool_or_param"
|
||||
domain:
|
||||
$ref: "#/definitions/domain_name_string"
|
||||
required:
|
||||
- type
|
||||
- name
|
||||
@@ -1107,6 +1139,8 @@ definitions:
|
||||
$ref: "#/definitions/bool_or_param"
|
||||
onboot:
|
||||
$ref: "#/definitions/bool_or_param"
|
||||
domain:
|
||||
$ref: "#/definitions/domain_name_string"
|
||||
required:
|
||||
- type
|
||||
- name
|
||||
@@ -1155,6 +1189,8 @@ definitions:
|
||||
$ref: "#/definitions/bool_or_param"
|
||||
onboot:
|
||||
$ref: "#/definitions/bool_or_param"
|
||||
domain:
|
||||
$ref: "#/definitions/domain_name_string"
|
||||
required:
|
||||
- type
|
||||
- name
|
||||
@@ -1199,6 +1235,8 @@ definitions:
|
||||
$ref: "#/definitions/bool_or_param"
|
||||
onboot:
|
||||
$ref: "#/definitions/bool_or_param"
|
||||
domain:
|
||||
$ref: "#/definitions/domain_name_string"
|
||||
required:
|
||||
- type
|
||||
- members
|
||||
@@ -1242,6 +1280,8 @@ definitions:
|
||||
$ref: "#/definitions/bool_or_param"
|
||||
onboot:
|
||||
$ref: "#/definitions/bool_or_param"
|
||||
domain:
|
||||
$ref: "#/definitions/domain_name_string"
|
||||
required:
|
||||
- type
|
||||
- vlan_id
|
||||
@@ -1288,6 +1328,8 @@ definitions:
|
||||
$ref: "#/definitions/bool_or_param"
|
||||
onboot:
|
||||
$ref: "#/definitions/bool_or_param"
|
||||
domain:
|
||||
$ref: "#/definitions/domain_name_string"
|
||||
required:
|
||||
- type
|
||||
- options
|
||||
@@ -1332,6 +1374,8 @@ definitions:
|
||||
$ref: "#/definitions/bool_or_param"
|
||||
onboot:
|
||||
$ref: "#/definitions/bool_or_param"
|
||||
domain:
|
||||
$ref: "#/definitions/domain_name_string"
|
||||
required:
|
||||
- type
|
||||
- vlan_id
|
||||
@@ -1375,6 +1419,8 @@ definitions:
|
||||
$ref: "#/definitions/bool_or_param"
|
||||
onboot:
|
||||
$ref: "#/definitions/bool_or_param"
|
||||
domain:
|
||||
$ref: "#/definitions/domain_name_string"
|
||||
required:
|
||||
- type
|
||||
- name
|
||||
|
||||
@@ -1220,6 +1220,21 @@ NM_CONTROLLED=no
|
||||
BOOTPROTO=none
|
||||
DNS1=1.2.3.4
|
||||
DNS2=5.6.7.8
|
||||
"""
|
||||
self.assertEqual(em1_config, self.get_interface_config('em1'))
|
||||
|
||||
def test_interface_domain(self):
|
||||
interface1 = objects.Interface('em1', dns_servers=['1.2.3.4'],
|
||||
domain='openstack.local')
|
||||
self.provider.add_interface(interface1)
|
||||
em1_config = """# This file is autogenerated by os-net-config
|
||||
DEVICE=em1
|
||||
ONBOOT=yes
|
||||
HOTPLUG=no
|
||||
NM_CONTROLLED=no
|
||||
BOOTPROTO=none
|
||||
DNS1=1.2.3.4
|
||||
DOMAIN=openstack.local
|
||||
"""
|
||||
self.assertEqual(em1_config, self.get_interface_config('em1'))
|
||||
|
||||
|
||||
@@ -306,6 +306,17 @@ class TestInterface(base.TestCase):
|
||||
interface1 = objects.object_from_json(json.loads(data))
|
||||
self.assertEqual(["1.2.3.4"], interface1.dns_servers)
|
||||
|
||||
def test_from_json_domain(self):
|
||||
data = """{
|
||||
"type": "interface",
|
||||
"name": "em1",
|
||||
"use_dhcp": true,
|
||||
"domain": "openstack.local"
|
||||
}
|
||||
"""
|
||||
interface1 = objects.object_from_json(json.loads(data))
|
||||
self.assertEqual("openstack.local", interface1.domain)
|
||||
|
||||
def test_from_json_dhcp_nic1(self):
|
||||
def dummy_mapped_nics(nic_mapping=None):
|
||||
return {"nic1": "em3"}
|
||||
|
||||
@@ -144,6 +144,35 @@ class TestBaseTypes(base.TestCase):
|
||||
self.assertTrue(v.is_valid("fe80::1/64"))
|
||||
self.assertFalse(v.is_valid("193.168.0.1"))
|
||||
|
||||
def test_domain_name_string(self):
|
||||
schema = validator.get_schema_for_defined_type("domain_name_string")
|
||||
v = jsonschema.Draft4Validator(schema)
|
||||
self.assertTrue(v.is_valid('localdomain'))
|
||||
self.assertTrue(v.is_valid('openstack.local'))
|
||||
self.assertTrue(v.is_valid('999.local'))
|
||||
self.assertTrue(v.is_valid('_foo.bar'))
|
||||
self.assertTrue(v.is_valid('_foo.bar.domain'))
|
||||
self.assertTrue(v.is_valid('trailing.dot.domain.'))
|
||||
self.assertTrue(v.is_valid('.'))
|
||||
self.assertFalse(v.is_valid('.com'))
|
||||
self.assertFalse(v.is_valid('..'))
|
||||
self.assertFalse(v.is_valid('foo..bar'))
|
||||
# Label too long
|
||||
domain = ('123456789-123456789-123456789-123456789-123456789-'
|
||||
'123456789-1234.com')
|
||||
self.assertFalse(v.is_valid(domain))
|
||||
domain = ('123456789-123456789-123456789-123456789-123456789-'
|
||||
'123456789-12345678')
|
||||
self.assertFalse(v.is_valid(domain))
|
||||
domain = ('123456789.123456789.123456789.123456789.123456789.'
|
||||
'123456789.123456789.123456789.123456789.123456789.'
|
||||
'123456789.123456789.123456789.123456789.123456789.'
|
||||
'123456789.123456789.123456789.123456789.123456789.'
|
||||
'123456789.123456789.123456789.123456789.123456789.'
|
||||
'aa.com')
|
||||
self.assertEqual(len(domain), 256)
|
||||
self.assertFalse(v.is_valid(domain))
|
||||
|
||||
|
||||
class TestDerivedTypes(base.TestCase):
|
||||
|
||||
@@ -238,6 +267,7 @@ class TestDeviceTypes(base.TestCase):
|
||||
"defroute": False,
|
||||
"dhclient_args": "--foobar",
|
||||
"dns_servers": ["1.2.3.4"],
|
||||
"domain": "openstack.local",
|
||||
"mtu": 1501,
|
||||
"ethtool_opts": "speed 1000 duplex full",
|
||||
"hotplug": True,
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
features:
|
||||
- |
|
||||
A key called "domain" is now available for interfaces. This allows the
|
||||
setting of a domain for an ifcfg configuration, which will aide DNS search.
|
||||
Reference in New Issue
Block a user