diff mbox

Python Ioctx.get_xattrs does not take xattr_name

Message ID 20130709151533.GN2650@sventech.com (mailing list archive)
State New, archived
Headers show

Commit Message

Johannes Erdfelt July 9, 2013, 3:15 p.m. UTC
Fixes bug 5528

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

Signed-off-by: Johannes Erdfelt <johannes@erdfelt.com>
---
 src/pybind/rados.py           |  4 ++--
 src/test/pybind/test_rados.py | 12 ++++++++++++
 2 files changed, 14 insertions(+), 2 deletions(-)

Comments

Josh Durgin July 10, 2013, 8:46 p.m. UTC | #1
On 07/09/2013 08:15 AM, Johannes Erdfelt wrote:
> Fixes bug 5528
>
> Since it returns all xattrs, it does not take an xattr_name. Also,
> add unit tests for the Object xattrs methods.
>
> Signed-off-by: Johannes Erdfelt <johannes@erdfelt.com>

Applied to next and master, thanks!

Josh

--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/src/pybind/rados.py b/src/pybind/rados.py
index 13badc9..0ba8184 100644
--- a/src/pybind/rados.py
+++ b/src/pybind/rados.py
@@ -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):
diff --git a/src/test/pybind/test_rados.py b/src/test/pybind/test_rados.py
index f182524..01b6a21 100644
--- a/src/test/pybind/test_rados.py
+++ b/src/test/pybind/test_rados.py
@@ -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')