summaryrefslogtreecommitdiff
path: root/monitor/josef_mover.py
diff options
context:
space:
mode:
authorjosef <josef.gson@gmail.com>2015-10-19 13:51:45 +0200
committerjosef <josef.gson@gmail.com>2015-10-19 13:51:45 +0200
commit833f64c2621b8cef3ec350d530541498d7173dbc (patch)
tree32812e96bd575540f2f0542967e8b0387df17cce /monitor/josef_mover.py
parente432e62cc2ae7c7cbe7639eb476939ddc27afb85 (diff)
adding code for analyzing overlap
Diffstat (limited to 'monitor/josef_mover.py')
-rwxr-xr-xmonitor/josef_mover.py70
1 files changed, 63 insertions, 7 deletions
diff --git a/monitor/josef_mover.py b/monitor/josef_mover.py
index 08ec05d..ac79448 100755
--- a/monitor/josef_mover.py
+++ b/monitor/josef_mover.py
@@ -50,10 +50,10 @@ def print_reply(rep, entry):
def is_new_timestamp(ts):
MAX_TIMEDIFF = 300 # 5 min, allows for some clock skew
ts_time = datetime.datetime.fromtimestamp(ts / 1000, UTC()).strftime('%Y-%m-%d %H:%M:%S')
- start_time = datetime.datetime.utcnow().strftime('2013-10-19 00:00:00')
- delta_time = datetime.datetime.strptime(start_time, '%Y-%m-%d %H:%M:%S') - datetime.datetime.strptime(ts_time, '%Y-%m-%d %H:%M:%S')
+ start_time = datetime.datetime.utcnow().strftime('2015-10-19 00:00:00')
+ # delta_time = datetime.datetime.strptime(start_time, '%Y-%m-%d %H:%M:%S') - datetime.datetime.strptime(ts_time, '%Y-%m-%d %H:%M:%S')
# print delta_time.seconds
- if delta_time.seconds > MAX_TIMEDIFF:
+ if ts_time < start_time:
return False
else:
return True
@@ -123,17 +123,73 @@ def move_entry(first, last, source, dest):
print "FAILED!\n"
print s_log["name"] + "[" + str(first + i) + "] found in " + str(len(inclusions)) + " logs: ", inclusions
+def check_inclusion_by_submission(first, last, source, dest):
+ # print entries
+ for s_log in source:
+ try:
+ entries = get_entries(s_log["url"], first, last)["entries"]
+ except:
+ log("Failed to get entries from " + s_log["name"])
+
+ # print "\n\nSource: " + s_log["name"] + "\n"
+ for i in range(len(entries)):
+ # for item in entries:
+ item = entries[i]
+ inclusions = []
+ for d_log in dests:
+ # print "Log: " + d_log["name"]
+ try:
+ entry = extract_original_entry(item)
+ if entry[2]:
+ precert = True
+ else:
+ precert = False
+ submission = []
+
+ for e in entry[0]:
+ submission.append(base64.b64encode(e))
+
+ if entry[2]:
+ res = add_prechain(d_log["url"], {"chain" : submission})
+ else:
+ res = add_chain(d_log["url"], {"chain" : submission})
+ # print_reply(res, entry)
+
+ if not is_new_timestamp(res["timestamp"]):
+ inclusions.append(d_log["name"])
+
+ # time.sleep(5)
+ except KeyboardInterrupt:
+ sys.exit()
+ except:
+ # print "FAILED!\n"
+ pass
+ s = s_log["name"] + "[" + str(first + i) + "] found in " + str(len(inclusions)) + " logs: " + str(inclusions)
+ print s
+ logfile = OUTPUT_DIR + s_log["name"] + "_overlap.log"
+ log(logfile, s)
+
+def log(fn, string):
+ logfile = fn
+ s = time_str() + " " + string
+ with open(logfile, 'a') as f:
+ f.write(s + "\n")
+ f.close()
if __name__ == "__main__":
- source = [CTLOGS[0]]
+ source = [CTLOGS[9]]
dests = CTLOGS
# source = ctlogs
# dests = ctlogs
+ for tmp_log in source:
+ sth = get_sth(tmp_log["url"])
+
- first = 100
- last = 102
+ first = 0
+ last = int(sth["tree_size"]) - 1
+ # print last
- move_entry(first, last, source,dests)
+ check_inclusion_by_submission(first, last, [tmp_log], dests)
# check_inclusion_all(first,last,source, dests)