Skip to content

azure-cli still depends on old API for azure-mgmt-devtestlabs #25827

@glaubitz

Description

@glaubitz

The latest stable version of azure-mgmt-devtestlabs is 9.0.0 and was released on January 4, 2021 [1].

On the other hand, azure-cli still depends on azure-mgmt-devtestlabs which was released on July 26, 2019.

This means, that Linux distributions have to ship a version of azure-mgmt-devtestlabs that is almost four years old.

Thus, it would be nice if the devtestlabs API could be updated to at least use azure-mgmt-devtestlabs 9.0.0.

Currently, using azure-cli with azure-mgmt-devtestlabs 9.0.0 results in a failure of the az lab command:

glaubitz@suse-laptop:~> az lab --help
The command failed with an unexpected error. Here is the traceback:
The operation 'azure.mgmt.devtestlabs.operations#LabsOperations.delete' is invalid.
Traceback (most recent call last):
  File "/usr/lib/python3.10/site-packages/azure/cli/core/commands/command_operation.py", line 61, in get_op_handler
    handler = getattr(handler, part)
AttributeError: type object 'LabsOperations' has no attribute 'delete'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3.10/site-packages/knack/cli.py", line 233, in invoke
    cmd_result = self.invocation.execute(args)
  File "/usr/lib/python3.10/site-packages/azure/cli/core/commands/__init__.py", line 588, in execute
    parsed_args = self.parser.parse_args(args)
  File "/usr/lib/python3.10/site-packages/knack/parser.py", line 261, in parse_args
    return super().parse_args(args)
  File "/usr/lib64/python3.10/argparse.py", line 1826, in parse_args
    args, argv = self.parse_known_args(args, namespace)
  File "/usr/lib/python3.10/site-packages/azure/cli/core/parser.py", line 281, in parse_known_args
    self._namespace, self._raw_arguments = super().parse_known_args(args=args, namespace=namespace)
  File "/usr/lib64/python3.10/argparse.py", line 1859, in parse_known_args
    namespace, args = self._parse_known_args(args, namespace)
  File "/usr/lib64/python3.10/argparse.py", line 2054, in _parse_known_args
    positionals_end_index = consume_positionals(start_index)
  File "/usr/lib64/python3.10/argparse.py", line 2031, in consume_positionals
    take_action(action, args)
  File "/usr/lib64/python3.10/argparse.py", line 1936, in take_action
    action(self, namespace, argument_values, option_string)
  File "/usr/lib64/python3.10/argparse.py", line 1214, in __call__
    subnamespace, arg_strings = parser.parse_known_args(arg_strings, None)
  File "/usr/lib/python3.10/site-packages/azure/cli/core/parser.py", line 281, in parse_known_args
    self._namespace, self._raw_arguments = super().parse_known_args(args=args, namespace=namespace)
  File "/usr/lib64/python3.10/argparse.py", line 1859, in parse_known_args
    namespace, args = self._parse_known_args(args, namespace)
  File "/usr/lib64/python3.10/argparse.py", line 2072, in _parse_known_args
    start_index = consume_optional(start_index)
  File "/usr/lib64/python3.10/argparse.py", line 2012, in consume_optional
    take_action(action, args, option_string)
  File "/usr/lib64/python3.10/argparse.py", line 1936, in take_action
    action(self, namespace, argument_values, option_string)
  File "/usr/lib64/python3.10/argparse.py", line 1099, in __call__
    parser.print_help()
  File "/usr/lib64/python3.10/argparse.py", line 2560, in print_help
    self._print_message(self.format_help(), file)
  File "/usr/lib/python3.10/site-packages/azure/cli/core/parser.py", line 192, in format_help
    super(AzCliCommandParser, self).format_help()
  File "/usr/lib/python3.10/site-packages/knack/parser.py", line 248, in format_help
    self.cli_help.show_help(self.prog.split()[0],
  File "/usr/lib/python3.10/site-packages/azure/cli/core/_help.py", line 165, in show_help
    else self.group_help_cls(self, delimiters, parser)
  File "/usr/lib/python3.10/site-packages/knack/help.py", line 253, in __init__
    child.load(options)
  File "/usr/lib/python3.10/site-packages/azure/cli/core/_help.py", line 296, in load
    loader.versioned_load(self, options)
  File "/usr/lib/python3.10/site-packages/azure/cli/core/_help_loaders.py", line 154, in versioned_load
    super(CliHelpFile, help_obj).load(parser)  # pylint:disable=bad-super-call
  File "/usr/lib/python3.10/site-packages/knack/help.py", line 198, in load
    description = getattr(options, 'description', None)
  File "/usr/lib/python3.10/site-packages/knack/parser.py", line 241, in __getattribute__
    self.description = self._description() \
  File "/usr/lib/python3.10/site-packages/azure/cli/core/commands/command_operation.py", line 133, in description_loader
    op = self.get_op_handler(self.op_path)
  File "/usr/lib/python3.10/site-packages/azure/cli/core/commands/command_operation.py", line 66, in get_op_handler
    raise ValueError("The operation '{}' is invalid.".format(op_path))
ValueError: The operation 'azure.mgmt.devtestlabs.operations#LabsOperations.delete' is invalid.
To check existing issues, please visit: https://github.com/Azure/azure-cli/issues
To open a new issue, please run `az feedback`
glaubitz@suse-laptop:~>

[1] https://pypi.org/project/azure-mgmt-devtestlabs/#history

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions