Skip to content

Commit ff23121

Browse files
authored
{ACR} Remove unnecessary network call in az acr cache subcommand (#30850)
1 parent f081f22 commit ff23121

File tree

2 files changed

+29
-7
lines changed

2 files changed

+29
-7
lines changed

src/azure-cli/azure/cli/command_modules/acr/_constants.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@
1111
WEBHOOK_RESOURCE_TYPE = REGISTRY_RESOURCE_TYPE + '/webhooks'
1212
REPLICATION_RESOURCE_TYPE = REGISTRY_RESOURCE_TYPE + '/replications'
1313

14+
CREDENTIAL_SET_RESOURCE_ID_TEMPLATE = '/subscriptions/{sub_id}/resourceGroups/{rg}/providers/Microsoft.ContainerRegistry/registries/{reg_name}/credentialSets/{cred_set_name}'
15+
1416
TASK_RESOURCE_TYPE = REGISTRY_RESOURCE_TYPE + '/tasks'
1517
TASK_VALID_VSTS_URLS = ['visualstudio.com', 'dev.azure.com']
1618
TASK_RESOURCE_ID_TEMPLATE = '/subscriptions/{sub_id}/resourceGroups/{rg}/providers/Microsoft.ContainerRegistry/registries/{reg}/tasks/{name}'

src/azure-cli/azure/cli/command_modules/acr/cache.py

Lines changed: 27 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,10 @@
33
# Licensed under the MIT License. See License.txt in the project root for license information.
44
# --------------------------------------------------------------------------------------------
55

6-
from ._utils import get_registry_by_name, get_resource_group_name_by_registry_name
6+
from ._constants import CREDENTIAL_SET_RESOURCE_ID_TEMPLATE
7+
from ._utils import get_resource_group_name_by_registry_name
78
from azure.cli.core.azclierror import InvalidArgumentValueError
9+
from azure.cli.core.commands.client_factory import get_subscription_id
810
from azure.core.serialization import NULL as AzureCoreNull
911

1012

@@ -54,9 +56,18 @@ def acr_cache_create(cmd,
5456
resource_group_name=None,
5557
cred_set=None):
5658

57-
registry, rg = get_registry_by_name(cmd.cli_ctx, registry_name, resource_group_name)
58-
59-
cred_set_id = AzureCoreNull if not cred_set else f'{registry.id}/credentialSets/{cred_set}'
59+
if cred_set:
60+
sub_id = get_subscription_id(cmd.cli_ctx)
61+
rg = get_resource_group_name_by_registry_name(cmd.cli_ctx, registry_name, resource_group_name)
62+
# Format the credential set ID using subscription ID, resource group, registry name, and credential set name
63+
cred_set_id = CREDENTIAL_SET_RESOURCE_ID_TEMPLATE.format(
64+
sub_id=sub_id,
65+
rg=rg,
66+
reg_name=registry_name,
67+
cred_set_name=cred_set
68+
)
69+
else:
70+
cred_set_id = AzureCoreNull
6071

6172
CacheRuleCreateParameters = cmd.get_models('CacheRule', operation_group='cache_rules')
6273

@@ -82,9 +93,18 @@ def acr_cache_update_custom(cmd,
8293
if cred_set is None and remove_cred_set is False:
8394
raise InvalidArgumentValueError("You must either update the credential set ID or remove it.")
8495

85-
registry, _ = get_registry_by_name(cmd.cli_ctx, registry_name, resource_group_name)
86-
87-
cred_set_id = AzureCoreNull if remove_cred_set else f'{registry.id}/credentialSets/{cred_set}'
96+
if remove_cred_set:
97+
cred_set_id = AzureCoreNull
98+
else:
99+
sub_id = get_subscription_id(cmd.cli_ctx)
100+
rg = get_resource_group_name_by_registry_name(cmd.cli_ctx, registry_name, resource_group_name)
101+
# Format the credential set ID using subscription ID, resource group, registry name, and credential set name
102+
cred_set_id = CREDENTIAL_SET_RESOURCE_ID_TEMPLATE.format(
103+
sub_id=sub_id,
104+
rg=rg,
105+
reg_name=registry_name,
106+
cred_set_name=cred_set
107+
)
88108

89109
instance.credential_set_resource_id = cred_set_id
90110

0 commit comments

Comments
 (0)