From 3304fa066d1dae93df0f597c1709c955e3857a5d Mon Sep 17 00:00:00 2001 From: Steven Hardy Date: Mon, 26 Jan 2015 18:44:21 +0000 Subject: 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 --- os_net_config/impl_eni.py | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) (limited to 'os_net_config/impl_eni.py') 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.') -- cgit 1.2.3-korg