Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin 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)
commit5efb4bf4998d3eb5eb2f4cd31c17e57efc79fce7 (patch)
tree1c1cedb3d3fdae84a4a42765325c7c02066fdc1d
parent5f366b9e3f4404c285a7afa26e7d6c8ac0bc7ea2 (diff)
Extract all and create dest dir
-rw-r--r--fbserver.py12
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