From: xie xingguo Date: Fri, 23 Jun 2017 07:00:04 +0000 (+0800) Subject: mon/OSDMonitor: slightly nice error output if set-device-class failed X-Git-Tag: v12.1.2~1^2~55^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=58335f1df5b875bcbede972a813367fee73af463;p=ceph.git mon/OSDMonitor: slightly nice error output if set-device-class failed Signed-off-by: xie xingguo --- diff --git a/src/crush/CrushWrapper.cc b/src/crush/CrushWrapper.cc index 3a669e959f02..650b2cfe04a4 100644 --- a/src/crush/CrushWrapper.cc +++ b/src/crush/CrushWrapper.cc @@ -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; } diff --git a/src/crush/CrushWrapper.h b/src/crush/CrushWrapper.h index 2a02fd0c501d..77fb35048bbc 100644 --- a/src/crush/CrushWrapper.h +++ b/src/crush/CrushWrapper.h @@ -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(); diff --git a/src/mon/OSDMonitor.cc b/src/mon/OSDMonitor.cc index ee49e404d67b..09d3d1905723 100644 --- a/src/mon/OSDMonitor.cc +++ b/src/mon/OSDMonitor.cc @@ -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;