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
618 stars 240 forks source link

Devops invoke - Retrieving pipeline logs yield an unexpected error #1242

Closed cveld closed 2 years ago

cveld commented 2 years ago

Describe the bug

Command Name az devops invoke Extension Name: azure-devops. Version: 0.22.0.

Errors:

The command failed with an unexpected error. Here is the traceback:
'buildNumber=20220107'
Traceback (most recent call last):
  File "D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\knack/cli.py", line 231, in invoke
  File "D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\azure/cli/core/commands/__init__.py", line 658, in execute
  File "D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\azure/cli/core/commands/__init__.py", line 721, in _run_jobs_serially
  File "D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\azure/cli/core/commands/__init__.py", line 713, in _run_job
  File "C:\Users\caveld\.azure\cliextensions\azure-devops\azext_devops\dev\common\exception_handler.py", line 31, in azure_devops_exception_handler
    reraise(*sys.exc_info())
  File "D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\six.py", line 703, in reraise
  File "D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\azure/cli/core/commands/__init__.py", line 692, in _run_job
  File "D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\azure/cli/core/commands/__init__.py", line 328, in __call__
  File "D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\azure/cli/core/commands/command_operation.py", line 121, in handler
  File "C:\Users\caveld\.azure\cliextensions\azure-devops\azext_devops\dev\team\invoke.py", line 101, in invoke
    response = client._send(http_method=http_method,
  File "C:\Users\caveld\.azure\cliextensions\azure-devops\azext_devops\devops_sdk\client.py", line 60, in _send
    request = self._create_request_message(http_method=http_method,
  File "C:\Users\caveld\.azure\cliextensions\azure-devops\azext_devops\devops_sdk\client.py", line 117, in _create_request_message
    request = ClientRequest(method=http_method, url=self._client.format_url(url))
  File "D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\msrest/service_client.py", line 151, in format_url
KeyError: 'buildNumber=20220107'

To Reproduce:

I am running the following command: az devops invoke --org https://dev.azure.com/redacted --area pipelines --resource "logs" --route-parameters project=testproject pipelineId=35 runId=$obj.id -o json --debug

Also tried -o none, -o tsv and --out-file outfile. These all yield the same error.

Expected Behavior

Retrieving a list of available logs for the pipeline run.

Environment Summary

Windows-10-10.0.19041-SP0
Python 3.8.9
Installer: MSI

azure-cli 2.31.0 *

Extensions:
azure-devops 0.22.0
azure-iot 0.12.1
costmanagement 0.1.1

Additional Context

cveld commented 2 years ago

I spotted the mistake I made. The error went away with the following small change: az devops invoke --org https://dev.azure.com/redacted --area pipelines --resource "logs" --route-parameters project=testproject pipelineId=35 runId=$($obj.id) -o json --debug

I.e. replaced $obj.id with $($obj.id).