diff options
Diffstat (limited to 'os_net_config/objects.py')
-rw-r--r-- | os_net_config/objects.py | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/os_net_config/objects.py b/os_net_config/objects.py index a6d0c03..417f34a 100644 --- a/os_net_config/objects.py +++ b/os_net_config/objects.py @@ -30,7 +30,8 @@ logger = logging.getLogger(__name__) _MAPPED_NICS = None -DEFAULT_OVS_BRIDGE_FAIL_MODE = 'standalone' +STANDALONE_FAIL_MODE = 'standalone' +DEFAULT_OVS_BRIDGE_FAIL_MODE = STANDALONE_FAIL_MODE class InvalidConfigException(ValueError): @@ -184,6 +185,13 @@ def format_ovs_extra(obj, templates): return [t.format(name=obj.name) for t in templates or []] +def _add_fail_mode(fail_mode): + ovs_extra = ['set bridge {name} fail_mode=%s' % fail_mode] + if fail_mode == STANDALONE_FAIL_MODE: + ovs_extra.append('del-controller {name}') + return ovs_extra + + class Route(object): """Base class for network routes.""" @@ -469,7 +477,7 @@ class OvsBridge(_BaseOpts): self.ovs_options = ovs_options ovs_extra = ovs_extra or [] if fail_mode: - ovs_extra.append('set bridge {name} fail_mode=%s' % fail_mode) + ovs_extra.extend(_add_fail_mode(fail_mode)) self.ovs_extra = format_ovs_extra(self, ovs_extra) for member in self.members: member.bridge_name = name @@ -526,7 +534,7 @@ class OvsUserBridge(_BaseOpts): self.ovs_options = ovs_options ovs_extra = ovs_extra or [] if fail_mode: - ovs_extra.append('set bridge {name} fail_mode=%s' % fail_mode) + ovs_extra.extend(_add_fail_mode(fail_mode)) self.ovs_extra = format_ovs_extra(self, ovs_extra) for member in self.members: member.bridge_name = name |