Migrate to options

Because the lxc plugin was only using PlayContext properties, using host
vars like `ansible_lxc_host` didn't work. This is fixed by instead using
the `get_option` method inherited from `AnsiblePlugin`.
The options are not yet available in the `__init__` function, so the
determination of the container name is moved to the `_connect` method,
which is the first time it is actually needed.
The default for the `remote_addr` option is removed, because the string
`inventory_hostname` is not very useful. At all. This seams to have been
spread with copy&paste and a bit of cargo culting. The variable priority
already takes care of setting the value.
This commit is contained in:
corubba
2023-10-08 18:30:20 +02:00
parent a849fe6991
commit 429d8c8cfb
2 changed files with 17 additions and 3 deletions

View File

@@ -71,3 +71,16 @@ class TestLXCConnectionClass():
with pytest.raises(AnsibleError, match='lxc python bindings are not installed'):
conn._connect()
def test_remote_addr_option(self):
"""Test that the remote_addr option is used"""
play_context = PlayContext()
in_stream = StringIO()
conn = connection_loader.get('lxc', play_context, in_stream)
container_name = 'my-container'
conn.set_option('remote_addr', container_name)
assert conn.get_option('remote_addr') == container_name
conn._connect()
assert conn.container_name == container_name