diff options
Diffstat (limited to 'monitor/josef_monitor.py')
-rwxr-xr-x | monitor/josef_monitor.py | 44 |
1 files changed, 23 insertions, 21 deletions
diff --git a/monitor/josef_monitor.py b/monitor/josef_monitor.py index 0569a81..83e3663 100755 --- a/monitor/josef_monitor.py +++ b/monitor/josef_monitor.py @@ -30,7 +30,6 @@ if not os.path.exists(OUTPUT_DIR): if not os.path.exists(DB_PATH): os.makedirs(DB_PATH) -# DB = None parser = argparse.ArgumentParser(description="") @@ -51,7 +50,6 @@ class ctlog: def incremental_build(self): # Keeps state current during build, partial builds are possible. self.sth = get_sth(self.url) - # self.log("Building....") start_size = self.entries while self.entries < self.sth["tree_size"]: tmp_size = self.entries @@ -66,8 +64,6 @@ class ctlog: " new entries. Size: " + str(self.entries)) else: self.log("ERROR Failed to build tree from entries.") - # else: - # self.log("No new entries.") def fetch_and_increment_subtree(self, first, last, url, subtree =[[]]): @@ -237,8 +233,6 @@ def check_domain(raw_entry, log=None): except IndexError: return None - - def verify_subtree(sth, subtree, base_url): try: tmp = deepcopy(subtree) @@ -320,11 +314,7 @@ def get_all_roots(base_url): root_cert = base64.decodestring(accepted_cert) print get_cert_info(root_cert)["subject"] -def main(args): - global DB - # Create logs - logs = [] - +def setup_domain_monitoring(): monitored_domains = [] with open(DOMAINS_FILE) as fp: for line in fp: @@ -332,13 +322,23 @@ def main(args): for domain in tmp: md = monitored_domain(domain["url"]) md.load_entries(domain["entries"]) + monitored_domains.append(md) + for md in MONITORED_DOMAINS: tmp = monitored_domain(md) if not tmp in monitored_domains: + print "New domain (not in file) " + md tmp.set() monitored_domains.append(tmp) + return monitored_domains + +def main(args): + global DB + monitored_domains = setup_domain_monitoring() + # Create logs + logs = [] try: for item in ctlogs: logs.append(ctlog(item, ctlogs[item][0], ctlogs[item][1])) @@ -368,27 +368,29 @@ def main(args): for md in monitored_domains: md.update() - + # Normal exit oof the program except KeyboardInterrupt: print time.strftime('%H:%M:%S') + ' Received interrupt from user. Saving and exiting....' for log in logs: log.save() + # Save info about monitored domains 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()) + # Something went horribly wrong! + except Exception, err: + print Exception, err + for log in logs: + log.save() - # open(DOMAINS_FILE, 'w').write(json.dumps(domain_dict)) + # Save info about monitored domains + domain_dict = [] + for md in monitored_domains: + domain_dict.append(md.to_dict()) + open(DOMAINS_FILE, 'w').write(json.dumps(domain_dict)) |