summaryrefslogtreecommitdiffstats
path: root/ufo
diff options
context:
space:
mode:
authorPeter Portante <peter.portante@redhat.com>2012-12-12 21:01:09 -0500
committerPeter Portante <peter.portante@redhat.com>2013-04-29 16:35:57 -0400
commitad5407e020ec88da0462f82583135d78cfe975cc (patch)
tree3e942800c4cf441ef9402df94cd5c04d8399ea26 /ufo
parent731fb94885e823befb7baa061aa81dd81dc5aade (diff)
object-storage: only open file when requested
Only open a file when the caller of the constructor indicates that it expects to have a file pointer to access in the "fp" field. Found by Junaid during review http://review.gluster.org/4284, Patch set 6. We also bump the version number to mark a line in the set of changes we want to perform a mini release with to double check for performance regressions. Change-Id: I13cf336bb519088890192ee111f4ece85a5982c4 BUG: 886730 Signed-off-by: Peter Portante <peter.portante@redhat.com> Reviewed-on: http://review.gluster.org/4303 Reviewed-by: Mohammed Junaid <junaid@redhat.com> Tested-by: Gluster Build System <jenkins@build.gluster.com>
Diffstat (limited to 'ufo')
-rw-r--r--ufo/gluster-swift-ufo.spec2
-rw-r--r--ufo/gluster/swift/common/DiskFile.py10
2 files changed, 8 insertions, 4 deletions
diff --git a/ufo/gluster-swift-ufo.spec b/ufo/gluster-swift-ufo.spec
index 8d2c93b..8c0167c 100644
--- a/ufo/gluster-swift-ufo.spec
+++ b/ufo/gluster-swift-ufo.spec
@@ -16,7 +16,7 @@
%define _confdir %{_sysconfdir}/swift
%define _ufo_version 1.1
-%define _ufo_release 3
+%define _ufo_release 4
Summary : GlusterFS Unified File and Object Storage.
Name : gluster-swift-ufo
diff --git a/ufo/gluster/swift/common/DiskFile.py b/ufo/gluster/swift/common/DiskFile.py
index 8522295..62f9810 100644
--- a/ufo/gluster/swift/common/DiskFile.py
+++ b/ufo/gluster/swift/common/DiskFile.py
@@ -137,9 +137,13 @@ class Gluster_DiskFile(DiskFile):
if os.path.isdir(data_file):
self._is_dir = True
else:
- self.fp = do_open(data_file, 'rb')
- if not keep_data_fp:
- self.close(verify_file=False)
+ if keep_data_fp:
+ # The caller has an assumption that the "fp" field of this
+ # object is an file object if keep_data_fp is set. However,
+ # this implementation of the DiskFile object does not need to
+ # open the file for internal operations. So if the caller
+ # requests it, we'll just open the file for them.
+ self.fp = do_open(data_file, 'rb')
def close(self, verify_file=True):
"""