dsa-check-soas: remove debug output
[mirror/dsa-nagios.git] / dsa-nagios-checks / checks / dsa-check-backuppg
index 92ce6cb..78b3380 100755 (executable)
@@ -47,6 +47,7 @@ import copy
 import time
 import re
 import os
+import errno
 import sys
 import yaml
 import optparse
@@ -65,6 +66,7 @@ def load_conf(cf):
     return config
 
 
+notices_seq = []
 problems_seq = []
 problems_per_db = {}
 global_expires = []
@@ -75,6 +77,12 @@ global_expires = []
 #    global problems_per_db
 #    if not host in problems_per_db: problems_per_db[host] = {}
 #    problems_per_db[host][db] = True
+def note_info(key, value, pre=None):
+    global notices_seq
+    if pre is None:
+        notices_seq.append("%s: %s"%(key, value))
+    else:
+        notices_seq.append("[%s] %s: %s"%(pre, key, value))
 
 def note_warning(key, value, pre=None):
     global problems_seq
@@ -131,8 +139,23 @@ 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):
-        note_warning('NOT-A-DIR', dir)
+        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)
         continue
 
     if not dir in config['backups']:
@@ -205,8 +228,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)
@@ -302,6 +328,8 @@ for dir in os.listdir('.'):
 
 for p in problems_seq:
     print p
+for p in notices_seq:
+    print p
 
 if options.expire:
     for f in global_expires: