azure-cli: Error in list device for iothub

Description

Outline the issue here:

When running az iot device list --hub-name <hub name>, error occurs. 'ServiceConnect, DeviceConnect, RegistryWrite' is not valid value for enum <enum 'AccessRights'>


Environment summary

Install Method: How did you install the CLI? (e.g. pip, interactive script, apt-get, Docker, MSI, nightly)
Answer here:

MSI

CLI Version: What version of the CLI and modules are installed? (Use az --version)
Answer here:

azure-cli (2.0.19)

acr (2.0.13)
acs (2.0.17)
appservice (0.1.18)
backup (1.0.1)
batch (3.1.5)
batchai (0.1.1)
billing (0.1.5)
cdn (0.0.9)
cloud (2.0.8)
cognitiveservices (0.1.8)
command-modules-nspkg (2.0.1)
component (2.0.7)
configure (2.0.11)
consumption (0.1.5)
container (0.1.11)
core (2.0.18)
cosmosdb (0.1.13)
dla (0.0.12)
dls (0.0.15)
eventgrid (0.1.4)
extension (0.0.4)
feedback (2.0.6)
find (0.2.7)
interactive (0.3.10)
iot (0.1.12)
keyvault (2.0.12)
lab (0.0.11)
monitor (0.0.10)
network (2.0.16)
nspkg (3.0.1)
profile (2.0.14)
rdbms (0.0.7)
redis (0.2.9)
resource (2.0.16)
role (2.0.13)
servicefabric (0.0.4)
sql (2.0.13)
storage (2.0.17)
vm (2.0.16)

Python location 'C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2\python.exe'
Extensions directory 'C:\Users\zlhe\.azure\cliextensions'

Python (Windows) 3.6.1 (v3.6.1:69c0db5, Mar 21 2017, 17:54:52) [MSC v.1900 32 bit (Intel)]

Legal docs and information: aka.ms/AzureCliLegal

OS Version: What OS and version are you using?
Answer here:

Microsoft Windows [Version 10.0.15063]

Shell Type: What shell are you using? (e.g. bash, cmd.exe, Bash on Windows)
Answer here:

cmd.exe


Full logs

'ServiceConnect, DeviceConnect, RegistryWrite' is not valid value for enum <enum 'AccessRights'>
Traceback (most recent call last):
  File "C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2\lib\site-packages\msrest\serialization.py", line 1280, in deserialize_enum
    return enum_obj(str(data))
  File "C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2\lib\enum.py", line 291, in __call__
    return cls.__new__(cls, value)
  File "C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2\lib\enum.py", line 533, in __new__
    return cls._missing_(value)
  File "C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2\lib\enum.py", line 546, in _missing_
    raise ValueError("%r is not a valid %s" % (value, cls.__name__))
ValueError: 'ServiceConnect, DeviceConnect, RegistryWrite' is not a valid AccessRights

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2\lib\site-packages\azure\cli\main.py", line 36, in main
    cmd_result = APPLICATION.execute(args)
  File "C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2\lib\site-packages\azure\cli\core\application.py", line 212, in execute
    result = expanded_arg.func(params)
  File "C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2\lib\site-packages\azure\cli\core\commands\__init__.py", line 377, in __call__
    return self.handler(*args, **kwargs)
  File "C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2\lib\site-packages\azure\cli\core\commands\__init__.py", line 630, in _execute_command
    raise client_exception
  File "C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2\lib\site-packages\azure\cli\core\commands\__init__.py", line 620, in _execute_command
    reraise(*sys.exc_info())
  File "C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2\lib\site-packages\six.py", line 693, in reraise
    raise value
  File "C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2\lib\site-packages\azure\cli\core\commands\__init__.py", line 602, in _execute_command
    result = op(client, **kwargs) if client else op(**kwargs)
  File "C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2\lib\site-packages\azure\cli\command_modules\iot\custom.py", line 236, in iot_device_list
    device_client = _get_device_client(client, resource_group_name, hub_name, '')
  File "C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2\lib\site-packages\azure\cli\command_modules\iot\custom.py", line 332, in _get_device_client
    access_policy = iot_hub_policy_get(client, hub_name, 'iothubowner', resource_group_name)
  File "C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2\lib\site-packages\azure\cli\command_modules\iot\custom.py", line 135, in iot_hub_policy_get
    return client.get_keys_for_key_name(resource_group_name, hub_name, policy_name)
  File "C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2\lib\site-packages\azure\mgmt\iothub\operations\iot_hub_resource_operations.py", line 1257, in get_keys_for_key_name
    deserialized = self._deserialize('SharedAccessSignatureAuthorizationRule', response)
  File "C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2\lib\site-packages\msrest\serialization.py", line 992, in __call__
    value = self.deserialize_data(raw_value, attr_desc['type'])
  File "C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2\lib\site-packages\msrest\serialization.py", line 1136, in deserialize_data
    return self.deserialize_enum(data, obj_type)
  File "C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2\lib\site-packages\msrest\serialization.py", line 1286, in deserialize_enum
    raise DeserializationError(error.format(data, enum_obj))
msrest.exceptions.DeserializationError: 'ServiceConnect, DeviceConnect, RegistryWrite' is not valid value for enum <enum 'AccessRights'>

About this issue

  • Original URL
  • State: closed
  • Created 7 years ago
  • Comments: 18 (14 by maintainers)

Most upvoted comments

It seems like the (de)serialization should not be this brittle. While many language specifications say that enum.value() calls will return an array in declared order … it seems overly brittle to push this stance from either the server or client side of an API.

Hi All, Thank you for reporting the issue. We identified an issue in our backend service. We are actively working on a fix. ETA: end of the day. Sorry for the inconvenience it caused.

@WilliamBerryiii CLI 2.0.12 was packaged with az-cli-iot 0.1.10, which has the same dependency of the latest CLI’s az-cli-iot 0.1.12 which is ‘azure-mgmt-iothub==0.2.2’…likely a wide spread issue.