const string RGWRole::role_path_oid_prefix = "role_paths.";
const string RGWRole::role_arn_prefix = "arn:aws:iam::";
+int RGWRole::store_info(const DoutPrefixProvider *dpp, bool exclusive, optional_yield y)
+{
+
+ return role_ctl->store_info(this,
+ y,
+ dpp,
+ RGWRoleCtl::PutParams().
+ set_exclusive(exclusive));
+}
+
int RGWRole::get(const DoutPrefixProvider *dpp, optional_yield y)
{
int ret = read_name(dpp, y);
class RGWRoleMetadataHandler;
class RGWSI_Role;
class RGWSI_MetaBackend_Handler;
+class RGWRoleCtl;
namespace rgw { namespace sal {
class RGWRole
static constexpr uint64_t SESSION_DURATION_MAX = 43200; // in seconds
protected:
+ RGWRoleCtl *role_ctl;
+
std::string id;
std::string name;
std::string path;
std::multimap<std::string,std::string> tags;
public:
- virtual int store_info(const DoutPrefixProvider *dpp, bool exclusive, optional_yield y) = 0;
+ virtual int store_info(const DoutPrefixProvider *dpp, bool exclusive, optional_yield y);
virtual int store_name(const DoutPrefixProvider *dpp, bool exclusive, optional_yield y) = 0;
virtual int store_path(const DoutPrefixProvider *dpp, bool exclusive, optional_yield y) = 0;
virtual int read_id(const DoutPrefixProvider *dpp, const std::string& role_name, const std::string& tenant, std::string& role_id, optional_yield y) = 0;