#define dout_subsys ceph_subsys_rgw
-int RGWServices_Shared::init(CephContext *cct,
- bool have_cache)
+RGWServices_Def::RGWServices_Def() = default;
+RGWServices_Def::~RGWServices_Def() = default;
+
+int RGWServices_Def::init(CephContext *cct,
+ bool have_cache)
{
- finisher = std::make_shared<RGWSI_Finisher>(cct);
- notify = std::make_shared<RGWSI_Notify>(cct);
- rados = std::make_shared<RGWSI_RADOS>(cct);
- zone = std::make_shared<RGWSI_Zone>(cct);
- zone_utils = std::make_shared<RGWSI_ZoneUtils>(cct);
- quota = std::make_shared<RGWSI_Quota>(cct);
- sync_modules = std::make_shared<RGWSI_SyncModules>(cct);
- sysobj = std::make_shared<RGWSI_SysObj>(cct);
- sysobj_core = std::make_shared<RGWSI_SysObj_Core>(cct);
+ finisher = std::make_unique<RGWSI_Finisher>(cct);
+ notify = std::make_unique<RGWSI_Notify>(cct);
+ rados = std::make_unique<RGWSI_RADOS>(cct);
+ zone = std::make_unique<RGWSI_Zone>(cct);
+ zone_utils = std::make_unique<RGWSI_ZoneUtils>(cct);
+ quota = std::make_unique<RGWSI_Quota>(cct);
+ sync_modules = std::make_unique<RGWSI_SyncModules>(cct);
+ sysobj = std::make_unique<RGWSI_SysObj>(cct);
+ sysobj_core = std::make_unique<RGWSI_SysObj_Core>(cct);
if (have_cache) {
- sysobj_cache = std::make_shared<RGWSI_SysObj_Cache>(cct);
+ sysobj_cache = std::make_unique<RGWSI_SysObj_Cache>(cct);
}
finisher->init();
- notify->init(zone, rados, finisher);
+ notify->init(zone.get(), rados.get(), finisher.get());
rados->init();
- zone->init(sysobj, rados, sync_modules);
- zone_utils->init(rados, zone);
- quota->init(zone);
+ zone->init(sysobj.get(), rados.get(), sync_modules.get());
+ zone_utils->init(rados.get(), zone.get());
+ quota->init(zone.get());
sync_modules->init();
- sysobj_core->core_init(rados, zone);
+ sysobj_core->core_init(rados.get(), zone.get());
if (have_cache) {
- sysobj_cache->init(rados, zone, notify);
- auto _cache = std::static_pointer_cast<RGWSI_SysObj_Core>(sysobj_cache);
- sysobj->init(rados, _cache);
+ sysobj_cache->init(rados.get(), zone.get(), notify.get());
+ sysobj->init(rados.get(), sysobj_cache.get());
} else {
- sysobj->init(rados, sysobj_core);
+ sysobj->init(rados.get(), sysobj_core.get());
}
class RGWSI_SysObj_Core;
class RGWSI_SysObj_Cache;
-struct RGWServices_Shared
+struct RGWServices_Def
{
- std::shared_ptr<RGWSI_Finisher> finisher;
- std::shared_ptr<RGWSI_Notify> notify;
- std::shared_ptr<RGWSI_RADOS> rados;
- std::shared_ptr<RGWSI_Zone> zone;
- std::shared_ptr<RGWSI_ZoneUtils> zone_utils;
- std::shared_ptr<RGWSI_Quota> quota;
- std::shared_ptr<RGWSI_SyncModules> sync_modules;
- std::shared_ptr<RGWSI_SysObj> sysobj;
- std::shared_ptr<RGWSI_SysObj_Core> sysobj_core;
- std::shared_ptr<RGWSI_SysObj_Cache> sysobj_cache;
+ std::unique_ptr<RGWSI_Finisher> finisher;
+ std::unique_ptr<RGWSI_Notify> notify;
+ std::unique_ptr<RGWSI_RADOS> rados;
+ std::unique_ptr<RGWSI_Zone> zone;
+ std::unique_ptr<RGWSI_ZoneUtils> zone_utils;
+ std::unique_ptr<RGWSI_Quota> quota;
+ std::unique_ptr<RGWSI_SyncModules> sync_modules;
+ std::unique_ptr<RGWSI_SysObj> sysobj;
+ std::unique_ptr<RGWSI_SysObj_Core> sysobj_core;
+ std::unique_ptr<RGWSI_SysObj_Cache> sysobj_cache;
+
+ RGWServices_Def();
+ ~RGWServices_Def();
int init(CephContext *cct, bool have_cache);
};
struct RGWServices
{
- RGWServices_Shared _svc;
+ RGWServices_Def _svc;
RGWSI_Finisher *finisher{nullptr};
RGWSI_Notify *notify{nullptr};
class RGWSI_Finisher : public RGWServiceInstance
{
- friend struct RGWServices_Shared;
+ friend struct RGWServices_Def;
public:
class ShutdownCB;
{
friend class RGWWatcher;
friend class RGWSI_Notify_ShutdownCB;
- friend class RGWServices_Shared;
+ friend class RGWServices_Def;
public:
class CB;
private:
- std::shared_ptr<RGWSI_Zone> zone_svc;
- std::shared_ptr<RGWSI_RADOS> rados_svc;
- std::shared_ptr<RGWSI_Finisher> finisher_svc;
+ RGWSI_Zone *zone_svc{nullptr};
+ RGWSI_RADOS *rados_svc{nullptr};
+ RGWSI_Finisher *finisher_svc{nullptr};
RWLock watchers_lock{"watchers_lock"};
rgw_pool control_pool;
int init_watch();
void finalize_watch();
- void init(std::shared_ptr<RGWSI_Zone>& _zone_svc,
- std::shared_ptr<RGWSI_RADOS>& _rados_svc,
- std::shared_ptr<RGWSI_Finisher>& _finisher_svc) {
+ void init(RGWSI_Zone *_zone_svc,
+ RGWSI_RADOS *_rados_svc,
+ RGWSI_Finisher *_finisher_svc) {
zone_svc = _zone_svc;
rados_svc = _rados_svc;
finisher_svc = _finisher_svc;
class RGWSI_Quota : public RGWServiceInstance
{
- std::shared_ptr<RGWSI_Zone> zone_svc;
+ RGWSI_Zone *zone_svc{nullptr};
public:
RGWSI_Quota(CephContext *cct): RGWServiceInstance(cct) {}
- void init(std::shared_ptr<RGWSI_Zone>& _zone_svc) {
+ void init(RGWSI_Zone *_zone_svc) {
zone_svc = _zone_svc;
}
RGWSI_SysObj::Obj RGWSI_SysObj::get_obj(RGWSysObjectCtx& obj_ctx, const rgw_raw_obj& obj)
{
- return Obj(core_svc.get(), obj_ctx, obj);
+ return Obj(core_svc, obj_ctx, obj);
}
void RGWSI_SysObj::Obj::invalidate()
class RGWSI_SysObj : public RGWServiceInstance
{
- friend struct RGWServices_Shared;
+ friend struct RGWServices_Def;
public:
class Obj {
friend class Pool::Op;
protected:
- std::shared_ptr<RGWSI_RADOS> rados_svc;
- std::shared_ptr<RGWSI_SysObj_Core> core_svc;
+ RGWSI_RADOS *rados_svc{nullptr};
+ RGWSI_SysObj_Core *core_svc{nullptr};
- void init(std::shared_ptr<RGWSI_RADOS>& _rados_svc,
- std::shared_ptr<RGWSI_SysObj_Core>& _core_svc) {
+ void init(RGWSI_RADOS *_rados_svc,
+ RGWSI_SysObj_Core *_core_svc) {
rados_svc = _rados_svc;
core_svc = _core_svc;
}
Obj get_obj(RGWSysObjectCtx& obj_ctx, const rgw_raw_obj& obj);
Pool get_pool(const rgw_pool& pool) {
- return Pool(rados_svc.get(), core_svc.get(), pool);
+ return Pool(rados_svc, core_svc, pool);
}
RGWSI_Zone *get_zone_svc();
class RGWSI_SysObj_Cache : public RGWSI_SysObj_Core
{
friend class RGWSI_SysObj_Cache_CB;
- friend class RGWServices_Shared;
+ friend class RGWServices_Def;
- std::shared_ptr<RGWSI_Notify> notify_svc;
+ RGWSI_Notify *notify_svc{nullptr};
ObjectCache cache;
std::shared_ptr<RGWSI_SysObj_Cache_CB> cb;
void normalize_pool_and_obj(const rgw_pool& src_pool, const string& src_obj, rgw_pool& dst_pool, string& dst_obj);
protected:
- void init(std::shared_ptr<RGWSI_RADOS>& _rados_svc,
- std::shared_ptr<RGWSI_Zone>& _zone_svc,
- std::shared_ptr<RGWSI_Notify>& _notify_svc) {
+ void init(RGWSI_RADOS *_rados_svc,
+ RGWSI_Zone *_zone_svc,
+ RGWSI_Notify *_notify_svc) {
core_init(_rados_svc, _zone_svc);
notify_svc = _notify_svc;
}
RGWObjVersionTracker *objv_tracker)
{
RGWSI_RADOS::Obj rados_obj;
- int r = get_rados_obj(zone_svc.get(), obj, &rados_obj);
+ int r = get_rados_obj(zone_svc, obj, &rados_obj);
if (r < 0) {
return r;
}
}
RGWSI_RADOS::Obj rados_obj;
- int r = get_rados_obj(zone_svc.get(), obj, &rados_obj);
+ int r = get_rados_obj(zone_svc, obj, &rados_obj);
if (r < 0) {
ldout(cct, 20) << "get_rados_obj() on obj=" << obj << " returned " << r << dendl;
return r;
bufferlist *dest)
{
RGWSI_RADOS::Obj rados_obj;
- int r = get_rados_obj(zone_svc.get(), obj, &rados_obj);
+ int r = get_rados_obj(zone_svc, obj, &rados_obj);
if (r < 0) {
ldout(cct, 20) << "get_rados_obj() on obj=" << obj << " returned " << r << dendl;
return r;
RGWObjVersionTracker *objv_tracker)
{
RGWSI_RADOS::Obj rados_obj;
- int r = get_rados_obj(zone_svc.get(), obj, &rados_obj);
+ int r = get_rados_obj(zone_svc, obj, &rados_obj);
if (r < 0) {
ldout(cct, 20) << "get_rados_obj() on obj=" << obj << " returned " << r << dendl;
return r;
bool *pmore)
{
RGWSI_RADOS::Obj rados_obj;
- int r = get_rados_obj(zone_svc.get(), obj, &rados_obj);
+ int r = get_rados_obj(zone_svc, obj, &rados_obj);
if (r < 0) {
ldout(cct, 20) << "get_rados_obj() on obj=" << obj << " returned " << r << dendl;
return r;
int RGWSI_SysObj_Core::omap_get_all(const rgw_raw_obj& obj, std::map<string, bufferlist> *m)
{
RGWSI_RADOS::Obj rados_obj;
- int r = get_rados_obj(zone_svc.get(), obj, &rados_obj);
+ int r = get_rados_obj(zone_svc, obj, &rados_obj);
if (r < 0) {
ldout(cct, 20) << "get_rados_obj() on obj=" << obj << " returned " << r << dendl;
return r;
int RGWSI_SysObj_Core::omap_set(const rgw_raw_obj& obj, const std::string& key, bufferlist& bl, bool must_exist)
{
RGWSI_RADOS::Obj rados_obj;
- int r = get_rados_obj(zone_svc.get(), obj, &rados_obj);
+ int r = get_rados_obj(zone_svc, obj, &rados_obj);
if (r < 0) {
ldout(cct, 20) << "get_rados_obj() on obj=" << obj << " returned " << r << dendl;
return r;
int RGWSI_SysObj_Core::omap_set(const rgw_raw_obj& obj, const std::map<std::string, bufferlist>& m, bool must_exist)
{
RGWSI_RADOS::Obj rados_obj;
- int r = get_rados_obj(zone_svc.get(), obj, &rados_obj);
+ int r = get_rados_obj(zone_svc, obj, &rados_obj);
if (r < 0) {
ldout(cct, 20) << "get_rados_obj() on obj=" << obj << " returned " << r << dendl;
return r;
int RGWSI_SysObj_Core::omap_del(const rgw_raw_obj& obj, const std::string& key)
{
RGWSI_RADOS::Obj rados_obj;
- int r = get_rados_obj(zone_svc.get(), obj, &rados_obj);
+ int r = get_rados_obj(zone_svc, obj, &rados_obj);
if (r < 0) {
ldout(cct, 20) << "get_rados_obj() on obj=" << obj << " returned " << r << dendl;
return r;
bufferlist *pbl)
{
RGWSI_RADOS::Obj rados_obj;
- int r = get_rados_obj(zone_svc.get(), obj, &rados_obj);
+ int r = get_rados_obj(zone_svc, obj, &rados_obj);
if (r < 0) {
ldout(cct, 20) << "get_rados_obj() on obj=" << obj << " returned " << r << dendl;
return r;
const rgw_raw_obj& obj)
{
RGWSI_RADOS::Obj rados_obj;
- int r = get_rados_obj(zone_svc.get(), obj, &rados_obj);
+ int r = get_rados_obj(zone_svc, obj, &rados_obj);
if (r < 0) {
ldout(cct, 20) << "get_rados_obj() on obj=" << obj << " returned " << r << dendl;
return r;
real_time set_mtime)
{
RGWSI_RADOS::Obj rados_obj;
- int r = get_rados_obj(zone_svc.get(), obj, &rados_obj);
+ int r = get_rados_obj(zone_svc, obj, &rados_obj);
if (r < 0) {
ldout(cct, 20) << "get_rados_obj() on obj=" << obj << " returned " << r << dendl;
return r;
RGWObjVersionTracker *objv_tracker)
{
RGWSI_RADOS::Obj rados_obj;
- int r = get_rados_obj(zone_svc.get(), obj, &rados_obj);
+ int r = get_rados_obj(zone_svc, obj, &rados_obj);
if (r < 0) {
ldout(cct, 20) << "get_rados_obj() on obj=" << obj << " returned " << r << dendl;
return r;
class RGWSI_SysObj_Core : public RGWServiceInstance
{
- friend class RGWServices_Shared;
+ friend class RGWServices_Def;
friend class RGWSI_SysObj;
protected:
- std::shared_ptr<RGWSI_RADOS> rados_svc;
- std::shared_ptr<RGWSI_Zone> zone_svc;
+ RGWSI_RADOS *rados_svc{nullptr};
+ RGWSI_Zone *zone_svc{nullptr};
struct GetObjState {
RGWSI_RADOS::Obj rados_obj;
};
- void core_init(std::shared_ptr<RGWSI_RADOS>& _rados_svc,
- std::shared_ptr<RGWSI_Zone>& _zone_svc) {
+ void core_init(RGWSI_RADOS *_rados_svc,
+ RGWSI_Zone *_zone_svc) {
rados_svc = _rados_svc;
zone_svc = _zone_svc;
}
RGWSI_SysObj_Core(CephContext *cct): RGWServiceInstance(cct) {}
RGWSI_Zone *get_zone_svc() {
- return zone_svc.get();
+ return zone_svc;
}
};
{
}
-void RGWSI_Zone::init(std::shared_ptr<RGWSI_SysObj>& _sysobj_svc,
- std::shared_ptr<RGWSI_RADOS>& _rados_svc,
- std::shared_ptr<RGWSI_SyncModules>& _sync_modules_svc)
+void RGWSI_Zone::init(RGWSI_SysObj *_sysobj_svc,
+ RGWSI_RADOS * _rados_svc,
+ RGWSI_SyncModules * _sync_modules_svc)
{
sysobj_svc = _sysobj_svc;
rados_svc = _rados_svc;
if (ret < 0) {
return ret;
}
- ret = realm->init(cct, sysobj_svc.get());
+ ret = realm->init(cct, sysobj_svc);
if (ret < 0 && ret != -ENOENT) {
ldout(cct, 0) << "failed reading realm info: ret "<< ret << " " << cpp_strerror(-ret) << dendl;
return ret;
} else if (ret != -ENOENT) {
ldout(cct, 20) << "realm " << realm->get_name() << " " << realm->get_id() << dendl;
- ret = current_period->init(cct, sysobj_svc.get(), realm->get_id(), realm->get_name());
+ ret = current_period->init(cct, sysobj_svc, realm->get_id(), realm->get_name());
if (ret < 0 && ret != -ENOENT) {
ldout(cct, 0) << "failed reading current period info: " << " " << cpp_strerror(-ret) << dendl;
return ret;
}
// read period_config into current_period
auto& period_config = current_period->get_config();
- ret = period_config.read(sysobj_svc.get(), zonegroup->realm_id);
+ ret = period_config.read(sysobj_svc, zonegroup->realm_id);
if (ret < 0 && ret != -ENOENT) {
ldout(cct, 0) << "ERROR: failed to read period config: "
<< cpp_strerror(ret) << dendl;
zone_params->set_name(default_zone_name);
}
- ret = zone_params->init(cct, sysobj_svc.get());
+ ret = zone_params->init(cct, sysobj_svc);
if (ret < 0 && ret != -ENOENT) {
lderr(cct) << "failed reading zone info: ret "<< ret << " " << cpp_strerror(-ret) << dendl;
return ret;
int RGWSI_Zone::list_realms(list<string>& realms)
{
- RGWRealm realm(cct, sysobj_svc.get());
+ RGWRealm realm(cct, sysobj_svc);
RGWSI_SysObj::Pool syspool = sysobj_svc->get_pool(realm.get_pool(cct));
return syspool.op().list_prefixed_objs(zonegroup_names_oid_prefix, &realms);
string period_id = current_period;
while(!period_id.empty()) {
RGWPeriod period(period_id);
- ret = period.init(cct, sysobj_svc.get());
+ ret = period.init(cct, sysobj_svc);
if (ret < 0) {
return ret;
}
}
string default_region;
- ret = default_zonegroup.init(cct, sysobj_svc.get(), false, true);
+ ret = default_zonegroup.init(cct, sysobj_svc, false, true);
if (ret < 0) {
ldout(cct, 0) << __func__ << " failed init default region: ret "<< ret << " " << cpp_strerror(-ret) << dendl;
return ret;
return ret;
} else if (ret == -ENOENT || regions.empty()) {
RGWZoneParams zoneparams(default_zone_name);
- int ret = zoneparams.init(cct, sysobj_svc.get());
+ int ret = zoneparams.init(cct, sysobj_svc);
if (ret < 0 && ret != -ENOENT) {
ldout(cct, 0) << __func__ << ": error initializing default zone params: " << cpp_strerror(-ret) << dendl;
return ret;
}
/* update master zone */
RGWZoneGroup default_zg(default_zonegroup_name);
- ret = default_zg.init(cct, sysobj_svc.get());
+ ret = default_zg.init(cct, sysobj_svc);
if (ret < 0 && ret != -ENOENT) {
ldout(cct, 0) << __func__ << ": error in initializing default zonegroup: " << cpp_strerror(-ret) << dendl;
return ret;
for (list<string>::iterator iter = regions.begin(); iter != regions.end(); ++iter) {
if (*iter != default_zonegroup_name){
RGWZoneGroup region(*iter);
- int ret = region.init(cct, sysobj_svc.get(), true, true);
+ int ret = region.init(cct, sysobj_svc, true, true);
if (ret < 0) {
ldout(cct, 0) << __func__ << " failed init region "<< *iter << ": " << cpp_strerror(-ret) << dendl;
return ret;
buf_to_hex(md5, CEPH_CRYPTO_MD5_DIGESTSIZE, md5_str);
string new_realm_id(md5_str);
RGWRealm new_realm(new_realm_id,new_realm_name);
- ret = new_realm.init(cct, sysobj_svc.get(), false);
+ ret = new_realm.init(cct, sysobj_svc, false);
if (ret < 0) {
ldout(cct, 0) << __func__ << " Error initing new realm: " << cpp_strerror(-ret) << dendl;
return ret;
ldout(cct, 0) << __func__ << " Error setting realm as default: " << cpp_strerror(-ret) << dendl;
return ret;
}
- ret = realm->init(cct, sysobj_svc.get());
+ ret = realm->init(cct, sysobj_svc);
if (ret < 0) {
ldout(cct, 0) << __func__ << " Error initing realm: " << cpp_strerror(-ret) << dendl;
return ret;
}
- ret = current_period->init(cct, sysobj_svc.get(), realm->get_id(), realm->get_name());
+ ret = current_period->init(cct, sysobj_svc, realm->get_id(), realm->get_name());
if (ret < 0) {
ldout(cct, 0) << __func__ << " Error initing current period: " << cpp_strerror(-ret) << dendl;
return ret;
ldout(cct, 0) << __func__ << " Converting " << *iter << dendl;
/* check to see if we don't have already a zonegroup with this name */
RGWZoneGroup new_zonegroup(*iter);
- ret = new_zonegroup.init(cct , sysobj_svc.get());
+ ret = new_zonegroup.init(cct , sysobj_svc);
if (ret == 0 && new_zonegroup.get_id() != *iter) {
ldout(cct, 0) << __func__ << " zonegroup "<< *iter << " already exists id " << new_zonegroup.get_id () <<
" skipping conversion " << dendl;
}
RGWZoneGroup zonegroup(*iter);
zonegroup.set_id(*iter);
- int ret = zonegroup.init(cct, sysobj_svc.get(), true, true);
+ int ret = zonegroup.init(cct, sysobj_svc, true, true);
if (ret < 0) {
ldout(cct, 0) << __func__ << " failed init zonegroup: ret "<< ret << " " << cpp_strerror(-ret) << dendl;
return ret;
RGWZoneParams zoneparams(iter->first, iter->first);
zoneparams.set_id(iter->first);
zoneparams.realm_id = realm->get_id();
- ret = zoneparams.init(cct, sysobj_svc.get());
+ ret = zoneparams.init(cct, sysobj_svc);
if (ret < 0 && ret != -ENOENT) {
ldout(cct, 0) << __func__ << " failed to init zoneparams " << iter->first << ": " << cpp_strerror(-ret) << dendl;
return ret;
for (auto const& iter : regions) {
RGWZoneGroup zonegroup(iter);
- int ret = zonegroup.init(cct, sysobj_svc.get(), true, true);
+ int ret = zonegroup.init(cct, sysobj_svc, true, true);
if (ret < 0) {
ldout(cct, 0) << __func__ << " failed init zonegroup" << iter << ": ret "<< ret << " " << cpp_strerror(-ret) << dendl;
return ret;
return 0;
}
- int ret = zonegroup->init(cct, sysobj_svc.get());
+ int ret = zonegroup->init(cct, sysobj_svc);
ldout(cct, 20) << "period zonegroup init ret " << ret << dendl;
if (ret == -ENOENT) {
return 0;
if (iter != current_period->get_map().zonegroups.end()) {
ldout(cct, 20) << "using current period zonegroup " << zonegroup->get_name() << dendl;
*zonegroup = iter->second;
- ret = zonegroup->init(cct, sysobj_svc.get(), false);
+ ret = zonegroup->init(cct, sysobj_svc, false);
if (ret < 0) {
ldout(cct, 0) << "failed init zonegroup: " << " " << cpp_strerror(-ret) << dendl;
return ret;
}
- ret = zone_params->init(cct, sysobj_svc.get());
+ ret = zone_params->init(cct, sysobj_svc);
if (ret < 0 && ret != -ENOENT) {
ldout(cct, 0) << "failed reading zone params info: " << " " << cpp_strerror(-ret) << dendl;
return ret;
} if (ret ==-ENOENT && zonegroup->get_name() == default_zonegroup_name) {
ldout(cct, 10) << " Using default name "<< default_zone_name << dendl;
zone_params->set_name(default_zone_name);
- ret = zone_params->init(cct, sysobj_svc.get());
+ ret = zone_params->init(cct, sysobj_svc);
if (ret < 0 && ret != -ENOENT) {
ldout(cct, 0) << "failed reading zone params info: " << " " << cpp_strerror(-ret) << dendl;
return ret;
}
} else {
RGWZoneGroup fixed_zg(zg.get_id(),zg.get_name());
- ret = fixed_zg.init(cct, sysobj_svc.get());
+ ret = fixed_zg.init(cct, sysobj_svc);
if (ret < 0) {
ldout(cct, 0) << "error initializing zonegroup : " << cpp_strerror(-ret) << dendl;
return ret;
int RGWSI_Zone::init_zg_from_local(bool *creating_defaults)
{
- int ret = zonegroup->init(cct, sysobj_svc.get());
+ int ret = zonegroup->init(cct, sysobj_svc);
if ( (ret < 0 && ret != -ENOENT) || (ret == -ENOENT && !cct->_conf->rgw_zonegroup.empty())) {
ldout(cct, 0) << "failed reading zonegroup info: ret "<< ret << " " << cpp_strerror(-ret) << dendl;
return ret;
<< dendl;
return ret;
}
- ret = zonegroup->init(cct, sysobj_svc.get());
+ ret = zonegroup->init(cct, sysobj_svc);
if (ret < 0) {
ldout(cct, 0) << "failure in zonegroup create_default: ret "<< ret << " " << cpp_strerror(-ret)
<< dendl;
for (map<string, RGWZoneGroup>::iterator iter = zonegroupmap.zonegroups.begin();
iter != zonegroupmap.zonegroups.end(); ++iter) {
RGWZoneGroup& zonegroup = iter->second;
- ret = zonegroup.init(cct, sysobj_svc.get(), false);
+ ret = zonegroup.init(cct, sysobj_svc, false);
ret = zonegroup.update();
if (ret < 0 && ret != -ENOENT) {
ldout(cct, 0) << "Error could not update zonegroup " << zonegroup.get_name() << ": " <<
class RGWSI_Zone : public RGWServiceInstance
{
- friend struct RGWServices_Shared;
+ friend struct RGWServices_Def;
- std::shared_ptr<RGWSI_SysObj> sysobj_svc;
- std::shared_ptr<RGWSI_RADOS> rados_svc;
- std::shared_ptr<RGWSI_SyncModules> sync_modules_svc;
+ RGWSI_SysObj *sysobj_svc{nullptr};
+ RGWSI_RADOS *rados_svc{nullptr};
+ RGWSI_SyncModules *sync_modules_svc{nullptr};
RGWRealm *realm{nullptr};
RGWZoneGroup *zonegroup{nullptr};
map<string, string> zone_id_by_name;
map<string, RGWZone> zone_by_id;
- void init(std::shared_ptr<RGWSI_SysObj>& _sysobj_svc,
- std::shared_ptr<RGWSI_RADOS>& _rados_svc,
- std::shared_ptr<RGWSI_SyncModules>& _sync_modules_svc);
+ void init(RGWSI_SysObj *_sysobj_svc,
+ RGWSI_RADOS *_rados_svc,
+ RGWSI_SyncModules *_sync_modules_svc);
int do_start() override;
void shutdown() override;
class RGWSI_ZoneUtils : public RGWServiceInstance
{
- friend struct RGWServices_Shared;
+ friend struct RGWServices_Def;
- std::shared_ptr<RGWSI_RADOS> rados_svc;
- std::shared_ptr<RGWSI_Zone> zone_svc;
+ RGWSI_RADOS *rados_svc{nullptr};
+ RGWSI_Zone *zone_svc{nullptr};
string trans_id_suffix;
- void init(std::shared_ptr<RGWSI_RADOS>& _rados_svc,
- std::shared_ptr<RGWSI_Zone>& _zone_svc) {
+ void init(RGWSI_RADOS *_rados_svc,
+ RGWSI_Zone *_zone_svc) {
rados_svc = _rados_svc;
zone_svc = _zone_svc;
}