[tor-commits] [ooni-probe/master] Move gunzip and rename to utils
art at torproject.org
art at torproject.org
Mon Sep 19 12:14:24 UTC 2016
commit 72c123125ac19d0a62f7eb5d3864efd01525d48a
Author: Arturo Filastò <arturo at filasto.net>
Date: Wed Jul 27 00:44:04 2016 +0200
Move gunzip and rename to utils
---
ooni/agent/scheduler.py | 4 ++--
ooni/resources.py | 10 +---------
ooni/ui/cli.py | 1 -
ooni/utils/__init__.py | 33 ++++++++++++++++++++-------------
4 files changed, 23 insertions(+), 25 deletions(-)
diff --git a/ooni/agent/scheduler.py b/ooni/agent/scheduler.py
index ace3bc5..3a9da20 100644
--- a/ooni/agent/scheduler.py
+++ b/ooni/agent/scheduler.py
@@ -137,11 +137,11 @@ class SchedulerService(service.MultiService):
self._scheduled_tasks.append(task)
def _task_failed(self, failure, task):
- log.msg("Failed to run {0}".format(task.identifier))
+ log.debug("Failed to run {0}".format(task.identifier))
log.exception(failure)
def _task_success(self, result, task):
- log.msg("Ran {0}".format(task.identifier))
+ log.debug("Ran {0}".format(task.identifier))
def _should_run(self):
"""
diff --git a/ooni/resources.py b/ooni/resources.py
index d67908c..8a0a57f 100644
--- a/ooni/resources.py
+++ b/ooni/resources.py
@@ -1,14 +1,12 @@
-import os
import gzip
import json
import shutil
-from twisted.python.runtime import platform
from twisted.python.filepath import FilePath
from twisted.internet import defer
from twisted.web.client import downloadPage, getPage
-from ooni.utils import log
+from ooni.utils import log, gunzip, rename
from ooni.settings import config
class UpdateFailure(Exception):
@@ -85,12 +83,6 @@ def gunzip(file_path):
in_file.close()
rename(tmp_location.path, file_path)
-def rename(src, dst):
- # Best effort atomic renaming
- if platform.isWindows() and os.path.exists(dst):
- os.unlink(dst)
- os.rename(src, dst)
-
@defer.inlineCallbacks
def check_for_update(country_code=None):
"""
diff --git a/ooni/ui/cli.py b/ooni/ui/cli.py
index e8d747c..d8a4a8f 100644
--- a/ooni/ui/cli.py
+++ b/ooni/ui/cli.py
@@ -2,7 +2,6 @@ import sys
import os
import json
-import yaml
import random
import textwrap
import urlparse
diff --git a/ooni/utils/__init__.py b/ooni/utils/__init__.py
index d202d97..f8ee953 100644
--- a/ooni/utils/__init__.py
+++ b/ooni/utils/__init__.py
@@ -1,12 +1,15 @@
import shutil
import string
import random
+import gzip
import os
-from datetime import datetime
-import gzip
+from datetime import datetime
from zipfile import ZipFile
+from twisted.python.filepath import FilePath
+from twisted.python.runtime import platform
+
from ooni import errors
@@ -128,6 +131,11 @@ def sanitize_options(options):
sanitized_options.append(option)
return sanitized_options
+def rename(src, dst):
+ # Best effort atomic renaming
+ if platform.isWindows() and os.path.exists(dst):
+ os.unlink(dst)
+ os.rename(src, dst)
def unzip(filename, dst):
assert filename.endswith('.zip')
@@ -141,17 +149,16 @@ def unzip(filename, dst):
return dst_path
-def gunzip(filename, dst):
- assert filename.endswith(".gz")
- dst_path = os.path.join(
- dst,
- os.path.basename(filename).replace(".gz", "")
- )
- with open(dst_path, "w+") as fw:
- gzip_file = gzip.open(filename)
- shutil.copyfileobj(gzip_file, fw)
- gzip_file.close()
-
+def gunzip(file_path):
+ """
+ gunzip a file in place.
+ """
+ tmp_location = FilePath(file_path).temporarySibling()
+ in_file = gzip.open(file_path)
+ with tmp_location.open('w') as out_file:
+ shutil.copyfileobj(in_file, out_file)
+ in_file.close()
+ rename(tmp_location.path, file_path)
def get_ooni_root():
script = os.path.join(__file__, '..')
More information about the tor-commits
mailing list