Sync charms.ceph to add new permission request to broker

Change-Id: Id5023785fc748e44978b669db5b79c6c40e88de5
Depends-On: Ifd341bd80833d4a7fd62e89e3c0e2b7fd64fafba
This commit is contained in:
Chris MacNaughton 2019-10-16 14:01:03 +02:00
parent f69c296d2b
commit b72936d727
1 changed files with 14 additions and 0 deletions

View File

@ -212,6 +212,18 @@ def handle_add_permissions_to_key(request, service):
return resp
def handle_set_key_permissions(request, service):
"""Ensure the key has the requested permissions."""
permissions = request.get('permissions')
client = request.get('client')
call = ['ceph', '--id', service, 'auth', 'caps',
'client.{}'.format(client)] + permissions
try:
check_call(call)
except CalledProcessError as e:
log("Error updating key capabilities: {}".format(e), level=ERROR)
def update_service_permissions(service, service_obj=None, namespace=None):
"""Update the key permissions for the named client in Ceph"""
if not service_obj:
@ -866,6 +878,8 @@ def process_requests_v1(reqs):
ret = handle_put_osd_in_bucket(request=req, service=svc)
elif op == "add-permissions-to-key":
ret = handle_add_permissions_to_key(request=req, service=svc)
elif op == 'set-key-permissions':
ret = handle_set_key_permissions(request=req, service=svc)
else:
msg = "Unknown operation '{}'".format(op)
log(msg, level=ERROR)