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

Reply via email to