rgw_rados.cc
rgw_resolve.cc
rgw_rest.cc
+ rgw_rest_bucket.cc
rgw_rest_client.cc
+ rgw_rest_config.cc
rgw_rest_conn.cc
rgw_rest_log.cc
rgw_rest_metadata.cc
rgw_rest_pubsub.cc
rgw_rest_pubsub_common.cc
+ rgw_rest_ratelimit.cc
rgw_rest_realm.cc
rgw_rest_role.cc
rgw_rest_s3.cc
rgw_realm_watcher.cc
rgw_os_lib.cc
rgw_process.cc
- rgw_rest_bucket.cc
- rgw_rest_config.cc
- rgw_rest_log.cc
- rgw_rest_metadata.cc
- rgw_rest_realm.cc
rgw_rest_swift.cc
rgw_rest_usage.cc
rgw_rest_info.cc
rgw_rest_user.cc
- rgw_rest_ratelimit.cc
rgw_swift_auth.cc
rgw_usage.cc
rgw_opa.cc
#include "rgw_rest_info.h"
#include "rgw_rest_usage.h"
#include "rgw_rest_user.h"
-#include "rgw_rest_bucket.h"
-#include "rgw_rest_metadata.h"
-#include "rgw_rest_log.h"
-#include "rgw_rest_config.h"
-#include "rgw_rest_realm.h"
#include "rgw_rest_sts.h"
-#include "rgw_rest_ratelimit.h"
#include "rgw_swift_auth.h"
#include "rgw_log.h"
#include "rgw_tools.h"
admin_resource->register_resource("info", new RGWRESTMgr_Info);
admin_resource->register_resource("usage", new RGWRESTMgr_Usage);
admin_resource->register_resource("user", new RGWRESTMgr_User);
- /* XXX dang part of this is RADOS specific */
- admin_resource->register_resource("bucket", new RGWRESTMgr_Bucket);
- /*Registering resource for /admin/metadata */
- admin_resource->register_resource("metadata", new RGWRESTMgr_Metadata);
- /* XXX dang ifdef these RADOS ? */
- admin_resource->register_resource("log", new RGWRESTMgr_Log);
- admin_resource->register_resource("config", new RGWRESTMgr_Config);
- admin_resource->register_resource("realm", new RGWRESTMgr_Realm);
- admin_resource->register_resource("ratelimit", new RGWRESTMgr_Ratelimit);
+ /* Register store-specific admin APIs */
+ store->register_admin_apis(admin_resource);
rest.register_resource(g_conf()->rgw_admin_entry, admin_resource);
}
#include "rgw_datalog_notify.h"
#include "include/random.h"
+class RGWRESTMgr;
class RGWAccessListFilter;
class RGWLC;
struct rgw_user_bucket;
virtual const std::string& get_luarocks_path() const = 0;
/** Set the location of where lua packages are installed */
virtual void set_luarocks_path(const std::string& path) = 0;
+ /** Register admin APIs unique to this store */
+ virtual void register_admin_apis(RGWRESTMgr* mgr) = 0;
};
/**
virtual void set_luarocks_path(const std::string& path) override {
luarocks_path = path;
}
+ virtual void register_admin_apis(RGWRESTMgr* mgr) override { };
/* Unique to DBStore */
void setDBStoreManager(DBStoreManager *stm) { dbsm = stm; }
virtual const std::string& get_luarocks_path() const override;
virtual void set_luarocks_path(const std::string& path) override;
+ virtual void register_admin_apis(RGWRESTMgr* mgr)override {
+ return next->register_admin_apis(mgr);
+ }
};
class FilterUser : public User {
virtual void set_luarocks_path(const std::string& path) override {
luarocks_path = path;
}
+ virtual void register_admin_apis(RGWRESTMgr* mgr) override { };
int open_idx(struct m0_uint128 *id, bool create, struct m0_idx *out);
void close_idx(struct m0_idx *idx) { m0_idx_fini(idx); }
#include "rgw_service.h"
#include "rgw_lc.h"
#include "rgw_lc_tier.h"
+#include "rgw_rest_admin.h"
+#include "rgw_rest_bucket.h"
+#include "rgw_rest_metadata.h"
+#include "rgw_rest_log.h"
+#include "rgw_rest_config.h"
+#include "rgw_rest_ratelimit.h"
+#include "rgw_rest_realm.h"
#include "services/svc_sys_obj.h"
#include "services/svc_meta.h"
#include "services/svc_meta_be_sobj.h"
rados->finalize();
}
+void RadosStore::register_admin_apis(RGWRESTMgr* mgr)
+{
+ mgr->register_resource("bucket", new RGWRESTMgr_Bucket);
+ /*Registering resource for /admin/metadata */
+ mgr->register_resource("metadata", new RGWRESTMgr_Metadata);
+ mgr->register_resource("log", new RGWRESTMgr_Log);
+ /* XXX These may become global when cbodley is done with his zone work */
+ mgr->register_resource("config", new RGWRESTMgr_Config);
+ mgr->register_resource("realm", new RGWRESTMgr_Realm);
+ mgr->register_resource("ratelimit", new RGWRESTMgr_Ratelimit);
+}
+
std::unique_ptr<LuaManager> RadosStore::get_lua_manager()
{
return std::make_unique<RadosLuaManager>(this);
virtual void set_luarocks_path(const std::string& path) override {
luarocks_path = path;
}
+ virtual void register_admin_apis(RGWRESTMgr* mgr) override;
/* Unique to RadosStore */
int get_obj_head_ioctx(const DoutPrefixProvider *dpp, const RGWBucketInfo& bucket_info, const rgw_obj& obj,