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_ifcfg.py | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) (limited to 'os_net_config/impl_ifcfg.py') diff --git a/os_net_config/impl_ifcfg.py b/os_net_config/impl_ifcfg.py index 100edeb..78433d8 100644 --- a/os_net_config/impl_ifcfg.py +++ b/os_net_config/impl_ifcfg.py @@ -208,12 +208,16 @@ class IfcfgNetConfig(os_net_config.NetConfig): if bond.routes: self._add_routes(bond.name, bond.routes) - 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 + NOTE: if cleanup is specified we will deactivate interfaces even + if activate is false :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). @@ -264,19 +268,21 @@ class IfcfgNetConfig(os_net_config.NetConfig): self.ifdown(interface_name) self.remove_config(ifcfg_file) - for interface in restart_interfaces: - self.ifdown(interface) + if activate: + for interface in restart_interfaces: + self.ifdown(interface) - for bridge in restart_bridges: - self.ifdown(bridge, iftype='bridge') + for bridge in restart_bridges: + self.ifdown(bridge, iftype='bridge') for location, data in update_files.iteritems(): self.write_config(location, data) - for bridge in restart_bridges: - self.ifup(bridge, iftype='bridge') + if activate: + for bridge in restart_bridges: + self.ifup(bridge, iftype='bridge') - for interface in restart_interfaces: - self.ifup(interface) + for interface in restart_interfaces: + self.ifup(interface) return update_files -- cgit 1.2.3-korg