From c70a1fc8827ea89741f85d938e907fcc8b4f5da0 Mon Sep 17 00:00:00 2001 From: Casey Bodley Date: Thu, 10 Feb 2022 14:31:26 -0500 Subject: [PATCH] radosgw-admin: add --inject-error-code to customize injected error Signed-off-by: Casey Bodley --- src/rgw/rgw_admin.cc | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/rgw/rgw_admin.cc b/src/rgw/rgw_admin.cc index 29eb00ac1b4..f98a436c7d2 100644 --- a/src/rgw/rgw_admin.cc +++ b/src/rgw/rgw_admin.cc @@ -3640,6 +3640,7 @@ int main(int argc, const char **argv) ceph::timespan opt_timeout_sec = std::chrono::seconds(60); std::optional inject_error_at; + std::optional inject_error_code; std::optional inject_abort_at; rgw::zone_features::set enable_features; @@ -4122,6 +4123,8 @@ int main(int argc, const char **argv) opt_timeout_sec = std::chrono::seconds(atoi(val.c_str())); } else if (ceph_argparse_witharg(args, i, &val, "--inject-error-at", (char*)NULL)) { inject_error_at = val; + } else if (ceph_argparse_witharg(args, i, &val, "--inject-error-code", (char*)NULL)) { + inject_error_code = atoi(val.c_str()); } else if (ceph_argparse_witharg(args, i, &val, "--inject-abort-at", (char*)NULL)) { inject_abort_at = val; } else if (ceph_argparse_binary_flag(args, i, &detail, NULL, "--detail", (char*)NULL)) { @@ -7757,7 +7760,8 @@ next: ReshardFaultInjector fault; if (inject_error_at) { - fault.inject(*inject_error_at, InjectError{-EIO, dpp()}); + const int code = -inject_error_code.value_or(EIO); + fault.inject(*inject_error_at, InjectError{code, dpp()}); } else if (inject_abort_at) { fault.inject(*inject_abort_at, InjectAbort{}); }