}
if (!info.dest.push_endpoint.empty() && info.dest.persistent &&
!info.dest.persistent_queue.empty()) {
- r = rgw::notify::add_persistent_topic(info.dest.persistent_queue, y);
+ librados::IoCtx ioctx;
+ r = rgw_init_ioctx(dpp, &rados, zone.notif_pool, ioctx, true, false);
+ if (r >= 0) {
+ r = rgw::notify::add_persistent_topic(dpp, ioctx, info.dest.persistent_queue, y);
+ }
if (r < 0) {
ldpp_dout(dpp, 1) << "ERROR: failed to create queue for persistent topic "
<< info.dest.persistent_queue << " with: " << cpp_strerror(r) << dendl;
if (!dest.push_endpoint.empty() && dest.persistent &&
!dest.persistent_queue.empty()) {
// delete persistent topic queue
- r = rgw::notify::remove_persistent_topic(dest.persistent_queue, y);
+ librados::IoCtx ioctx;
+ r = rgw_init_ioctx(dpp, &rados, zone.notif_pool, ioctx, true, false);
+ if (r >= 0) {
+ r = rgw::notify::remove_persistent_topic(dpp, ioctx, dest.persistent_queue, y);
+ }
if (r < 0 && r != -ENOENT) {
ldpp_dout(dpp, 1) << "Failed to delete queue for persistent topic: "
<< name << " with error: " << r << dendl;
const rgw_pubsub_dest& dest = topic.dest;
if (!dest.push_endpoint.empty() && dest.persistent &&
!dest.persistent_queue.empty()) {
- ret = rgw::notify::remove_persistent_topic(dest.persistent_queue, y);
+ ret = driver->remove_persistent_topic(dpp, y, dest.persistent_queue);
if (ret < 0 && ret != -ENOENT) {
ldpp_dout(dpp, 1) << "WARNING: failed to remove queue for "
"persistent topic: " << cpp_strerror(ret) << dendl;
if (!dest.push_endpoint.empty() && dest.persistent &&
!dest.persistent_queue.empty()) {
- ret = rgw::notify::remove_persistent_topic(dest.persistent_queue, y);
+ ret = driver->remove_persistent_topic(dpp, y, dest.persistent_queue);
if (ret < 0 && ret != -ENOENT) {
ldpp_dout(dpp, 1) << "WARNING: failed to remove queue for "
"persistent topic: " << cpp_strerror(ret) << dendl;
dest.persistent_queue = string_cat_reserve(
get_account_or_tenant(s->owner.id), ":", topic_name);
- op_ret = rgw::notify::add_persistent_topic(dest.persistent_queue, s->yield);
+ op_ret = driver->add_persistent_topic(this, y, dest.persistent_queue);
if (op_ret < 0) {
ldpp_dout(this, 1) << "CreateTopic Action failed to create queue for "
"persistent topics. error:"
dest.persistent_queue = string_cat_reserve(
get_account_or_tenant(s->owner.id), ":", topic_name);
- op_ret = rgw::notify::add_persistent_topic(dest.persistent_queue, s->yield);
+ op_ret = driver->add_persistent_topic(this, y, dest.persistent_queue);
if (op_ret < 0) {
ldpp_dout(this, 4)
<< "SetTopicAttributes Action failed to create queue for "
}
} else if (already_persistent) {
// changing the persistent topic to non-persistent.
- op_ret = rgw::notify::remove_persistent_topic(result.dest.persistent_queue, s->yield);
+ op_ret = driver->remove_persistent_topic(this, y, result.dest.persistent_queue);
if (op_ret != -ENOENT && op_ret < 0) {
ldpp_dout(this, 4) << "SetTopicAttributes Action failed to remove queue "
"for persistent topics. error:"