Change in vdsm[master]: Cleanup the usages of configWriter in configNetwork
wudxw at linux.vnet.ibm.com
wudxw at linux.vnet.ibm.com
Tue Jul 2 15:52:22 UTC 2013
Mark Wu has uploaded a new change for review.
Change subject: Cleanup the usages of configWriter in configNetwork
......................................................................
Cleanup the usages of configWriter in configNetwork
We should keep the interaction with configWriter inside configurator.
So this patch changes to construct new configWriter instantance in
ifcfg's __init__() and use configurator to implement the transaction
management of configuration.
Signed-off-by: Mark Wu <wudxw at linux.vnet.ibm.com>
Change-Id: I19310221ec2c5d7c621c121b77ed87d060676d42
---
M vdsm/configNetwork.py
M vdsm/netconf/ifcfg.py
2 files changed, 21 insertions(+), 31 deletions(-)
git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/43/16343/1
diff --git a/vdsm/configNetwork.py b/vdsm/configNetwork.py
index 6f82f08..5d39ece 100755
--- a/vdsm/configNetwork.py
+++ b/vdsm/configNetwork.py
@@ -149,7 +149,7 @@
def addNetwork(network, vlan=None, bonding=None, nics=None, ipaddr=None,
netmask=None, prefix=None, mtu=None, gateway=None, force=False,
- configWriter=None, bondingOptions=None, bridged=True,
+ configurator=None, bondingOptions=None, bridged=True,
_netinfo=None, **options):
nics = nics or ()
if _netinfo is None:
@@ -187,9 +187,8 @@
network, vlan, bonding, nics, bondingOptions,
mtu, bridged, options)
- if configWriter is None:
- configWriter = ConfigWriter()
- configurator = Ifcfg(configWriter)
+ if configurator is None:
+ configurator = Ifcfg()
bootproto = options.pop('bootproto', None)
@@ -252,14 +251,14 @@
print "Bondings:", _netinfo.bondings.keys()
-def _delBrokenNetwork(network, netAttr, configWriter):
+def _delBrokenNetwork(network, netAttr, configurator):
'''Adapts the network information of broken networks so that they can be
deleted via delNetwork.'''
_netinfo = netinfo.NetInfo()
_netinfo.networks[network] = netAttr
if _netinfo.networks[network]['bridged']:
_netinfo.networks[network]['ports'] = ConfigWriter.ifcfgPorts(network)
- delNetwork(network, configWriter=configWriter, force=True,
+ delNetwork(network, configurator=configurator, force=True,
implicitBonding=False, _netinfo=_netinfo)
@@ -287,14 +286,13 @@
def delNetwork(network, vlan=None, bonding=None, nics=None, force=False,
- configWriter=None, implicitBonding=True, _netinfo=None,
+ configurator=None, implicitBonding=True, _netinfo=None,
**options):
if _netinfo is None:
_netinfo = netinfo.NetInfo()
- if configWriter is None:
- configWriter = ConfigWriter()
- configurator = Ifcfg(configWriter)
+ if configurator is None:
+ configurator = Ifcfg()
if network not in _netinfo.networks:
logging.info("Network %r: doesn't exist in libvirt database", network)
@@ -340,19 +338,19 @@
def editNetwork(oldBridge, newBridge, vlan=None, bonding=None, nics=None,
**options):
- configWriter = ConfigWriter()
+ configurator = Ifcfg()
try:
- delNetwork(oldBridge, configWriter=configWriter, **options)
+ delNetwork(oldBridge, configurator=configurator, **options)
addNetwork(newBridge, vlan=vlan, bonding=bonding, nics=nics,
- configWriter=configWriter, **options)
+ configurator=configurator, **options)
except:
- configWriter.restoreBackups()
+ configurator.rollback()
raise
if utils.tobool(options.get('connectivityCheck', False)):
if not clientSeen(int(options.get('connectivityTimeout',
CONNECTIVITY_TIMEOUT_DEFAULT))):
delNetwork(newBridge, force=True)
- configWriter.restoreBackups()
+ configurator.rollback()
return define.errCode['noConPeer']['status']['code']
@@ -473,8 +471,7 @@
"""
logger = logging.getLogger("setupNetworks")
_netinfo = netinfo.NetInfo()
- configWriter = ConfigWriter()
- configurator = Ifcfg(configWriter)
+ configurator = Ifcfg()
networksAdded = set()
logger.debug("Setting up network according to configuration: "
@@ -493,7 +490,7 @@
for network, networkAttrs in networks.items():
if network in _netinfo.networks:
logger.debug("Removing network %r" % network)
- delNetwork(network, configWriter=configWriter, force=force,
+ delNetwork(network, configurator=configurator, force=force,
implicitBonding=False)
if 'remove' in networkAttrs:
del networks[network]
@@ -504,7 +501,7 @@
# a broken network.
logger.debug('Removing broken network %r' % network)
_delBrokenNetwork(network, libvirt_nets[network],
- configWriter=configWriter)
+ configurator=configurator)
if 'remove' in networkAttrs:
del networks[network]
del libvirt_nets[network]
@@ -524,7 +521,7 @@
d['force'] = force
logger.debug("Adding network %r" % network)
- addNetwork(network, configWriter=configWriter,
+ addNetwork(network, configurator=configurator,
implicitBonding=True, **d)
if utils.tobool(options.get('connectivityCheck', True)):
@@ -542,7 +539,7 @@
raise ConfigNetworkError(ne.ERR_LOST_CONNECTION,
'connectivity check failed')
except:
- configWriter.restoreBackups()
+ configurator.rollback()
raise
diff --git a/vdsm/netconf/ifcfg.py b/vdsm/netconf/ifcfg.py
index 4ccc15d..66f816e 100644
--- a/vdsm/netconf/ifcfg.py
+++ b/vdsm/netconf/ifcfg.py
@@ -41,8 +41,8 @@
class Ifcfg(object):
# TODO: Do all the configWriter interaction from here.
- def __init__(self, configWriter=None):
- self.configWriter = configWriter
+ def __init__(self):
+ self.configWriter = ConfigWriter()
self._libvirtAdded = set()
def begin(self):
@@ -51,14 +51,7 @@
self._libvirtAdded = set()
def rollback(self):
- if self.configWriter:
- self.configWriter.restoreBackups()
- for network in self._libvirtAdded:
- # TODO: Add meaningful logging for failure to remove the added
- # networks.
- self.configWriter.removeLibvirtNetwork(network)
-
- self.configWriter = None
+ self.configWriter.restoreBackups()
def commit(self):
if self.configWriter:
--
To view, visit http://gerrit.ovirt.org/16343
To unsubscribe, visit http://gerrit.ovirt.org/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I19310221ec2c5d7c621c121b77ed87d060676d42
Gerrit-PatchSet: 1
Gerrit-Project: vdsm
Gerrit-Branch: master
Gerrit-Owner: Mark Wu <wudxw at linux.vnet.ibm.com>
More information about the vdsm-patches
mailing list