azure-cli: `az network vnet-gateway vpn-client show-url` unhandled exception

Describe the bug

Command Name az network vnet-gateway vpn-client show-url

Errors:

'str' object has no attribute 'get'
Traceback (most recent call last):
python3.7/site-packages/knack/cli.py, ln 206, in invoke
    cmd_result = self.invocation.execute(args)
cli/core/commands/__init__.py, ln 578, in execute
    raise ex
cli/core/commands/__init__.py, ln 636, in _run_jobs_serially
    results.append(self._run_job(expanded_arg, cmd_copy))
cli/core/commands/__init__.py, ln 629, in _run_job
    six.reraise(*sys.exc_info())
...
site-packages/msrestazure/polling/arm_polling.py, ln 262, in get_status_from_resource
    status = self._get_provisioning_state(response)
site-packages/msrestazure/polling/arm_polling.py, ln 186, in _get_provisioning_state
    return body.get("properties", {}).get("provisioningState")
AttributeError: 'str' object has no attribute 'get'

To Reproduce:

Steps to reproduce the behavior:

  • Create a VPN gateway, run az network vpn-gateway vpn-client generate -g xxx -n yyy
  • Run az network vnet-gateway vpn-client show-url -g xxx -n yyy

Expected Behavior

Don’t fail with an unhandled exception.

Environment Summary

Darwin-18.6.0-x86_64-i386-64bit
Python 3.7.4
Shell: bash

azure-cli 2.0.69 *

Extensions:
aks-preview 0.4.6

Additional Context

About this issue

  • Original URL
  • State: open
  • Created 5 years ago
  • Comments: 26 (14 by maintainers)

Most upvoted comments

Right, but I explicitly said that packaging is still a problem. And silently closing issues is not healthy by itself, there has to be some resolution of the problem, at least for the future readers.

Yes, I’m on OSX (10.14.5, to be precise, but it doesn’t matter - the same problem is on linux as well). poetry is a modern python packaging tool (similar to pipenv but much, much better) which includes a real dependency resolver, while pip doesn’t have one. This problem is not because of homebrew, but because your giant dependency tree isn’t really resolvable. Specific packages have specific requirements that cannot be satisfied. This is not a problem when installing with pip, because pip doesn’t really care about versions constraints of the whole dependency tree. It will happily install the version it sees first. So for example, your package depends on C and B, package C depends on package A v1.0, package B depends on package A v2.0. If you list the requirement on C first, then A v1.0 will be installed. If you list the requirement on B first, then A v2.0 will be installed.