diff --git a/src/osd.cpp b/src/osd.cpp index 356405e3..dcd0816e 100644 --- a/src/osd.cpp +++ b/src/osd.cpp @@ -84,6 +84,7 @@ void osd_t::parse_config(blockstore_config_t & config) run_primary = config["run_primary"] != "false" && config["run_primary"] != "0" && config["run_primary"] != "no"; no_rebalance = config["no_rebalance"] == "true" || config["no_rebalance"] == "1" || config["no_rebalance"] == "yes"; no_recovery = config["no_recovery"] == "true" || config["no_recovery"] == "1" || config["no_recovery"] == "yes"; + allow_test_ops = config["allow_test_ops"] == "true" || config["allow_test_ops"] == "1" || config["allow_test_ops"] == "yes"; // Cluster configuration bind_address = config["bind_address"]; if (bind_address == "") diff --git a/src/osd.h b/src/osd.h index 96146e51..4cdd1f3d 100644 --- a/src/osd.h +++ b/src/osd.h @@ -104,7 +104,7 @@ class osd_t int bind_port, listen_backlog; // FIXME: Implement client queue depth limit int client_queue_depth = 128; - bool allow_test_ops = true; + bool allow_test_ops = false; int print_stats_interval = 3; int slow_log_interval = 10; int immediate_commit = IMMEDIATE_NONE; diff --git a/src/osd_secondary.cpp b/src/osd_secondary.cpp index bb11269a..f6c3eb11 100644 --- a/src/osd_secondary.cpp +++ b/src/osd_secondary.cpp @@ -144,10 +144,20 @@ void osd_t::exec_secondary(osd_op_t *cur_op) void osd_t::exec_show_config(osd_op_t *cur_op) { - // FIXME: Send the real config, not its source - auto cfg_copy = config; - cfg_copy["protocol_version"] = std::to_string(OSD_PROTOCOL_VERSION); - std::string cfg_str = json11::Json(cfg_copy).dump(); + // Expose sensitive configuration values so peers can check them + json11::Json::object wire_config = json11::Json::object { + { "osd_num", osd_num }, + { "protocol_version", OSD_PROTOCOL_VERSION }, + { "block_size", (uint64_t)bs_block_size }, + { "bitmap_granularity", (uint64_t)bs_bitmap_granularity }, + { "primary_enabled", run_primary }, + { "blockstore_enabled", bs ? true : false }, + { "readonly", readonly }, + { "immediate_commit", (immediate_commit == IMMEDIATE_ALL ? "all" : + (immediate_commit == IMMEDIATE_SMALL ? "small" : "none")) }, + { "lease_timeout", etcd_report_interval+(MAX_ETCD_ATTEMPTS*(2*ETCD_QUICK_TIMEOUT)+999)/1000 }, + }; + std::string cfg_str = json11::Json(wire_config).dump(); cur_op->buf = malloc_or_die(cfg_str.size()+1); memcpy(cur_op->buf, cfg_str.c_str(), cfg_str.size()+1); cur_op->iov.push_back(cur_op->buf, cfg_str.size()+1);