From 0813dc733d43a198530236b3b64fc74d8a27d4f2 Mon Sep 17 00:00:00 2001 From: trisavo-msft <141691062+trisavo-msft@users.noreply.github.com> Date: Wed, 7 May 2025 17:37:53 -0500 Subject: [PATCH 1/8] login --- .../cli/command_modules/acr/_validators.py | 21 ++++++++++++------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/src/azure-cli/azure/cli/command_modules/acr/_validators.py b/src/azure-cli/azure/cli/command_modules/acr/_validators.py index a20740ed78f..b3610509cc4 100644 --- a/src/azure-cli/azure/cli/command_modules/acr/_validators.py +++ b/src/azure-cli/azure/cli/command_modules/acr/_validators.py @@ -102,15 +102,21 @@ def validate_retention_days(namespace): if days and (days < 0 or days > 365): raise CLIError("Invalid value for days: should be from 0 to 365") - def validate_registry_name(cmd, namespace): """Omit login server endpoint suffix.""" registry = namespace.registry_name if registry is None: return suffixes = cmd.cli_ctx.cloud.suffixes + dnl_hash = registry.find("-") # Some clouds do not define 'acr_login_server_endpoint' (e.g. AzureGermanCloud) - if registry and hasattr(suffixes, 'acr_login_server_endpoint'): + if registry and dnl_hash > 0 and hasattr(suffixes, 'acr_login_server_endpoint'): + logger.warning( + "Registry name is %s. The following suffix '%s' is automatically omitted. ", + registry[:dnl_hash], + registry[dnl_hash:]) + namespace.registry_name = registry[:dnl_hash] + elif registry and hasattr(suffixes, 'acr_login_server_endpoint'): acr_suffix = suffixes.acr_login_server_endpoint pos = registry.find(acr_suffix) if pos > 0: @@ -118,13 +124,12 @@ def validate_registry_name(cmd, namespace): namespace.registry_name = registry[:pos] registry = registry[:pos] # If registry contains '-' due to Domain Name Label Scope, - # ex: "myregistry-dnlhash123.azurecr.io", strip "-dnlhash123" - dnl_hash = registry.find("-") - if registry and dnl_hash > 0: + # ex: "myregistry-dnlhash123.azurecr.io", strip "-dnlhash123" + elif registry and dnl_hash > 0: logger.warning( - "The domain name label suffix '%s' is automatically omitted. Registry name is %s.", - registry[dnl_hash:], - registry[:dnl_hash]) + "Registry name is %s. The domain name label suffix '%s' is automatically omitted.", + registry[:dnl_hash], + registry[dnl_hash:]) namespace.registry_name = registry[:dnl_hash] registry = namespace.registry_name From bc2d14473a6117fca0f01fcf7d976cfb3d7079dd Mon Sep 17 00:00:00 2001 From: trisavo-msft <141691062+trisavo-msft@users.noreply.github.com> Date: Wed, 7 May 2025 17:40:42 -0500 Subject: [PATCH 2/8] print out name --- src/azure-cli/azure/cli/command_modules/acr/_validators.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/azure-cli/azure/cli/command_modules/acr/_validators.py b/src/azure-cli/azure/cli/command_modules/acr/_validators.py index b3610509cc4..d4b602f9619 100644 --- a/src/azure-cli/azure/cli/command_modules/acr/_validators.py +++ b/src/azure-cli/azure/cli/command_modules/acr/_validators.py @@ -120,7 +120,9 @@ def validate_registry_name(cmd, namespace): acr_suffix = suffixes.acr_login_server_endpoint pos = registry.find(acr_suffix) if pos > 0: - logger.warning("The login server endpoint suffix '%s' is automatically omitted.", acr_suffix) + logger.warning("Registry name is %s. The login server endpoint suffix '%s' is automatically omitted.", + registry[:pos], + acr_suffix) namespace.registry_name = registry[:pos] registry = registry[:pos] # If registry contains '-' due to Domain Name Label Scope, From 05af8c98c02198145bb26d80a1024e45512517d7 Mon Sep 17 00:00:00 2001 From: trisavo-msft <141691062+trisavo-msft@users.noreply.github.com> Date: Wed, 7 May 2025 18:11:15 -0500 Subject: [PATCH 3/8] Consolidate --- .../azure/cli/command_modules/acr/_validators.py | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/src/azure-cli/azure/cli/command_modules/acr/_validators.py b/src/azure-cli/azure/cli/command_modules/acr/_validators.py index d4b602f9619..1d75379d767 100644 --- a/src/azure-cli/azure/cli/command_modules/acr/_validators.py +++ b/src/azure-cli/azure/cli/command_modules/acr/_validators.py @@ -110,29 +110,21 @@ def validate_registry_name(cmd, namespace): suffixes = cmd.cli_ctx.cloud.suffixes dnl_hash = registry.find("-") # Some clouds do not define 'acr_login_server_endpoint' (e.g. AzureGermanCloud) - if registry and dnl_hash > 0 and hasattr(suffixes, 'acr_login_server_endpoint'): + if dnl_hash > 0 and hasattr(suffixes, 'acr_login_server_endpoint'): logger.warning( - "Registry name is %s. The following suffix '%s' is automatically omitted. ", + "Registry name is %s. The following suffix '%s' is automatically omitted.", registry[:dnl_hash], registry[dnl_hash:]) namespace.registry_name = registry[:dnl_hash] - elif registry and hasattr(suffixes, 'acr_login_server_endpoint'): + elif hasattr(suffixes, 'acr_login_server_endpoint'): acr_suffix = suffixes.acr_login_server_endpoint pos = registry.find(acr_suffix) if pos > 0: - logger.warning("Registry name is %s. The login server endpoint suffix '%s' is automatically omitted.", + logger.warning("Registry name is %s. The following suffix '%s' is automatically omitted.", registry[:pos], acr_suffix) namespace.registry_name = registry[:pos] registry = registry[:pos] - # If registry contains '-' due to Domain Name Label Scope, - # ex: "myregistry-dnlhash123.azurecr.io", strip "-dnlhash123" - elif registry and dnl_hash > 0: - logger.warning( - "Registry name is %s. The domain name label suffix '%s' is automatically omitted.", - registry[:dnl_hash], - registry[dnl_hash:]) - namespace.registry_name = registry[:dnl_hash] registry = namespace.registry_name if not re.match(ACR_NAME_VALIDATION_REGEX, registry): From 6c2ab3e03e02f427e25cefe633f58dd60fe51163 Mon Sep 17 00:00:00 2001 From: trisavo-msft <141691062+trisavo-msft@users.noreply.github.com> Date: Thu, 8 May 2025 12:35:24 -0500 Subject: [PATCH 4/8] address comments --- .../azure/cli/command_modules/acr/_validators.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/azure-cli/azure/cli/command_modules/acr/_validators.py b/src/azure-cli/azure/cli/command_modules/acr/_validators.py index 1d75379d767..476111cc9d6 100644 --- a/src/azure-cli/azure/cli/command_modules/acr/_validators.py +++ b/src/azure-cli/azure/cli/command_modules/acr/_validators.py @@ -102,6 +102,7 @@ def validate_retention_days(namespace): if days and (days < 0 or days > 365): raise CLIError("Invalid value for days: should be from 0 to 365") + def validate_registry_name(cmd, namespace): """Omit login server endpoint suffix.""" registry = namespace.registry_name @@ -109,14 +110,15 @@ def validate_registry_name(cmd, namespace): return suffixes = cmd.cli_ctx.cloud.suffixes dnl_hash = registry.find("-") - # Some clouds do not define 'acr_login_server_endpoint' (e.g. AzureGermanCloud) - if dnl_hash > 0 and hasattr(suffixes, 'acr_login_server_endpoint'): + + if registry and dnl_hash > 0: logger.warning( "Registry name is %s. The following suffix '%s' is automatically omitted.", registry[:dnl_hash], registry[dnl_hash:]) namespace.registry_name = registry[:dnl_hash] - elif hasattr(suffixes, 'acr_login_server_endpoint'): + # Some clouds do not define 'acr_login_server_endpoint' (e.g. AzureGermanCloud) + elif registry and hasattr(suffixes, 'acr_login_server_endpoint'): acr_suffix = suffixes.acr_login_server_endpoint pos = registry.find(acr_suffix) if pos > 0: From 8269a7e651b70a347af6e8e685b76bd2ae34526c Mon Sep 17 00:00:00 2001 From: trisavo-msft <141691062+trisavo-msft@users.noreply.github.com> Date: Thu, 8 May 2025 14:43:06 -0500 Subject: [PATCH 5/8] style --- src/azure-cli/azure/cli/command_modules/acr/_validators.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/azure-cli/azure/cli/command_modules/acr/_validators.py b/src/azure-cli/azure/cli/command_modules/acr/_validators.py index 476111cc9d6..6a6270a7763 100644 --- a/src/azure-cli/azure/cli/command_modules/acr/_validators.py +++ b/src/azure-cli/azure/cli/command_modules/acr/_validators.py @@ -123,8 +123,8 @@ def validate_registry_name(cmd, namespace): pos = registry.find(acr_suffix) if pos > 0: logger.warning("Registry name is %s. The following suffix '%s' is automatically omitted.", - registry[:pos], - acr_suffix) + registry[:pos], + acr_suffix) namespace.registry_name = registry[:pos] registry = registry[:pos] From 429a153acf3f010a4cffc20a7ea97e02790b5f5c Mon Sep 17 00:00:00 2001 From: trisavo-msft <141691062+trisavo-msft@users.noreply.github.com> Date: Fri, 9 May 2025 16:41:42 -0500 Subject: [PATCH 6/8] Move validate registry name to login credentials --- .../cli/command_modules/acr/_docker_utils.py | 11 ++++-- .../azure/cli/command_modules/acr/_params.py | 4 +-- .../cli/command_modules/acr/_validators.py | 36 ++++++++++--------- 3 files changed, 31 insertions(+), 20 deletions(-) diff --git a/src/azure-cli/azure/cli/command_modules/acr/_docker_utils.py b/src/azure-cli/azure/cli/command_modules/acr/_docker_utils.py index b404f600464..4aa7ea1de86 100644 --- a/src/azure-cli/azure/cli/command_modules/acr/_docker_utils.py +++ b/src/azure-cli/azure/cli/command_modules/acr/_docker_utils.py @@ -9,6 +9,7 @@ from json import loads from enum import Enum from base64 import b64encode +from azure.cli.command_modules.acr._params import validate_registry_name import requests from requests import RequestException from requests.utils import to_native_string @@ -396,6 +397,9 @@ def _get_credentials(cmd, # pylint: disable=too-many-statements cli_ctx = cmd.cli_ctx resource_not_found, registry = None, None try: + if cli_ctx is None or registry_name is None: + return None, None + registry_name, dnl_suffix = validate_registry_name(cli_ctx, registry_name) registry, resource_group_name = get_registry_by_name(cli_ctx, registry_name, resource_group_name) login_server = registry.login_server if tenant_suffix: @@ -411,8 +415,11 @@ def _get_credentials(cmd, # pylint: disable=too-many-statements login_server_suffix = get_login_server_suffix(cli_ctx) if not login_server_suffix: raise - login_server = '{}{}{}'.format( - registry_name, '-{}'.format(tenant_suffix) if tenant_suffix else '', login_server_suffix).lower() + login_server = '{}{}{}{}'.format( + registry_name, + '-{}'.format(tenant_suffix) if tenant_suffix else '', + '{}'.format(dnl_suffix) if dnl_suffix else '', + login_server_suffix).lower() # Validate the login server is reachable url = 'https://' + login_server + '/v2/' diff --git a/src/azure-cli/azure/cli/command_modules/acr/_params.py b/src/azure-cli/azure/cli/command_modules/acr/_params.py index 52978a7adaa..d30f56da0da 100644 --- a/src/azure-cli/azure/cli/command_modules/acr/_params.py +++ b/src/azure-cli/azure/cli/command_modules/acr/_params.py @@ -83,7 +83,7 @@ def load_arguments(self, _): # pylint: disable=too-many-statements with self.argument_context('acr') as c: c.argument('tags', arg_type=tags_type) - c.argument('registry_name', options_list=['--name', '-n'], help='The name of the container registry. It should be specified in lower case. You can configure the default registry name using `az configure --defaults acr=`', completer=get_resource_name_completion_list(REGISTRY_RESOURCE_TYPE), configured_default='acr', validator=validate_registry_name) + c.argument('registry_name', options_list=['--name', '-n'], help='The name of the container registry. It should be specified in lower case. You can configure the default registry name using `az configure --defaults acr=`', completer=get_resource_name_completion_list(REGISTRY_RESOURCE_TYPE), configured_default='acr') c.argument('tenant_suffix', options_list=['--suffix'], help="The tenant suffix in registry login server. You may specify '--suffix tenant' if your registry login server is in the format 'registry-tenant.azurecr.io'. Applicable if you\'re accessing the registry from a different subscription or you have permission to access images but not the permission to manage the registry resource.") c.argument('sku', help='The SKU of the container registry', arg_type=get_enum_type(['Basic', 'Standard', 'Premium'])) c.argument('admin_enabled', help='Indicates whether the admin user is enabled', arg_type=get_three_state_flag()) @@ -193,7 +193,7 @@ def load_arguments(self, _): # pylint: disable=too-many-statements c.argument('operation_id', options_list=['--id'], required=False, help="The ID returned when creating a streaming artifact.") with self.argument_context('acr manifest') as c: - c.argument('registry_name', options_list=['--registry', '-r'], help='The name of the container registry. You can configure the default registry name using `az configure --defaults acr=`', completer=get_resource_name_completion_list(REGISTRY_RESOURCE_TYPE), configured_default='acr', validator=validate_registry_name) + c.argument('registry_name', options_list=['--registry', '-r'], help='The name of the container registry. You can configure the default registry name using `az configure --defaults acr=`', completer=get_resource_name_completion_list(REGISTRY_RESOURCE_TYPE), configured_default='acr') c.argument('top', type=int, help='Limit the number of items in the results.') c.argument('orderby', help='Order the items in the results. Default to alphabetical order of names.', arg_type=get_enum_type(['time_asc', 'time_desc'])) c.argument('delete_enabled', help='Indicate whether delete operation is allowed.', arg_type=get_three_state_flag()) diff --git a/src/azure-cli/azure/cli/command_modules/acr/_validators.py b/src/azure-cli/azure/cli/command_modules/acr/_validators.py index 6a6270a7763..05e6872f2aa 100644 --- a/src/azure-cli/azure/cli/command_modules/acr/_validators.py +++ b/src/azure-cli/azure/cli/command_modules/acr/_validators.py @@ -103,33 +103,37 @@ def validate_retention_days(namespace): raise CLIError("Invalid value for days: should be from 0 to 365") -def validate_registry_name(cmd, namespace): +def validate_registry_name(cli_ctx, registry_name): """Omit login server endpoint suffix.""" - registry = namespace.registry_name - if registry is None: + if registry_name is None: return - suffixes = cmd.cli_ctx.cloud.suffixes - dnl_hash = registry.find("-") + suffixes = cli_ctx.cloud.suffixes + dnl_hash = registry_name.find("-") - if registry and dnl_hash > 0: + if dnl_hash > 0: logger.warning( "Registry name is %s. The following suffix '%s' is automatically omitted.", - registry[:dnl_hash], - registry[dnl_hash:]) - namespace.registry_name = registry[:dnl_hash] + registry_name[:dnl_hash], + registry_name[dnl_hash:]) + registry_name = registry_name[:dnl_hash] + dnl_suffix = registry_name[dnl_hash:] + if hasattr(suffixes, 'acr_login_server_endpoint'): + acr_suffix = suffixes.acr_login_server_endpoint + pos = dnl_suffix.find(acr_suffix) + dnl_suffix = dnl_suffix[:pos] + # Some clouds do not define 'acr_login_server_endpoint' (e.g. AzureGermanCloud) - elif registry and hasattr(suffixes, 'acr_login_server_endpoint'): + elif hasattr(suffixes, 'acr_login_server_endpoint'): acr_suffix = suffixes.acr_login_server_endpoint - pos = registry.find(acr_suffix) + pos = registry_name.find(acr_suffix) if pos > 0: logger.warning("Registry name is %s. The following suffix '%s' is automatically omitted.", - registry[:pos], + registry_name[:pos], acr_suffix) - namespace.registry_name = registry[:pos] - registry = registry[:pos] + registry_name = registry_name[:pos] - registry = namespace.registry_name - if not re.match(ACR_NAME_VALIDATION_REGEX, registry): + return registry_name, dnl_suffix + if not re.match(ACR_NAME_VALIDATION_REGEX, registry_name): raise InvalidArgumentValueError(BAD_REGISTRY_NAME) From 84a96bd81fce501ad46b8a75c0fb468cba6671ae Mon Sep 17 00:00:00 2001 From: trisavo-msft <141691062+trisavo-msft@users.noreply.github.com> Date: Fri, 9 May 2025 18:29:11 -0700 Subject: [PATCH 7/8] Revert "Move validate registry name to login credentials" This reverts commit 429a153acf3f010a4cffc20a7ea97e02790b5f5c. --- .../cli/command_modules/acr/_docker_utils.py | 11 ++---- .../azure/cli/command_modules/acr/_params.py | 4 +-- .../cli/command_modules/acr/_validators.py | 36 +++++++++---------- 3 files changed, 20 insertions(+), 31 deletions(-) diff --git a/src/azure-cli/azure/cli/command_modules/acr/_docker_utils.py b/src/azure-cli/azure/cli/command_modules/acr/_docker_utils.py index 4aa7ea1de86..b404f600464 100644 --- a/src/azure-cli/azure/cli/command_modules/acr/_docker_utils.py +++ b/src/azure-cli/azure/cli/command_modules/acr/_docker_utils.py @@ -9,7 +9,6 @@ from json import loads from enum import Enum from base64 import b64encode -from azure.cli.command_modules.acr._params import validate_registry_name import requests from requests import RequestException from requests.utils import to_native_string @@ -397,9 +396,6 @@ def _get_credentials(cmd, # pylint: disable=too-many-statements cli_ctx = cmd.cli_ctx resource_not_found, registry = None, None try: - if cli_ctx is None or registry_name is None: - return None, None - registry_name, dnl_suffix = validate_registry_name(cli_ctx, registry_name) registry, resource_group_name = get_registry_by_name(cli_ctx, registry_name, resource_group_name) login_server = registry.login_server if tenant_suffix: @@ -415,11 +411,8 @@ def _get_credentials(cmd, # pylint: disable=too-many-statements login_server_suffix = get_login_server_suffix(cli_ctx) if not login_server_suffix: raise - login_server = '{}{}{}{}'.format( - registry_name, - '-{}'.format(tenant_suffix) if tenant_suffix else '', - '{}'.format(dnl_suffix) if dnl_suffix else '', - login_server_suffix).lower() + login_server = '{}{}{}'.format( + registry_name, '-{}'.format(tenant_suffix) if tenant_suffix else '', login_server_suffix).lower() # Validate the login server is reachable url = 'https://' + login_server + '/v2/' diff --git a/src/azure-cli/azure/cli/command_modules/acr/_params.py b/src/azure-cli/azure/cli/command_modules/acr/_params.py index d30f56da0da..52978a7adaa 100644 --- a/src/azure-cli/azure/cli/command_modules/acr/_params.py +++ b/src/azure-cli/azure/cli/command_modules/acr/_params.py @@ -83,7 +83,7 @@ def load_arguments(self, _): # pylint: disable=too-many-statements with self.argument_context('acr') as c: c.argument('tags', arg_type=tags_type) - c.argument('registry_name', options_list=['--name', '-n'], help='The name of the container registry. It should be specified in lower case. You can configure the default registry name using `az configure --defaults acr=`', completer=get_resource_name_completion_list(REGISTRY_RESOURCE_TYPE), configured_default='acr') + c.argument('registry_name', options_list=['--name', '-n'], help='The name of the container registry. It should be specified in lower case. You can configure the default registry name using `az configure --defaults acr=`', completer=get_resource_name_completion_list(REGISTRY_RESOURCE_TYPE), configured_default='acr', validator=validate_registry_name) c.argument('tenant_suffix', options_list=['--suffix'], help="The tenant suffix in registry login server. You may specify '--suffix tenant' if your registry login server is in the format 'registry-tenant.azurecr.io'. Applicable if you\'re accessing the registry from a different subscription or you have permission to access images but not the permission to manage the registry resource.") c.argument('sku', help='The SKU of the container registry', arg_type=get_enum_type(['Basic', 'Standard', 'Premium'])) c.argument('admin_enabled', help='Indicates whether the admin user is enabled', arg_type=get_three_state_flag()) @@ -193,7 +193,7 @@ def load_arguments(self, _): # pylint: disable=too-many-statements c.argument('operation_id', options_list=['--id'], required=False, help="The ID returned when creating a streaming artifact.") with self.argument_context('acr manifest') as c: - c.argument('registry_name', options_list=['--registry', '-r'], help='The name of the container registry. You can configure the default registry name using `az configure --defaults acr=`', completer=get_resource_name_completion_list(REGISTRY_RESOURCE_TYPE), configured_default='acr') + c.argument('registry_name', options_list=['--registry', '-r'], help='The name of the container registry. You can configure the default registry name using `az configure --defaults acr=`', completer=get_resource_name_completion_list(REGISTRY_RESOURCE_TYPE), configured_default='acr', validator=validate_registry_name) c.argument('top', type=int, help='Limit the number of items in the results.') c.argument('orderby', help='Order the items in the results. Default to alphabetical order of names.', arg_type=get_enum_type(['time_asc', 'time_desc'])) c.argument('delete_enabled', help='Indicate whether delete operation is allowed.', arg_type=get_three_state_flag()) diff --git a/src/azure-cli/azure/cli/command_modules/acr/_validators.py b/src/azure-cli/azure/cli/command_modules/acr/_validators.py index 05e6872f2aa..6a6270a7763 100644 --- a/src/azure-cli/azure/cli/command_modules/acr/_validators.py +++ b/src/azure-cli/azure/cli/command_modules/acr/_validators.py @@ -103,37 +103,33 @@ def validate_retention_days(namespace): raise CLIError("Invalid value for days: should be from 0 to 365") -def validate_registry_name(cli_ctx, registry_name): +def validate_registry_name(cmd, namespace): """Omit login server endpoint suffix.""" - if registry_name is None: + registry = namespace.registry_name + if registry is None: return - suffixes = cli_ctx.cloud.suffixes - dnl_hash = registry_name.find("-") + suffixes = cmd.cli_ctx.cloud.suffixes + dnl_hash = registry.find("-") - if dnl_hash > 0: + if registry and dnl_hash > 0: logger.warning( "Registry name is %s. The following suffix '%s' is automatically omitted.", - registry_name[:dnl_hash], - registry_name[dnl_hash:]) - registry_name = registry_name[:dnl_hash] - dnl_suffix = registry_name[dnl_hash:] - if hasattr(suffixes, 'acr_login_server_endpoint'): - acr_suffix = suffixes.acr_login_server_endpoint - pos = dnl_suffix.find(acr_suffix) - dnl_suffix = dnl_suffix[:pos] - + registry[:dnl_hash], + registry[dnl_hash:]) + namespace.registry_name = registry[:dnl_hash] # Some clouds do not define 'acr_login_server_endpoint' (e.g. AzureGermanCloud) - elif hasattr(suffixes, 'acr_login_server_endpoint'): + elif registry and hasattr(suffixes, 'acr_login_server_endpoint'): acr_suffix = suffixes.acr_login_server_endpoint - pos = registry_name.find(acr_suffix) + pos = registry.find(acr_suffix) if pos > 0: logger.warning("Registry name is %s. The following suffix '%s' is automatically omitted.", - registry_name[:pos], + registry[:pos], acr_suffix) - registry_name = registry_name[:pos] + namespace.registry_name = registry[:pos] + registry = registry[:pos] - return registry_name, dnl_suffix - if not re.match(ACR_NAME_VALIDATION_REGEX, registry_name): + registry = namespace.registry_name + if not re.match(ACR_NAME_VALIDATION_REGEX, registry): raise InvalidArgumentValueError(BAD_REGISTRY_NAME) From efa2af3fa10cdad551c33cb5fd23273102cfc99f Mon Sep 17 00:00:00 2001 From: trisavo-msft <141691062+trisavo-msft@users.noreply.github.com> Date: Mon, 12 May 2025 11:48:46 -0500 Subject: [PATCH 8/8] Address comments --- src/azure-cli/azure/cli/command_modules/acr/_validators.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/azure-cli/azure/cli/command_modules/acr/_validators.py b/src/azure-cli/azure/cli/command_modules/acr/_validators.py index 6a6270a7763..3f2c6c8422e 100644 --- a/src/azure-cli/azure/cli/command_modules/acr/_validators.py +++ b/src/azure-cli/azure/cli/command_modules/acr/_validators.py @@ -111,14 +111,14 @@ def validate_registry_name(cmd, namespace): suffixes = cmd.cli_ctx.cloud.suffixes dnl_hash = registry.find("-") - if registry and dnl_hash > 0: + if dnl_hash > 0: logger.warning( "Registry name is %s. The following suffix '%s' is automatically omitted.", registry[:dnl_hash], registry[dnl_hash:]) namespace.registry_name = registry[:dnl_hash] # Some clouds do not define 'acr_login_server_endpoint' (e.g. AzureGermanCloud) - elif registry and hasattr(suffixes, 'acr_login_server_endpoint'): + elif hasattr(suffixes, 'acr_login_server_endpoint'): acr_suffix = suffixes.acr_login_server_endpoint pos = registry.find(acr_suffix) if pos > 0: