Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

azure.azcollection.azure_rm_deployment_info fails when listing resource group deployments #856

Closed
peter-murray opened this issue May 20, 2022 · 1 comment · Fixed by #857
Labels
bug Something isn't working has_pr PR fixes have been made medium_priority Medium priority

Comments

@peter-murray
Copy link
Contributor

peter-murray commented May 20, 2022

SUMMARY

When using the azure.azcollection.azure_rm_deployment_info module, an error is generated from the existing 1.1.2 release due to the wrong API method list being called on the corresponding the Azure model; https://docs.microsoft.com/en-us/python/api/azure-mgmt-resource/azure.mgmt.resource.resources.v2017_05_10.operations.deploymentsoperations?view=azure-python which only has the list_by_resource_group method available.

The full traceback is:
Traceback (most recent call last):
  File "/root/.ansible/tmp/ansible-tmp-1653042254.696138-480-109549199914277/AnsiballZ_azure_rm_deployment_info.py", line 107, in <module>
    _ansiballz_main()
  File "/root/.ansible/tmp/ansible-tmp-1653042254.696138-480-109549199914277/AnsiballZ_azure_rm_deployment_info.py", line 99, in _ansiballz_main
    invoke_module(zipped_mod, temp_path, ANSIBALLZ_PARAMS)
  File "/root/.ansible/tmp/ansible-tmp-1653042254.696138-480-109549199914277/AnsiballZ_azure_rm_deployment_info.py", line 47, in invoke_module
    runpy.run_module(mod_name='ansible_collections.azure.azcollection.plugins.modules.azure_rm_deployment_info', init_globals=dict(_module_fqn='ansible_collections.azure.azcollection.plugins.modules.azure_rm_deployment_info', _modlib_path=modlib_path),
  File "/usr/lib/python3.8/runpy.py", line 207, in run_module
    return _run_module_code(code, init_globals, run_name, mod_spec)
  File "/usr/lib/python3.8/runpy.py", line 97, in _run_module_code
    _run_code(code, mod_globals, init_globals,
  File "/usr/lib/python3.8/runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "/tmp/ansible_azure.azcollection.azure_rm_deployment_info_payload_bv37e7ga/ansible_azure.azcollection.azure_rm_deployment_info_payload.zip/ansible_collections/azure/azcollection/plugins/modules/azure_rm_deployment_info.py", line 245, in <module>
  File "/tmp/ansible_azure.azcollection.azure_rm_deployment_info_payload_bv37e7ga/ansible_azure.azcollection.azure_rm_deployment_info_payload.zip/ansible_collections/azure/azcollection/plugins/modules/azure_rm_deployment_info.py", line 241, in main
  File "/tmp/ansible_azure.azcollection.azure_rm_deployment_info_payload_bv37e7ga/ansible_azure.azcollection.azure_rm_deployment_info_payload.zip/ansible_collections/azure/azcollection/plugins/modules/azure_rm_deployment_info.py", line 149, in __init__
  File "/tmp/ansible_azure.azcollection.azure_rm_deployment_info_payload_bv37e7ga/ansible_azure.azcollection.azure_rm_deployment_info_payload.zip/ansible_collections/azure/azcollection/plugins/module_utils/azure_rm_common.py", line 465, in __init__
  File "/tmp/ansible_azure.azcollection.azure_rm_deployment_info_payload_bv37e7ga/ansible_azure.azcollection.azure_rm_deployment_info_payload.zip/ansible_collections/azure/azcollection/plugins/modules/azure_rm_deployment_info.py", line 163, in exec_module
  File "/tmp/ansible_azure.azcollection.azure_rm_deployment_info_payload_bv37e7ga/ansible_azure.azcollection.azure_rm_deployment_info_payload.zip/ansible_collections/azure/azcollection/plugins/modules/azure_rm_deployment_info.py", line 185, in list
AttributeError: 'DeploymentsOperations' object has no attribute 'list'
fatal: [localhost]: FAILED! => {
    "changed": false,
    "module_stderr": "Traceback (most recent call last):\n  File \"/root/.ansible/tmp/ansible-tmp-1653042254.696138-480-109549199914277/AnsiballZ_azure_rm_deployment_info.py\", line 107, in <module>\n    _ansiballz_main()\n  File \"/root/.ansible/tmp/ansible-tmp-1653042254.696138-480-109549199914277/AnsiballZ_azure_rm_deployment_info.py\", line 99, in _ansiballz_main\n    invoke_module(zipped_mod, temp_path, ANSIBALLZ_PARAMS)\n  File \"/root/.ansible/tmp/ansible-tmp-1653042254.696138-480-109549199914277/AnsiballZ_azure_rm_deployment_info.py\", line 47, in invoke_module\n    runpy.run_module(mod_name='ansible_collections.azure.azcollection.plugins.modules.azure_rm_deployment_info', init_globals=dict(_module_fqn='ansible_collections.azure.azcollection.plugins.modules.azure_rm_deployment_info', _modlib_path=modlib_path),\n  File \"/usr/lib/python3.8/runpy.py\", line 207, in run_module\n    return _run_module_code(code, init_globals, run_name, mod_spec)\n  File \"/usr/lib/python3.8/runpy.py\", line 97, in _run_module_code\n    _run_code(code, mod_globals, init_globals,\n  File \"/usr/lib/python3.8/runpy.py\", line 87, in _run_code\n    exec(code, run_globals)\n  File \"/tmp/ansible_azure.azcollection.azure_rm_deployment_info_payload_bv37e7ga/ansible_azure.azcollection.azure_rm_deployment_info_payload.zip/ansible_collections/azure/azcollection/plugins/modules/azure_rm_deployment_info.py\", line 245, in <module>\n  File \"/tmp/ansible_azure.azcollection.azure_rm_deployment_info_payload_bv37e7ga/ansible_azure.azcollection.azure_rm_deployment_info_payload.zip/ansible_collections/azure/azcollection/plugins/modules/azure_rm_deployment_info.py\", line 241, in main\n  File \"/tmp/ansible_azure.azcollection.azure_rm_deployment_info_payload_bv37e7ga/ansible_azure.azcollection.azure_rm_deployment_info_payload.zip/ansible_collections/azure/azcollection/plugins/modules/azure_rm_deployment_info.py\", line 149, in __init__\n  File \"/tmp/ansible_azure.azcollection.azure_rm_deployment_info_payload_bv37e7ga/ansible_azure.azcollection.azure_rm_deployment_info_payload.zip/ansible_collections/azure/azcollection/plugins/module_utils/azure_rm_common.py\", line 465, in __init__\n  File \"/tmp/ansible_azure.azcollection.azure_rm_deployment_info_payload_bv37e7ga/ansible_azure.azcollection.azure_rm_deployment_info_payload.zip/ansible_collections/azure/azcollection/plugins/modules/azure_rm_deployment_info.py\", line 163, in exec_module\n  File \"/tmp/ansible_azure.azcollection.azure_rm_deployment_info_payload_bv37e7ga/ansible_azure.azcollection.azure_rm_deployment_info_payload.zip/ansible_collections/azure/azcollection/plugins/modules/azure_rm_deployment_info.py\", line 185, in list\nAttributeError: 'DeploymentsOperations' object has no attribute 'list'\n",
    "module_stdout": "",
    "msg": "MODULE FAILURE\nSee stdout/stderr for the exact error",
    "rc": 1
}
ISSUE TYPE
  • Bug Report
COMPONENT NAME

azure_rm_deployment_info

ANSIBLE VERSION
ansible [core 2.13.0]
  config file = None
  configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/local/lib/python3.8/dist-packages/ansible
  ansible collection location = /root/.ansible/collections:/usr/share/ansible/collections
  executable location = /usr/local/bin/ansible
  python version = 3.8.10 (default, Mar 15 2022, 12:22:08) [GCC 9.4.0]
  jinja version = 3.1.2
  libyaml = True
COLLECTION VERSION
Collection         Version
------------------ -------
azure.azcollection 1.12.0 
CONFIGURATION

OS / ENVIRONMENT

Ubuntu 20.04 and Azure

STEPS TO REPRODUCE

Just calling the azure_rm_deployment_info with only a resource group defined will result in this error, below is an example task from a playbook.

- name: Discover Azure Deployments
      azure.azcollection.azure_rm_deployment_info:
        resource_group: '{{ azure_resource_group_name }}'
      register: existing_deployments
EXPECTED RESULTS

The results to be returned without erroring.

ACTUAL RESULTS
TASK [Discover Azure Deployments] *******************************************************************************************************************************************************************************************************************************
task path: /ansible/testing.yml:14
<127.0.0.1> ESTABLISH LOCAL CONNECTION FOR USER: root
<127.0.0.1> EXEC /bin/sh -c 'echo ~root && sleep 0'
<127.0.0.1> EXEC /bin/sh -c '( umask 77 && mkdir -p "` echo /root/.ansible/tmp `"&& mkdir "` echo /root/.ansible/tmp/ansible-tmp-1653042254.696138-480-109549199914277 `" && echo ansible-tmp-1653042254.696138-480-109549199914277="` echo /root/.ansible/tmp/ansible-tmp-1653042254.696138-480-109549199914277 `" ) && sleep 0'
Including module_utils file ansible/__init__.py
Including module_utils file ansible/module_utils/__init__.py
Including module_utils file ansible/module_utils/basic.py
Including module_utils file ansible/module_utils/_text.py
Including module_utils file ansible/module_utils/common/_collections_compat.py
Including module_utils file ansible/module_utils/common/__init__.py
Including module_utils file ansible/module_utils/common/_json_compat.py
Including module_utils file ansible/module_utils/common/_utils.py
Including module_utils file ansible/module_utils/common/arg_spec.py
Including module_utils file ansible/module_utils/common/file.py
Including module_utils file ansible/module_utils/common/locale.py
Including module_utils file ansible/module_utils/common/parameters.py
Including module_utils file ansible/module_utils/common/collections.py
Including module_utils file ansible/module_utils/common/process.py
Including module_utils file ansible/module_utils/common/sys_info.py
Including module_utils file ansible/module_utils/common/text/converters.py
Including module_utils file ansible/module_utils/common/text/__init__.py
Including module_utils file ansible/module_utils/common/text/formatters.py
Including module_utils file ansible/module_utils/common/validation.py
Including module_utils file ansible/module_utils/common/warnings.py
Including module_utils file ansible/module_utils/compat/selectors.py
Including module_utils file ansible/module_utils/compat/__init__.py
Including module_utils file ansible/module_utils/compat/_selectors2.py
Including module_utils file ansible/module_utils/compat/selinux.py
Including module_utils file ansible/module_utils/distro/__init__.py
Including module_utils file ansible/module_utils/distro/_distro.py
Including module_utils file ansible/module_utils/errors.py
Including module_utils file ansible/module_utils/parsing/convert_bool.py
Including module_utils file ansible/module_utils/parsing/__init__.py
Including module_utils file ansible/module_utils/pycompat24.py
Including module_utils file ansible/module_utils/six/__init__.py
Including module_utils file ansible_collections/azure/azcollection/plugins/module_utils/azure_rm_common.py
Including module_utils file ansible/module_utils/ansible_release.py
Including module_utils file ansible_collections/__init__.py
Including module_utils file ansible_collections/azure/__init__.py
Including module_utils file ansible_collections/azure/azcollection/__init__.py
Including module_utils file ansible_collections/azure/azcollection/plugins/__init__.py
Including module_utils file ansible_collections/azure/azcollection/plugins/module_utils/__init__.py
Using module file /root/.ansible/collections/ansible_collections/azure/azcollection/plugins/modules/azure_rm_deployment_info.py
<127.0.0.1> PUT /root/.ansible/tmp/ansible-local-423cq3c6zui/tmpokq9u9b1 TO /root/.ansible/tmp/ansible-tmp-1653042254.696138-480-109549199914277/AnsiballZ_azure_rm_deployment_info.py
<127.0.0.1> EXEC /bin/sh -c 'chmod u+x /root/.ansible/tmp/ansible-tmp-1653042254.696138-480-109549199914277/ /root/.ansible/tmp/ansible-tmp-1653042254.696138-480-109549199914277/AnsiballZ_azure_rm_deployment_info.py && sleep 0'
<127.0.0.1> EXEC /bin/sh -c '/usr/bin/python3 /root/.ansible/tmp/ansible-tmp-1653042254.696138-480-109549199914277/AnsiballZ_azure_rm_deployment_info.py && sleep 0'
<127.0.0.1> EXEC /bin/sh -c 'rm -f -r /root/.ansible/tmp/ansible-tmp-1653042254.696138-480-109549199914277/ > /dev/null 2>&1 && sleep 0'
The full traceback is:
Traceback (most recent call last):
  File "/root/.ansible/tmp/ansible-tmp-1653042254.696138-480-109549199914277/AnsiballZ_azure_rm_deployment_info.py", line 107, in <module>
    _ansiballz_main()
  File "/root/.ansible/tmp/ansible-tmp-1653042254.696138-480-109549199914277/AnsiballZ_azure_rm_deployment_info.py", line 99, in _ansiballz_main
    invoke_module(zipped_mod, temp_path, ANSIBALLZ_PARAMS)
  File "/root/.ansible/tmp/ansible-tmp-1653042254.696138-480-109549199914277/AnsiballZ_azure_rm_deployment_info.py", line 47, in invoke_module
    runpy.run_module(mod_name='ansible_collections.azure.azcollection.plugins.modules.azure_rm_deployment_info', init_globals=dict(_module_fqn='ansible_collections.azure.azcollection.plugins.modules.azure_rm_deployment_info', _modlib_path=modlib_path),
  File "/usr/lib/python3.8/runpy.py", line 207, in run_module
    return _run_module_code(code, init_globals, run_name, mod_spec)
  File "/usr/lib/python3.8/runpy.py", line 97, in _run_module_code
    _run_code(code, mod_globals, init_globals,
  File "/usr/lib/python3.8/runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "/tmp/ansible_azure.azcollection.azure_rm_deployment_info_payload_bv37e7ga/ansible_azure.azcollection.azure_rm_deployment_info_payload.zip/ansible_collections/azure/azcollection/plugins/modules/azure_rm_deployment_info.py", line 245, in <module>
  File "/tmp/ansible_azure.azcollection.azure_rm_deployment_info_payload_bv37e7ga/ansible_azure.azcollection.azure_rm_deployment_info_payload.zip/ansible_collections/azure/azcollection/plugins/modules/azure_rm_deployment_info.py", line 241, in main
  File "/tmp/ansible_azure.azcollection.azure_rm_deployment_info_payload_bv37e7ga/ansible_azure.azcollection.azure_rm_deployment_info_payload.zip/ansible_collections/azure/azcollection/plugins/modules/azure_rm_deployment_info.py", line 149, in __init__
  File "/tmp/ansible_azure.azcollection.azure_rm_deployment_info_payload_bv37e7ga/ansible_azure.azcollection.azure_rm_deployment_info_payload.zip/ansible_collections/azure/azcollection/plugins/module_utils/azure_rm_common.py", line 465, in __init__
  File "/tmp/ansible_azure.azcollection.azure_rm_deployment_info_payload_bv37e7ga/ansible_azure.azcollection.azure_rm_deployment_info_payload.zip/ansible_collections/azure/azcollection/plugins/modules/azure_rm_deployment_info.py", line 163, in exec_module
  File "/tmp/ansible_azure.azcollection.azure_rm_deployment_info_payload_bv37e7ga/ansible_azure.azcollection.azure_rm_deployment_info_payload.zip/ansible_collections/azure/azcollection/plugins/modules/azure_rm_deployment_info.py", line 185, in list
AttributeError: 'DeploymentsOperations' object has no attribute 'list'
fatal: [localhost]: FAILED! => {
    "changed": false,
    "module_stderr": "Traceback (most recent call last):\n  File \"/root/.ansible/tmp/ansible-tmp-1653042254.696138-480-109549199914277/AnsiballZ_azure_rm_deployment_info.py\", line 107, in <module>\n    _ansiballz_main()\n  File \"/root/.ansible/tmp/ansible-tmp-1653042254.696138-480-109549199914277/AnsiballZ_azure_rm_deployment_info.py\", line 99, in _ansiballz_main\n    invoke_module(zipped_mod, temp_path, ANSIBALLZ_PARAMS)\n  File \"/root/.ansible/tmp/ansible-tmp-1653042254.696138-480-109549199914277/AnsiballZ_azure_rm_deployment_info.py\", line 47, in invoke_module\n    runpy.run_module(mod_name='ansible_collections.azure.azcollection.plugins.modules.azure_rm_deployment_info', init_globals=dict(_module_fqn='ansible_collections.azure.azcollection.plugins.modules.azure_rm_deployment_info', _modlib_path=modlib_path),\n  File \"/usr/lib/python3.8/runpy.py\", line 207, in run_module\n    return _run_module_code(code, init_globals, run_name, mod_spec)\n  File \"/usr/lib/python3.8/runpy.py\", line 97, in _run_module_code\n    _run_code(code, mod_globals, init_globals,\n  File \"/usr/lib/python3.8/runpy.py\", line 87, in _run_code\n    exec(code, run_globals)\n  File \"/tmp/ansible_azure.azcollection.azure_rm_deployment_info_payload_bv37e7ga/ansible_azure.azcollection.azure_rm_deployment_info_payload.zip/ansible_collections/azure/azcollection/plugins/modules/azure_rm_deployment_info.py\", line 245, in <module>\n  File \"/tmp/ansible_azure.azcollection.azure_rm_deployment_info_payload_bv37e7ga/ansible_azure.azcollection.azure_rm_deployment_info_payload.zip/ansible_collections/azure/azcollection/plugins/modules/azure_rm_deployment_info.py\", line 241, in main\n  File \"/tmp/ansible_azure.azcollection.azure_rm_deployment_info_payload_bv37e7ga/ansible_azure.azcollection.azure_rm_deployment_info_payload.zip/ansible_collections/azure/azcollection/plugins/modules/azure_rm_deployment_info.py\", line 149, in __init__\n  File \"/tmp/ansible_azure.azcollection.azure_rm_deployment_info_payload_bv37e7ga/ansible_azure.azcollection.azure_rm_deployment_info_payload.zip/ansible_collections/azure/azcollection/plugins/module_utils/azure_rm_common.py\", line 465, in __init__\n  File \"/tmp/ansible_azure.azcollection.azure_rm_deployment_info_payload_bv37e7ga/ansible_azure.azcollection.azure_rm_deployment_info_payload.zip/ansible_collections/azure/azcollection/plugins/modules/azure_rm_deployment_info.py\", line 163, in exec_module\n  File \"/tmp/ansible_azure.azcollection.azure_rm_deployment_info_payload_bv37e7ga/ansible_azure.azcollection.azure_rm_deployment_info_payload.zip/ansible_collections/azure/azcollection/plugins/modules/azure_rm_deployment_info.py\", line 185, in list\nAttributeError: 'DeploymentsOperations' object has no attribute 'list'\n",
    "module_stdout": "",
    "msg": "MODULE FAILURE\nSee stdout/stderr for the exact error",
    "rc": 1
}
@peter-murray
Copy link
Contributor Author

Updating line 185 of this module to the following fixes this issue;

response = self.rm_client.deployments.list_by_resource_group(self.resource_group)

peter-murray added a commit to peter-murray/azure that referenced this issue May 20, 2022
@Fred-sun Fred-sun added bug Something isn't working has_pr PR fixes have been made medium_priority Medium priority labels May 23, 2022
xuzhang3 pushed a commit that referenced this issue Jun 20, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working has_pr PR fixes have been made medium_priority Medium priority
Projects
None yet
2 participants