diff options
Diffstat (limited to 'os_net_config/objects.py')
-rw-r--r-- | os_net_config/objects.py | 38 |
1 files changed, 19 insertions, 19 deletions
diff --git a/os_net_config/objects.py b/os_net_config/objects.py index 8fab1ab..8d7ee4c 100644 --- a/os_net_config/objects.py +++ b/os_net_config/objects.py @@ -134,17 +134,20 @@ def _mapped_nics(nic_mapping=None): class Route(object): """Base class for network routes.""" - def __init__(self, next_hop, ip_netmask="", default=False): + def __init__(self, next_hop, ip_netmask="", default=False, + route_options=""): self.next_hop = next_hop self.ip_netmask = ip_netmask self.default = default + self.route_options = route_options @staticmethod def from_json(json): next_hop = _get_required_field(json, 'next_hop', 'Route') ip_netmask = json.get('ip_netmask', "") + route_options = json.get('route_options', "") default = strutils.bool_from_string(str(json.get('default', False))) - return Route(next_hop, ip_netmask, default) + return Route(next_hop, ip_netmask, default, route_options) class Address(object): @@ -276,7 +279,7 @@ class Interface(_BaseOpts): def __init__(self, name, use_dhcp=False, use_dhcpv6=False, addresses=None, routes=None, mtu=None, primary=False, nic_mapping=None, persist_mapping=False, defroute=True, dhclient_args=None, - dns_servers=None): + dns_servers=None, ethtool_opts=None): addresses = addresses or [] routes = routes or [] dns_servers = dns_servers or [] @@ -284,12 +287,14 @@ class Interface(_BaseOpts): routes, mtu, primary, nic_mapping, persist_mapping, defroute, dhclient_args, dns_servers) + self.ethtool_opts = ethtool_opts @staticmethod def from_json(json): name = _get_required_field(json, 'name', 'Interface') opts = _BaseOpts.base_opts_from_json(json) - return Interface(name, *opts) + ethtool_opts = json.get('ethtool_opts', None) + return Interface(name, *opts, ethtool_opts=ethtool_opts) class Vlan(_BaseOpts): @@ -628,7 +633,7 @@ class NfvswitchBridge(_BaseOpts): def __init__(self, name='nfvswitch', use_dhcp=False, use_dhcpv6=False, addresses=None, routes=None, mtu=1500, members=None, nic_mapping=None, persist_mapping=False, defroute=True, - dhclient_args=None, dns_servers=None, cpus=""): + dhclient_args=None, dns_servers=None, options=""): addresses = addresses or [] routes = routes or [] members = members or [] @@ -638,7 +643,7 @@ class NfvswitchBridge(_BaseOpts): nic_mapping, persist_mapping, defroute, dhclient_args, dns_servers) - self.cpus = cpus + self.options = options self.members = members for member in self.members: if isinstance(member, OvsBond) or isinstance(member, LinuxBond): @@ -667,16 +672,9 @@ class NfvswitchBridge(_BaseOpts): msg = 'Members must be a list.' raise InvalidConfigException(msg) - cpus = '' - cpus_json = json.get('cpus') - if cpus_json: - if isinstance(cpus_json, basestring): - cpus = cpus_json - else: - msg = '"cpus" must be a string of numbers separated by commas.' - raise InvalidConfigException(msg) - else: - msg = 'Config "cpus" is mandatory.' + options = json.get('options') + if not options: + msg = 'Config "options" is mandatory.' raise InvalidConfigException(msg) return NfvswitchBridge(name, use_dhcp=use_dhcp, use_dhcpv6=use_dhcpv6, @@ -684,7 +682,7 @@ class NfvswitchBridge(_BaseOpts): members=members, nic_mapping=nic_mapping, persist_mapping=persist_mapping, defroute=defroute, dhclient_args=dhclient_args, - dns_servers=dns_servers, cpus=cpus) + dns_servers=dns_servers, options=options) class LinuxTeam(_BaseOpts): @@ -935,7 +933,7 @@ class IbInterface(_BaseOpts): def __init__(self, name, use_dhcp=False, use_dhcpv6=False, addresses=None, routes=None, mtu=None, primary=False, nic_mapping=None, persist_mapping=False, defroute=True, dhclient_args=None, - dns_servers=None): + dns_servers=None, ethtool_opts=None): addresses = addresses or [] routes = routes or [] dns_servers = dns_servers or [] @@ -943,12 +941,14 @@ class IbInterface(_BaseOpts): addresses, routes, mtu, primary, nic_mapping, persist_mapping, defroute, dhclient_args, dns_servers) + self.ethtool_opts = ethtool_opts @staticmethod def from_json(json): name = _get_required_field(json, 'name', 'IbInterface') + ethtool_opts = json.get('ethtool_opts', None) opts = _BaseOpts.base_opts_from_json(json) - return IbInterface(name, *opts) + return IbInterface(name, *opts, ethtool_opts=ethtool_opts) class OvsDpdkPort(_BaseOpts): |