diff options
author | 2016-07-05 09:15:23 +0000 | |
---|---|---|
committer | 2016-07-05 09:15:23 +0000 | |
commit | 6bb8412ef3d3f163d91f2884081b743f07a78f18 (patch) | |
tree | 32e7e4eff7683febce73b771d5bf2eaec8f0539c /os_net_config/objects.py | |
parent | f742dcbda0d92bee0278b4a1614d65f2ad5b1a78 (diff) | |
parent | 789bd1ea089314b49db02ddd517809a82c380cf1 (diff) |
Merge "Add support for OVS patch ports"
Diffstat (limited to 'os_net_config/objects.py')
-rw-r--r-- | os_net_config/objects.py | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/os_net_config/objects.py b/os_net_config/objects.py index 2958f84..9815832 100644 --- a/os_net_config/objects.py +++ b/os_net_config/objects.py @@ -50,6 +50,8 @@ def object_from_json(json): return IvsInterface.from_json(json) elif obj_type == "ovs_tunnel": return OvsTunnel.from_json(json) + elif obj_type == "ovs_patch_port": + return OvsPatchPort.from_json(json) def _get_required_field(json, name, object_name): @@ -652,3 +654,38 @@ class OvsTunnel(_BaseOpts): opts = _BaseOpts.base_opts_from_json(json) return OvsTunnel(name, *opts, tunnel_type=tunnel_type, ovs_options=ovs_options, ovs_extra=ovs_extra) + + +class OvsPatchPort(_BaseOpts): + """Base class for OVS Patch Ports.""" + + 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, bridge_name=None, peer=None, + ovs_options=None, ovs_extra=None): + addresses = addresses or [] + routes = routes or [] + ovs_extra = ovs_extra or [] + dns_servers = dns_servers or [] + super(OvsPatchPort, self).__init__(name, use_dhcp, use_dhcpv6, + addresses, routes, mtu, primary, + nic_mapping, persist_mapping, + defroute, dhclient_args, + dns_servers) + self.bridge_name = bridge_name + self.peer = peer + self.ovs_options = ovs_options or [] + self.ovs_extra = ovs_extra or [] + + @staticmethod + def from_json(json): + name = _get_required_field(json, 'name', 'OvsPatchPort') + bridge_name = _get_required_field(json, 'bridge_name', 'OvsPatchPort') + peer = _get_required_field(json, 'peer', 'OvsPatchPort') + ovs_options = json.get('ovs_options', []) + ovs_options = ['options:%s' % opt for opt in ovs_options] + ovs_extra = json.get('ovs_extra', []) + opts = _BaseOpts.base_opts_from_json(json) + return OvsPatchPort(name, *opts, bridge_name=bridge_name, peer=peer, + ovs_options=ovs_options, ovs_extra=ovs_extra) |