ngine-io / ansible-collection-cloudstack

CloudStack Ansible Collections
https://galaxy.ansible.com/ngine_io/cloudstack
GNU General Public License v3.0
21 stars 28 forks source link

cs_instance - unable to deploy a new instance with custom service offerings #79

Closed livegrenier closed 3 years ago

livegrenier commented 3 years ago

Hello,

I am seeing a error when trying to use a custom service offering with the following parameters:

cpu: 1 cpu_speed: 1000 memory: 2048

If i use a offering that has the CPU/memory already defined i do not have the below error.

Error:

Traceback (most recent call last):
  File "/home/dave/.ansible/tmp/ansible-tmp-1628272846.7839534-2705412-21143504143250/AnsiballZ_cs_instance.py", line 100, in <module>
    _ansiballz_main()
  File "/home/dave/.ansible/tmp/ansible-tmp-1628272846.7839534-2705412-21143504143250/AnsiballZ_cs_instance.py", line 92, in _ansiballz_main
    invoke_module(zipped_mod, temp_path, ANSIBALLZ_PARAMS)
  File "/home/dave/.ansible/tmp/ansible-tmp-1628272846.7839534-2705412-21143504143250/AnsiballZ_cs_instance.py", line 40, in invoke_module
    runpy.run_module(mod_name='ansible_collections.ngine_io.cloudstack.plugins.modules.cs_instance', init_globals=dict(_module_fqn='ansible_collections.ngine_io.cloudstack.plugins.modules.cs_instance', _modlib_path=modlib_path),
  File "/usr/lib64/python3.9/runpy.py", line 210, in run_module
    return _run_module_code(code, init_globals, run_name, mod_spec)
  File "/usr/lib64/python3.9/runpy.py", line 97, in _run_module_code
    _run_code(code, mod_globals, init_globals,
  File "/usr/lib64/python3.9/runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "/tmp/ansible_ngine_io.cloudstack.cs_instance_payload_qpm5t1v7/ansible_ngine_io.cloudstack.cs_instance_payload.zip/ansible_collections/ngine_io/cloudstack/plugins/modules/cs_instance.py", line 1107, in <module>
  File "/tmp/ansible_ngine_io.cloudstack.cs_instance_payload_qpm5t1v7/ansible_ngine_io.cloudstack.cs_instance_payload.zip/ansible_collections/ngine_io/cloudstack/plugins/modules/cs_instance.py", line 1085, in main
  File "/tmp/ansible_ngine_io.cloudstack.cs_instance_payload_qpm5t1v7/ansible_ngine_io.cloudstack.cs_instance_payload.zip/ansible_collections/ngine_io/cloudstack/plugins/modules/cs_instance.py", line 673, in present_instance
  File "/tmp/ansible_ngine_io.cloudstack.cs_instance_payload_qpm5t1v7/ansible_ngine_io.cloudstack.cs_instance_payload.zip/ansible_collections/ngine_io/cloudstack/plugins/modules/cs_instance.py", line 737, in deploy_instance
  File "/tmp/ansible_ngine_io.cloudstack.cs_instance_payload_qpm5t1v7/ansible_ngine_io.cloudstack.cs_instance_payload.zip/ansible_collections/ngine_io/cloudstack/plugins/modules/cs_instance.py", line 698, in get_details
AttributeError: 'NoneType' object has no attribute 'extends'

I believe the issue has something to do with this function: https://github.com/resmo/ansible-cloudstack/blob/master/cs_instance.py#L1186

For additional context this is my current ansible/python version:

$ ansible --version
ansible [core 2.11.3] 
  config file = /home/dave/ansible-template-test/ansible.cfg
  configured module search path = ['/home/dave/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /home/dave/.local/lib/python3.9/site-packages/ansible
  ansible collection location = /home/dave/.ansible/collections:/usr/share/ansible/collections
  executable location = /home/dave/.local/bin/ansible
  python version = 3.9.6 (default, Jul 16 2021, 00:00:00) [GCC 11.1.1 20210531 (Red Hat 11.1.1-3)]
  jinja version = 2.10.3
  libyaml = True
resmo commented 3 years ago

Thanks for reporting in detail, I was able to identify the problem: https://github.com/ngine-io/ansible-collection-cloudstack/blob/e6e11e4f58ab965ef4e41bd2f4365cd9e329182e/plugins/modules/cs_instance.py#L698

resmo commented 3 years ago

Fixed by #80