using ::librbd::cls_client::metadata_set;
using ::librbd::cls_client::metadata_remove;
using ::librbd::cls_client::metadata_list;
+using ::librbd::cls_client::metadata_get;
static char *random_buf(size_t len)
{
ASSERT_EQ(0, create_image(&ioctx, oid, 0, 22, 0, oid));
map<string, string> pairs;
+ string value;
ASSERT_EQ(0, metadata_list(&ioctx, oid, &pairs));
ASSERT_TRUE(pairs.empty());
ASSERT_EQ(0, metadata_set(&ioctx, oid, "key1", "value1"));
ASSERT_EQ(0, metadata_set(&ioctx, oid, "key2", "value2"));
+ ASSERT_EQ(0, metadata_get(&ioctx, oid, "key1", &value));
+ ASSERT_EQ(0, strcmp("value1", value.c_str()));
ASSERT_EQ(0, metadata_list(&ioctx, oid, &pairs));
ASSERT_EQ(2U, pairs.size());
ASSERT_EQ(0, strcmp("value1", pairs["key1"].c_str()));
pairs.clear();
ASSERT_EQ(0, metadata_remove(&ioctx, oid, "key1"));
ASSERT_EQ(0, metadata_remove(&ioctx, oid, "key3"));
+ ASSERT_TRUE(metadata_get(&ioctx, oid, "key1", &value) < 0);
ASSERT_EQ(0, metadata_list(&ioctx, oid, &pairs));
ASSERT_EQ(1U, pairs.size());
ASSERT_EQ(0, strcmp("value2", pairs["key2"].c_str()));
ASSERT_EQ(0, _rados.ioctx_create(m_pool_name.c_str(), ioctx));
librbd::RBD rbd;
- std::string name = get_temp_image_name();
+ string name = get_temp_image_name();
uint64_t size = 2 << 20;
int order = 0;
uint64_t features;
+ string value;
ASSERT_EQ(0, create_image_pp(rbd, ioctx, name.c_str(), size, &order));
librbd::Image image1;
ASSERT_EQ(0, image1.metadata_set("key1", "value1"));
ASSERT_EQ(0, image1.metadata_set("key2", "value2"));
+ ASSERT_EQ(0, image1.metadata_get("key1", &value));
+ ASSERT_EQ(0, strcmp("value1", value.c_str()));
ASSERT_EQ(0, image1.metadata_list(&pairs));
ASSERT_EQ(2U, pairs.size());
ASSERT_EQ(0, strcmp("value1", pairs["key1"].c_str()));
pairs.clear();
ASSERT_EQ(0, image1.metadata_remove("key1"));
ASSERT_EQ(0, image1.metadata_remove("key3"));
+ ASSERT_TRUE(image1.metadata_get("key3", &value) < 0);
ASSERT_EQ(0, image1.metadata_list(&pairs));
ASSERT_EQ(1U, pairs.size());
ASSERT_EQ(0, strcmp("value2", pairs["key2"].c_str()));
pairs.clear();
ASSERT_EQ(0, image1.metadata_list(&pairs));
ASSERT_EQ(3U, pairs.size());
+ ASSERT_EQ(-ENOENT, image1.metadata_get("key4", &value));
}