commit 54afe75307dfbe6256f4307c080b82e354737317 Author: juga0 juga@riseup.net Date: Mon Dec 3 20:58:23 2018 +0000
v3bwfile, resultdump: support results without new bw
When parsing results support old ones without new bandwidth attributes, as descriptor bandwidth burst, consensus_bandwidth and consensus bandwidth is unmeasured. --- sbws/core/generate.py | 2 +- sbws/lib/resultdump.py | 6 +++--- sbws/lib/v3bwfile.py | 11 +++++++++-- 3 files changed, 13 insertions(+), 6 deletions(-)
diff --git a/sbws/core/generate.py b/sbws/core/generate.py index f9b46cb..283a71f 100644 --- a/sbws/core/generate.py +++ b/sbws/core/generate.py @@ -54,7 +54,7 @@ def gen_parser(sub): p.add_argument('-m', '--torflow-bw-margin', default=TORFLOW_BW_MARGIN, type=float, help="Cap maximum bw when scaling as Torflow. ") - p.add_argument('-r', '--round-digs', '--torflow-round-digs', + p.add_argument('-r', '--torflow-round-digs', default=PROP276_ROUND_DIG, type=int, help="Number of most significant digits to round bw.") p.add_argument('-p', '--secs-recent', default=None, type=int, diff --git a/sbws/lib/resultdump.py b/sbws/lib/resultdump.py index 0f7e1af..3756f6f 100644 --- a/sbws/lib/resultdump.py +++ b/sbws/lib/resultdump.py @@ -501,9 +501,9 @@ class ResultSuccess(Result): Result.Relay( d['fingerprint'], d['nickname'], d['address'], d['master_key_ed25519'], d['relay_average_bandwidth'], - d['relay_burst_bandwidth'], d['relay_observed_bandwidth'], - d['consensus_bandwidth'], - d['consensus_bandwidth_is_unmeasured']), + d.get('relay_burst_bandwidth'), d['relay_observed_bandwidth'], + d.get('consensus_bandwidth'), + d.get('consensus_bandwidth_is_unmeasured')), d['circ'], d['dest_url'], d['scanner'], t=d['time'])
diff --git a/sbws/lib/v3bwfile.py b/sbws/lib/v3bwfile.py index 55f63ec..4590812 100644 --- a/sbws/lib/v3bwfile.py +++ b/sbws/lib/v3bwfile.py @@ -848,8 +848,15 @@ class V3BWFile(object): # descriptors' bandwidth-observed, because that penalises new # relays. # See https://trac.torproject.org/projects/tor/ticket/8494 - desc_bw = min(desc_bw_obs, l.desc_bw_bur, l.desc_bw_avg) - if l.consensus_bandwidth_is_unmeasured: + if l.desc_bw_bur is not None: + # Because in previous versions results were not storing + # desc_bw_bur + desc_bw = min(desc_bw_obs, l.desc_bw_bur, l.desc_bw_avg) + else: + desc_bw = min(desc_bw_obs, l.desc_bw_avg) + # In previous versions results were not storing consensus_bandwidth + if l.consensus_bandwidth_is_unmeasured \ + or l.consensus_bandwidth is None: min_bandwidth = desc_bw # If the relay is measured, use the minimum between the descriptors # bandwidth and the consensus bandwidth, so that
tor-commits@lists.torproject.org