From 9dac908f55bf1fd33ca2fa6a6b97348105a6765b Mon Sep 17 00:00:00 2001 From: John Dickinson Date: Tue, 15 May 2012 09:52:44 -0500 Subject: [PATCH] added original filename to uploaded log --- slogging/internal_proxy.py | 8 ++++++-- slogging/log_uploader.py | 5 ++++- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/slogging/internal_proxy.py b/slogging/internal_proxy.py index 354cce6..c48cca9 100644 --- a/slogging/internal_proxy.py +++ b/slogging/internal_proxy.py @@ -96,7 +96,7 @@ class InternalProxy(object): def upload_file(self, source_file, account, container, object_name, compress=True, content_type='application/x-gzip', - etag=None): + etag=None, headers=None): """ Upload a file to cloud files. @@ -115,10 +115,14 @@ class InternalProxy(object): if not self.create_container(account, container): return False + send_headers = {'Transfer-Encoding': 'chunked'} + if headers: + send_headers.update(headers) + # upload the file to the account req = webob.Request.blank(target_name, content_type=content_type, environ={'REQUEST_METHOD': 'PUT'}, - headers={'Transfer-Encoding': 'chunked'}) + headers=send_headers) req.content_length = None # to make sure we send chunked data if etag: req.headers['etag'] = etag diff --git a/slogging/log_uploader.py b/slogging/log_uploader.py index 1058bbe..f156d69 100644 --- a/slogging/log_uploader.py +++ b/slogging/log_uploader.py @@ -184,11 +184,14 @@ class LogUploader(Daemon): # have unique filenames and protect against uploading one file # more than one time. By using md5, we get an etag for free. target_filename = '/'.join([year, month, day, hour, filehash + '.gz']) + metadata = {'x-object-meta-original-name': filename} if self.internal_proxy.upload_file(filename, self.swift_account, self.container_name, target_filename, - compress=(not already_compressed)): + compress=(not already_compressed), + etag=filehash, + headers=metadata): self.logger.debug(_("Uploaded log %(file)s to %(target)s") % {'file': filename, 'target': target_filename}) if self.unlink_log: