a bogus value (for example, when rados_watch() returns an error and
handle is not defined).
+* The structure of the formatted 'pg stat' command is changed for the
+ portion that counts states by name to avoid using the '+' character
+ (which appears in state names) as part of the XML token (it is not
+ legal).
+
std::stringstream ss;
if (f)
- f->open_object_section("num_pg_by_state");
+ f->open_array_section("num_pg_by_state");
for (ceph::unordered_map<int,int>::const_iterator p = num_pg_by_state.begin();
p != num_pg_by_state.end();
++p) {
- if (f)
- f->dump_unsigned(pg_state_string(p->first).c_str(), p->second);
+ if (f) {
+ f->open_object_section("state");
+ f->dump_string("name", pg_state_string(p->first));
+ f->dump_unsigned("num", p->second);
+ f->close_section();
+ }
if (p != num_pg_by_state.begin())
ss << ", ";
ss << p->second << " " << pg_state_string(p->first);