summaryrefslogtreecommitdiff
path: root/monitor/josef_monitor.py
diff options
context:
space:
mode:
Diffstat (limited to 'monitor/josef_monitor.py')
-rwxr-xr-xmonitor/josef_monitor.py35
1 files changed, 31 insertions, 4 deletions
diff --git a/monitor/josef_monitor.py b/monitor/josef_monitor.py
index d11d38f..0569a81 100755
--- a/monitor/josef_monitor.py
+++ b/monitor/josef_monitor.py
@@ -13,12 +13,13 @@ import argparse
import errno
from copy import deepcopy
from josef_lib import *
+from josef_reader import monitored_domain
from josef_leveldb import db_add_certs, db_open
import os.path
# Import from config file
if os.path.isfile("monitor_conf.py"):
- from monitor_conf import ctlogs, OUTPUT_DIR, INTERVAL, DEFAULT_CERT_FILE, DB_PATH
+ from monitor_conf import ctlogs, OUTPUT_DIR, INTERVAL, DEFAULT_CERT_FILE, DB_PATH, MONITORED_DOMAINS, DOMAINS_FILE
else:
print "Config file not found!"
sys.exit()
@@ -115,7 +116,6 @@ class ctlog:
raise e
def log(self, string):
- # TODO change to UTC?
s = time.strftime('%Y-%m-%d, %H:%M:%S') + " " + string
with open(self.logfile, 'a') as f:
f.write(s + "\n")
@@ -324,8 +324,21 @@ def main(args):
global DB
# Create logs
logs = []
- # if DB_PATH:
- # DB = db_open(DB_PATH)
+
+ monitored_domains = []
+ with open(DOMAINS_FILE) as fp:
+ for line in fp:
+ tmp = json.loads(line)
+ for domain in tmp:
+ md = monitored_domain(domain["url"])
+ md.load_entries(domain["entries"])
+
+ for md in MONITORED_DOMAINS:
+ tmp = monitored_domain(md)
+ if not tmp in monitored_domains:
+ tmp.set()
+ monitored_domains.append(tmp)
+
try:
for item in ctlogs:
logs.append(ctlog(item, ctlogs[item][0], ctlogs[item][1]))
@@ -352,17 +365,31 @@ def main(args):
log.verify_consistency(old_sth)
log.incremental_build()
+ for md in monitored_domains:
+ md.update()
+
except KeyboardInterrupt:
print time.strftime('%H:%M:%S') + ' Received interrupt from user. Saving and exiting....'
for log in logs:
log.save()
+ domain_dict = []
+ for md in monitored_domains:
+ domain_dict.append(md.to_dict())
+ open(DOMAINS_FILE, 'w').write(json.dumps(domain_dict))
+
# except Exception, err:
# print Exception, err
# for log in logs:
# log.save()
+ # domain_dict = []
+ # for md in monitored_domains:
+ # domain_dict.append(md.to_dict())
+
+ # open(DOMAINS_FILE, 'w').write(json.dumps(domain_dict))
+
if __name__ == '__main__':