Skip to content

Commit 258fa77

Browse files
committed
Connected registry create: if data-endpoint disable, enable it.
1 parent 229a9cf commit 258fa77

File tree

2 files changed

+18
-17
lines changed

2 files changed

+18
-17
lines changed

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -431,18 +431,18 @@ def _helm_deprecate_message(self):
431431

432432
with self.command_group('acr connected-registry', acr_connected_registry_util, is_preview=True) as g:
433433
g.command('create', 'acr_connected_registry_create')
434+
g.command('update', 'acr_connected_registry_update')
434435
g.command('delete', 'acr_connected_registry_delete')
435436
g.show_command('show', 'acr_connected_registry_show')
436437
g.command('deactivate', 'acr_connected_registry_deactivate')
437-
g.command('update', 'acr_connected_registry_update')
438438
g.command('get-settings', 'acr_connected_registry_get_settings')
439-
g.command('permissions update', 'acr_connected_registry_permissions_update')
440-
g.show_command('permissions show', 'acr_connected_registry_permissions_show',
441-
table_transformer=scope_map_output_format)
442439
g.command('list', 'acr_connected_registry_list',
443440
table_transformer=connected_registry_list_output_format)
444441
g.command('list-client-tokens', 'acr_connected_registry_list_client_tokens',
445442
table_transformer=token_output_format)
443+
g.command('permissions update', 'acr_connected_registry_permissions_update')
444+
g.show_command('permissions show', 'acr_connected_registry_permissions_show',
445+
table_transformer=scope_map_output_format)
446446

447447
def _metadata_deprecate_message(self):
448448
msg = "This {} has been deprecated and will be removed in future release.".format(self.object_type)

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

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
from azure.cli.core.commands import LongRunningOperation
1313
from azure.cli.core.commands.client_factory import get_subscription_id
1414
from azure.cli.core.util import user_confirmation
15+
from azure.core.exceptions import HttpResponseError
1516
from ._client_factory import cf_acr_tokens, cf_acr_scope_maps
1617
from ._utils import (
1718
build_token_id,
@@ -22,7 +23,7 @@
2223
parse_scope_map_actions,
2324
validate_managed_registry
2425
)
25-
26+
from .custom import acr_update_custom
2627

2728
class ConnectedRegistryModes(Enum):
2829
READONLY = 'readonly'
@@ -59,33 +60,33 @@ def acr_connected_registry_create(cmd, # pylint: disable=too-many-locals, too-m
5960
sync_window=None,
6061
log_level=None,
6162
sync_audit_logs_enabled=False,
62-
notifications=None):
63+
notifications=None,
64+
yes=False):
6365

6466
if bool(sync_token_name) == bool(repositories):
6567
raise CLIError("argument error: either --sync-token or --repository must be provided, but not both.")
6668
# Check needed since the sync token gateway actions must be at least 5 characters long.
6769
if len(connected_registry_name) < 5:
6870
raise InvalidArgumentValueError("argument error: Connected registry name must be at least 5 characters long.")
69-
if re.match(r'\w*[A-Z]\w*', connected_registry_name):
70-
raise InvalidArgumentValueError("argument error: Connected registry name must use only lowercase.")
71-
registry, resource_group_name = get_registry_by_name(cmd.cli_ctx, registry_name, resource_group_name)
72-
subscription_id = get_subscription_id(cmd.cli_ctx)
7371

72+
subscription_id = get_subscription_id(cmd.cli_ctx)
73+
registry, resource_group_name = get_registry_by_name(cmd.cli_ctx, registry_name, resource_group_name)
7474
if not registry.data_endpoint_enabled:
75-
raise CLIError("Can't create the connected registry '{}' ".format(connected_registry_name) +
76-
"because the cloud registry '{}' data endpoint is disabled. ".format(registry_name) +
77-
"Enabling the data endpoint might affect your firewall rules.\nTo enable data endpoint run:" +
78-
"\n\taz acr update -n {} --data-endpoint-enabled true".format(registry_name))
75+
user_confirmation("Dedicated data enpoints must be enabled to use connected-registry. Enabling might " +
76+
"impact your firewall rules. Are you sure you want to enable it for '{}' registry?".format(
77+
registry_name), yes)
78+
acr_update_custom(cmd, registry, resource_group_name, data_endpoint_enabled=True)
7979

80-
from azure.core.exceptions import HttpResponseError as ErrorResponseException
81-
parent = None
80+
connected_registry_name = connected_registry_name.lower()
81+
parent_name = parent_name.lower() if parent_name else None
8282
mode = mode.lower()
83+
parent = None
8384
if parent_name:
8485
try:
8586
parent = acr_connected_registry_show(cmd, client, parent_name, registry_name, resource_group_name)
8687
connected_registry_list = list(client.list(resource_group_name, registry_name))
8788
family_tree, _ = _get_family_tree(connected_registry_list, None)
88-
except ErrorResponseException as ex:
89+
except HttpResponseError as ex:
8990
if ex.response.status_code == 404:
9091
raise CLIError("The parent connected registry '{}' could not be found.".format(parent_name))
9192
raise CLIError(ex)

0 commit comments

Comments
 (0)