UpCloudLtd/upcloud-ansible-collection

Give a better error message when using an older/deprecated upcloud-sdk

patrick-leb opened this issue · 3 comments

Edit: as per below, the problem was the SDK that was on version 1.0.1 when ~2.0 is required. This needs a better error message than crashing with the "unable to parse inventory" error.

======

I installed the collection with galaxy as instructed

My inventory file is:

plugin: community.upcloud.upcloud
tags:
  - swarm

my ansible.cfg is:

[default]
collections_paths = ~/.ansible/collections:/usr/share/ansible/collections

[inventory]
enable_plugins = community.upcloud.upcloud

Result:

ansible git:(main) ✗ ansible-inventory --list -i inventory/upcloud.yaml
[WARNING]:  * Failed to parse /Users/patrickleblanc/ansible/inventory/upcloud.yaml with ansible_collections.community.upcloud.plugins.inventory.upcloud plugin: 'str' object has no
attribute 'user_agent'
[WARNING]: Unable to parse /Users/patrickleblanc/ansible/inventory/upcloud.yaml as an inventory source
[WARNING]: No inventory was parsed, only implicit localhost is available

Any idea what I'm doing wrong?

Hi there! Thank you for bringing this to our attention.

Which version of UpCloud Python SDK do you have installed? The Ansible collection should work with the newest 2.0.0.

If this ends up being the case, could you please modify the issue title and description to give out better error messages on older SDK versions. This is certainly something to fix if it indeed is the case, but it sure sounds like it

Hey Antti! thanks for the super quick response.

I was with the legacy 1.0.1, coming from the now deprecated ansible module.

I upgraded the package with pip to 2.0.1 and everything is working now!

Great to hear! Let's leave this open for now, so we can have better error messages on the subject should anyone else run into similar problems.