|
3 | 3 | # Licensed under the MIT License. See License.txt in the project root for license information. |
4 | 4 | # -------------------------------------------------------------------------------------------- |
5 | 5 |
|
6 | | -import sys |
7 | | -from knack.util import CLIError |
8 | | -from azure.cli.core.util import sdk_no_wait |
9 | | - |
10 | | -from ._client_factory import network_client_factory |
11 | | -from .custom import lb_get |
12 | 6 | from azure.cli.core.azclierror import UnrecognizedArgumentError |
13 | 7 |
|
14 | 8 |
|
15 | | -# workaround for : https://github.com/Azure/azure-cli/issues/17071 |
16 | | -def delete_lb_resource_property_entry(resource, prop): |
17 | | - """ Factory method for creating delete functions. """ |
18 | | - |
19 | | - def delete_func(cmd, resource_group_name, resource_name, item_name, no_wait=False): # pylint: disable=unused-argument |
20 | | - client = getattr(network_client_factory(cmd.cli_ctx), resource) |
21 | | - item = lb_get(client, resource_group_name, resource_name) |
22 | | - |
23 | | - if item.__getattribute__(prop) is not None: |
24 | | - keep_items = [x for x in item.__getattribute__(prop) if x.name.lower() != item_name.lower()] |
25 | | - else: |
26 | | - keep_items = None |
27 | | - |
28 | | - with cmd.update_context(item) as c: |
29 | | - c.set_param(prop, keep_items) |
30 | | - if no_wait: |
31 | | - sdk_no_wait(no_wait, client.begin_create_or_update, resource_group_name, resource_name, item) |
32 | | - else: |
33 | | - result = sdk_no_wait(no_wait, client.begin_create_or_update, |
34 | | - resource_group_name, resource_name, item).result() |
35 | | - if next((x for x in getattr(result, prop) or [] if x.name.lower() == item_name.lower()), None): |
36 | | - raise CLIError("Failed to delete '{}' on '{}'".format(item_name, resource_name)) |
37 | | - |
38 | | - func_name = 'delete_lb_resource_property_entry_{}_{}'.format(resource, prop) |
39 | | - setattr(sys.modules[__name__], func_name, delete_func) |
40 | | - return func_name |
41 | | - |
42 | | - |
43 | 9 | def _list_to_dict(enum_list): |
44 | 10 | return {item.lower(): item for item in enum_list} |
45 | 11 |
|
|
0 commit comments