config_key_rados = std::make_unique<RGWSI_ConfigKey_RADOS>(cct);
datalog_rados = std::make_unique<RGWDataChangesLog>(driver);
mdlog = std::make_unique<RGWSI_MDLog>(cct, run_sync, cfgstore);
- notify = std::make_unique<RGWSI_Notify>(cct);
+ if (have_cache) {
+ notify = std::make_unique<RGWSI_Notify>(cct);
+ }
zone = std::make_unique<RGWSI_Zone>(cct, cfgstore, site);
zone_utils = std::make_unique<RGWSI_ZoneUtils>(cct);
quota = std::make_unique<RGWSI_Quota>(cct);
config_key_rados->init(driver->getRados()->get_rados_handle());
mdlog->init(driver->getRados()->get_rados_handle(), zone.get(), sysobj.get(),
cls.get(), async_processor.get());
- notify->init(zone.get(), driver->getRados()->get_rados_handle());
+ if (notify) {
+ notify->init(zone.get(), driver->getRados()->get_rados_handle());
+ }
zone->init(sysobj.get(), driver->getRados()->get_rados_handle(),
sync_modules.get(), bucket_sync_sobj.get());
zone_utils->init(driver->getRados()->get_rados_handle(), zone.get());
can_shutdown = true;
int r = 0;
- if (!raw) {
+
+ if (notify) {
r = notify->start(y, dpp);
if (r < 0) {
ldpp_dout(dpp, 0) << "ERROR: failed to start notify service (" << cpp_strerror(-r) << dendl;
return r;
}
+ }
+ if (!raw) {
r = zone->start(y, dpp);
if (r < 0) {
ldpp_dout(dpp, 0) << "ERROR: failed to start zone service (" << cpp_strerror(-r) << dendl;
datalog_rados.reset();
user_rados->shutdown();
sync_modules->shutdown();
- notify->shutdown();
+ if (notify) {
+ notify->shutdown();
+ }
mdlog->shutdown();
config_key_rados->shutdown();
cls->shutdown();
sysobj->shutdown();
sysobj_core->shutdown();
- notify->shutdown();
if (sysobj_cache) {
sysobj_cache->shutdown();
}