class RGWFrontendConfig {
std::string config;
- std::map<std::string, std::string> config_map;
+ std::multimap<std::string, std::string> config_map;
std::string framework;
int parse_config(const std::string& config,
- std::map<std::string, std::string>& config_map);
+ std::multimap<std::string, std::string>& config_map);
public:
RGWFrontendConfig(const std::string& config)
return config;
}
- std::map<std::string, std::string>& get_config_map() {
+ std::multimap<std::string, std::string>& get_config_map() {
return config_map;
}
struct mg_context* ctx;
RGWMongooseEnv env;
- void set_conf_default(std::map<std::string, std::string>& m,
+ void set_conf_default(std::multimap<std::string, std::string>& m,
const std::string& key,
const std::string& def_val) {
if (m.find(key) == std::end(m)) {
- m[key] = def_val;
+ m.emplace(key, def_val);
}
}
class RGWFrontendPauser : public RGWRealmReloader::Pauser {
std::list<RGWFrontend*> &frontends;
RGWRealmReloader::Pauser* pauser;
+ rgw::auth::ImplicitTenants& implicit_tenants;
public:
RGWFrontendPauser(std::list<RGWFrontend*> &frontends,
+ rgw::auth::ImplicitTenants& implicit_tenants,
RGWRealmReloader::Pauser* pauser = nullptr)
- : frontends(frontends), pauser(pauser) {}
+ : frontends(frontends),
+ pauser(pauser),
+ implicit_tenants(implicit_tenants) {
+ }
void pause() override {
for (auto frontend : frontends)
/* Initialize the registry of auth strategies which will coordinate
* the dynamic reconfiguration. */
auto auth_registry = \
- rgw::auth::StrategyRegistry::create(g_ceph_context, store);
+ rgw::auth::StrategyRegistry::create(g_ceph_context, implicit_tenants, store);
for (auto frontend : frontends)
frontend->unpause_with_new_config(store, auth_registry);