From efaa33f3933f55dddda7345e438cd78eecb84541 Mon Sep 17 00:00:00 2001 From: Babu Shanmugam Date: Mon, 29 Apr 2013 09:46:46 +0530 Subject: [PATCH] Fixed certain bugs on rest admin APIs Signed-off-by: Babu Shanmugam --- src/rgw/rgw_common.cc | 9 +++++---- src/rgw/rgw_rest_metadata.cc | 6 +++++- src/test/test_rgw_admin_meta.cc | 3 ++- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/src/rgw/rgw_common.cc b/src/rgw/rgw_common.cc index 48a377cd7dc21..32e127eedb43f 100644 --- a/src/rgw/rgw_common.cc +++ b/src/rgw/rgw_common.cc @@ -447,7 +447,8 @@ int XMLArgs::parse() if (ret >= 0) { string& name = nv.get_name(); string& val = nv.get_val(); - val_map[name] = val; + if(name.length() > 0) + val_map[name] = val; if ((name.compare("acl") == 0) || (name.compare("location") == 0) || @@ -466,9 +467,9 @@ int XMLArgs::parse() (name.compare("response-cache-control") == 0) || (name.compare("response-content-disposition") == 0) || (name.compare("response-content-encoding") == 0)) { - sub_resources[name] = val; - has_resp_modifier = true; - } + sub_resources[name] = val; + has_resp_modifier = true; + } } else if ((name.compare("subuser") == 0) || (name.compare("key") == 0) || (name.compare("caps") == 0) || diff --git a/src/rgw/rgw_rest_metadata.cc b/src/rgw/rgw_rest_metadata.cc index 5a4bc3cbec732..1ec6a65c940dd 100644 --- a/src/rgw/rgw_rest_metadata.cc +++ b/src/rgw/rgw_rest_metadata.cc @@ -37,7 +37,7 @@ static inline void frame_metadata_key(req_state *s, string& out) { key.clear(); } - out = (section + string(":") + key); + out = section; if (!key.empty()) { out += string(":") + key; @@ -159,6 +159,10 @@ void RGWOp_Metadata_Delete::execute() { } RGWOp *RGWHandler_Metadata::op_get() { + if (s->args.get_num_params() > 0 && + !s->args.exists("key")) { + return NULL; + } if (s->args.exists("key")) return new RGWOp_Metadata_Get; else diff --git a/src/test/test_rgw_admin_meta.cc b/src/test/test_rgw_admin_meta.cc index 53011950bd964..7cfc53f18e809 100644 --- a/src/test/test_rgw_admin_meta.cc +++ b/src/test/test_rgw_admin_meta.cc @@ -373,6 +373,7 @@ int get_creds(string& json, string& creds) { /*cout << "accesskeys [ " << it->first << " ] = " << "{ " << _k.id << ", " << _k.key << ", " << _k.subuser << "}" << std::endl;*/ creds.append(it->first + string(":") + _k.key); + break; } return 0; } @@ -652,7 +653,7 @@ TEST(TestRGWAdmin, meta_get){ /*Check with a wrong parameter*/ g_test->send_request(string("GET"), string("/admin/metadata/user?keys=test")); - EXPECT_EQ(400U, g_test->get_resp_code()); + EXPECT_EQ(405U, g_test->get_resp_code()); g_test->send_request(string("GET"), string("/admin/metadata/user?key=test")); EXPECT_EQ(404U, g_test->get_resp_code()); -- 2.39.5