expect_false "ceph osd blacklist $bl/-1"
expect_false "ceph osd blacklist $bl/foo"
+ # Test `clear`
+ ceph osd blacklist add $bl
+ ceph osd blacklist ls | grep $bl
+ ceph osd blacklist clear
+ expect_false "ceph osd blacklist ls | grep $bl"
+
#
# osd crush
#
"name=auid,type=CephInt,req=false", \
"list pools", "osd", "r", "cli,rest")
COMMAND("osd blacklist ls", "show blacklisted clients", "osd", "r", "cli,rest")
+COMMAND("osd blacklist clear", "clear all blacklisted clients", "osd", "rw",
+ "cli,rest")
COMMAND("osd crush rule list", "list crush rules", "osd", "r", "cli,rest")
COMMAND("osd crush rule ls", "list crush rules", "osd", "r", "cli,rest")
COMMAND("osd crush rule dump " \
get_last_committed() + 1));
return true;
+ } else if (prefix == "osd blacklist clear") {
+ pending_inc.new_blacklist.clear();
+ std::list<std::pair<entity_addr_t,utime_t > > blacklist;
+ osdmap.get_blacklist(&blacklist);
+ for (const auto &entry : blacklist) {
+ pending_inc.old_blacklist.push_back(entry.first);
+ }
+ ss << " removed all blacklist entries";
+ getline(ss, rs);
+ wait_for_finished_proposal(op, new Monitor::C_Command(mon, op, 0, rs,
+ get_last_committed() + 1));
+ return true;
} else if (prefix == "osd blacklist") {
string addrstr;
cmd_getval(g_ceph_context, cmdmap, "addr", addrstr);