]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
Fixed certain bugs on rest admin APIs
authorBabu Shanmugam <anbu@enovance.com>
Mon, 29 Apr 2013 04:16:46 +0000 (09:46 +0530)
committerYehuda Sadeh <yehuda@inktank.com>
Wed, 15 May 2013 01:52:32 +0000 (18:52 -0700)
Signed-off-by: Babu Shanmugam <anbu@enovance.com>
src/rgw/rgw_common.cc
src/rgw/rgw_rest_metadata.cc
src/test/test_rgw_admin_meta.cc

index 48a377cd7dc21a4dc72ec0908ebac2457f06a5e4..32e127eedb43fd659fd966e72bdb1bcd570b9fbd 100644 (file)
@@ -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) ||
index 5a4bc3cbec7320c3e457bbb71e157592955cf6f7..1ec6a65c940dd301d7c4df0f70900a1ea732c30a 100644 (file)
@@ -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
index 53011950bd964bfbc3e3f6d6efa4ba0db4f01439..7cfc53f18e8091e6c639126b53f9cb54f5fb1182 100644 (file)
@@ -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());