lv_path = '/dev/xenvg/%s' % lv
try:
+ # If the LV name doesn't start with old_, we probably
+ # don't actually want to be deleting it.
+ #
+ # Put it in the try block because we still want to delete
+ # the state file.
+ if not lv.startswith('old_'):
+ continue
+
+ # If the LV doesn't exist, for whatever reason, don't
+ # proceed because the dd will simply fill the devfs
+ # by creating a regular file and filling it with zeros.
+ if not os.path.exists(lv_path):
+ continue
+
syslog.syslog(syslog.LOG_INFO, "Cleaning up LV '%s'" % lv_path)
- subprocess.check_call(['/usr/bin/ionice',
- '-c', '2',
- '-n', '7',
- '/bin/dd',
- 'if=/dev/zero',
- 'of=%s' % lv_path,
- 'bs=1M'])
+ # In a perfect world, this should be erroring out with
+ # ENOSPC, so we ignore errors
+ subprocess.call(['/usr/bin/ionice',
+ '-c', '2',
+ '-n', '7',
+ '/usr/bin/nice',
+ '/bin/dd',
+ 'if=/dev/zero',
+ 'of=%s' % lv_path,
+ 'bs=1M'])
# Ignore any errors here, because there's really just not
# anything we can do.