Merge pull request #8840 from tchaikov/wip-opt-u32

common/config: cast OPT_U32 options using uint32_t

Reviewed-by: Sage Weil <sage@redhat.com>
This commit is contained in:
Sage Weil 2016-05-20 12:57:53 -04:00
commit c46b4cac14
5 changed files with 13 additions and 8 deletions

View File

@ -196,11 +196,14 @@ function test_mon_injectargs()
check_response "osd_enable_op_tracker = 'true'"
ceph tell osd.0 injectargs -- '--osd_enable_op_tracker --osd_op_history_duration 600' >& $TMPFILE || return 1
check_response "osd_enable_op_tracker = 'true' osd_op_history_duration = '600'"
ceph tell osd.0 injectargs -- '--osd_op_history_duration' >& $TMPFILE || return 1
check_response "Option --osd_op_history_duration requires an argument"
expect_failure $TMPDIR "Option --osd_op_history_duration requires an argument" \
ceph tell osd.0 injectargs -- '--osd_op_history_duration'
ceph tell osd.0 injectargs -- '--mon-lease 6' >& $TMPFILE || return 1
check_response "mon_lease = '6' (unchangeable)"
# osd-scrub-auto-repair-num-errors is an OPT_U32, so -1 is not a valid setting
expect_false ceph tell osd.0 injectargs --osd-scrub-auto-repair-num-errors -1
}
function test_mon_injectargs_SI()
@ -228,6 +231,7 @@ function test_mon_injectargs_SI()
ceph tell mon.a injectargs '--mon_pg_warn_min_objects 1G'
expect_config_value "mon.a" "mon_pg_warn_min_objects" 1073741824
expect_false ceph tell mon.a injectargs '--mon_pg_warn_min_objects 10F'
expect_false ceph tell mon.a injectargs '--mon_globalid_prealloc -1'
$SUDO ceph daemon mon.a config set mon_pg_warn_min_objects $initial_value
}
@ -734,6 +738,7 @@ function test_mds_tell()
for mds_gid in $old_mds_gids ; do
ceph tell mds.$mds_gid injectargs "--debug-mds 20"
done
expect_false ceph tell mds.a injectargs mds_max_file_recover -1
# Test respawn by rank
ceph tell mds.0 respawn
@ -1673,11 +1678,12 @@ function test_osd_bench()
# max block size: 2097152 # 2MB
# duration: 10 # 10 seconds
ceph tell osd.0 injectargs "\
local args="\
--osd-bench-duration 10 \
--osd-bench-max-block-size 2097152 \
--osd-bench-large-size-max-throughput 10485760 \
--osd-bench-small-size-max-iops 10"
ceph tell osd.0 injectargs ${args## }
# anything with a bs larger than 2097152 must fail
expect_false ceph tell osd.0 bench 1 2097153

View File

@ -998,7 +998,7 @@ int md_config_t::set_val_raw(const char *val, const config_option *opt)
return 0;
case OPT_U32: {
std::string err;
int f = strict_si_cast<int>(val, &err);
int f = strict_si_cast<uint32_t>(val, &err);
if (!err.empty())
return -EINVAL;
*(uint32_t*)opt->conf_ptr(this) = f;

View File

@ -186,10 +186,9 @@ T strict_si_cast(const char *str, std::string *err)
}
template int strict_si_cast<int>(const char *str, std::string *err);
template long long strict_si_cast<long long>(const char *str, std::string *err);
template uint64_t strict_si_cast<uint64_t>(const char *str, std::string *err);
template uint32_t strict_si_cast<uint32_t>(const char *str, std::string *err);
uint64_t strict_sistrtoll(const char *str, std::string *err)
{

View File

@ -769,7 +769,7 @@ int MDSDaemon::_handle_command(
string args = argsvec.front();
for (vector<string>::iterator a = ++argsvec.begin(); a != argsvec.end(); ++a)
args += " " + *a;
cct->_conf->injectargs(args, &ss);
r = cct->_conf->injectargs(args, &ss);
} else if (prefix == "exit") {
// We will send response before executing
ss << "Exiting...";

View File

@ -5463,7 +5463,7 @@ void OSD::do_command(Connection *con, ceph_tid_t tid, vector<string>& cmd, buffe
for (vector<string>::iterator a = ++argsvec.begin(); a != argsvec.end(); ++a)
args += " " + *a;
osd_lock.Unlock();
cct->_conf->injectargs(args, &ss);
r = cct->_conf->injectargs(args, &ss);
osd_lock.Lock();
}
else if (prefix == "cluster_log") {