X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fceph%2Fsrc%2Frgw%2Frgw_usage.cc;fp=src%2Fceph%2Fsrc%2Frgw%2Frgw_usage.cc;h=0000000000000000000000000000000000000000;hb=7da45d65be36d36b880cc55c5036e96c24b53f00;hp=03a4ab4de0881f08da048d44e279e5458aa6400e;hpb=691462d09d0987b47e112d6ee8740375df3c51b2;p=stor4nfv.git diff --git a/src/ceph/src/rgw/rgw_usage.cc b/src/ceph/src/rgw/rgw_usage.cc deleted file mode 100644 index 03a4ab4..0000000 --- a/src/ceph/src/rgw/rgw_usage.cc +++ /dev/null @@ -1,148 +0,0 @@ -// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*- -// vim: ts=8 sw=2 smarttab - -#include -#include - -#include "rgw_rados.h" -#include "rgw_usage.h" -#include "rgw_formats.h" - -using namespace std; - - -static void dump_usage_categories_info(Formatter *formatter, const rgw_usage_log_entry& entry, map *categories) -{ - formatter->open_array_section("categories"); - map::const_iterator uiter; - for (uiter = entry.usage_map.begin(); uiter != entry.usage_map.end(); ++uiter) { - if (categories && !categories->empty() && !categories->count(uiter->first)) - continue; - const rgw_usage_data& usage = uiter->second; - formatter->open_object_section("entry"); - formatter->dump_string("category", uiter->first); - formatter->dump_int("bytes_sent", usage.bytes_sent); - formatter->dump_int("bytes_received", usage.bytes_received); - formatter->dump_int("ops", usage.ops); - formatter->dump_int("successful_ops", usage.successful_ops); - formatter->close_section(); // entry - } - formatter->close_section(); // categories -} - -int RGWUsage::show(RGWRados *store, rgw_user& uid, uint64_t start_epoch, - uint64_t end_epoch, bool show_log_entries, bool show_log_sum, - map *categories, - RGWFormatterFlusher& flusher) -{ - uint32_t max_entries = 1000; - - bool is_truncated = true; - - RGWUsageIter usage_iter; - Formatter *formatter = flusher.get_formatter(); - - map usage; - - flusher.start(0); - - formatter->open_object_section("usage"); - if (show_log_entries) { - formatter->open_array_section("entries"); - } - string last_owner; - bool user_section_open = false; - map summary_map; - while (is_truncated) { - int ret = store->read_usage(uid, start_epoch, end_epoch, max_entries, - &is_truncated, usage_iter, usage); - - if (ret == -ENOENT) { - ret = 0; - is_truncated = false; - } - - if (ret < 0) { - return ret; - } - - map::iterator iter; - for (iter = usage.begin(); iter != usage.end(); ++iter) { - const rgw_user_bucket& ub = iter->first; - const rgw_usage_log_entry& entry = iter->second; - - if (show_log_entries) { - if (ub.user.compare(last_owner) != 0) { - if (user_section_open) { - formatter->close_section(); - formatter->close_section(); - } - formatter->open_object_section("user"); - formatter->dump_string("user", ub.user); - formatter->open_array_section("buckets"); - user_section_open = true; - last_owner = ub.user; - } - formatter->open_object_section("bucket"); - formatter->dump_string("bucket", ub.bucket); - utime_t ut(entry.epoch, 0); - ut.gmtime(formatter->dump_stream("time")); - formatter->dump_int("epoch", entry.epoch); - string owner = entry.owner.to_str(); - string payer = entry.payer.to_str(); - formatter->dump_string("owner", owner); - if (!payer.empty() && payer != owner) { - formatter->dump_string("payer", payer); - } - dump_usage_categories_info(formatter, entry, categories); - formatter->close_section(); // bucket - flusher.flush(); - } - - summary_map[ub.user].aggregate(entry, categories); - } - } - if (show_log_entries) { - if (user_section_open) { - formatter->close_section(); // buckets - formatter->close_section(); //user - } - formatter->close_section(); // entries - } - - if (show_log_sum) { - formatter->open_array_section("summary"); - map::iterator siter; - for (siter = summary_map.begin(); siter != summary_map.end(); ++siter) { - const rgw_usage_log_entry& entry = siter->second; - formatter->open_object_section("user"); - formatter->dump_string("user", siter->first); - dump_usage_categories_info(formatter, entry, categories); - rgw_usage_data total_usage; - entry.sum(total_usage, *categories); - formatter->open_object_section("total"); - formatter->dump_int("bytes_sent", total_usage.bytes_sent); - formatter->dump_int("bytes_received", total_usage.bytes_received); - formatter->dump_int("ops", total_usage.ops); - formatter->dump_int("successful_ops", total_usage.successful_ops); - formatter->close_section(); // total - - formatter->close_section(); // user - - flusher.flush(); - } - - formatter->close_section(); // summary - } - - formatter->close_section(); // usage - flusher.flush(); - - return 0; -} - -int RGWUsage::trim(RGWRados *store, rgw_user& uid, uint64_t start_epoch, - uint64_t end_epoch) -{ - return store->trim_usage(uid, start_epoch, end_epoch); -}