]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
radosgw-admin: add --inject-error-code to customize injected error
authorCasey Bodley <cbodley@redhat.com>
Thu, 10 Feb 2022 19:31:26 +0000 (14:31 -0500)
committerAdam C. Emerson <aemerson@redhat.com>
Thu, 28 Apr 2022 20:01:28 +0000 (16:01 -0400)
Signed-off-by: Casey Bodley <cbodley@redhat.com>
src/rgw/rgw_admin.cc

index c94e7193d0370dfc4521caebc2079a23e1997e2f..51d9a3080c2a8ce8a6db34dc5dcb32c126baa8fe 100644 (file)
@@ -3642,6 +3642,7 @@ int main(int argc, const char **argv)
   ceph::timespan opt_timeout_sec = std::chrono::seconds(60);
 
   std::optional<std::string> inject_error_at;
+  std::optional<int> inject_error_code;
   std::optional<std::string> inject_abort_at;
 
   rgw::zone_features::set enable_features;
@@ -4124,6 +4125,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)) {
@@ -7736,7 +7739,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{});
     }