]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
mon: FSCommands gets pool stats via PGService
authorGreg Farnum <gfarnum@redhat.com>
Fri, 17 Mar 2017 22:41:14 +0000 (15:41 -0700)
committerSage Weil <sage@redhat.com>
Fri, 2 Jun 2017 16:59:13 +0000 (12:59 -0400)
Signed-off-by: Greg Farnum <gfarnum@redhat.com>
src/mon/FSCommands.cc
src/mon/PGStatService.h

index fb7fae3afd644aade0f3888643c50f8d8baa6a6c..6dc6eed7fd23d2eeb881601bdaf50d8cc1ee0fb1 100644 (file)
@@ -102,11 +102,14 @@ class FsNewHandler : public FileSystemCommandHandler
 
     string force;
     cmd_getval(g_ceph_context,cmdmap, "force", force);
-    int64_t metadata_num_objects = mon->pgservice.get_pool_stat(metadata).stats.sum.num_objects;
-    if (force != "--force" && metadata_num_objects > 0) {
-      ss << "pool '" << metadata_name
-        << "' already contains some objects. Use an empty pool instead.";
-      return -EINVAL;
+    const pool_stat_t *stat = mon->pgservice.get_pool_stat(metadata);
+    if (stat) {
+      int64_t metadata_num_objects = stat->stats.sum.num_objects;
+      if (force != "--force" && metadata_num_objects > 0) {
+       ss << "pool '" << metadata_name
+          << "' already contains some objects. Use an empty pool instead.";
+       return -EINVAL;
+      }
     }
 
     string data_name;
index 5da2cce8f641a75737ccb68eca35e8c82e6aa315..d3c6516542ca727664b76253fd1c49e0251e5f1b 100644 (file)
@@ -42,10 +42,13 @@ public:
   void reset(const PGMap& o) {
     parent = o;
   }
-  const pool_stat_t& get_pool_stat(int poolid) const {
+
+  const pool_stat_t* get_pool_stat(int poolid) const {
     auto i = parent.pg_pool_sum.find(poolid);
-    assert(i != parent.pg_pool_sum.end());
-    return i->second;
+    if (i != parent.pg_pool_sum.end()) {
+      return &i->second;
+    }
+    return NULL;
   }
 };