From: David Zafman Date: Fri, 29 Apr 2016 18:25:18 +0000 (-0700) Subject: rados: Don't bother showing list-inconsistent-* errors that aren't set X-Git-Tag: v11.0.0~708^2~1 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=a551b6bd5c4eba11c170afe63994258e7598c3d2;p=ceph-ci.git rados: Don't bother showing list-inconsistent-* errors that aren't set Signed-off-by: David Zafman --- diff --git a/src/tools/rados/rados.cc b/src/tools/rados/rados.cc index 945c3611163..3fe6fdf086b 100644 --- a/src/tools/rados/rados.cc +++ b/src/tools/rados/rados.cc @@ -1246,18 +1246,25 @@ static void dump_shard(const shard_info_t& shard, const inconsistent_obj_t& inc, Formatter &f) { - f.dump_bool("missing", shard.has_shard_missing()); if (shard.has_shard_missing()) { + f.dump_bool("missing", shard.has_shard_missing()); return; } - f.dump_bool("read_error", shard.has_read_error()); - f.dump_bool("data_digest_mismatch", shard.has_data_digest_mismatch()); - f.dump_bool("omap_digest_mismatch", shard.has_omap_digest_mismatch()); - f.dump_bool("size_mismatch", shard.has_size_mismatch()); + if (shard.has_read_error()) + f.dump_bool("read_error", shard.has_read_error()); + if (shard.has_data_digest_mismatch()) + f.dump_bool("data_digest_mismatch", shard.has_data_digest_mismatch()); + if (shard.has_omap_digest_mismatch()) + f.dump_bool("omap_digest_mismatch", shard.has_omap_digest_mismatch()); + if (shard.has_size_mismatch()) + f.dump_bool("size_mismatch", shard.has_size_mismatch()); if (!shard.has_read_error()) { - f.dump_bool("data_digest_mismatch_oi", shard.has_data_digest_mismatch_oi()); - f.dump_bool("omap_digest_mismatch_oi", shard.has_omap_digest_mismatch_oi()); - f.dump_bool("size_mismatch_oi", shard.has_size_mismatch_oi()); + if (shard.has_data_digest_mismatch_oi()) + f.dump_bool("data_digest_mismatch_oi", shard.has_data_digest_mismatch_oi()); + if (shard.has_omap_digest_mismatch_oi()) + f.dump_bool("omap_digest_mismatch_oi", shard.has_omap_digest_mismatch_oi()); + if (shard.has_size_mismatch_oi()) + f.dump_bool("size_mismatch_oi", shard.has_size_mismatch_oi()); } f.dump_unsigned("size", shard.size); if (shard.omap_digest_present) { @@ -1279,8 +1286,10 @@ static void dump_shard(const shard_info_t& shard, } f.close_section(); } - f.dump_bool("attr_missing", shard.has_attr_missing()); - f.dump_bool("attr_unexpected", shard.has_attr_unexpected()); + if (shard.has_attr_missing()) + f.dump_bool("attr_missing", shard.has_attr_missing()); + if (shard.has_attr_unexpected()) + f.dump_bool("attr_unexpected", shard.has_attr_unexpected()); } static void dump_object_id(const object_id_t& object, @@ -1308,13 +1317,20 @@ static void dump_inconsistent(const inconsistent_obj_t& inc, f.open_object_section("object"); dump_object_id(inc.object, f); f.close_section(); - f.dump_bool("missing", inc.has_shard_missing()); - f.dump_bool("stat_err", inc.has_stat_error()); - f.dump_bool("read_err", inc.has_read_error()); - f.dump_bool("data_digest_mismatch", inc.has_data_digest_mismatch()); - f.dump_bool("omap_digest_mismatch", inc.has_omap_digest_mismatch()); - f.dump_bool("size_mismatch", inc.has_size_mismatch()); - f.dump_bool("attr_mismatch", inc.has_attr_mismatch()); + if (inc.has_shard_missing()) + f.dump_bool("missing", inc.has_shard_missing()); + if (inc.has_stat_error()) + f.dump_bool("stat_err", inc.has_stat_error()); + if (inc.has_read_error()) + f.dump_bool("read_err", inc.has_read_error()); + if (inc.has_data_digest_mismatch()) + f.dump_bool("data_digest_mismatch", inc.has_data_digest_mismatch()); + if (inc.has_omap_digest_mismatch()) + f.dump_bool("omap_digest_mismatch", inc.has_omap_digest_mismatch()); + if (inc.has_size_mismatch()) + f.dump_bool("size_mismatch", inc.has_size_mismatch()); + if (inc.has_attr_mismatch()) + f.dump_bool("attr_mismatch", inc.has_attr_mismatch()); f.open_array_section("shards"); for (auto osd_shard : inc.shards) { f.open_object_section("shard"); @@ -1329,17 +1345,25 @@ static void dump_inconsistent(const inconsistent_snapset_t& inc, Formatter &f) { dump_object_id(inc.object, f); - f.dump_bool("ss_attr_missing", inc.ss_attr_missing()); - f.dump_bool("ss_attr_corrupted", inc.ss_attr_corrupted()); - f.dump_bool("oi_attr_missing", inc.oi_attr_missing()); - f.dump_bool("oi_attr_corrupted", inc.oi_attr_corrupted()); - f.dump_bool("snapset_mismatch", inc.snapset_mismatch()); - f.dump_bool("head_mismatch", inc.head_mismatch()); - f.dump_bool("headless", inc.headless()); - f.dump_bool("size_mismatch", inc.size_mismatch()); - - f.dump_bool("extra_clones", inc.extra_clones()); + if (inc.ss_attr_missing()) + f.dump_bool("ss_attr_missing", inc.ss_attr_missing()); + if (inc.ss_attr_corrupted()) + f.dump_bool("ss_attr_corrupted", inc.ss_attr_corrupted()); + if (inc.oi_attr_missing()) + f.dump_bool("oi_attr_missing", inc.oi_attr_missing()); + if (inc.oi_attr_corrupted()) + f.dump_bool("oi_attr_corrupted", inc.oi_attr_corrupted()); + if (inc.snapset_mismatch()) + f.dump_bool("snapset_mismatch", inc.snapset_mismatch()); + if (inc.head_mismatch()) + f.dump_bool("head_mismatch", inc.head_mismatch()); + if (inc.headless()) + f.dump_bool("headless", inc.headless()); + if (inc.size_mismatch()) + f.dump_bool("size_mismatch", inc.size_mismatch()); + if (inc.extra_clones()) { + f.dump_bool("extra_clones", inc.extra_clones()); f.open_array_section("extra clones"); for (auto snap : inc.clones) { f.dump_unsigned("snap", snap); @@ -1347,8 +1371,8 @@ static void dump_inconsistent(const inconsistent_snapset_t& inc, f.close_section(); } - f.dump_bool("clone_missing", inc.clone_missing()); if (inc.clone_missing()) { + f.dump_bool("clone_missing", inc.clone_missing()); f.open_array_section("missing"); for (auto snap : inc.missing) { f.dump_unsigned("snap", snap);