Skip to content

Serial-console fails for systems in eastus #106

@msftvito

Description

@msftvito

This is for an issue originally opened at Azure/azure-cli#26050.

az serial-console connect fails because the dictionary used for looking up region pairs doesn't have eastus. Official Azure documentation lists the pair for eastus is westus: https://learn.microsoft.com/en-us/azure/reliability/cross-region-replication-azure.

Proposed fix:
_arm_endpoints.py should add this to the dictionary:
'eastus': 'westus',

Error message on with version 0.1.5 of the serial-console extension on Linux:
The command failed with an unexpected error. Here is the traceback:
'eastus'
Traceback (most recent call last):
File "/usr/lib64/az/lib/python3.6/site-packages/knack/cli.py", line 231, in invoke
cmd_result = self.invocation.execute(args)
File "/usr/lib64/az/lib/python3.6/site-packages/azure/cli/core/commands/init.py", line 663, in execute
raise ex
File "/usr/lib64/az/lib/python3.6/site-packages/azure/cli/core/commands/init.py", line 726, in _run_jobs_serially
results.append(self._run_job(expanded_arg, cmd_copy))
File "/usr/lib64/az/lib/python3.6/site-packages/azure/cli/core/commands/init.py", line 697, in _run_job
result = cmd_copy(params)
File "/usr/lib64/az/lib/python3.6/site-packages/azure/cli/core/commands/init.py", line 333, in call
return self.handler(*args, **kwargs)
File "/usr/lib64/az/lib/python3.6/site-packages/azure/cli/core/commands/command_operation.py", line 121, in handler
return op(**command_args)
File "/home/vito/.azure/cliextensions/serial-console/azext_serialconsole/custom.py", line 633, in connect_serialconsole
vm_vmss_name, vmss_instanceid)
File "/home/vito/.azure/cliextensions/serial-console/azext_serialconsole/custom.py", line 597, in check_resource
vmss_instanceid)
File "/home/vito/.azure/cliextensions/serial-console/azext_serialconsole/custom.py", line 735, in get_region_from_storage_account
storage_account_region = get_storage_account_info(storage_account_url, scf)
File "/home/vito/.azure/cliextensions/serial-console/azext_serialconsole/custom.py", line 750, in get_storage_account_info
return ArmEndpoints.region_prefix_pairings[sa_result.location]
KeyError: 'eastus'
To open an issue, please run: 'az feedback'

To reproduce:
az serial-console connect -n vmname -g vmresourcegroup on a VM in the eastus region, with the boot diagnostics storage account set to a custom storage account instead of the default managed storage account, otherwise get_storage_account_info will return None instead of looking up the region_prefix_pairings dictionary:

`def get_storage_account_info(storage_account_url, scf):
from azext_serialconsole._arm_endpoints import ArmEndpoints

if storage_account_url is not None:
storage_account, storage_account_resource_group = parse_storage_account_url(storage_account_url, scf)
if storage_account is not None:
sa_result = scf.storage_accounts.get_properties(storage_account_resource_group, storage_account)
if (sa_result is not None and
sa_result.network_rule_set is not None and
len(sa_result.network_rule_set.ip_rules) > 0):
return ArmEndpoints.region_prefix_pairings[sa_result.location]
return None`

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions