Skip to content

Commit 8259f75

Browse files
authored
Merge pull request ceph#54295 from rhcs-dashboard/edit-bucket-acl-tags
mgr/dashboard: add ACLs Reviewed-by: afreen23 <NOT@FOUND> Reviewed-by: Ankush Behl <[email protected]> Reviewed-by: Nizamudeen A <[email protected]>
2 parents 6896b9d + c3251fb commit 8259f75

File tree

13 files changed

+18149
-13969
lines changed

13 files changed

+18149
-13969
lines changed

src/pybind/mgr/dashboard/controllers/rgw.py

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -304,6 +304,14 @@ def _set_tags(self, bucket_name, tags, daemon_name, owner):
304304
rgw_client = RgwClient.instance(owner, daemon_name)
305305
return rgw_client.set_tags(bucket_name, tags)
306306

307+
def _get_acl(self, bucket_name, daemon_name, owner):
308+
rgw_client = RgwClient.instance(owner, daemon_name)
309+
return str(rgw_client.get_acl(bucket_name))
310+
311+
def _set_acl(self, bucket_name: str, acl: str, owner, daemon_name):
312+
rgw_client = RgwClient.instance(owner, daemon_name)
313+
return rgw_client.set_acl(bucket_name, acl)
314+
307315
@staticmethod
308316
def strip_tenant_from_bucket_name(bucket_name):
309317
# type (str) -> str
@@ -357,6 +365,7 @@ def get(self, bucket, daemon_name=None):
357365
result['versioning'] = versioning['Status']
358366
result['mfa_delete'] = versioning['MfaDelete']
359367
result['bucket_policy'] = self._get_policy(bucket_name)
368+
result['acl'] = self._get_acl(bucket_name, daemon_name, result['owner'])
360369

361370
# Append the locking configuration.
362371
locking = self._get_locking(result['owner'], daemon_name, bucket_name)
@@ -370,7 +379,7 @@ def create(self, bucket, uid, zonegroup=None, placement_target=None,
370379
lock_retention_period_days=None,
371380
lock_retention_period_years=None, encryption_state='false',
372381
encryption_type=None, key_id=None, tags=None,
373-
bucket_policy=None, daemon_name=None):
382+
bucket_policy=None, canned_acl=None, daemon_name=None):
374383
lock_enabled = str_to_bool(lock_enabled)
375384
encryption_state = str_to_bool(encryption_state)
376385
try:
@@ -392,6 +401,9 @@ def create(self, bucket, uid, zonegroup=None, placement_target=None,
392401
if bucket_policy:
393402
self._set_policy(bucket, bucket_policy, daemon_name, uid)
394403

404+
if canned_acl:
405+
self._set_acl(bucket, canned_acl, uid, daemon_name)
406+
395407
return result
396408
except RequestException as e: # pragma: no cover - handling is too obvious
397409
raise DashboardException(e, http_status_code=500, component='rgw')
@@ -401,7 +413,8 @@ def set(self, bucket, bucket_id, uid, versioning_state=None,
401413
encryption_state='false', encryption_type=None, key_id=None,
402414
mfa_delete=None, mfa_token_serial=None, mfa_token_pin=None,
403415
lock_mode=None, lock_retention_period_days=None,
404-
lock_retention_period_years=None, tags=None, bucket_policy=None, daemon_name=None):
416+
lock_retention_period_years=None, tags=None, bucket_policy=None,
417+
canned_acl=None, daemon_name=None):
405418
encryption_state = str_to_bool(encryption_state)
406419
# When linking a non-tenant-user owned bucket to a tenanted user, we
407420
# need to prefix bucket name with '/'. e.g. photos -> /photos
@@ -444,7 +457,9 @@ def set(self, bucket, bucket_id, uid, versioning_state=None,
444457
if tags:
445458
self._set_tags(bucket_name, tags, daemon_name, uid)
446459
if bucket_policy:
447-
self._set_policy(bucket, bucket_policy, daemon_name, uid)
460+
self._set_policy(bucket_name, bucket_policy, daemon_name, uid)
461+
if canned_acl:
462+
self._set_acl(bucket_name, canned_acl, uid, daemon_name)
448463
return self._append_bid(result)
449464

450465
def delete(self, bucket, purge_objects='true', daemon_name=None):

0 commit comments

Comments
 (0)