]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
Merge pull request #23819 from dongbula/nf-add-bucket-option-in-usage
authorYuri Weinstein <yweinste@redhat.com>
Mon, 19 Nov 2018 16:49:06 +0000 (08:49 -0800)
committerGitHub <noreply@github.com>
Mon, 19 Nov 2018 16:49:06 +0000 (08:49 -0800)
rgw: add bucket as option when show/trim usage

Reviewed-by: Casey Bodley <cbodley@redhat.com>
1  2 
src/cls/rgw/cls_rgw.cc
src/cls/rgw/cls_rgw_client.cc
src/cls/rgw/cls_rgw_client.h
src/rgw/rgw_admin.cc
src/rgw/rgw_op.cc
src/rgw/rgw_rados.cc
src/rgw/rgw_rados.h
src/test/cli/radosgw-admin/help.t
src/test/cls_rgw/test_cls_rgw.cc

Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index 25a28730274fbe569fe28e768adac729ec8b0d6d,5f3ddd11b4c0fd76df83d689bd56eca1975031bb..30c1dc6cee54f290ebfc0b062201a762a295d97d
@@@ -9249,10 -13598,12 +9250,12 @@@ int RGWRados::cls_obj_usage_log_add(con
    return r;
  }
  
- int RGWRados::cls_obj_usage_log_read(string& oid, string& user, uint64_t start_epoch, uint64_t end_epoch, uint32_t max_entries,
-                                      string& read_iter, map<rgw_user_bucket, rgw_usage_log_entry>& usage, bool *is_truncated)
+ int RGWRados::cls_obj_usage_log_read(const string& oid, const string& user, const string& bucket,
+                                      uint64_t start_epoch, uint64_t end_epoch, uint32_t max_entries,
+                                      string& read_iter, map<rgw_user_bucket, rgw_usage_log_entry>& usage,
+                                    bool *is_truncated)
  {
 -  rgw_raw_obj obj(get_zone_params().usage_log_pool, oid);
 +  rgw_raw_obj obj(svc.zone->get_zone_params().usage_log_pool, oid);
  
    rgw_rados_ref ref;
    int r = get_raw_obj_ref(obj, &ref);
    return r;
  }
  
- int RGWRados::cls_obj_usage_log_trim(string& oid, string& user, uint64_t start_epoch, uint64_t end_epoch)
+ int RGWRados::cls_obj_usage_log_trim(const string& oid, const string& user, const string& bucket,
+                                     uint64_t start_epoch, uint64_t end_epoch)
  {
 -  rgw_raw_obj obj(get_zone_params().usage_log_pool, oid);
 +  rgw_raw_obj obj(svc.zone->get_zone_params().usage_log_pool, oid);
  
    rgw_rados_ref ref;
    int r = get_raw_obj_ref(obj, &ref);
Simple merge
Simple merge
index 7e78acf8a1c83f4c230dee5bfb4f5e7fbc974509,607600572b32acaf89d642da9d7ab133a3fa1830..a248eb802c18efa06758e51eeaa253e329f66a59
@@@ -830,17 -841,40 +841,40 @@@ TEST(cls_rgw, usage_basic
    // read the entries, and see that we have all the added entries
    ASSERT_EQ(0, ret);
    ASSERT_FALSE(truncated);
 -  ASSERT_EQ(total_usage_entries, usage.size());
 +  ASSERT_EQ(static_cast<uint64_t>(total_usage_entries), usage.size());
  
    // delete and read to assert that we've deleted all the values
-   ASSERT_EQ(0, cls_rgw_usage_log_trim(ioctx, oid, user, start_epoch, end_epoch));
+   ASSERT_EQ(0, cls_rgw_usage_log_trim(ioctx, oid, user, "", start_epoch, end_epoch));
  
  
-   ret = cls_rgw_usage_log_read(ioctx, oid, user, start_epoch, end_epoch,
+   ret = cls_rgw_usage_log_read(ioctx, oid, user, "", start_epoch, end_epoch,
                               max_entries, read_iter, usage2, &truncated);
    ASSERT_EQ(0, ret);
 -  ASSERT_EQ(0, usage2.size());
 +  ASSERT_EQ(0u, usage2.size());
  
+   // add and read to assert that bucket option is valid for usage reading
+   string bucket1 = "bucket-usage-1";
+   string bucket2 = "bucket-usage-2";
+   info = gen_usage_log_info(payer, bucket1, 100);
+   cls_rgw_usage_log_add(op, info);
+   ASSERT_EQ(0, ioctx.operate(oid, &op));
+   info = gen_usage_log_info(payer, bucket2, 100);
+   cls_rgw_usage_log_add(op, info);
+   ASSERT_EQ(0, ioctx.operate(oid, &op));
+   ret = cls_rgw_usage_log_read(ioctx, oid, "", bucket1, start_epoch, end_epoch,
+                               max_entries, read_iter, usage2, &truncated);
+   ASSERT_EQ(0, ret);
+   ASSERT_EQ(100, usage2.size());
+   // delete and read to assert that bucket option is valid for usage trim
+   ASSERT_EQ(0, cls_rgw_usage_log_trim(ioctx, oid, "", bucket1, start_epoch, end_epoch));
+   ret = cls_rgw_usage_log_read(ioctx, oid, "", bucket1, start_epoch, end_epoch,
+                                max_entries, read_iter, usage2, &truncated);
+   ASSERT_EQ(0, ret);
+   ASSERT_EQ(0, usage2.size());
+   ASSERT_EQ(0, cls_rgw_usage_log_trim(ioctx, oid, "", bucket2, start_epoch, end_epoch));
  }
  
  TEST(cls_rgw, usage_clear_no_obj)
@@@ -876,10 -910,10 +910,10 @@@ TEST(cls_rgw, usage_clear
    bool truncated;
    uint64_t start_epoch{0}, end_epoch{(uint64_t) -1};
    string read_iter;
-   ret = cls_rgw_usage_log_read(ioctx, oid, user, start_epoch, end_epoch,
+   ret = cls_rgw_usage_log_read(ioctx, oid, user, "", start_epoch, end_epoch,
                               max_entries, read_iter, usage, &truncated);
    ASSERT_EQ(0, ret);
 -  ASSERT_EQ(0, usage.size());
 +  ASSERT_EQ(0u, usage.size());
  
  }