commit 91ba412c5dc206a2b4a3b98265e5838118d7022c Author: Tom <t...@ritter.vg> Date: Wed Oct 26 14:54:01 2016 -0500
Refactor the vote_data code so that it handles dirauths being added/removed --- data/consensus.cfg | 14 -------------- write_website.py | 31 +++++++++++++++++++++---------- 2 files changed, 21 insertions(+), 24 deletions(-) diff --git a/data/consensus.cfg b/data/consensus.cfg index 8452beb..c4a2142 100644 --- a/data/consensus.cfg +++ b/data/consensus.cfg @@ -15,20 +15,6 @@ bandwidth_authorities maatuska historical_bridge_authorities tonga historical_bridge_authorities bifrost -# for creating tables in historical.db - -historical_dirauths faravahar -historical_dirauths gabelmoo -historical_dirauths dizum -historical_dirauths moria1 -historical_dirauths urras -historical_dirauths maatuska -historical_dirauths longclaw -historical_dirauths tor26 -historical_dirauths dannenberg -historical_dirauths turtles - - # recognized tor consensus parameters known_params bwweightscale diff --git a/write_website.py b/write_website.py index cd51b4f..7216d03 100755 --- a/write_website.py +++ b/write_website.py @@ -33,7 +33,6 @@ CONFIG = stem.util.conf.config_dict('consensus', { 'ignored_authorities': [], 'bandwidth_authorities': [], 'known_params': [], - 'historical_dirauths' : [], 'historical_bridge_authorities' : [] }) @@ -122,25 +121,37 @@ def main(): runningRelays += 1 data[dirauth_nickname] = {'known' : len(vote.routers.values()), 'running' : runningRelays, 'bwlines' : bandwidthWeights} + vote_data_columns = set() + vote_data_schema = dbc.execute("PRAGMA table_info(vote_data)") + for c in vote_data_schema: + vote_data_columns.add(c[1].replace("_known", "").replace("_running", "").replace("_bwauth", "").lower()) + insertValues = [unix_time(consensuses.values()[0].valid_after)] createColumns = "" + insertColumns = "date" insertQuestions = "" - for dirauth_nickname in CONFIG['historical_dirauths']: + import pdb + pdb.set_trace() + for dirauth_nickname in directory_authorities(): + dirauth_nickname = dirauth_nickname.lower() + if vote_data_columns and dirauth_nickname not in vote_data_columns: + dbc.execute("ALTER TABLE vote_data ADD COLUMN " + dirauth_nickname + "_known integer") + dbc.execute("ALTER TABLE vote_data ADD COLUMN " + dirauth_nickname + "_running integer") + dbc.execute("ALTER TABLE vote_data ADD COLUMN " + dirauth_nickname + "_bwauth integer") + dbc.commit() createColumns += dirauth_nickname + "_known integer, " + dirauth_nickname + "_running integer, " + dirauth_nickname + "_bwauth integer, " - insertQuestions += ",?,?,?" if dirauth_nickname in votes: + insertColumns += ", " + dirauth_nickname + "_known" + ", " + dirauth_nickname + "_running" + ", " + dirauth_nickname + "_bwauth" + insertQuestions += ",?,?,?" insertValues.append(data[dirauth_nickname]['known']) insertValues.append(data[dirauth_nickname]['running']) insertValues.append(data[dirauth_nickname]['bwlines']) - else: - insertValues.append(None) - insertValues.append(None) - insertValues.append(None) - dbc.execute("CREATE TABLE IF NOT EXISTS vote_data(date integer, " + createColumns + " PRIMARY KEY(date ASC));") - dbc.commit() + if not vote_data_columns: + dbc.execute("CREATE TABLE IF NOT EXISTS vote_data(date integer, " + createColumns + " PRIMARY KEY(date ASC));") + dbc.commit() - dbc.execute("INSERT OR REPLACE INTO vote_data VALUES (?" + insertQuestions + ")", insertValues) + dbc.execute("INSERT OR REPLACE INTO vote_data(" + insertColumns + ") VALUES (?" + insertQuestions + ")", insertValues) dbc.commit() # Write out the updated csv file for the graphs _______________________________________________ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits