diff options
| author | Peter Portante <peter.portante@redhat.com> | 2012-12-09 23:56:28 -0500 | 
|---|---|---|
| committer | Vijay Bellur <vbellur@redhat.com> | 2012-12-17 06:11:18 -0800 | 
| commit | 2fd8af2b750c43c657df9d8f9ba6fd5c1ba1f437 (patch) | |
| tree | 7c2c513e7c75663c20a61ba36888d67594ee17ba /ufo | |
| parent | 47e21afaaf192b03db69d8f204b3e33e5f9596cf (diff) | |
object-storage: a set of cleanups to DiskFile
Here are a set of cleanups for things noticed while working on the
unit test coverage:
  * Remove unused constants, adding a constant for default disk chunk
    size
  * Document missing logger parameter from constructor
  * Add iter_hook paramater to constructor in anticipation of 1.7.4
    support
  * Add back meta_file field even though it is not used in our version
    of the constructor for paranoid compatibility
  * Remove is_valid field as it is not referenced anywhere, and it is
    not a field of the super class
  * Rename fields only used internally by DiskFile with leading
    underscores
  * Convert to using os.path.join() instead of hard coded '/'
    references
  * Use data_file field where possible
  * Assert that put_metadata() will only work when the file exists
  * Remove update_object() method since it is identical to
    put_metadata() and a direct write will suffice
  * Create the directory object only if it does not exist when a
    marker directory is requested
Change-Id: If207fed4c0f423e6bd3232e4507f87de877057c4
BUG: 876660
Signed-off-by: Peter Portante <peter.portante@redhat.com>
Reviewed-on: http://review.gluster.org/4287
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Mohammed Junaid <junaid@redhat.com>
Reviewed-by: Vijay Bellur <vbellur@redhat.com>
Diffstat (limited to 'ufo')
| -rw-r--r-- | ufo/gluster/swift/common/DiskFile.py | 130 | ||||
| -rw-r--r-- | ufo/test/unit/common/test_diskfile.py | 140 | 
2 files changed, 138 insertions, 132 deletions
diff --git a/ufo/gluster/swift/common/DiskFile.py b/ufo/gluster/swift/common/DiskFile.py index e3f00a01ad7..26abbbef6ed 100644 --- a/ufo/gluster/swift/common/DiskFile.py +++ b/ufo/gluster/swift/common/DiskFile.py @@ -32,9 +32,7 @@ import logging  from swift.obj.server import DiskFile -DATADIR = 'objects' -ASYNCDIR = 'async_pending' -KEEP_CACHE_SIZE = (5 * 1024 * 1024) +DEFAULT_DISK_CHUNK_SIZE = 65536  # keep these lower-case  DISALLOWED_HEADERS = set('content-length content-type deleted etag'.split()) @@ -53,6 +51,7 @@ class Gluster_DiskFile(DiskFile):      :param account: account name for the object      :param container: container name for the object      :param obj: object name for the object +    :param logger: logger object for writing out log file messages      :param keep_data_fp: if True, don't close the fp, otherwise close it      :param disk_chunk_Size: size of chunks on file reads      :param uid: user ID disk object should assume (file or directory) @@ -60,59 +59,64 @@ class Gluster_DiskFile(DiskFile):      """      def __init__(self, path, device, partition, account, container, obj, -                 logger, keep_data_fp=False, disk_chunk_size=65536, -                 uid=DEFAULT_UID, gid=DEFAULT_GID): +                 logger, keep_data_fp=False, +                 disk_chunk_size=DEFAULT_DISK_CHUNK_SIZE, +                 uid=DEFAULT_UID, gid=DEFAULT_GID, iter_hook=None):          self.disk_chunk_size = disk_chunk_size -        #Don't support obj_name ending/begining with '/', like /a, a/, /a/b/ etc -        obj = obj.strip('/') -        if '/' in obj: -            self.obj_path, self.obj = obj.rsplit('/', 1) +        self.iter_hook = iter_hook +        # Don't support obj_name ending/begining with '/', like /a, a/, /a/b/, +        # etc. +        obj = obj.strip(os.path.sep) +        if os.path.sep in obj: +            self._obj_path, self._obj = os.path.split(obj)          else: -            self.obj_path = '' -            self.obj = obj +            self._obj_path = '' +            self._obj = obj -        if self.obj_path: -            self.name = '/'.join((container, self.obj_path)) +        if self._obj_path: +            self.name = os.path.join(container, self._obj_path)          else:              self.name = container -        #Absolute path for obj directory. +        # Absolute path for object directory.          self.datadir = os.path.join(path, device, self.name)          self.device_path = os.path.join(path, device) -        self.container_path = os.path.join(path, device, container) +        self._container_path = os.path.join(path, device, container) +        self._is_dir = False          self.tmpdir = os.path.join(path, device, 'tmp')          self.logger = logger          self.metadata = {} -        self.data_file = None +        self.meta_file = None          self.fp = None          self.iter_etag = None          self.started_at_0 = False          self.read_to_eof = False          self.quarantined_dir = None          self.keep_cache = False -        self.is_dir = False -        self.is_valid = True          self.uid = int(uid)          self.gid = int(gid) -        if not os.path.exists(self.datadir + '/' + self.obj): + +        # Don't store a value for data_file until we know it exists. +        self.data_file = None +        data_file = os.path.join(self.datadir, self._obj) +        if not os.path.exists(data_file):              return -        self.data_file = os.path.join(self.datadir, self.obj) -        self.metadata = read_metadata(self.datadir + '/' + self.obj) +        self.data_file = os.path.join(data_file) +        self.metadata = read_metadata(data_file)          if not self.metadata: -            create_object_metadata(self.datadir + '/' + self.obj) -            self.metadata = read_metadata(self.datadir + '/' + self.obj) +            create_object_metadata(data_file) +            self.metadata = read_metadata(data_file)          if not validate_object(self.metadata): -            create_object_metadata(self.datadir + '/' + self.obj) -            self.metadata = read_metadata(self.datadir + '/' + -                                        self.obj) +            create_object_metadata(data_file) +            self.metadata = read_metadata(data_file)          self.filter_metadata() -        if os.path.isdir(self.datadir + '/' + self.obj): -            self.is_dir = True +        if os.path.isdir(data_file): +            self._is_dir = True          else: -            self.fp = do_open(self.data_file, 'rb') +            self.fp = do_open(data_file, 'rb')              if not keep_data_fp:                  self.close(verify_file=False) @@ -124,7 +128,7 @@ class Gluster_DiskFile(DiskFile):                              file to see if it needs quarantining.          """          #Marker directory -        if self.is_dir: +        if self._is_dir:              return          if self.fp:              do_close(self.fp) @@ -150,8 +154,8 @@ class Gluster_DiskFile(DiskFile):          create_object_metadata(dir_path)      def put_metadata(self, metadata): -        obj_path = self.datadir + '/' + self.obj -        write_metadata(obj_path, metadata) +        assert self.data_file is not None, "put_metadata: no file to put metadata into" +        write_metadata(self.data_file, metadata)          self.metadata = metadata      def put(self, fd, tmppath, metadata, extension=''): @@ -175,10 +179,11 @@ class Gluster_DiskFile(DiskFile):          content_type = metadata['Content-Type']          if not content_type: -            # FIXME: How can this be some object that evaluates to False? +            # FIXME: How can this be that our caller supplied us with metadata +            # that has a content type that evaluates to False?              #              # FIXME: If the file exists, we would already know it is a -            # directory. +            # directory. So why are we assuming it is a file object?              metadata['Content-Type'] = FILE_TYPE              x_object_type = FILE          else: @@ -199,43 +204,37 @@ class Gluster_DiskFile(DiskFile):          extension = ''          if metadata[X_OBJECT_TYPE] == MARKER_DIR: -            # FIXME: If we know it already exists, why call -            # create_dir_object()? -            self.create_dir_object(os.path.join(self.datadir, self.obj)) +            if not self.data_file: +                self.data_file = os.path.join(self.datadir, self._obj) +                self.create_dir_object(self.data_file)              self.put_metadata(metadata) -            self.data_file = self.datadir + '/' + self.obj              return          # Check if directory already exists. -        if self.is_dir: +        if self._is_dir:              # FIXME: How can we have a directory and it not be marked as a              # MARKER_DIR (see above)? -            raise AlreadyExistsAsDir('File object already exists ' \ -                        'as a directory: %s/%s' % (self.datadir , self.obj)) +            msg = 'File object exists as a directory: %s' % self.data_file +            raise AlreadyExistsAsDir(msg)          timestamp = normalize_timestamp(metadata[X_TIMESTAMP])          write_metadata(tmppath, metadata)          if X_CONTENT_LENGTH in metadata:              self.drop_cache(fd, 0, int(metadata[X_CONTENT_LENGTH]))          tpool.execute(os.fsync, fd) -        if self.obj_path: -            dir_objs = self.obj_path.split('/') +        if self._obj_path: +            dir_objs = self._obj_path.split('/')              assert len(dir_objs) >= 1 -            tmp_path = '' +            tmp_path = self._container_path              for dir_name in dir_objs: -                if tmp_path: -                    tmp_path = tmp_path + '/' + dir_name -                else: -                    tmp_path = dir_name -                self.create_dir_object( -                    os.path.join(self.container_path, tmp_path)) - -        renamer(tmppath, os.path.join(self.datadir, -                                      self.obj + extension)) -        do_chown(os.path.join(self.datadir, self.obj + extension), \ -              self.uid, self.gid) +                tmp_path = os.path.join(tmp_path, dir_name) +                self.create_dir_object(tmp_path) + +        newpath = os.path.join(self.datadir, self._obj) +        renamer(tmppath, newpath) +        do_chown(newpath, self.uid, self.gid)          self.metadata = metadata -        self.data_file = self.datadir + '/' + self.obj + extension +        self.data_file = newpath          return      def unlinkold(self, timestamp): @@ -248,16 +247,16 @@ class Gluster_DiskFile(DiskFile):          if not self.metadata or self.metadata['X-Timestamp'] >= timestamp:              return -        if self.is_dir: +        if self._is_dir:              # Marker directory object -            if not rmdirs(os.path.join(self.datadir, self.obj)): -                logging.error('Unable to delete dir %s' % os.path.join(self.datadir, self.obj)) +            if not rmdirs(self.data_file): +                logging.error('Unable to delete dir object: %s' % self.data_file)                  return          else:              # File object              for fname in do_listdir(self.datadir): -                if fname == self.obj: -                    do_unlink(os.path.join(self.datadir, fname)) +                if os.path.join(self.datadir, fname) == self.data_file: +                    do_unlink(self.data_file)          self.metadata = {}          self.data_file = None @@ -273,7 +272,7 @@ class Gluster_DiskFile(DiskFile):          :raises DiskFileNotExist: on file not existing (including deleted)          """          #Marker directory. -        if self.is_dir: +        if self._is_dir:              return 0          try:              file_size = 0 @@ -283,7 +282,7 @@ class Gluster_DiskFile(DiskFile):                      metadata_size = int(self.metadata[X_CONTENT_LENGTH])                      if file_size != metadata_size:                          self.metadata[X_CONTENT_LENGTH] = file_size -                        self.update_object(self.metadata) +                        write_metadata(self.data_file, self.metadata)                  return file_size          except OSError as err: @@ -291,11 +290,6 @@ class Gluster_DiskFile(DiskFile):                  raise          raise DiskFileNotExist('Data File does not exist.') -    def update_object(self, metadata): -        obj_path = self.datadir + '/' + self.obj -        write_metadata(obj_path, metadata) -        self.metadata = metadata -      def filter_metadata(self):          if X_TYPE in self.metadata:              self.metadata.pop(X_TYPE) diff --git a/ufo/test/unit/common/test_diskfile.py b/ufo/test/unit/common/test_diskfile.py index 8c4756a7b69..264c656a5f1 100644 --- a/ufo/test/unit/common/test_diskfile.py +++ b/ufo/test/unit/common/test_diskfile.py @@ -102,18 +102,20 @@ class TestDiskFile(unittest.TestCase):          assert not os.path.exists("/tmp/foo")          gdf = Gluster_DiskFile("/tmp/foo", "vol0", "p57", "ufo47", "bar",                                 "z", self.lg) -        assert gdf.obj == "z" -        assert gdf.obj_path == "" +        assert gdf._obj == "z" +        assert gdf._obj_path == ""          assert gdf.name == "bar"          assert gdf.datadir == "/tmp/foo/vol0/bar"          assert gdf.device_path == "/tmp/foo/vol0" -        assert gdf.container_path == "/tmp/foo/vol0/bar" +        assert gdf._container_path == "/tmp/foo/vol0/bar"          assert gdf.tmpdir == "/tmp/foo/vol0/tmp"          assert gdf.disk_chunk_size == 65536 +        assert gdf.iter_hook == None          assert gdf.logger == self.lg          assert gdf.uid == DEFAULT_UID          assert gdf.gid == DEFAULT_GID          assert gdf.metadata == {} +        assert gdf.meta_file == None          assert gdf.data_file == None          assert gdf.fp == None          assert gdf.iter_etag == None @@ -121,15 +123,14 @@ class TestDiskFile(unittest.TestCase):          assert not gdf.read_to_eof          assert gdf.quarantined_dir == None          assert not gdf.keep_cache -        assert not gdf.is_dir -        assert gdf.is_valid +        assert not gdf._is_dir      def test_constructor_leadtrail_slash(self):          assert not os.path.exists("/tmp/foo")          gdf = Gluster_DiskFile("/tmp/foo", "vol0", "p57", "ufo47", "bar",                                 "/b/a/z/", self.lg) -        assert gdf.obj == "z" -        assert gdf.obj_path == "b/a" +        assert gdf._obj == "z" +        assert gdf._obj_path == "b/a"          assert gdf.name == "bar/b/a"          assert gdf.datadir == "/tmp/foo/vol0/bar/b/a"          assert gdf.device_path == "/tmp/foo/vol0" @@ -155,9 +156,9 @@ class TestDiskFile(unittest.TestCase):                  'Content-Type': 'application/octet-stream'}              gdf = Gluster_DiskFile(td, "vol0", "p57", "ufo47", "bar",                                     "z", self.lg) -            assert gdf.obj == "z" +            assert gdf._obj == "z"              assert gdf.data_file == the_file -            assert not gdf.is_dir +            assert not gdf._is_dir              assert gdf.fp is None              assert gdf.metadata == exp_md          finally: @@ -184,9 +185,9 @@ class TestDiskFile(unittest.TestCase):              del exp_md['X-Object-Type']              gdf = Gluster_DiskFile(td, "vol0", "p57", "ufo47", "bar",                                     "z", self.lg) -            assert gdf.obj == "z" +            assert gdf._obj == "z"              assert gdf.data_file == the_file -            assert not gdf.is_dir +            assert not gdf._is_dir              assert gdf.fp is None              assert gdf.metadata == exp_md          finally: @@ -208,9 +209,9 @@ class TestDiskFile(unittest.TestCase):                  fd.write("1234")              gdf = Gluster_DiskFile(td, "vol0", "p57", "ufo47", "bar",                                     "z", self.lg) -            assert gdf.obj == "z" +            assert gdf._obj == "z"              assert gdf.data_file == the_file -            assert not gdf.is_dir +            assert not gdf._is_dir              assert gdf.fp is None              assert gdf.metadata != inv_md          finally: @@ -235,9 +236,9 @@ class TestDiskFile(unittest.TestCase):              del exp_md['X-Object-Type']              gdf = Gluster_DiskFile(td, "vol0", "p57", "ufo47", "bar",                                     "d", self.lg, keep_data_fp=True) -            assert gdf.obj == "d" +            assert gdf._obj == "d"              assert gdf.data_file == the_dir -            assert gdf.is_dir +            assert gdf._is_dir              assert gdf.fp is None              assert gdf.metadata == exp_md          finally: @@ -253,9 +254,9 @@ class TestDiskFile(unittest.TestCase):                  fd.write("1234")              gdf = Gluster_DiskFile(td, "vol0", "p57", "ufo47", "bar",                                     "z", self.lg, keep_data_fp=True) -            assert gdf.obj == "z" +            assert gdf._obj == "z"              assert gdf.data_file == the_file -            assert not gdf.is_dir +            assert not gdf._is_dir              assert gdf.fp is not None          finally:              shutil.rmtree(td) @@ -266,6 +267,12 @@ class TestDiskFile(unittest.TestCase):                                 "z", self.lg, disk_chunk_size=8192)          assert gdf.disk_chunk_size == 8192 +    def test_constructor_iter_hook(self): +        assert not os.path.exists("/tmp/foo") +        gdf = Gluster_DiskFile("/tmp/foo", "vol0", "p57", "ufo47", "bar", +                               "z", self.lg, iter_hook='hook') +        assert gdf.iter_hook == 'hook' +      def test_close(self):          assert not os.path.exists("/tmp/foo")          gdf = Gluster_DiskFile("/tmp/foo", "vol0", "p57", "ufo47", "bar", @@ -273,13 +280,13 @@ class TestDiskFile(unittest.TestCase):          # Should be a no-op, as by default is_dir is False, but fp is None          gdf.close() -        gdf.is_dir = True +        gdf._is_dir = True          gdf.fp = "123"          # Should still be a no-op as is_dir is True (marker directory)          gdf.close()          assert gdf.fp == "123" -        gdf.is_dir = False +        gdf._is_dir = False          saved_dc = gluster.swift.common.DiskFile.do_close          self.called = False          def our_do_close(fp): @@ -307,7 +314,7 @@ class TestDiskFile(unittest.TestCase):              gdf = Gluster_DiskFile(td, "vol0", "p57", "ufo47", "bar",                                     "dir/z", self.lg)              # Not created, dir object path is different, just checking -            assert gdf.obj == "z" +            assert gdf._obj == "z"              gdf.create_dir_object(the_dir)              assert os.path.isdir(the_dir)              assert the_dir in _metadata @@ -325,7 +332,7 @@ class TestDiskFile(unittest.TestCase):              gdf = Gluster_DiskFile(td, "vol0", "p57", "ufo47", "bar",                                     "dir/z", self.lg)              # Not created, dir object path is different, just checking -            assert gdf.obj == "z" +            assert gdf._obj == "z"              def _mock_do_chown(p, u, g):                  assert u == DEFAULT_UID                  assert g == DEFAULT_GID @@ -343,14 +350,15 @@ class TestDiskFile(unittest.TestCase):      def test_put_metadata(self):          td = tempfile.mkdtemp()          the_path = os.path.join(td, "vol0", "bar") -        the_dir = os.path.join(the_path, "dir") +        the_dir = os.path.join(the_path, "z")          try: +            os.makedirs(the_dir)              gdf = Gluster_DiskFile(td, "vol0", "p57", "ufo47", "bar", -                                   "dir/z", self.lg) +                                   "z", self.lg)              md = { 'a': 'b' }              gdf.put_metadata(md)              assert gdf.metadata == md -            assert _metadata[os.path.join(the_dir, "z")] == md +            assert _metadata[the_dir] == md          finally:              shutil.rmtree(td) @@ -434,6 +442,24 @@ class TestDiskFile(unittest.TestCase):          finally:              shutil.rmtree(td) +    def test_put_w_marker_dir_create(self): +        td = tempfile.mkdtemp() +        the_path = os.path.join(td, "vol0", "bar") +        the_dir = os.path.join(the_path, "dir") +        try: +            gdf = Gluster_DiskFile(td, "vol0", "p57", "ufo47", "bar", +                                   "dir", self.lg) +            assert gdf.metadata == {} +            newmd = { +                'Content-Length': 0, +                'ETag': 'etag', +                'X-Timestamp': 'ts', +                'Content-Type': 'application/directory'} +            gdf.put(None, None, newmd) +            assert gdf.metadata == newmd +            assert _metadata[the_dir] == newmd +        finally: +            shutil.rmtree(td)      def test_put_is_dir(self):          td = tempfile.mkdtemp() @@ -466,8 +492,8 @@ class TestDiskFile(unittest.TestCase):          try:              gdf = Gluster_DiskFile(td, "vol0", "p57", "ufo47", "bar",                                     "z", self.lg) -            assert gdf.obj == "z" -            assert gdf.obj_path == "" +            assert gdf._obj == "z" +            assert gdf._obj_path == ""              assert gdf.name == "bar"              assert gdf.datadir == os.path.join(td, "vol0", "bar")              assert gdf.data_file is None @@ -500,8 +526,8 @@ class TestDiskFile(unittest.TestCase):          try:              gdf = Gluster_DiskFile(td, "vol0", "p57", "ufo47", "bar",                                     the_file, self.lg) -            assert gdf.obj == "z" -            assert gdf.obj_path == the_obj_path +            assert gdf._obj == "z" +            assert gdf._obj_path == the_obj_path              assert gdf.name == os.path.join("bar", "b", "a")              assert gdf.datadir == os.path.join(td, "vol0", "bar", "b", "a")              assert gdf.data_file is None @@ -572,14 +598,14 @@ class TestDiskFile(unittest.TestCase):                  fd.write("1234")              gdf = Gluster_DiskFile(td, "vol0", "p57", "ufo47", "bar",                                     "z", self.lg) -            assert gdf.obj == "z" +            assert gdf._obj == "z"              assert gdf.data_file == the_file -            assert not gdf.is_dir +            assert not gdf._is_dir              later = float(gdf.metadata['X-Timestamp']) + 1              gdf.unlinkold(normalize_timestamp(later))              assert os.path.isdir(gdf.datadir) -            assert not os.path.exists(os.path.join(gdf.datadir, gdf.obj)) +            assert not os.path.exists(os.path.join(gdf.datadir, gdf._obj))          finally:              shutil.rmtree(td) @@ -593,9 +619,9 @@ class TestDiskFile(unittest.TestCase):                  fd.write("1234")              gdf = Gluster_DiskFile(td, "vol0", "p57", "ufo47", "bar",                                     "z", self.lg) -            assert gdf.obj == "z" +            assert gdf._obj == "z"              assert gdf.data_file == the_file -            assert not gdf.is_dir +            assert not gdf._is_dir              # Handle the case the file is not in the directory listing.              os.unlink(the_file) @@ -603,7 +629,7 @@ class TestDiskFile(unittest.TestCase):              later = float(gdf.metadata['X-Timestamp']) + 1              gdf.unlinkold(normalize_timestamp(later))              assert os.path.isdir(gdf.datadir) -            assert not os.path.exists(os.path.join(gdf.datadir, gdf.obj)) +            assert not os.path.exists(os.path.join(gdf.datadir, gdf._obj))          finally:              shutil.rmtree(td) @@ -617,9 +643,9 @@ class TestDiskFile(unittest.TestCase):                  fd.write("1234")              gdf = Gluster_DiskFile(td, "vol0", "p57", "ufo47", "bar",                                     "z", self.lg) -            assert gdf.obj == "z" +            assert gdf._obj == "z"              assert gdf.data_file == the_file -            assert not gdf.is_dir +            assert not gdf._is_dir              later = float(gdf.metadata['X-Timestamp']) + 1 @@ -637,7 +663,7 @@ class TestDiskFile(unittest.TestCase):                  os.chmod(the_path, stats.st_mode)              assert os.path.isdir(gdf.datadir) -            assert os.path.exists(os.path.join(gdf.datadir, gdf.obj)) +            assert os.path.exists(os.path.join(gdf.datadir, gdf._obj))          finally:              shutil.rmtree(td) @@ -650,12 +676,12 @@ class TestDiskFile(unittest.TestCase):              gdf = Gluster_DiskFile(td, "vol0", "p57", "ufo47", "bar",                                     "d", self.lg, keep_data_fp=True)              assert gdf.data_file == the_dir -            assert gdf.is_dir +            assert gdf._is_dir              later = float(gdf.metadata['X-Timestamp']) + 1              gdf.unlinkold(normalize_timestamp(later))              assert os.path.isdir(gdf.datadir) -            assert not os.path.exists(os.path.join(gdf.datadir, gdf.obj)) +            assert not os.path.exists(os.path.join(gdf.datadir, gdf._obj))          finally:              shutil.rmtree(td) @@ -668,7 +694,7 @@ class TestDiskFile(unittest.TestCase):              gdf = Gluster_DiskFile(td, "vol0", "p57", "ufo47", "bar",                                     "d", self.lg, keep_data_fp=True)              assert gdf.data_file == the_dir -            assert gdf.is_dir +            assert gdf._is_dir              stats = os.stat(gdf.datadir)              os.chmod(gdf.datadir, 0) @@ -692,9 +718,9 @@ class TestDiskFile(unittest.TestCase):                  fd.write("1234")              gdf = Gluster_DiskFile(td, "vol0", "p57", "ufo47", "bar",                                     "z", self.lg) -            assert gdf.obj == "z" +            assert gdf._obj == "z"              assert gdf.data_file == the_file -            assert not gdf.is_dir +            assert not gdf._is_dir              assert 4 == gdf.get_data_file_size()          finally:              shutil.rmtree(td) @@ -709,9 +735,9 @@ class TestDiskFile(unittest.TestCase):                  fd.write("1234")              gdf = Gluster_DiskFile(td, "vol0", "p57", "ufo47", "bar",                                     "z", self.lg) -            assert gdf.obj == "z" +            assert gdf._obj == "z"              assert gdf.data_file == the_file -            assert not gdf.is_dir +            assert not gdf._is_dir              assert 4 == gdf.metadata['Content-Length']              gdf.metadata['Content-Length'] = 3              assert 4 == gdf.get_data_file_size() @@ -740,9 +766,9 @@ class TestDiskFile(unittest.TestCase):                  fd.write("1234")              gdf = Gluster_DiskFile(td, "vol0", "p57", "ufo47", "bar",                                     "z", self.lg) -            assert gdf.obj == "z" +            assert gdf._obj == "z"              assert gdf.data_file == the_file -            assert not gdf.is_dir +            assert not gdf._is_dir              gdf.data_file = gdf.data_file + ".dne"              try:                  s = gdf.get_data_file_size() @@ -763,9 +789,9 @@ class TestDiskFile(unittest.TestCase):                  fd.write("1234")              gdf = Gluster_DiskFile(td, "vol0", "p57", "ufo47", "bar",                                     "z", self.lg) -            assert gdf.obj == "z" +            assert gdf._obj == "z"              assert gdf.data_file == the_file -            assert not gdf.is_dir +            assert not gdf._is_dir              stats = os.stat(the_path)              os.chmod(the_path, 0)              try: @@ -787,27 +813,13 @@ class TestDiskFile(unittest.TestCase):              os.makedirs(the_dir)              gdf = Gluster_DiskFile(td, "vol0", "p57", "ufo47", "bar",                                     "d", self.lg, keep_data_fp=True) -            assert gdf.obj == "d" +            assert gdf._obj == "d"              assert gdf.data_file == the_dir -            assert gdf.is_dir +            assert gdf._is_dir              assert 0 == gdf.get_data_file_size()          finally:              shutil.rmtree(td) -    def test_update_object(self): -        td = tempfile.mkdtemp() -        the_path = os.path.join(td, "vol0", "bar") -        the_dir = os.path.join(the_path, "dir") -        try: -            gdf = Gluster_DiskFile(td, "vol0", "p57", "ufo47", "bar", -                                   "dir/z", self.lg) -            md = { 'a': 'b' } -            gdf.update_object(md) -            assert gdf.metadata == md -            assert _metadata[os.path.join(the_dir, "z")] == md -        finally: -            shutil.rmtree(td) -      def test_filter_metadata(self):          assert not os.path.exists("/tmp/foo")          gdf = Gluster_DiskFile("/tmp/foo", "vol0", "p57", "ufo47", "bar",  | 
