]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
radosgw-admin: add --inject-delay-at and --inject-delay-ms
authorCasey Bodley <cbodley@redhat.com>
Wed, 24 May 2023 17:24:52 +0000 (13:24 -0400)
committerCory Snyder <csnyder@1111systems.com>
Tue, 4 Jul 2023 09:31:59 +0000 (09:31 +0000)
Signed-off-by: Casey Bodley <cbodley@redhat.com>
src/rgw/rgw_admin.cc

index 96742ad20ba347379e750985f16a5b76353d362c..fbb0b14f5ef0275f50cc15510691b067a3e8871a 100644 (file)
@@ -3527,6 +3527,8 @@ int main(int argc, const char **argv)
   std::optional<std::string> inject_error_at;
   std::optional<int> inject_error_code;
   std::optional<std::string> inject_abort_at;
+  std::optional<std::string> inject_delay_at;
+  ceph::timespan inject_delay = std::chrono::milliseconds(2000);
 
   rgw::zone_features::set enable_features;
   rgw::zone_features::set disable_features;
@@ -4021,6 +4023,10 @@ int main(int argc, const char **argv)
       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_witharg(args, i, &val, "--inject-delay-at", (char*)NULL)) {
+      inject_delay_at = val;
+    } else if (ceph_argparse_witharg(args, i, &val, "--inject-delay-ms", (char*)NULL)) {
+      inject_delay = std::chrono::milliseconds(atoi(val.c_str()));
     } else if (ceph_argparse_binary_flag(args, i, &detail, NULL, "--detail", (char*)NULL)) {
       // do nothing
     } else if (ceph_argparse_witharg(args, i, &val, "--context", (char*)NULL)) {
@@ -8040,6 +8046,8 @@ next:
       fault.inject(*inject_error_at, InjectError{code, dpp()});
     } else if (inject_abort_at) {
       fault.inject(*inject_abort_at, InjectAbort{});
+    } else if (inject_delay_at) {
+      fault.inject(*inject_delay_at, InjectDelay{inject_delay, dpp()});
     }
     ret = br.execute(num_shards, fault, max_entries, dpp(), null_yield,
                      verbose, &cout, formatter.get());