]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mon/OSDMonitor: slightly nice error output if set-device-class failed 15875/head
authorxie xingguo <xie.xingguo@zte.com.cn>
Fri, 23 Jun 2017 07:00:04 +0000 (15:00 +0800)
committerxie xingguo <xie.xingguo@zte.com.cn>
Fri, 23 Jun 2017 10:37:36 +0000 (18:37 +0800)
Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
src/crush/CrushWrapper.cc
src/crush/CrushWrapper.h
src/mon/OSDMonitor.cc

index 3a669e959f0235103c32bb2551e8d8bcdace17e5..650b2cfe04a494748514f19091eeab772b591d34 100644 (file)
@@ -1537,21 +1537,24 @@ int CrushWrapper::bucket_remove_item(crush_bucket *bucket, int item)
   return crush_bucket_remove_item(crush, bucket, item);
 }
 
-int CrushWrapper::update_device_class(CephContext *cct, int id, const string& class_name, const string& name)
+int CrushWrapper::update_device_class(int id,
+                                      const string& class_name,
+                                      const string& name,
+                                      ostream *ss)
 {
   int class_id = get_class_id(class_name);
   if (class_id < 0) {
-    ldout(cct, 0) << "update_device_class class " << class_name << " does not exist " << dendl;
+    *ss << "class " << class_name << " does not exist";
     return -ENOENT;
   }
   if (id < 0) {
-    ldout(cct, 0) << "update_device_class " << name << " id " << id << " is negative " << dendl;
+    *ss << name << " id " << id << " is negative";
     return -EINVAL;
   }
   assert(item_exists(id));
 
   if (class_map.count(id) != 0 && class_map[id] == class_id) {
-    ldout(cct, 5) << "update_device_class " << name << " already set to class " << class_name << dendl;
+    *ss << name << " already set to class " << class_name;
     return 0;
   }
 
index 2a02fd0c501d1b1252f8b9af8afc86c3812f3cd1..77fb35048bbc86ff44661614eff7fd63dedcdbf8 100644 (file)
@@ -1191,7 +1191,7 @@ public:
     have_uniform_rules = !has_legacy_rulesets();
   }
 
-  int update_device_class(CephContext *cct, int id, const string& class_name, const string& name);
+  int update_device_class(int id, const string& class_name, const string& name, ostream *ss);
   int device_class_clone(int original, int device_class, int *clone);
   bool class_is_in_use(int class_id);
   int populate_classes();
index ee49e404d67bebbbb7166162fb3e0813c4f172fa..09d3d1905723893c29b612ea63df6639f867b49e 100644 (file)
@@ -7070,8 +7070,7 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op,
 
     dout(5) << action << " crush item id " << osdid << " name '"
            << name << "' device_class " << device_class << dendl;
-    err = newcrush.update_device_class(g_ceph_context, osdid, device_class, name);
-
+    err = newcrush.update_device_class(osdid, device_class, name, &ss);
     if (err < 0)
       goto reply;