Dan Kenigsberg has uploaded a new change for review.
Change subject: [WIP] a more delicate rollback ......................................................................
[WIP] a more delicate rollback
If things go wrong during setupNetwork, we try to revert the networking state to what it used to be. Until this patch, we stopped the network service, reverted all ifcfg-* files, and restarted networking.
This procedure disruppted all connection, even those unrelated to the ones being set up.
With this change, we are taking down only affected devices, and revert them to their pre-setupNetwork state.
Change-Id: If413164a34a1e6f0d7e4ef75ba931e630a26e666 Signed-off-by: Dan Kenigsberg danken@redhat.com --- M vdsm/configNetwork.py 1 file changed, 37 insertions(+), 2 deletions(-)
git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/06/9506/1
diff --git a/vdsm/configNetwork.py b/vdsm/configNetwork.py index 09d70ac..6e8649c 100755 --- a/vdsm/configNetwork.py +++ b/vdsm/configNetwork.py @@ -320,6 +320,41 @@ open(confFile, 'w').write(content) logging.info('Restored %s', confFile)
+ def _devType(self, content): + if re.search('^TYPE=Bridge$', content, re.MULTILINE): + return "Bridge" + elif re.search('^VLAN=yes$', content, re.MULTILINE): + return "Vlan" + else: + return "Other" + + def _sortModifiedIfcfgs(self): + devdict = {'Bridge': [], + 'Vlan': [], + 'Other': []} + for confFile, _ in self._backups.iteritems(): + try: + content = file(confFile).read() + except IOError as e: + if e.errno == os.errno.ENOENT: + continue + else: + raise + dev = confFile[len(self.NET_CONF_PREF):] + + devdict[self._devType(content)].append(dev) + + return nicSort(devdict['Other']) + devdict['Vlan'] + \ + devdict['Bridge'] + + def _stopAtomicDevices(self): + for dev in reversed(self._sortModifiedIfcfgs()): + ifdown(dev) + + def _startAtomicDevices(self): + for dev in self._sortModifiedIfcfgs(): + ifup(dev) + @classmethod def _persistentBackup(cls, filename): """ Persistently backup ifcfg-* config files """ @@ -374,12 +409,12 @@ if not self._backups and not self._networksBackups: return
- execCmd(['/etc/init.d/network', 'stop']) + self._stopAtomicDevices()
self.restoreAtomicNetworkBackup() self.restoreAtomicBackup()
- execCmd(['/etc/init.d/network', 'start']) + self._startAtomicDevices()
@classmethod def clearBackups(cls):
-- To view, visit http://gerrit.ovirt.org/9506 To unsubscribe, visit http://gerrit.ovirt.org/settings
Gerrit-MessageType: newchange Gerrit-Change-Id: If413164a34a1e6f0d7e4ef75ba931e630a26e666 Gerrit-PatchSet: 1 Gerrit-Project: vdsm Gerrit-Branch: master Gerrit-Owner: Dan Kenigsberg danken@redhat.com
oVirt Jenkins CI Server has posted comments on this change.
Change subject: [WIP] a more delicate rollback ......................................................................
Patch Set 1:
Build Started http://jenkins.ovirt.org/job/vdsm_unit_tests_manual_gerrit/193/ (1/2)
-- To view, visit http://gerrit.ovirt.org/9506 To unsubscribe, visit http://gerrit.ovirt.org/settings
Gerrit-MessageType: comment Gerrit-Change-Id: If413164a34a1e6f0d7e4ef75ba931e630a26e666 Gerrit-PatchSet: 1 Gerrit-Project: vdsm Gerrit-Branch: master Gerrit-Owner: Dan Kenigsberg danken@redhat.com Gerrit-Reviewer: oVirt Jenkins CI Server
oVirt Jenkins CI Server has posted comments on this change.
Change subject: [WIP] a more delicate rollback ......................................................................
Patch Set 1:
Build Started http://jenkins.ovirt.org/job/vdsm_pep8_gerrit/159/ (2/2)
-- To view, visit http://gerrit.ovirt.org/9506 To unsubscribe, visit http://gerrit.ovirt.org/settings
Gerrit-MessageType: comment Gerrit-Change-Id: If413164a34a1e6f0d7e4ef75ba931e630a26e666 Gerrit-PatchSet: 1 Gerrit-Project: vdsm Gerrit-Branch: master Gerrit-Owner: Dan Kenigsberg danken@redhat.com Gerrit-Reviewer: oVirt Jenkins CI Server
oVirt Jenkins CI Server has posted comments on this change.
Change subject: [WIP] a more delicate rollback ......................................................................
Patch Set 1:
Build Successful
http://jenkins.ovirt.org/job/vdsm_pep8_gerrit/159/ : SUCCESS
http://jenkins.ovirt.org/job/vdsm_unit_tests_manual_gerrit/193/ : SUCCESS
-- To view, visit http://gerrit.ovirt.org/9506 To unsubscribe, visit http://gerrit.ovirt.org/settings
Gerrit-MessageType: comment Gerrit-Change-Id: If413164a34a1e6f0d7e4ef75ba931e630a26e666 Gerrit-PatchSet: 1 Gerrit-Project: vdsm Gerrit-Branch: master Gerrit-Owner: Dan Kenigsberg danken@redhat.com Gerrit-Reviewer: oVirt Jenkins CI Server
Antoni Segura Puimedon has posted comments on this change.
Change subject: [WIP] a more delicate rollback ......................................................................
Patch Set 1: I would prefer that you didn't submit this
(1 inline comment)
I really like this smarter approach. I only think we should be more careful/more informative with possible errors in the ifdown/ifup part of the process.
.................................................... File vdsm/configNetwork.py Line 352: ifdown(dev) Line 353: Line 354: def _startAtomicDevices(self): Line 355: for dev in self._sortModifiedIfcfgs(): Line 356: ifup(dev) We should probably keep the return code and if it is not equal to zero log a rollback error. Line 357: Line 358: @classmethod Line 359: def _persistentBackup(cls, filename): Line 360: """ Persistently backup ifcfg-* config files """
-- To view, visit http://gerrit.ovirt.org/9506 To unsubscribe, visit http://gerrit.ovirt.org/settings
Gerrit-MessageType: comment Gerrit-Change-Id: If413164a34a1e6f0d7e4ef75ba931e630a26e666 Gerrit-PatchSet: 1 Gerrit-Project: vdsm Gerrit-Branch: master Gerrit-Owner: Dan Kenigsberg danken@redhat.com Gerrit-Reviewer: Antoni Segura Puimedon asegurap@redhat.com Gerrit-Reviewer: oVirt Jenkins CI Server
Meni Yakove has posted comments on this change.
Change subject: [WIP] a more delicate rollback ......................................................................
Patch Set 1: Verified
while network rollback the connectivity to running VM never lost and the host stay as SPM.
-- To view, visit http://gerrit.ovirt.org/9506 To unsubscribe, visit http://gerrit.ovirt.org/settings
Gerrit-MessageType: comment Gerrit-Change-Id: If413164a34a1e6f0d7e4ef75ba931e630a26e666 Gerrit-PatchSet: 1 Gerrit-Project: vdsm Gerrit-Branch: master Gerrit-Owner: Dan Kenigsberg danken@redhat.com Gerrit-Reviewer: Antoni Segura Puimedon asegurap@redhat.com Gerrit-Reviewer: Igor Lvovsky ilvovsky@redhat.com Gerrit-Reviewer: Livnat Peer lpeer@redhat.com Gerrit-Reviewer: Meni Yakove myakove@redhat.com Gerrit-Reviewer: oVirt Jenkins CI Server
Dan Kenigsberg has posted comments on this change.
Change subject: [WIP] a more delicate rollback ......................................................................
Patch Set 1: (1 inline comment)
.................................................... File vdsm/configNetwork.py Line 352: ifdown(dev) Line 353: Line 354: def _startAtomicDevices(self): Line 355: for dev in self._sortModifiedIfcfgs(): Line 356: ifup(dev) may I wait for the acceptation of http://gerrit.ovirt.org/#/c/8415/10/vdsm/neterrors.py ? Line 357: Line 358: @classmethod Line 359: def _persistentBackup(cls, filename): Line 360: """ Persistently backup ifcfg-* config files """
-- To view, visit http://gerrit.ovirt.org/9506 To unsubscribe, visit http://gerrit.ovirt.org/settings
Gerrit-MessageType: comment Gerrit-Change-Id: If413164a34a1e6f0d7e4ef75ba931e630a26e666 Gerrit-PatchSet: 1 Gerrit-Project: vdsm Gerrit-Branch: master Gerrit-Owner: Dan Kenigsberg danken@redhat.com Gerrit-Reviewer: Antoni Segura Puimedon asegurap@redhat.com Gerrit-Reviewer: Dan Kenigsberg danken@redhat.com Gerrit-Reviewer: Igor Lvovsky ilvovsky@redhat.com Gerrit-Reviewer: Livnat Peer lpeer@redhat.com Gerrit-Reviewer: Meni Yakove myakove@redhat.com Gerrit-Reviewer: oVirt Jenkins CI Server
oVirt Jenkins CI Server has posted comments on this change.
Change subject: a more delicate rollback ......................................................................
Patch Set 2:
Build Started http://jenkins.ovirt.org/job/vdsm_pep8_gerrit/269/ (1/2)
-- To view, visit http://gerrit.ovirt.org/9506 To unsubscribe, visit http://gerrit.ovirt.org/settings
Gerrit-MessageType: comment Gerrit-Change-Id: If413164a34a1e6f0d7e4ef75ba931e630a26e666 Gerrit-PatchSet: 2 Gerrit-Project: vdsm Gerrit-Branch: master Gerrit-Owner: Dan Kenigsberg danken@redhat.com Gerrit-Reviewer: Antoni Segura Puimedon asegurap@redhat.com Gerrit-Reviewer: Dan Kenigsberg danken@redhat.com Gerrit-Reviewer: Igor Lvovsky ilvovsky@redhat.com Gerrit-Reviewer: Livnat Peer lpeer@redhat.com Gerrit-Reviewer: Meni Yakove myakove@redhat.com Gerrit-Reviewer: oVirt Jenkins CI Server
oVirt Jenkins CI Server has posted comments on this change.
Change subject: a more delicate rollback ......................................................................
Patch Set 2:
Build Started http://jenkins.ovirt.org/job/vdsm_unit_tests_manual_gerrit/303/ (2/2)
-- To view, visit http://gerrit.ovirt.org/9506 To unsubscribe, visit http://gerrit.ovirt.org/settings
Gerrit-MessageType: comment Gerrit-Change-Id: If413164a34a1e6f0d7e4ef75ba931e630a26e666 Gerrit-PatchSet: 2 Gerrit-Project: vdsm Gerrit-Branch: master Gerrit-Owner: Dan Kenigsberg danken@redhat.com Gerrit-Reviewer: Antoni Segura Puimedon asegurap@redhat.com Gerrit-Reviewer: Dan Kenigsberg danken@redhat.com Gerrit-Reviewer: Igor Lvovsky ilvovsky@redhat.com Gerrit-Reviewer: Livnat Peer lpeer@redhat.com Gerrit-Reviewer: Meni Yakove myakove@redhat.com Gerrit-Reviewer: oVirt Jenkins CI Server
oVirt Jenkins CI Server has posted comments on this change.
Change subject: a more delicate rollback ......................................................................
Patch Set 2:
Build Successful
http://jenkins.ovirt.org/job/vdsm_pep8_gerrit/269/ : SUCCESS
http://jenkins.ovirt.org/job/vdsm_unit_tests_manual_gerrit/303/ : SUCCESS
-- To view, visit http://gerrit.ovirt.org/9506 To unsubscribe, visit http://gerrit.ovirt.org/settings
Gerrit-MessageType: comment Gerrit-Change-Id: If413164a34a1e6f0d7e4ef75ba931e630a26e666 Gerrit-PatchSet: 2 Gerrit-Project: vdsm Gerrit-Branch: master Gerrit-Owner: Dan Kenigsberg danken@redhat.com Gerrit-Reviewer: Antoni Segura Puimedon asegurap@redhat.com Gerrit-Reviewer: Dan Kenigsberg danken@redhat.com Gerrit-Reviewer: Igor Lvovsky ilvovsky@redhat.com Gerrit-Reviewer: Livnat Peer lpeer@redhat.com Gerrit-Reviewer: Meni Yakove myakove@redhat.com Gerrit-Reviewer: oVirt Jenkins CI Server
Dan Kenigsberg has posted comments on this change.
Change subject: a more delicate rollback ......................................................................
Patch Set 2: Verified
This is only a rebase to remove the [WIP] from the subject line. I did not add any log message on ifup failure - I think that the usual logs of execCmd are more than enough in this case.
I'll have to wrap ifup() with try-except after http://gerrit.ovirt.org/#/c/8415/ is taken in.
-- To view, visit http://gerrit.ovirt.org/9506 To unsubscribe, visit http://gerrit.ovirt.org/settings
Gerrit-MessageType: comment Gerrit-Change-Id: If413164a34a1e6f0d7e4ef75ba931e630a26e666 Gerrit-PatchSet: 2 Gerrit-Project: vdsm Gerrit-Branch: master Gerrit-Owner: Dan Kenigsberg danken@redhat.com Gerrit-Reviewer: Antoni Segura Puimedon asegurap@redhat.com Gerrit-Reviewer: Dan Kenigsberg danken@redhat.com Gerrit-Reviewer: Igor Lvovsky ilvovsky@redhat.com Gerrit-Reviewer: Livnat Peer lpeer@redhat.com Gerrit-Reviewer: Meni Yakove myakove@redhat.com Gerrit-Reviewer: oVirt Jenkins CI Server
Antoni Segura Puimedon has posted comments on this change.
Change subject: a more delicate rollback ......................................................................
Patch Set 2: Looks good to me, but someone else must approve
-- To view, visit http://gerrit.ovirt.org/9506 To unsubscribe, visit http://gerrit.ovirt.org/settings
Gerrit-MessageType: comment Gerrit-Change-Id: If413164a34a1e6f0d7e4ef75ba931e630a26e666 Gerrit-PatchSet: 2 Gerrit-Project: vdsm Gerrit-Branch: master Gerrit-Owner: Dan Kenigsberg danken@redhat.com Gerrit-Reviewer: Antoni Segura Puimedon asegurap@redhat.com Gerrit-Reviewer: Dan Kenigsberg danken@redhat.com Gerrit-Reviewer: Igor Lvovsky ilvovsky@redhat.com Gerrit-Reviewer: Livnat Peer lpeer@redhat.com Gerrit-Reviewer: Meni Yakove myakove@redhat.com Gerrit-Reviewer: oVirt Jenkins CI Server
Igor Lvovsky has posted comments on this change.
Change subject: a more delicate rollback ......................................................................
Patch Set 2: Looks good to me, approved
-- To view, visit http://gerrit.ovirt.org/9506 To unsubscribe, visit http://gerrit.ovirt.org/settings
Gerrit-MessageType: comment Gerrit-Change-Id: If413164a34a1e6f0d7e4ef75ba931e630a26e666 Gerrit-PatchSet: 2 Gerrit-Project: vdsm Gerrit-Branch: master Gerrit-Owner: Dan Kenigsberg danken@redhat.com Gerrit-Reviewer: Antoni Segura Puimedon asegurap@redhat.com Gerrit-Reviewer: Dan Kenigsberg danken@redhat.com Gerrit-Reviewer: Igor Lvovsky ilvovsky@redhat.com Gerrit-Reviewer: Livnat Peer lpeer@redhat.com Gerrit-Reviewer: Meni Yakove myakove@redhat.com Gerrit-Reviewer: oVirt Jenkins CI Server
Meni Yakove has posted comments on this change.
Change subject: a more delicate rollback ......................................................................
Patch Set 2: Verified
Test roolback for vm network, bridgeless and vlan network.
-- To view, visit http://gerrit.ovirt.org/9506 To unsubscribe, visit http://gerrit.ovirt.org/settings
Gerrit-MessageType: comment Gerrit-Change-Id: If413164a34a1e6f0d7e4ef75ba931e630a26e666 Gerrit-PatchSet: 2 Gerrit-Project: vdsm Gerrit-Branch: master Gerrit-Owner: Dan Kenigsberg danken@redhat.com Gerrit-Reviewer: Antoni Segura Puimedon asegurap@redhat.com Gerrit-Reviewer: Igor Lvovsky ilvovsky@redhat.com Gerrit-Reviewer: Livnat Peer lpeer@redhat.com Gerrit-Reviewer: Meni Yakove myakove@redhat.com Gerrit-Reviewer: oVirt Jenkins CI Server
Dan Kenigsberg has posted comments on this change.
Change subject: a more delicate rollback ......................................................................
Patch Set 2:
Thanks, dear reviewers!
-- To view, visit http://gerrit.ovirt.org/9506 To unsubscribe, visit http://gerrit.ovirt.org/settings
Gerrit-MessageType: comment Gerrit-Change-Id: If413164a34a1e6f0d7e4ef75ba931e630a26e666 Gerrit-PatchSet: 2 Gerrit-Project: vdsm Gerrit-Branch: master Gerrit-Owner: Dan Kenigsberg danken@redhat.com Gerrit-Reviewer: Antoni Segura Puimedon asegurap@redhat.com Gerrit-Reviewer: Dan Kenigsberg danken@redhat.com Gerrit-Reviewer: Igor Lvovsky ilvovsky@redhat.com Gerrit-Reviewer: Livnat Peer lpeer@redhat.com Gerrit-Reviewer: Meni Yakove myakove@redhat.com Gerrit-Reviewer: oVirt Jenkins CI Server
Dan Kenigsberg has submitted this change and it was merged.
Change subject: a more delicate rollback ......................................................................
a more delicate rollback
If things go wrong during setupNetwork, we try to revert the networking state to what it used to be. Until this patch, we stopped the network service, reverted all ifcfg-* files, and restarted networking.
This procedure disruppted all connection, even those unrelated to the ones being set up.
With this change, we are taking down only affected devices, and revert them to their pre-setupNetwork state.
Change-Id: If413164a34a1e6f0d7e4ef75ba931e630a26e666 Signed-off-by: Dan Kenigsberg danken@redhat.com --- M vdsm/configNetwork.py 1 file changed, 37 insertions(+), 2 deletions(-)
Approvals: Meni Yakove: Verified Antoni Segura Puimedon: Looks good to me, but someone else must approve Dan Kenigsberg: Igor Lvovsky: Looks good to me, approved
-- To view, visit http://gerrit.ovirt.org/9506 To unsubscribe, visit http://gerrit.ovirt.org/settings
Gerrit-MessageType: merged Gerrit-Change-Id: If413164a34a1e6f0d7e4ef75ba931e630a26e666 Gerrit-PatchSet: 2 Gerrit-Project: vdsm Gerrit-Branch: master Gerrit-Owner: Dan Kenigsberg danken@redhat.com Gerrit-Reviewer: Antoni Segura Puimedon asegurap@redhat.com Gerrit-Reviewer: Dan Kenigsberg danken@redhat.com Gerrit-Reviewer: Igor Lvovsky ilvovsky@redhat.com Gerrit-Reviewer: Livnat Peer lpeer@redhat.com Gerrit-Reviewer: Meni Yakove myakove@redhat.com Gerrit-Reviewer: oVirt Jenkins CI Server
vdsm-patches@lists.fedorahosted.org