| Test Case | Description | Steps | Expected Result | Pass/Fail |
|---|---|---|---|---|
| Create Sharded Topic | Verify sharded topic creation | 1. Create topic with sharding enabled 2. Specify shard count 3. Validate creation |
Topic created with correct shard count | Pass |
| Delete Sharded Topic | Verify sharded topic deletion | 1. Create sharded topic 2. Delete topic 3. Verify cleanup |
Topic and all shards deleted completely | Pass |
| Modify Persistent to Non-Persistent | Convert topic persistence type | 1. Create persistent topic 2. Modify to non-persistent 3. Verify behavior |
Topic converted successfully | Pass |
| Change Shard Count | Modify number of shards | 1. Create topic with N shards 2. Change config to M shards 3. Apply changes |
Shard count updated correctly | Pass |
| Bucket Notification Tests | Run complete test suite | 1. Execute bucket notification test suite 2. Verify all tests pass |
All existing tests pass with sharded queues | Failing Tests unrelated to sharded uptake |
Test-Suite Summary for test_bn:
============================================================== short test summary info ==============================================================
============================= test session starts ==============================
platform linux -- Python 3.9.21, pytest-8.4.1, pluggy-1.5.0 -- /bin/python3
cachedir: .pytest_cache
benchmark: 4.0.0 (defaults: timer=time.perf_counter disable_gc=False min_rounds=5 min_time=0.000005 max_time=1.0 calibration_precision=10 warmup=False warmup_iterations=100000)
rootdir: /home/adarsh9401/ceph-ws/my-fork/ceph/src/test/rgw/bucket_notification
plugins: benchmark-4.0.0
collecting ... collected 74 items
test_bn.py::test_ps_s3_topic_on_master PASSED [ 1%]
test_bn.py::test_ps_s3_topic_admin_on_master PASSED [ 2%]
test_bn.py::test_notification_configuration_admin PASSED [ 4%]
test_bn.py::test_ps_s3_topic_with_secret_on_master PASSED [ 5%]
test_bn.py::test_notification_configuration PASSED [ 6%]
test_bn.py::test_ps_s3_notification_on_master_empty_config PASSED [ 8%]
test_bn.py::test_ps_s3_notification_filter_on_master PASSED [ 9%]
test_bn.py::test_ps_s3_notification_errors_on_master PASSED [ 10%]
test_bn.py::test_notification_push_amqp PASSED [ 12%]
test_bn.py::test_ps_s3_notification_push_amqp_idleness_check PASSED [ 13%]
test_bn.py::test_notification_push_kafka PASSED [ 14%]
test_bn.py::test_notification_push_kafka_multiple_brokers_override PASSED [ 16%]
test_bn.py::test_notification_push_kafka_multiple_brokers_append FAILED [ 17%]
test_bn.py::test_ps_s3_notification_multi_delete_on_master PASSED [ 18%]
test_bn.py::test_notification_push_http PASSED [ 20%]
test_bn.py::test_notification_push_cloudevents PASSED [ 21%]
test_bn.py::test_ps_s3_opaque_data_on_master PASSED [ 22%]
test_bn.py::test_lifecycle_http PASSED [ 24%]
test_bn.py::test_lifecycle_kafka PASSED [ 25%]
test_bn.py::test_lifecycle_abort_mpu PASSED [ 27%]
test_bn.py::test_ps_s3_creation_triggers_on_master PASSED [ 28%]
test_bn.py::test_ps_s3_creation_triggers_on_master_external PASSED [ 29%]
test_bn.py::test_ps_s3_creation_triggers_on_master_ssl FAILED [ 31%]
test_bn.py::test_http_post_object_upload PASSED [ 32%]
test_bn.py::test_multipart_http PASSED [ 33%]
test_bn.py::test_multipart_kafka PASSED [ 35%]
test_bn.py::test_multipart_ampq PASSED [ 36%]
test_bn.py::test_metadata_filter_kafka PASSED [ 37%]
test_bn.py::test_metadata_filter_http PASSED [ 39%]
test_bn.py::test_metadata_filter_ampq PASSED [ 40%]
test_bn.py::test_ps_s3_metadata_on_master PASSED [ 41%]
test_bn.py::test_ps_s3_tags_on_master PASSED [ 43%]
test_bn.py::test_ps_s3_versioning_on_master PASSED [ 44%]
test_bn.py::test_ps_s3_versioned_deletion_on_master PASSED [ 45%]
test_bn.py::test_ps_s3_persistent_cleanup PASSED [ 47%]
test_bn.py::test_persistent_topic_stats_http PASSED [ 48%]
test_bn.py::test_persistent_topic_stats_kafka PASSED [ 50%]
test_bn.py::test_persistent_topic_stats_amqp PASSED [ 51%]
test_bn.py::test_persistent_topic_dump PASSED [ 52%]
test_bn.py::test_ps_s3_persistent_topic_configs_ttl PASSED [ 54%]
test_bn.py::test_ps_s3_persistent_topic_configs_max_retries PASSED [ 55%]
test_bn.py::test_ps_s3_persistent_notification_pushback PASSED [ 56%]
test_bn.py::test_ps_s3_notification_kafka_idle_behaviour PASSED [ 58%]
test_bn.py::test_ps_s3_persistent_gateways_recovery PASSED [ 59%]
test_bn.py::test_ps_s3_persistent_multiple_gateways PASSED [ 60%]
test_bn.py::test_persistent_multiple_endpoints_http PASSED [ 62%]
test_bn.py::test_persistent_multiple_endpoints_kafka PASSED [ 63%]
test_bn.py::test_ps_s3_persistent_notification_http PASSED [ 64%]
test_bn.py::test_ps_s3_persistent_notification_http_account PASSED [ 66%]
test_bn.py::test_ps_s3_persistent_notification_amqp PASSED [ 67%]
test_bn.py::test_ps_s3_persistent_notification_kafka PASSED [ 68%]
test_bn.py::test_ps_s3_persistent_notification_large PASSED [ 70%]
test_bn.py::test_ps_s3_topic_update PASSED [ 71%]
test_bn.py::test_ps_s3_notification_update PASSED [ 72%]
test_bn.py::test_ps_s3_multiple_topics_notification PASSED [ 74%]
test_bn.py::test_ps_s3_list_topics_migration PASSED [ 75%]
test_bn.py::test_ps_s3_list_topics PASSED [ 77%]
test_bn.py::test_ps_s3_list_topics_v1 PASSED [ 78%]
test_bn.py::test_ps_s3_topic_permissions_same_tenant PASSED [ 79%]
test_bn.py::test_ps_s3_topic_permissions_cross_tenant PASSED [ 81%]
test_bn.py::test_ps_s3_topic_no_permissions PASSED [ 82%]
test_bn.py::test_ps_s3_notification_push_kafka_security_ssl FAILED [ 83%]
test_bn.py::test_ps_s3_notification_push_kafka_security_ssl_sasl FAILED [ 85%]
test_bn.py::test_ps_s3_notification_push_kafka_security_ssl_sasl_attrs FAILED [ 86%]
test_bn.py::test_ps_s3_notification_push_kafka_security_sasl FAILED [ 87%]
test_bn.py::test_ps_s3_notification_push_kafka_security_ssl_sasl_scram FAILED [ 89%]
test_bn.py::test_ps_s3_notification_push_kafka_security_sasl_scram FAILED [ 90%]
test_bn.py::test_persistent_ps_s3_reload PASSED [ 91%]
test_bn.py::test_ps_s3_data_path_v2_migration PASSED [ 93%]
test_bn.py::test_ps_s3_data_path_v2_large_migration PASSED [ 94%]
test_bn.py::test_ps_s3_data_path_v2_mixed_migration PASSED [ 95%]
test_bn.py::test_notification_caching PASSED [ 97%]
test_bn.py::test_connection_caching PASSED [ 98%]
test_bn.py::test_topic_migration_to_an_account PASSED [100%]
=========================== short test summary info ============================
FAILED test_bn.py::test_notification_push_kafka_multiple_brokers_append - Exc...
FAILED test_bn.py::test_ps_s3_creation_triggers_on_master_ssl - Exception: fa...
FAILED test_bn.py::test_ps_s3_notification_push_kafka_security_ssl - KeyError...
FAILED test_bn.py::test_ps_s3_notification_push_kafka_security_ssl_sasl - Key...
FAILED test_bn.py::test_ps_s3_notification_push_kafka_security_ssl_sasl_attrs
FAILED test_bn.py::test_ps_s3_notification_push_kafka_security_sasl - botocor...
FAILED test_bn.py::test_ps_s3_notification_push_kafka_security_ssl_sasl_scram
FAILED test_bn.py::test_ps_s3_notification_push_kafka_security_sasl_scram - b...
============ 8 failed, 66 passed, 18 warnings in 1548.15s (0:25:48) ============
| Test Case | Description | Steps | Expected Result | Pass/Fail |
|---|---|---|---|---|
| Prevent Topic Modification | Old Code modifying topics created by new RGWs during upgrade will lead to orphaned RADOS objects lying around - no functional impact | - | Following discussion, we have decided to document this. Users will be suggested to not modify new topics creating during upgrade until upgrade is done. | NA |
| Bucket Operations Routing | Old code operations route to first shard | 1. Create sharded topic (new code) 2. Perform bucket ops (old code) 3. Verify routing |
Operations enqueued to first shard | [ ] |
| Standard Bucket Tests | Run usual bucket notification tests | 1. Execute standard test suite 2. Verify compatibility |
All standard tests pass | [ ] |
| Dequeuing from first shard of topics created on new RGWs | Check if old RGWs dequeue from sharded topics | 1. Make a new topic on new RGW, link it to a bucket with notification pointing to said topic 2. Bring down topic endpoint, and put an object on said bucket. 3. Restart cluster with old RGW code, and bring up topic endpoint. |
Notification should show up on topic endpoint | Passed |