"get pool parameter <var>", "osd", "r", "cli,rest")
COMMAND("osd pool set " \
"name=pool,type=CephPoolname " \
- "name=var,type=CephChoices,strings=size|min_size|crash_replay_interval|pg_num|pgp_num|crush_ruleset|hashpspool|hit_set_type|hit_set_period|hit_set_count|hit_set_fpp " \
+ "name=var,type=CephChoices,strings=size|min_size|crash_replay_interval|pg_num|pgp_num|crush_ruleset|hashpspool|hit_set_type|hit_set_period|hit_set_count|hit_set_fpp|debug_fake_ec_pool " \
"name=val,type=CephString", \
"set pool parameter <var> to <val>", "osd", "rw", "cli,rest")
// 'val' is a CephString because it can include a unit. Perhaps
}
BloomHitSet::Params *bloomp = static_cast<BloomHitSet::Params*>(p.hit_set_params.impl.get());
bloomp->set_fpp(f);
+ } else if (var == "debug_fake_ec_pool") {
+ if (val == "true" || (interr.empty() && n == 1)) {
+ p.flags |= pg_pool_t::FLAG_DEBUG_FAKE_EC_POOL;
+ }
+ ss << " pool " << pool << " set debug_fake_ec_pool";
} else {
ss << "unrecognized variable '" << var << "'";
return -EINVAL;
enum {
FLAG_HASHPSPOOL = 1, // hash pg seed and pool together (instead of adding)
FLAG_FULL = 2, // pool is full
+ FLAG_DEBUG_FAKE_EC_POOL = 1<<2, // require ReplicatedPG to act like an EC pg
};
static const char *get_flag_name(int f) {
switch (f) {
case FLAG_HASHPSPOOL: return "hashpspool";
case FLAG_FULL: return "full";
+ case FLAG_DEBUG_FAKE_EC_POOL: return "require_local_rollback";
default: return "???";
}
}
void dump(Formatter *f) const;
uint64_t get_flags() const { return flags; }
+
+ /// This method will later return true for ec pools as well
+ bool ec_pool() const {
+ return flags & FLAG_DEBUG_FAKE_EC_POOL;
+ }
+
unsigned get_type() const { return type; }
unsigned get_size() const { return size; }
unsigned get_min_size() const { return min_size; }