Prevent the janitor from trying to clean up nonexistent LVs.
[invirt/packages/invirt-remote.git] / host / usr / sbin / invirt-janitor
index e631972..4f79c5b 100755 (executable)
@@ -40,6 +40,20 @@ def cleanup():
         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)
 
             # In a perfect world, this should be erroring out with
@@ -47,6 +61,7 @@ def cleanup():
             subprocess.call(['/usr/bin/ionice',
                              '-c', '2',
                              '-n', '7',
+                             '/usr/bin/nice',
                              '/bin/dd',
                              'if=/dev/zero',
                              'of=%s' % lv_path,