]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: Use JSONFormatter to use keystone API 766/head
authorChristophe Courtaut <christophe.courtaut@gmail.com>
Tue, 9 Jul 2013 21:32:33 +0000 (23:32 +0200)
committerChristophe Courtaut <christophe.courtaut@gmail.com>
Sun, 27 Oct 2013 14:01:42 +0000 (15:01 +0100)
Signed-off-by: Christophe Courtaut <christophe.courtaut@gmail.com>
src/rgw/rgw_swift.cc

index 00af259a85617836daca7bc6d407d8fc5b24b679..89b86fdfe8f396f236cc361b4fd157eb278fd91e 100644 (file)
@@ -252,15 +252,17 @@ int       RGWSwift::get_keystone_admin_token(std::string& token)
     KeystoneToken t;
     bufferlist token_bl;
     RGWGetKeystoneAdminToken token_req(cct, &token_bl);
-    std::ostringstream os;
-    os << "{ \"auth\":{ \"passwordCredentials\":{ \"username\":\"";
-    os << cct->_conf->rgw_keystone_admin_user;
-    os << "\", \"password\":\"";
-    os << cct->_conf->rgw_keystone_admin_password;
-    os << "\"}, \"tenantName\":\"";
-    os << cct->_conf->rgw_keystone_admin_tenant;
-    os << "\"}}";
-    token_req.set_post_data(os.str());
+    JSONFormatter jf;
+    jf.open_object_section("auth");
+    jf.open_object_section("passwordCredentials");
+    encode_json("username", cct->_conf->rgw_keystone_admin_user, &jf);
+    encode_json("password", cct->_conf->rgw_keystone_admin_password, &jf);
+    jf.close_section();
+    encode_json("tenantName", cct->_conf->rgw_keystone_admin_tenant, &jf);
+    jf.close_section();
+    std::stringstream ss;
+    jf.flush(ss);
+    token_req.set_post_data(ss.str());
     int ret = token_req.process(token_url.c_str());
     if (ret < 0)
       return ret;