And implement dump_rules() using dump_rule(). The indentiation and
variable names are intentionaly left as is to not confuse code being
moved around and the code changes.
Signed-off-by: Loic Dachary <loic@dachary.org>
for (int i=0; i<get_max_rules(); i++) {
if (!rule_exists(i))
continue;
+ dump_rule(i, f);
+ }
+}
+
+void CrushWrapper::dump_rule(int i, Formatter *f) const
+{
f->open_object_section("rule");
f->dump_int("rule_id", i);
if (get_rule_name(i))
}
f->close_section();
f->close_section();
- }
}
void CrushWrapper::list_rules(Formatter *f) const
void decode_crush_bucket(crush_bucket** bptr, bufferlist::iterator &blp);
void dump(Formatter *f) const;
void dump_rules(Formatter *f) const;
+ void dump_rule(int ruleset, Formatter *f) const;
void dump_tunables(Formatter *f) const;
void list_rules(Formatter *f) const;
void dump_tree(const vector<__u32>& w, ostream *out, Formatter *f) const;
EXPECT_EQ(0, ss.str().find("<rule><rule_id>0</rule_id><rule_name>NAME</rule_name>"));
}
+ {
+ Formatter *f = new_formatter("xml");
+ c->dump_rule(ruleset, f);
+ stringstream ss;
+ f->flush(ss);
+ delete f;
+ EXPECT_EQ(0, ss.str().find("<rule><rule_id>0</rule_id><rule_name>NAME</rule_name>"));
+ }
+
delete c;
}