aboutsummaryrefslogtreecommitdiffstats
path: root/os_net_config/impl_eni.py
diff options
context:
space:
mode:
authorSteven Hardy <shardy@redhat.com>2015-01-26 18:44:21 +0000
committerSteven Hardy <shardy@redhat.com>2015-03-05 13:11:09 +0000
commit3304fa066d1dae93df0f597c1709c955e3857a5d (patch)
treeb5347080f433cdc99b0b8e1f386b7bb5437ae09f /os_net_config/impl_eni.py
parent4cf8c1a0fd3c029ea81092a8901d786bfce77735 (diff)
Add a --no-activate option to disable device up/down actions
Allows you to only install the config, but not take interfaces down/up. Useful if you wish to defer activation of a new config until a later time (e.g reboot). Change-Id: I42f3195e1d3d5d3b9d1c9dbb1f7cf1364503cbd3
Diffstat (limited to 'os_net_config/impl_eni.py')
-rw-r--r--os_net_config/impl_eni.py25
1 files changed, 16 insertions, 9 deletions
diff --git a/os_net_config/impl_eni.py b/os_net_config/impl_eni.py
index 5f46f33..3115e04 100644
--- a/os_net_config/impl_eni.py
+++ b/os_net_config/impl_eni.py
@@ -187,9 +187,14 @@ class ENINetConfig(os_net_config.NetConfig):
self.routes[interface_name] = data
logger.debug('route data: %s' % self.routes[interface_name])
- def apply(self, cleanup=False):
+ def apply(self, cleanup=False, activate=True):
"""Apply the network configuration.
+ :param cleanup: A boolean which indicates whether any undefined
+ (existing but not present in the object model) interface
+ should be disabled and deleted.
+ :param activate: A boolean which indicates if the config should
+ be activated by stopping/starting interfaces
:returns: a dict of the format: filename/data which contains info
for each file that was changed (or would be changed if in --noop
mode).
@@ -210,19 +215,21 @@ class ENINetConfig(os_net_config.NetConfig):
new_config += iface_data
if (utils.diff(_network_config_path(), new_config)):
- for interface in self.interfaces.keys():
- self.ifdown(interface)
+ if activate:
+ for interface in self.interfaces.keys():
+ self.ifdown(interface)
- for bridge in self.bridges.keys():
- self.ifdown(bridge, iftype='bridge')
+ for bridge in self.bridges.keys():
+ self.ifdown(bridge, iftype='bridge')
self.write_config(_network_config_path(), new_config)
- for bridge in self.bridges.keys():
- self.ifup(bridge, iftype='bridge')
+ if activate:
+ for bridge in self.bridges.keys():
+ self.ifup(bridge, iftype='bridge')
- for interface in self.interfaces.keys():
- self.ifup(interface)
+ for interface in self.interfaces.keys():
+ self.ifup(interface)
else:
logger.info('No interface changes are required.')