|
61 | 61 | # pylint: disable=too-many-lines, protected-access |
62 | 62 |
|
63 | 63 |
|
64 | | -def list_role_definitions(cmd, name=None, resource_group_name=None, scope=None, |
| 64 | +def list_role_definitions(cmd, name=None, role_name=None, resource_group_name=None, scope=None, |
65 | 65 | custom_role_only=False): |
66 | 66 | definitions_client = _auth_client_factory(cmd.cli_ctx, scope).role_definitions |
67 | 67 | scope = _build_role_scope(resource_group_name, scope, |
68 | 68 | definitions_client._config.subscription_id) |
69 | | - return _search_role_definitions(cmd.cli_ctx, definitions_client, name, [scope], custom_role_only) |
| 69 | + return _search_role_definitions(cmd.cli_ctx, definitions_client, name, [scope], custom_role_only=custom_role_only, |
| 70 | + role_name=role_name) |
70 | 71 |
|
71 | 72 |
|
72 | 73 | def create_role_definition(cmd, role_definition): |
@@ -137,9 +138,9 @@ def delete_role_definition(cmd, name, resource_group_name=None, scope=None, |
137 | 138 | definitions_client.delete(role_definition_id=r.name, scope=scope) |
138 | 139 |
|
139 | 140 |
|
140 | | -def _search_role_definitions(cli_ctx, definitions_client, name, scopes, custom_role_only=False): |
| 141 | +def _search_role_definitions(cli_ctx, definitions_client, name, scopes, custom_role_only=False, role_name=None): |
141 | 142 | for scope in scopes: |
142 | | - roles = list(definitions_client.list(scope)) |
| 143 | + roles = list(definitions_client.list(scope, filter=f"roleName eq '{role_name}'")) |
143 | 144 | worker = MultiAPIAdaptor(cli_ctx) |
144 | 145 | if name: |
145 | 146 | roles = [r for r in roles if r.name == name or worker.get_role_property(r, 'role_name') == name] |
|
0 commit comments