Azure / azure-devops-cli-extension

Azure DevOps Extension for Azure CLI
https://docs.microsoft.com/en-us/cli/azure/ext/azure-devops/?view=azure-cli-latest
MIT License
628 stars 241 forks source link

M1 Mac: Failed to update Universal Packages tooling while using `az artifacts universal download` #1222

Open imWildCat opened 2 years ago

imWildCat commented 2 years ago

This is autogenerated. Please review and update as needed.

Describe the bug

Command Name az artifacts universal download Extension Name: azure-devops. Version: 0.20.0.

Errors:

Failed to update Universal Packages tooling.
 No release could be found based on the provided information.

To Reproduce:

Steps to reproduce the behavior. Note that argument values have been redacted, as they may contain sensitive information.

Expected Behavior

Environment Summary

macOS-12.0.1-arm64-arm-64bit, Darwin 21.1.0
Python 3.9.7
Installer: HOMEBREW

azure-cli 2.29.2 *

Extensions:
azure-devops 0.20.0

Additional Context

nathanhannig commented 2 years ago

I have similar issue trying to set up in a Dockerfile.

ERROR: Failed to update Universal Packages tooling.

 TF400813: Resource not available for anonymous access. Client authentication required.

The same commands work on my local pc, I am using az devops login correctly beforehand

nubgamerz commented 2 years ago

Same issue here, there's been no update from MS on this topic.

Please update the CLI tool to work with the M1 chipset

yozik04 commented 1 year ago

I can confirm that it fails with this debug output:

cli.azext_devops.dev.common.artifacttool_updater: Looking up current version of ArtifactTool...
azext_devops.devops_sdk.client: File cache hit for options on: https://skype.vsblob.visualstudio.com
azext_devops.devops_sdk.client: Route template: _apis/{area}/{toolName}/{resource}
azext_devops.devops_sdk.client: Api version '5.0-preview'
azext_devops.devops_sdk.client: GET https://skype.vsblob.visualstudio.com/_apis/clienttools/ArtifactTool/release?osName=Linux&arch=aarch64&distroName=debian&distroVersion=10
azext_devops.devops_sdk.client: Request content: None
msrest.universal_http: Configuring redirects: allow=True, max=30
msrest.universal_http: Configuring request: timeout=100, verify=True, cert=None
msrest.universal_http: Configuring proxies: ''
msrest.universal_http: Evaluate proxies against ENV settings: True
urllib3.connectionpool: Starting new HTTPS connection (1): skype.vsblob.visualstudio.com:443
urllib3.connectionpool: https://skype.vsblob.visualstudio.com:443 "GET /_apis/clienttools/ArtifactTool/release?osName=Linux&arch=aarch64&distroName=debian&distroVersion=10 HTTP/1.1" 404 326
azext_devops.devops_sdk.client: Response content: b'{"$id":"1","innerException":null,"message":"No release could be found based on the provided information.","typeName":"Microsoft.VisualStudio.Services.BlobStore.WebApi.Exceptions.ClientToolNotFoundException, Microsoft.VisualStudio.Services.BlobStore.WebApi","typeKey":"ClientToolNotFoundException","errorCode":0,"eventId":3000}'
msrest.exceptions: No release could be found based on the provided information.
cli.azext_devops.dev.common.artifacttool_updater: No release could be found based on the provided information.
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/azure-cli-extensions/azure-devops/azext_devops/dev/common/artifacttool_updater.py", line 59, in _get_artifacttool
    release = _get_current_release(organization, override_version)
  File "/usr/lib/python3/dist-packages/azure-cli-extensions/azure-devops/azext_devops/dev/common/artifacttool_updater.py", line 175, in _get_current_release
    version=override_version)
  File "/usr/lib/python3/dist-packages/azure-cli-extensions/azure-devops/azext_devops/dev/common/client_tool/client_tool_client.py", line 48, in get_clienttool_release
    query_parameters=query_parameters)
  File "/usr/lib/python3/dist-packages/azure-cli-extensions/azure-devops/azext_devops/devops_sdk/client.py", line 90, in _send
    response = self._send_request(request=request, headers=headers, content=content, media_type=media_type)
  File "/usr/lib/python3/dist-packages/azure-cli-extensions/azure-devops/azext_devops/devops_sdk/client.py", line 54, in _send_request
    self._handle_error(request, response)
  File "/usr/lib/python3/dist-packages/azure-cli-extensions/azure-devops/azext_devops/devops_sdk/client.py", line 233, in _handle_error
    raise AzureDevOpsServiceError(wrapped_exception)
azext_devops.devops_sdk.exceptions.AzureDevOpsServiceError: No release could be found based on the provided information.
cli.azext_devops.dev.common.exception_handler: handling generic error
cli.azure.cli.core.util: azure.cli.core.util.handle_exception is called with an exception:
cli.azure.cli.core.util: Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/azure-cli-extensions/azure-devops/azext_devops/dev/common/artifacttool_updater.py", line 59, in _get_artifacttool
    release = _get_current_release(organization, override_version)
  File "/usr/lib/python3/dist-packages/azure-cli-extensions/azure-devops/azext_devops/dev/common/artifacttool_updater.py", line 175, in _get_current_release
    version=override_version)
  File "/usr/lib/python3/dist-packages/azure-cli-extensions/azure-devops/azext_devops/dev/common/client_tool/client_tool_client.py", line 48, in get_clienttool_release
    query_parameters=query_parameters)
  File "/usr/lib/python3/dist-packages/azure-cli-extensions/azure-devops/azext_devops/devops_sdk/client.py", line 90, in _send
    response = self._send_request(request=request, headers=headers, content=content, media_type=media_type)
  File "/usr/lib/python3/dist-packages/azure-cli-extensions/azure-devops/azext_devops/devops_sdk/client.py", line 54, in _send_request
    self._handle_error(request, response)
  File "/usr/lib/python3/dist-packages/azure-cli-extensions/azure-devops/azext_devops/devops_sdk/client.py", line 233, in _handle_error
    raise AzureDevOpsServiceError(wrapped_exception)
azext_devops.devops_sdk.exceptions.AzureDevOpsServiceError: No release could be found based on the provided information.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.7/dist-packages/knack/cli.py", line 233, in invoke
    cmd_result = self.invocation.execute(args)
  File "/usr/local/lib/python3.7/dist-packages/azure/cli/core/commands/__init__.py", line 663, in execute
    raise ex
  File "/usr/local/lib/python3.7/dist-packages/azure/cli/core/commands/__init__.py", line 726, in _run_jobs_serially
    results.append(self._run_job(expanded_arg, cmd_copy))
  File "/usr/local/lib/python3.7/dist-packages/azure/cli/core/commands/__init__.py", line 718, in _run_job
    return cmd_copy.exception_handler(ex)
  File "/usr/lib/python3/dist-packages/azure-cli-extensions/azure-devops/azext_devops/dev/common/exception_handler.py", line 31, in azure_devops_exception_handler
    reraise(*sys.exc_info())
  File "/usr/lib/python3/dist-packages/six.py", line 693, in reraise
    raise value
  File "/usr/local/lib/python3.7/dist-packages/azure/cli/core/commands/__init__.py", line 697, in _run_job
    result = cmd_copy(params)
  File "/usr/local/lib/python3.7/dist-packages/azure/cli/core/commands/__init__.py", line 333, in __call__
    return self.handler(*args, **kwargs)
  File "/usr/local/lib/python3.7/dist-packages/azure/cli/core/commands/command_operation.py", line 121, in handler
    return op(**command_args)
  File "/usr/lib/python3/dist-packages/azure-cli-extensions/azure-devops/azext_devops/dev/artifacts/universal.py", line 98, in download_package
    return artifact_tool.download_universal(organization, project, feed, name, version, path, file_filter)
  File "/usr/lib/python3/dist-packages/azure-cli-extensions/azure-devops/azext_devops/dev/common/artifacttool.py", line 42, in download_universal
    return self.run_artifacttool(organization, args, "Downloading")
  File "/usr/lib/python3/dist-packages/azure-cli-extensions/azure-devops/azext_devops/dev/common/artifacttool.py", line 57, in run_artifacttool
    artifacttool_dir = self._artifacttool_updater.get_latest_artifacttool(organization)
  File "/usr/lib/python3/dist-packages/azure-cli-extensions/azure-devops/azext_devops/dev/common/artifacttool_updater.py", line 43, in get_latest_artifacttool
    artifacttool_binary_path = self._get_artifacttool(organization)
  File "/usr/lib/python3/dist-packages/azure-cli-extensions/azure-devops/azext_devops/dev/common/artifacttool_updater.py", line 62, in _get_artifacttool
    raise CLIError('Failed to update Universal Packages tooling.\n {}'.format(ex))
knack.util.CLIError: Failed to update Universal Packages tooling.
 No release could be found based on the provided information.
eartle commented 1 year ago

I was getting this error and fixed it by running az extension update --name azure-devops which I saw on this post Downloading artifacts from Azure DevOps. Hope that helps.

yozik04 commented 1 year ago

@eartle Nope. This does not fix:

# az extension update --name azure-devops
Latest version of 'azure-devops' is already installed.

Use --debug for more information
# az artifacts universal download --feed tps --name test_package_1.0.0 --version 1.0.0 --path .
Failed to update Universal Packages tooling.
 No release could be found based on the provided information.

# uname -a
Linux testserver 6.3.13-linuxkit #1 SMP PREEMPT Thu Sep  7 07:48:47 UTC 2023 aarch64 GNU/Linux
Shaked commented 1 year ago

Is there a workaround to pull universal packages on ARM64 nodes that are not related to M1/M2? We are currently stuck not being able to pull artifacts, which means we would need to rethink ADO artifacts

render93 commented 4 months ago

I found a workaround: I force VS Code to run as an Intel app: https://support.apple.com/en-us/102527

In this way the az artifact command works like a charm.