]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw_admin: can config access/secret key for zone
authorYehuda Sadeh <yehuda@redhat.com>
Wed, 14 Oct 2015 23:35:28 +0000 (16:35 -0700)
committerYehuda Sadeh <yehuda@redhat.com>
Fri, 12 Feb 2016 00:13:13 +0000 (16:13 -0800)
Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
src/rgw/rgw_admin.cc

index 3b4f1daaf09c3be57d4988d6c3c88e0e4ad9723f..1ee62711b064d46a347512f29fd79afa26087511 100644 (file)
@@ -2707,6 +2707,10 @@ int main(int argc, char **argv)
          cerr << "unable to initialize zone: " << cpp_strerror(-ret) << std::endl;
          return -ret;
        }
+
+        zone.system_key.id = access_key;
+        zone.system_key.key = secret_key;
+
        ret = zone.create();
        if (ret < 0) {
          cerr << "failed to create zone " << zone_name << ": " << cpp_strerror(-ret) << std::endl;
@@ -2891,16 +2895,6 @@ int main(int argc, char **argv)
       break;
     case OPT_ZONE_MODIFY:
       {
-       if (zone_id.empty() && zone_name.empty()) {
-         cerr << "no zone name or id provided" << std::endl;
-         return -EINVAL;
-       }
-
-       if (zonegroup_id.empty() && zonegroup_name.empty()) {
-         cerr << "no zonegroup name or id provided" << std::endl;
-         return -EINVAL;
-       }
-
        RGWZoneParams zone(zone_id, zone_name);
        int ret = zone.init(g_ceph_context, store);
         if (ret < 0) {
@@ -2908,6 +2902,25 @@ int main(int argc, char **argv)
          return -ret;
        }
 
+        bool need_zone_update = false;
+        if (!access_key.empty()) {
+          zone.system_key.id = access_key;
+          need_zone_update = true;
+        }
+
+        if (!secret_key.empty()) {
+          zone.system_key.key = secret_key;
+          need_zone_update = true;
+        }
+
+        if (need_zone_update) {
+          ret = zone.update();
+          if (ret < 0) {
+            cerr << "failed to save zone info: " << cpp_strerror(-ret) << std::endl;
+            return -ret;
+          }
+        }
+
        RGWRealm realm(realm_id, realm_name);
        ret = realm.init(g_ceph_context, store);
        if (ret < 0) {