X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=osmclient%2Fsol005%2Frole.py;fp=osmclient%2Fsol005%2Frole.py;h=46158d7b615029b33c533f247bca8bc81aeac036;hb=95686bbc69ded243c346f94dceb0bee567572fb7;hp=2544a7b6646a4921f31d1ecf4f98860e68868d63;hpb=52424a2ae26db69c5a97d01e84454ffdd4d31228;p=osm%2Fosmclient.git diff --git a/osmclient/sol005/role.py b/osmclient/sol005/role.py index 2544a7b..46158d7 100644 --- a/osmclient/sol005/role.py +++ b/osmclient/sol005/role.py @@ -32,12 +32,13 @@ class Role(object): def __init__(self, http=None, client=None): self._http = http self._client = client - self._logger = logging.getLogger('osmclient') - self._apiName = '/admin' - self._apiVersion = '/v1' - self._apiResource = '/roles' - self._apiBase = '{}{}{}'.format(self._apiName, - self._apiVersion, self._apiResource) + self._logger = logging.getLogger("osmclient") + self._apiName = "/admin" + self._apiVersion = "/v1" + self._apiResource = "/roles" + self._apiBase = "{}{}{}".format( + self._apiName, self._apiVersion, self._apiResource + ) def create(self, name, permissions): """ @@ -56,27 +57,32 @@ class Role(object): role_permissions = yaml.safe_load(permissions) if not isinstance(role_permissions, dict): - raise ClientException('Role permissions should be provided in a key-value fashion') + raise ClientException( + "Role permissions should be provided in a key-value fashion" + ) for key, value in role_permissions.items(): if not isinstance(value, bool): - raise ClientException("Value of '{}' in a role permissions should be boolean".format(key)) + raise ClientException( + "Value of '{}' in a role permissions should be boolean".format( + key + ) + ) role["permissions"] = role_permissions - http_code, resp = self._http.post_cmd(endpoint=self._apiBase, - postfields_dict=role, - skip_query_admin=True) + http_code, resp = self._http.post_cmd( + endpoint=self._apiBase, postfields_dict=role, skip_query_admin=True + ) # print('HTTP CODE: {}'.format(http_code)) # print('RESP: {}'.format(resp)) - #if http_code in (200, 201, 202, 204): + # if http_code in (200, 201, 202, 204): if resp: resp = json.loads(resp) - if not resp or 'id' not in resp: - raise ClientException('Unexpected response from server - {}'.format( - resp)) - print(resp['id']) - #else: + if not resp or "id" not in resp: + raise ClientException("Unexpected response from server - {}".format(resp)) + print(resp["id"]) + # else: # msg = "" # if resp: # try: @@ -102,9 +108,9 @@ class Role(object): self._logger.debug("") self._client.get_token() if new_name is None and permissions is None and add is None and remove is None: - raise ClientException('At least one option should be provided') + raise ClientException("At least one option should be provided") elif permissions and (add or remove): - raise ClientException('permissions and add/remove are mutually exclusive') + raise ClientException("permissions and add/remove are mutually exclusive") role_obj = self.get(name) new_role_obj = {"permissions": {}} @@ -115,11 +121,15 @@ class Role(object): role_definition = yaml.safe_load(permissions) if not isinstance(role_definition, dict): - raise ClientException('Role permissions should be provided in a key-value fashion') + raise ClientException( + "Role permissions should be provided in a key-value fashion" + ) for key, value in role_definition.items(): if not isinstance(value, bool) and value is not None: - raise ClientException('Value in a role permissions should be boolean or None to remove') + raise ClientException( + "Value in a role permissions should be boolean or None to remove" + ) new_role_obj["permissions"] = role_definition else: @@ -127,42 +137,51 @@ class Role(object): keys_from_remove = yaml.safe_load(remove) if not isinstance(keys_from_remove, list): - raise ClientException('Keys should be provided in a list fashion') + raise ClientException("Keys should be provided in a list fashion") for key in keys_from_remove: if not isinstance(key, str): - raise ClientException('Individual keys should be strings') + raise ClientException("Individual keys should be strings") new_role_obj["permissions"][key] = None if add: add_roles = yaml.safe_load(add) if not isinstance(add_roles, dict): - raise ClientException('Add should be provided in a key-value fashion') + raise ClientException( + "Add should be provided in a key-value fashion" + ) for key, value in add_roles.items(): if not isinstance(value, bool): - raise ClientException("Value '{}' in a role permissions should be boolean".format(key)) + raise ClientException( + "Value '{}' in a role permissions should be boolean".format( + key + ) + ) new_role_obj["permissions"][key] = value if not new_role_obj["permissions"]: del new_role_obj["permissions"] - http_code, resp = self._http.patch_cmd(endpoint='{}/{}'.format(self._apiBase, role_obj['_id']), - postfields_dict=new_role_obj, - skip_query_admin=True) + http_code, resp = self._http.patch_cmd( + endpoint="{}/{}".format(self._apiBase, role_obj["_id"]), + postfields_dict=new_role_obj, + skip_query_admin=True, + ) # print('HTTP CODE: {}'.format(http_code)) # print('RESP: {}'.format(resp)) if http_code in (200, 201, 202): if resp: resp = json.loads(resp) - if not resp or 'id' not in resp: - raise ClientException('Unexpected response from server - {}'.format( - resp)) - print(resp['id']) + if not resp or "id" not in resp: + raise ClientException( + "Unexpected response from server - {}".format(resp) + ) + print(resp["id"]) elif http_code == 204: print("Updated") - #else: + # else: # msg = "" # if resp: # try: @@ -182,20 +201,21 @@ class Role(object): self._logger.debug("") self._client.get_token() role = self.get(name) - querystring = '' + querystring = "" if force: - querystring = '?FORCE=True' - http_code, resp = self._http.delete_cmd('{}/{}{}'.format(self._apiBase, - role['_id'], querystring), - skip_query_admin=True) + querystring = "?FORCE=True" + http_code, resp = self._http.delete_cmd( + "{}/{}{}".format(self._apiBase, role["_id"], querystring), + skip_query_admin=True, + ) # print('HTTP CODE: {}'.format(http_code)) # print('RESP: {}'.format(resp)) if http_code == 202: - print('Deletion in progress') + print("Deletion in progress") elif http_code == 204: - print('Deleted') - elif resp and 'result' in resp: - print('Deleted') + print("Deleted") + elif resp and "result" in resp: + print("Deleted") else: msg = resp or "" # if resp: @@ -214,10 +234,12 @@ class Role(object): """ self._logger.debug("") self._client.get_token() - filter_string = '' + filter_string = "" if filter: - filter_string = '?{}'.format(filter) - _, resp = self._http.get2_cmd('{}{}'.format(self._apiBase, filter_string),skip_query_admin=True) + filter_string = "?{}".format(filter) + _, resp = self._http.get2_cmd( + "{}{}".format(self._apiBase, filter_string), skip_query_admin=True + ) # print('RESP: {}'.format(resp)) if resp: return json.loads(resp) @@ -235,11 +257,10 @@ class Role(object): self._client.get_token() if utils.validate_uuid4(name): for role in self.list(): - if name == role['_id']: + if name == role["_id"]: return role else: for role in self.list(): - if name == role['name']: + if name == role["name"]: return role raise NotFound("Role {} not found".format(name)) -