base_init(role_svc->ctx(), role_svc->get_be_handler());
svc.role = role_svc;
}
+
+void RGWRoleCompleteInfo::dump(ceph::Formatter *f) const
+{
+ info.dump(f);
+ if (has_attrs) {
+ encode_json("attrs", attrs, f);
+ }
+}
+
+void RGWRoleCompleteInfo::decode_json(JSONObj *obj)
+{
+ decode_json_obj(info, obj);
+ has_attrs = JSONDecoder::decode_json("attrs", attrs, obj);
+}
WRITE_CLASS_ENCODER(RGWRole)
} } // namespace rgw::sal
+struct RGWRoleCompleteInfo {
+ rgw::sal::RGWRole info;
+ std::map<std::string, bufferlist> attrs;
+ bool has_attrs;
+
+ void dump(Formatter *f) const;
+ void decode_json(JSONObj *obj);
+};
+
+class RGWRoleMetadataObject: public RGWMetadataObject {
+ RGWRoleCompleteInfo rci;
+public:
+ RGWRoleMetadataObject() = default;
+ RGWRoleMetadataObject(const RGWRoleCompleteInfo& _rci,
+ const obj_version& v,
+ real_time m) : RGWMetadataObject(v,m), rci(_rci) {}
+
+ void dump(Formatter *f) const override {
+ rci.dump(f);
+ }
+
+ RGWRoleCompleteInfo& get_rci() {
+ return rci;
+ }
+};
//class RGWMetadataObject;
class RGWRoleMetadataHandler: public RGWMetadataHandler_GenericMetaBE