dsa-check-backuppg: Ignore removed tmp files instead of crashing
[mirror/dsa-nagios.git] / dsa-nagios-checks / checks / dsa-check-backuppg
index ccf9e3d..886336f 100755 (executable)
@@ -138,8 +138,20 @@ config = load_conf(options.conffile)
 
 os.chdir(config['rootdir'])
 for dir in os.listdir('.'):
+    if dir.startswith('.') or dir.endswith('.old'):
+        note_info('IGNORED', dir)
+        continue
+
     if not os.path.isdir(dir):
-        if min(os.path.getmtime(dir), os.path.getctime(dir)) + 3600*4 > time.time():
+        try:
+            mtime = os.path.getmtime(dir)
+            ctime = os.path.getctime(dir)
+        except OSError as e:
+            if e.errno == errno.ENOENT:
+                continue
+            else:
+                raise e
+        if min(mtime, ctime) + 3600*4 > time.time():
             note_info('IGNORED', dir)
         else:
             note_warning('NOT-A-DIR', dir)
@@ -215,8 +227,11 @@ for dir in os.listdir('.'):
                 basefn = '%s.BASE.%s-%s.tar.gz'%(db, info['label'], info['start wal location'].split(' ',2)[0].replace('/', '_'))
                 baseffn = os.path.join(dir, basefn)
                 if not basefn in files:
-                    note_warning_db(dir, db, 'MISSING-BASE', basefn)
-                    continue
+                    basefn = '%s.BASE.%s.tar.gz'%(db, info['label'])
+                    baseffn = os.path.join(dir, basefn)
+                    if not basefn in files:
+                        note_warning_db(dir, db, 'MISSING-BASE', basefn)
+                        continue
                 files.remove(basefn)
                 if backup_state[db]['can_expire_next']:
                     backup_state[db]['expires'].append(baseffn)