ssd, redis driver and related test files.
rgw/cache: removing CephContext* from ssd driver and redis driver.
It can be accessed in every api using dpp->get_cct(), where dpp
is of type DoutPrefixProvider*.
rgw/test: Remove `cct` parameter from cache driver initialization call
redis driver test file.
rgw/qa: removing cct parameter from ssd driver test file.
Signed-off-by: Pritha Srivastava <prsrivas@redhat.com>
Signed-off-by: Samarah <samarah.uriarte@ibm.com>
{
FilterDriver::initialize(cct, dpp);
- cacheDriver->initialize(cct, dpp);
+ cacheDriver->initialize(dpp);
objDir->init(cct, dpp);
blockDir->init(cct, dpp);
CacheDriver() {}
virtual ~CacheDriver() = default;
- virtual int initialize(CephContext* cct, const DoutPrefixProvider* dpp) = 0;
+ virtual int initialize(const DoutPrefixProvider* dpp) = 0;
virtual int put(const DoutPrefixProvider* dpp, const std::string& key, bufferlist& bl, uint64_t len, rgw::sal::Attrs& attrs, optional_yield y) = 0;
virtual int get(const DoutPrefixProvider* dpp, const std::string& key, off_t offset, uint64_t len, bufferlist& bl, rgw::sal::Attrs& attrs, optional_yield y) = 0;
virtual int del(const DoutPrefixProvider* dpp, const std::string& key, optional_yield y) = 0;
}
}
-int RedisDriver::initialize(CephContext* cct, const DoutPrefixProvider* dpp)
+int RedisDriver::initialize(const DoutPrefixProvider* dpp)
{
if (partition_info.location.back() != '/') {
partition_info.location += "/";
}
- std::string address = cct->_conf->rgw_local_cache_address;
+ std::string address = dpp->get_cct()->_conf->rgw_local_cache_address;
config cfg;
cfg.addr.host = address.substr(0, address.find(":"));
virtual Partition get_current_partition_info(const DoutPrefixProvider* dpp) override { return partition_info; }
virtual uint64_t get_free_space(const DoutPrefixProvider* dpp) override { return free_space; }
- virtual int initialize(CephContext* cct, const DoutPrefixProvider* dpp) override;
+ virtual int initialize(const DoutPrefixProvider* dpp) override;
virtual int put(const DoutPrefixProvider* dpp, const std::string& key, bufferlist& bl, uint64_t len, rgw::sal::Attrs& attrs, optional_yield y) override;
virtual int put_async(const DoutPrefixProvider* dpp, const std::string& key, bufferlist& bl, uint64_t len, rgw::sal::Attrs& attrs) override;
virtual int get(const DoutPrefixProvider* dpp, const std::string& key, off_t offset, uint64_t len, bufferlist& bl, rgw::sal::Attrs& attrs, optional_yield y) override;
constexpr std::string_view ATTR_PREFIX = "user.rgw.";
-int SSDDriver::initialize(CephContext* cct, const DoutPrefixProvider* dpp)
+int SSDDriver::initialize(const DoutPrefixProvider* dpp)
{
- this->cct = cct;
-
if(partition_info.location.back() != '/') {
partition_info.location += "/";
}
try {
if (efs::exists(partition_info.location)) {
- if (cct->_conf->rgw_d4n_l1_evict_cache_on_start) {
+ if (dpp->get_cct()->_conf->rgw_d4n_l1_evict_cache_on_start) {
ldpp_dout(dpp, 5) << "initialize: evicting the persistent storage directory on start" << dendl;
for (auto& p : efs::directory_iterator(partition_info.location)) {
efs::remove_all(p.path());
#if defined(HAVE_LIBAIO) && defined(__GLIBC__)
// libaio setup
struct aioinit ainit{0};
- ainit.aio_threads = cct->_conf.get_val<int64_t>("rgw_d4n_libaio_aio_threads");
- ainit.aio_num = cct->_conf.get_val<int64_t>("rgw_d4n_libaio_aio_num");
+ ainit.aio_threads = dpp->get_cct()->_conf.get_val<int64_t>("rgw_d4n_libaio_aio_threads");
+ ainit.aio_num = dpp->get_cct()->_conf.get_val<int64_t>("rgw_d4n_libaio_aio_num");
ainit.aio_idle_time = 120;
aio_init(&ainit);
#endif
auto p = Op::create(ctx.get_executor(), init.completion_handler);
auto& op = p->user_data;
- int ret = op.init(dpp, cct, location, read_ofs, read_len, p.get());
+ int ret = op.init(dpp, location, read_ofs, read_len, p.get());
if(0 == ret) {
ret = ::aio_read(op.aio_cb.get());
}
c->priv_data->libaio_write_completion_cb(c);
}
-int SSDDriver::AsyncReadOp::init(const DoutPrefixProvider *dpp, CephContext* cct, const std::string& file_path, off_t read_ofs, off_t read_len, void* arg)
+int SSDDriver::AsyncReadOp::init(const DoutPrefixProvider *dpp, const std::string& file_path, off_t read_ofs, off_t read_len, void* arg)
{
ldpp_dout(dpp, 20) << "SSDCache: " << __func__ << "(): file_path=" << file_path << dendl;
aio_cb.reset(new struct aiocb);
ldpp_dout(dpp, 1) << "ERROR: SSDCache: " << __func__ << "(): can't open " << file_path << " : " << " error: " << err << dendl;
return -err;
}
- if (cct->_conf->rgw_d4n_l1_fadvise != POSIX_FADV_NORMAL) {
+ if (dpp->get_cct()->_conf->rgw_d4n_l1_fadvise != POSIX_FADV_NORMAL) {
posix_fadvise(aio_cb->aio_fildes, 0, 0, g_conf()->rgw_d4n_l1_fadvise);
}
SSDDriver(Partition& partition_info) : partition_info(partition_info) {}
virtual ~SSDDriver() {}
- virtual int initialize(CephContext* cct, const DoutPrefixProvider* dpp) override;
+ virtual int initialize(const DoutPrefixProvider* dpp) override;
virtual int put(const DoutPrefixProvider* dpp, const std::string& key, bufferlist& bl, uint64_t len, rgw::sal::Attrs& attrs, optional_yield y) override;
virtual int get(const DoutPrefixProvider* dpp, const std::string& key, off_t offset, uint64_t len, bufferlist& bl, rgw::sal::Attrs& attrs, optional_yield y) override;
virtual int del(const DoutPrefixProvider* dpp, const std::string& key, optional_yield y) override { return -1; } // TODO: implement
protected:
Partition partition_info;
uint64_t free_space;
- CephContext* cct;
private:
using Signature = void(boost::system::error_code, bufferlist);
using Completion = ceph::async::Completion<Signature, AsyncReadOp>;
- int init(const DoutPrefixProvider *dpp, CephContext* cct, const std::string& file_path, off_t read_ofs, off_t read_len, void* arg);
+ int init(const DoutPrefixProvider *dpp, const std::string& file_path, off_t read_ofs, off_t read_len, void* arg);
static void libaio_cb_aio_dispatch(sigval sigval);
template <typename Executor1, typename CompletionHandler>
ASSERT_NE(conn, nullptr);
dir->init(env->cct, env->dpp);
- cacheDriver->initialize(env->cct, env->dpp);
+ cacheDriver->initialize(env->dpp);
policyDriver->get_cache_policy()->init(env->cct, env->dpp);
bl.append("test data");
ASSERT_NE(cacheDriver, nullptr);
ASSERT_NE(conn, nullptr);
- cacheDriver->initialize(env->cct, env->dpp);
+ cacheDriver->initialize(env->dpp);
bl.append("test data");
bufferlist attrVal;
ASSERT_NE(cacheDriver, nullptr);
- cacheDriver->initialize(env->cct, env->dpp);
+ cacheDriver->initialize(env->dpp);
bl.append("This is testdata");
attrVal.append("attrVal");