* themselves alone, as well as any ACLs embedded in object xattrs.
*/
int rgw_delete_user(RGWRados *store, RGWUserInfo& info, RGWObjVersionTracker& objv_tracker) {
- string marker;
- vector<rgw_bucket> buckets_vec;
-
- bool done;
- bool is_truncated;
int ret;
- CephContext *cct = store->ctx();
- size_t max_buckets = cct->_conf->rgw_list_buckets_max_chunk;
-
- do {
- RGWUserBuckets user_buckets;
- ret = rgw_read_user_buckets(store, info.user_id, user_buckets, marker,
- string(), max_buckets, false, &is_truncated);
- if (ret < 0)
- return ret;
-
- map<string, RGWBucketEnt>& buckets = user_buckets.get_buckets();
- for (map<string, RGWBucketEnt>::iterator i = buckets.begin();
- i != buckets.end();
- ++i) {
- RGWBucketEnt& bucket = i->second;
- buckets_vec.push_back(bucket.bucket);
-
- marker = i->first;
- }
-
- done = (buckets.size() < max_buckets);
- } while (!done);
map<string, RGWAccessKey>::iterator kiter = info.access_keys.begin();
for (; kiter != info.access_keys.end(); ++kiter) {