Querying the inventory/hostvars from a plugin

Hello All -

I’m writing a local plugin where I’d like to be able to pass in the name of an Ansible host group and find out particular details about the relevant hosts - basically, I need to access groups and hostvars from a Python plugin.

Is this possible? I’ve done lots of Ansible but very limited plugin development for it, so apologies if this is a foolish question. Please point me in the right direction if there’s some documentation I’ve missed!

Background:

My actual aim is to create Amazon ELB loadbalancer target rules which point at the hosts in a particular group. To do this, I need the EC2 instance IDs of those hosts.

I can get the instance info for all my hosts using ec2_instance_info, and I can match them up based on IP addresses with the information in groups and hostvars, but this kind of thing is very convoluted and unreadable in Jinja tags and filters. It would be easy and readable in Python.

I know how to do the EC2 side. I just need to know how to do the inventory side, so I can get rid of things like:

groups[ groupname ] | map('extract', hostvars, ['ansible_default_ipv4', 'address']) | list)

Suggestions of alternative approaches also welcome!

Many thanks!
Quentin