Skip to contentSkip to conversation

Python Ioctx.get_xattrs does not take xattr_name

PATCH Applied Johannes Erdfelt 2 participants 2 messages Jul 9, 2013 – Jul 10, 2013

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 Python Ioctx.get_xattrs does not take xattr_name

Fixes bug 5528

Since it returns all xattrs, it does not take an xattr_name. Also, add unit tests for the Object xattrs methods.

---
 src/pybind/rados.py           |  4 ++--
 src/test/pybind/test_rados.py | 12 ++++++++++++
 2 files changed, 14 insertions(+), 2 deletions(-)
src/pybind/rados.py +2 -2
index 13badc9..0ba8184 100644
@@ -1566,9 +1566,9 @@ class Object(object):
         return self.ioctx.get_xattr(self.key, xattr_name)
 
     @set_object_locator
-    def get_xattrs(self, xattr_name):
+    def get_xattrs(self):
         self.require_object_exists()
-        return self.ioctx.get_xattrs(self.key, xattr_name)
+        return self.ioctx.get_xattrs(self.key)
 
     @set_object_locator
     def set_xattr(self, xattr_name, xattr_value):
src/test/pybind/test_rados.py +12 -0
index f182524..01b6a21 100644
@@ -117,6 +117,18 @@ class TestIoctx(object):
             stored_xattrs[key] = value
         eq(stored_xattrs, xattrs)
 
+    def test_obj_xattrs(self):
+        xattrs = dict(a='1', b='2', c='3', d='a\0b', e='\0')
+        self.ioctx.write('abc', '')
+        obj = list(self.ioctx.list_objects())[0]
+        for key, value in xattrs.iteritems():
+            obj.set_xattr(key, value)
+            eq(obj.get_xattr(key), value)
+        stored_xattrs = {}
+        for key, value in obj.get_xattrs():
+            stored_xattrs[key] = value
+        eq(stored_xattrs, xattrs)
+
     def test_create_snap(self):
         assert_raises(ObjectNotFound, self.ioctx.remove_snap, 'foo')
         self.ioctx.create_snap('foo')
Signature · 1 line
1.8.3.1
Applied
#1 lore raw
Quoted 6 lines · Johannes Erdfelt

Fixes bug 5528

Since it returns all xattrs, it does not take an xattr_name. Also, add unit tests for the Object xattrs methods.

Applied to next and master, thanks!

Josh