|
From: <fcr...@us...> - 2011-12-03 02:36:08
|
Revision: 777
http://safekeep.svn.sourceforge.net/safekeep/?rev=777&view=rev
Author: fcrawford
Date: 2011-12-03 02:36:01 +0000 (Sat, 03 Dec 2011)
Log Message:
-----------
Futher updates to cleanup code for failed backups
Modified Paths:
--------------
safekeep/trunk/safekeep
Modified: safekeep/trunk/safekeep
===================================================================
--- safekeep/trunk/safekeep 2011-12-02 12:51:50 UTC (rev 776)
+++ safekeep/trunk/safekeep 2011-12-03 02:36:01 UTC (rev 777)
@@ -649,13 +649,17 @@
lvmdev = device;
else:
lvmdev = '/dev/mapper/%s-%s' % (group, volume.replace('-', '--'))
- for i in range(1,10):
- ret = spawn(['sync'])
- ret = spawn(['dmsetup', 'remove', lvmdev])
- ret = spawn(['dmsetup', 'remove', lvmdev + '-cow'])
- ret = spawn(['lvremove', '--force', device])
- if not ret:
- break
+ if os.path.exists(lvmdev):
+ for i in range(1,10):
+ ret = spawn(['sync'])
+ ret = spawn(['dmsetup', 'remove', lvmdev])
+ ret = spawn(['dmsetup', 'remove', lvmdev + '-cow'])
+ ret = spawn(['lvremove', '--force', device])
+ if not ret:
+ break
+ else:
+ warn('lvremove called for non-existent device: %s' % lvmdev)
+ ret = 0 # Equivalent to lvremove succeeding
return ret
def gather_snap_information(device, bdir):
@@ -798,8 +802,7 @@
# Go through and see if any come from existing safekeep processes
pattern = re.compile(r"_snap_safekeep-(\d+)-")
- lvm_snap_list = lvm_snap_information()
- for (volume, group) in lvm_snap_list:
+ for (volume, group) in lvm_snap_information():
matches = pattern.search(volume)
if matches is not None:
pid = matches.group(1)
@@ -847,7 +850,7 @@
# Now cleanup any snapshots still hanging around
debug("Cleaning up remaining snapshots")
- for (volume, group) in lvm_snap_list:
+ for (volume, group) in lvm_snap_information():
device = os.path.join('/dev', group, volume)
info("Removing snapshot %s" % device)
ret = do_lvremove(device)
@@ -1078,7 +1081,7 @@
info('Server backup starting for client %s' % id)
output_done = True
- cleaned_up = False
+ cleaned_up = True
try:
if cfg['host']:
if not os.path.isfile(cfg['key_ctrl']):
@@ -1121,6 +1124,7 @@
cin.flush()
do_server_getanswer(cout)
if cleanup:
+ cleaned_up = False
cin.write('SCRUB\n')
cin.flush()
do_server_getanswer(cout)
@@ -1145,6 +1149,7 @@
else:
backup_marker = None
+ cleaned_up = False
do_server_rdiff(cfg, bdir, nice, ionice, force)
cleaned_up = True
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|