]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: store openstack secret as part of the user info
authorYehuda Sadeh <yehuda@hq.newdream.net>
Tue, 22 Mar 2011 18:32:31 +0000 (11:32 -0700)
committerYehuda Sadeh <yehuda@hq.newdream.net>
Tue, 22 Mar 2011 23:40:35 +0000 (16:40 -0700)
src/rgw/rgw_admin.cc
src/rgw/rgw_common.h

index 0074bb533bce12aced24ebf4742015a01062afce..31b8c0e2de12e40bd14dd57a32c4afc3da2dd784 100644 (file)
@@ -37,6 +37,7 @@ void usage()
   cerr << "   --email=<email>\n";
   cerr << "   --auth_uid=<auid>         librados uid\n";
   cerr << "   --secret=<key>            S3 key\n";
+  cerr << "   --os-secret=<key>         OpenStack key\n";
   cerr << "   --display-name=<name>\n";
   cerr << "   --bucket=<bucket>\n";
   cerr << "   --object=<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 : "<undefined>")<< std::endl;
+    cout << "OpenStack Key: " << (info.openstack_key.size() ? info.openstack_key : "<undefined>")<< std::endl;
     break;
   }
 
index f23a7d15d0ad77b490a6ed234bf081aa6e2898dd..22918e81a3b3186f5085c87b6654225699ec185d 100644 (file)
@@ -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() {