From: Christophe Courtaut Date: Tue, 9 Jul 2013 21:32:33 +0000 (+0200) Subject: rgw: Use JSONFormatter to use keystone API X-Git-Tag: v0.73~53^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F766%2Fhead;p=ceph.git rgw: Use JSONFormatter to use keystone API Signed-off-by: Christophe Courtaut --- diff --git a/src/rgw/rgw_swift.cc b/src/rgw/rgw_swift.cc index 00af259a856..89b86fdfe8f 100644 --- a/src/rgw/rgw_swift.cc +++ b/src/rgw/rgw_swift.cc @@ -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;