From: Yehuda Sadeh Date: Tue, 22 Mar 2011 18:32:31 +0000 (-0700) Subject: rgw: store openstack secret as part of the user info X-Git-Tag: v0.26~70 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=e49fa72ddb34c6a268f0189f233b5e290363021c;p=ceph.git rgw: store openstack secret as part of the user info --- diff --git a/src/rgw/rgw_admin.cc b/src/rgw/rgw_admin.cc index 0074bb533bce..31b8c0e2de12 100644 --- a/src/rgw/rgw_admin.cc +++ b/src/rgw/rgw_admin.cc @@ -37,6 +37,7 @@ void usage() cerr << " --email=\n"; cerr << " --auth_uid= librados uid\n"; cerr << " --secret= S3 key\n"; + cerr << " --os-secret= OpenStack key\n"; cerr << " --display-name=\n"; cerr << " --bucket=\n"; cerr << " --object=\n"; @@ -178,6 +179,7 @@ int main(int argc, char **argv) const char *bucket = 0; const char *object = 0; const char *openstack_user = 0; + const char *openstack_key = 0; const char *date = 0; uint64_t auid = 0; RGWUserInfo info; @@ -203,6 +205,8 @@ int main(int argc, char **argv) CONF_SAFE_SET_ARG_VAL(&auid, OPT_LONGLONG); } else if (CONF_ARG_EQ("os-user", '\0')) { CONF_SAFE_SET_ARG_VAL(&openstack_user, OPT_STR); + } else if (CONF_ARG_EQ("os-secret", '\0')) { + CONF_SAFE_SET_ARG_VAL(&openstack_key, OPT_STR); } else if (CONF_ARG_EQ("date", '\0')) { CONF_SAFE_SET_ARG_VAL(&date, OPT_STR); } else { @@ -321,6 +325,8 @@ int main(int argc, char **argv) info.auid = auid; if (openstack_user) info.openstack_name = openstack_user; + if (openstack_key) + info.openstack_key = openstack_key; if ((err = rgw_store_user_info(info)) < 0) { cerr << "error storing user info: " << strerror(-err) << std::endl; @@ -334,6 +340,7 @@ int main(int argc, char **argv) cout << "Secret Key: " << info.secret_key << std::endl; cout << "Display Name: " << info.display_name << std::endl; cout << "OpenStack User: " << (info.openstack_name.size() ? info.openstack_name : "")<< std::endl; + cout << "OpenStack Key: " << (info.openstack_key.size() ? info.openstack_key : "")<< std::endl; break; } diff --git a/src/rgw/rgw_common.h b/src/rgw/rgw_common.h index f23a7d15d0ad..22918e81a3b3 100644 --- a/src/rgw/rgw_common.h +++ b/src/rgw/rgw_common.h @@ -38,7 +38,7 @@ using ceph::crypto::MD5; #define RGW_BUCKETS_OBJ_PREFIX ".buckets" -#define USER_INFO_VER 3 +#define USER_INFO_VER 4 #define RGW_MAX_CHUNK_SIZE (4*1024*1024) @@ -132,6 +132,7 @@ struct RGWUserInfo string display_name; string user_email; string openstack_name; + string openstack_key; RGWUserInfo() : auid(0) {} @@ -144,6 +145,7 @@ struct RGWUserInfo ::encode(display_name, bl); ::encode(user_email, bl); ::encode(openstack_name, bl); + ::encode(openstack_key, bl); } void decode(bufferlist::iterator& bl) { __u32 ver; @@ -155,6 +157,7 @@ struct RGWUserInfo ::decode(display_name, bl); ::decode(user_email, bl); if (ver >= 3) ::decode(openstack_name, bl); + if (ver >= 4) ::decode(openstack_key, bl); } void clear() {