diff options
author | Yuval Lifshitz <ylifshit@ibm.com> | 2024-12-19 12:54:54 +0100 |
---|---|---|
committer | Yuval Lifshitz <ylifshit@ibm.com> | 2025-01-13 07:38:49 +0100 |
commit | 462edf385d0c6db49a0bf0ef8432133d7f6c6bb8 (patch) | |
tree | b9ec5855c85f87e34d4da1bc203c5687e3e968cf | |
parent | rgw/logging: support source and destination buckets on different tenants (diff) | |
download | ceph-462edf385d0c6db49a0bf0ef8432133d7f6c6bb8.tar.xz ceph-462edf385d0c6db49a0bf0ef8432133d7f6c6bb8.zip |
rgw/logging: source and log bucket must be different
Signed-off-by: Yuval Lifshitz <ylifshit@ibm.com>
-rw-r--r-- | doc/radosgw/bucket_logging.rst | 6 | ||||
-rw-r--r-- | src/rgw/rgw_rest_bucket_logging.cc | 5 |
2 files changed, 11 insertions, 0 deletions
diff --git a/doc/radosgw/bucket_logging.rst b/doc/radosgw/bucket_logging.rst index 1ac4e546a4c..df469497383 100644 --- a/doc/radosgw/bucket_logging.rst +++ b/doc/radosgw/bucket_logging.rst @@ -15,6 +15,12 @@ The log bucket can accumulate logs from multiple buckets. It is recommended to c a different "prefix" for each bucket, so that the logs of different buckets will be stored in different objects in the log bucket. +.. note:: + + - The log bucket must be created before enabling logging on a bucket + - The log bucket cannot be the same as the bucket being logged + - The log bucket cannot have logging enabled on it + .. toctree:: :maxdepth: 1 diff --git a/src/rgw/rgw_rest_bucket_logging.cc b/src/rgw/rgw_rest_bucket_logging.cc index 0e7b53120db..5689a7acc56 100644 --- a/src/rgw/rgw_rest_bucket_logging.cc +++ b/src/rgw/rgw_rest_bucket_logging.cc @@ -181,6 +181,11 @@ class RGWPutBucketLoggingOp : public RGWDefaultResponseOp { return; } const rgw_bucket target_bucket_id(target_tenant_name, target_bucket_name); + if (target_bucket_id == src_bucket_id) { + ldpp_dout(this, 1) << "ERROR: target bucket '" << target_bucket_id << "' must be different from source bucket" << dendl; + op_ret = -EINVAL; + return; + } std::unique_ptr<rgw::sal::Bucket> target_bucket; op_ret = driver->load_bucket(this, target_bucket_id, &target_bucket, y); |