Skip to content

--ip-tags failure when used in "az network public-ip create" command #7639

@magole

Description

@magole

Describe the bug
If --ip-tags is specified, the command fails with the error:

Unable to build a model: Unable to deserialize to object: type, AttributeError: 'str' object has no attribute 'get', DeserializationError: Unable to deserialize to object: type, AttributeError: 'str' object has no attribute 'get'
Traceback (most recent call last):
  File "/opt/az/lib/python3.6/site-packages/msrest/serialization.py", line 1281, in _deserialize
    found_value = key_extractor(attr, attr_desc, data)
  File "/opt/az/lib/python3.6/site-packages/msrest/serialization.py", line 1072, in rest_key_case_insensitive_extractor
    return attribute_key_case_insensitive_extractor(key, None, working_data)
  File "/opt/az/lib/python3.6/site-packages/msrest/serialization.py", line 1095, in attribute_key_case_insensitive_extractor
    return data.get(found_key)
AttributeError: 'str' object has no attribute 'get'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/az/lib/python3.6/site-packages/msrest/serialization.py", line 565, in body
    data = deserializer._deserialize(data_type, data)
  File "/opt/az/lib/python3.6/site-packages/msrest/serialization.py", line 1251, in _deserialize
    self._deserialize(local_type, value)
  File "/opt/az/lib/python3.6/site-packages/msrest/serialization.py", line 1260, in _deserialize
    return self.deserialize_data(data, response)
  File "/opt/az/lib/python3.6/site-packages/msrest/serialization.py", line 1466, in deserialize_data
    return self.deserialize_type[iter_type](data, data_type[1:-1])
  File "/opt/az/lib/python3.6/site-packages/msrest/serialization.py", line 1497, in deserialize_iter
    return [self.deserialize_data(a, iter_type) for a in attr]
  File "/opt/az/lib/python3.6/site-packages/msrest/serialization.py", line 1497, in <listcomp>
    return [self.deserialize_data(a, iter_type) for a in attr]
  File "/opt/az/lib/python3.6/site-packages/msrest/serialization.py", line 1479, in deserialize_data
    return self._deserialize(obj_type, data)
  File "/opt/az/lib/python3.6/site-packages/msrest/serialization.py", line 1291, in _deserialize
    raise_with_traceback(DeserializationError, msg, err)
  File "/opt/az/lib/python3.6/site-packages/msrest/exceptions.py", line 54, in raise_with_traceback
    raise error.with_traceback(exc_traceback)
  File "/opt/az/lib/python3.6/site-packages/msrest/serialization.py", line 1281, in _deserialize
    found_value = key_extractor(attr, attr_desc, data)
  File "/opt/az/lib/python3.6/site-packages/msrest/serialization.py", line 1072, in rest_key_case_insensitive_extractor
    return attribute_key_case_insensitive_extractor(key, None, working_data)
  File "/opt/az/lib/python3.6/site-packages/msrest/serialization.py", line 1095, in attribute_key_case_insensitive_extractor
    return data.get(found_key)
msrest.exceptions.DeserializationError: Unable to deserialize to object: type, AttributeError: 'str' object has no attribute 'get'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/az/lib/python3.6/site-packages/knack/cli.py", line 197, in invoke
    cmd_result = self.invocation.execute(args)
  File "/opt/az/lib/python3.6/site-packages/azure/cli/core/commands/__init__.py", line 369, in execute
    six.reraise(*sys.exc_info())
  File "/opt/az/lib/python3.6/site-packages/six.py", line 693, in reraise
    raise value
  File "/opt/az/lib/python3.6/site-packages/azure/cli/core/commands/__init__.py", line 343, in execute
    result = cmd(params)
  File "/opt/az/lib/python3.6/site-packages/azure/cli/core/commands/__init__.py", line 182, in __call__
    return self.handler(*args, **kwargs)
  File "/opt/az/lib/python3.6/site-packages/azure/cli/core/__init__.py", line 436, in default_command_handler
    result = op(**command_args)
  File "/opt/az/lib/python3.6/site-packages/azure/cli/command_modules/network/custom.py", line 2774, in create_public_ip
    return client.create_or_update(resource_group_name, public_ip_address_name, public_ip)
  File "/opt/az/lib/python3.6/site-packages/azure/mgmt/network/v2018_08_01/operations/public_ip_addresses_operations.py", line 274, in create_or_update
    **operation_config
  File "/opt/az/lib/python3.6/site-packages/azure/mgmt/network/v2018_08_01/operations/public_ip_addresses_operations.py", line 219, in _create_or_update_initial
    body_content = self._serialize.body(parameters, 'PublicIPAddress')
  File "/opt/az/lib/python3.6/site-packages/msrest/serialization.py", line 568, in body
    SerializationError, "Unable to build a model: "+str(err), err)
  File "/opt/az/lib/python3.6/site-packages/msrest/exceptions.py", line 54, in raise_with_traceback
    raise error.with_traceback(exc_traceback)
  File "/opt/az/lib/python3.6/site-packages/msrest/serialization.py", line 565, in body
    data = deserializer._deserialize(data_type, data)
  File "/opt/az/lib/python3.6/site-packages/msrest/serialization.py", line 1251, in _deserialize
    self._deserialize(local_type, value)
  File "/opt/az/lib/python3.6/site-packages/msrest/serialization.py", line 1260, in _deserialize
    return self.deserialize_data(data, response)
  File "/opt/az/lib/python3.6/site-packages/msrest/serialization.py", line 1466, in deserialize_data
    return self.deserialize_type[iter_type](data, data_type[1:-1])
  File "/opt/az/lib/python3.6/site-packages/msrest/serialization.py", line 1497, in deserialize_iter
    return [self.deserialize_data(a, iter_type) for a in attr]
  File "/opt/az/lib/python3.6/site-packages/msrest/serialization.py", line 1497, in <listcomp>
    return [self.deserialize_data(a, iter_type) for a in attr]
  File "/opt/az/lib/python3.6/site-packages/msrest/serialization.py", line 1479, in deserialize_data
    return self._deserialize(obj_type, data)
  File "/opt/az/lib/python3.6/site-packages/msrest/serialization.py", line 1291, in _deserialize
    raise_with_traceback(DeserializationError, msg, err)
  File "/opt/az/lib/python3.6/site-packages/msrest/exceptions.py", line 54, in raise_with_traceback
    raise error.with_traceback(exc_traceback)
  File "/opt/az/lib/python3.6/site-packages/msrest/serialization.py", line 1281, in _deserialize
    found_value = key_extractor(attr, attr_desc, data)
  File "/opt/az/lib/python3.6/site-packages/msrest/serialization.py", line 1072, in rest_key_case_insensitive_extractor
    return attribute_key_case_insensitive_extractor(key, None, working_data)
  File "/opt/az/lib/python3.6/site-packages/msrest/serialization.py", line 1095, in attribute_key_case_insensitive_extractor
    return data.get(found_key)
msrest.exceptions.SerializationError: Unable to build a model: Unable to deserialize to object: type, AttributeError: 'str' object has no attribute 'get', DeserializationError: Unable to deserialize to object: type, AttributeError: 'str' object has no attribute 'get'

To Reproduce
az network public-ip create --name "MyIpName" --resource-group "MyResourceGroupName" --allocation-method Static --location EastUS2 --sku Basic --version IPv4 --zone 1 --ip-tags "MyIpTag=Blah"

Expected behavior
Valid description of failure or successfully executed command.

Environment summary
Azure Portal prompt

Additional context
If you skip the --ip-tags, the IP is successfully created.

Metadata

Metadata

Assignees

Labels

bugThis issue requires a change to an existing behavior in the product in order to be resolved.

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions