aboutsummaryrefslogtreecommitdiffstats
path: root/os_net_config/objects.py
diff options
context:
space:
mode:
Diffstat (limited to 'os_net_config/objects.py')
-rw-r--r--os_net_config/objects.py38
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):