[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

[tor-commits] [oonib/master] Load the bouncer file just once. The previous code read it twice, which could create inconsistent datastructures if the file got edited at the wrong time.



commit 4c483d5bedba1d74795048d54b0f3eebd21d07d4
Author: Darius Bacon <darius@xxxxxx>
Date:   Fri Mar 28 11:24:44 2014 -0700

    Load the bouncer file just once. The previous code read it twice, which could create inconsistent datastructures if the file got edited at the wrong time.
---
 oonib/bouncer/handlers.py |   42 ++++++++++++++++++++----------------------
 1 file changed, 20 insertions(+), 22 deletions(-)

diff --git a/oonib/bouncer/handlers.py b/oonib/bouncer/handlers.py
index 0ff103e..2c7a1fe 100644
--- a/oonib/bouncer/handlers.py
+++ b/oonib/bouncer/handlers.py
@@ -7,33 +7,31 @@ from oonib.config import config
 
 class Bouncer(object):
     def __init__(self):
-        self.knownHelpers = {}
-        self.updateKnownHelpers()
-        self.updateKnownCollectors()
+        with open(config.main.bouncer_file) as f:
+            bouncerFile = yaml.safe_load(f)
+        self.updateKnownHelpers(bouncerFile)
+        self.updateKnownCollectors(bouncerFile)
 
-    def updateKnownCollectors(self):
+    def updateKnownCollectors(self, bouncerFile):
         """
-        Returns the list of all known collectors
+        Initialize the list of all known collectors
         """
         self.knownCollectors = []
-        with open(config.main.bouncer_file) as f:
-            bouncerFile = yaml.safe_load(f)
-            for collectorName, helpers in bouncerFile['collector'].items():
-                if collectorName not in self.knownCollectors:
-                    self.knownCollectors.append(collectorName)
+        for collectorName, helpers in bouncerFile['collector'].items():
+            if collectorName not in self.knownCollectors:
+                self.knownCollectors.append(collectorName)
         
-    def updateKnownHelpers(self):
-        with open(config.main.bouncer_file) as f:
-            bouncerFile = yaml.safe_load(f)
-            for collectorName, helpers in bouncerFile['collector'].items():
-                for helperName, helperAddress in helpers['test-helper'].items():
-                    if helperName not in self.knownHelpers.keys():
-                        self.knownHelpers[helperName] = []
-                  
-                    self.knownHelpers[helperName].append({
-                        'collector-name': collectorName,
-                        'helper-address': helperAddress
-                    })
+    def updateKnownHelpers(self, bouncerFile):
+        self.knownHelpers = {}
+        for collectorName, helpers in bouncerFile['collector'].items():
+            for helperName, helperAddress in helpers['test-helper'].items():
+                if helperName not in self.knownHelpers.keys():
+                    self.knownHelpers[helperName] = []
+
+                self.knownHelpers[helperName].append({
+                    'collector-name': collectorName,
+                    'helper-address': helperAddress
+                })
 
     def getHelperAddresses(self, helper_name):
         """



_______________________________________________
tor-commits mailing list
tor-commits@xxxxxxxxxxxxxxxxxxxx
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits