diff options
author | Martin Abente <martin.abente.lahaye@gmail.com> | 2011-01-19 03:04:14 (GMT) |
---|---|---|
committer | Martin Abente <martin.abente.lahaye@gmail.com> | 2011-01-19 03:04:14 (GMT) |
commit | 5efb4bf4998d3eb5eb2f4cd31c17e57efc79fce7 (patch) | |
tree | 1c1cedb3d3fdae84a4a42765325c7c02066fdc1d | |
parent | 5f366b9e3f4404c285a7afa26e7d6c8ac0bc7ea2 (diff) |
Extract all and create dest dir
-rw-r--r-- | fbserver.py | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/fbserver.py b/fbserver.py index 3a9ce60..1b0fd29 100644 --- a/fbserver.py +++ b/fbserver.py @@ -61,8 +61,8 @@ class RequestHandler(SimpleHTTPRequestHandler): try: tar = tarfile.open(fileobj=StringIO(tar_content[0]), mode='r:gz') - report = tar.extractfile('report').read() - self._save_report(report) + unique_path = self._unique_path() + tar.extractall(path=unique_path) self._reply(200, 'Report was accepted') except Exception: logging.exception('Cannot process request') @@ -79,10 +79,6 @@ class RequestHandler(SimpleHTTPRequestHandler): self.wfile.flush() self.connection.shutdown() - def _save_report(self, report): - report_path = self._unique_path() - open(report_path, 'w').write(report) - def _unique_path(self): base_name = time.strftime('%Y-%m-%d-%s') counter = 0 @@ -90,6 +86,10 @@ class RequestHandler(SimpleHTTPRequestHandler): attempt = '%s-%s' % (base_name, str(counter)) path = os.path.join(REPORTS_PATH, attempt) if not os.path.exists(path): + try: + os.makedirs(path, 0755) + except OSError, err: + logging.error(str(err)) return path counter += 1 |