[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
[tor-commits] [sbws/master] Create symlink to latest v3bw file
commit 0db6329319ec9ea2a9486838257d5c1c3e210cc1
Author: juga0 <juga@xxxxxxxxxx>
Date: Thu Jun 14 15:54:24 2018 +0000
Create symlink to latest v3bw file
also lock the directory except when writing to the standard output,
needed for test_generate.py
---
sbws/lib/v3bwfile.py | 20 +++++++++++++++-----
1 file changed, 15 insertions(+), 5 deletions(-)
diff --git a/sbws/lib/v3bwfile.py b/sbws/lib/v3bwfile.py
index ba15d14..1294d99 100644
--- a/sbws/lib/v3bwfile.py
+++ b/sbws/lib/v3bwfile.py
@@ -3,12 +3,13 @@
(v3bw) used by bandwidth authorities."""
import logging
+import os
from statistics import median
from sbws import __version__
from sbws.globals import SPEC_VERSION, BW_LINE_SIZE
from sbws.lib.resultdump import ResultSuccess, _ResultType
-from sbws.util.filelock import FileLock
+from sbws.util.filelock import FileLock, DirectoryLock
from sbws.util.timestamp import now_isodt_str, unixts_to_isodt_str, now_fname
log = logging.getLogger(__name__)
@@ -401,7 +402,16 @@ class V3BwFile(object):
def write(self, output):
log.info('Writing v3bw file to %s', output)
- with open(output, 'wt') as fd:
- fd.write(str(self.header))
- for line in self.bw_lines:
- fd.write(str(line))
+ # to keep test_generate.py working
+ if output != '/dev/stdout':
+ with DirectoryLock(os.path.dirname(output)):
+ with open(output, 'wt') as fd:
+ fd.write(str(self.header))
+ for line in self.bw_lines:
+ fd.write(str(line))
+ os.symlink(output, 'latest.v3bw')
+ else:
+ with open(output, 'wt') as fd:
+ fd.write(str(self.header))
+ for line in self.bw_lines:
+ fd.write(str(line))
_______________________________________________
tor-commits mailing list
tor-commits@xxxxxxxxxxxxxxxxxxxx
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits