Skip to content

Commit

Permalink
fix lxd connection plugin inventory_hostname (ansible-collections#4912)
Browse files Browse the repository at this point in the history
* fixes lxd connection plugin issue ansible-collections#4886

remote_addr value was set to literal string 'inventory_hostname' instead
of the value for inventory_hostname variable. solution found in PR
ansible/ansible#77894

* changelog fragment - bugfix - lxd connection plugin

* correct changelog fragment

* Update changelogs/fragments/4886-fix-lxd-inventory-hostname.yml

Co-authored-by: Felix Fontein <felix@fontein.de>

* replace _host instance variable with calls to get 'remote_addr' option

suggested by felixfontein

Co-authored-by: Felix Fontein <felix@fontein.de>
  • Loading branch information
2 people authored and Dušan Markovič committed Nov 7, 2022
1 parent d46412d commit a9ae6a3
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 7 deletions.
2 changes: 2 additions & 0 deletions changelogs/fragments/4886-fix-lxd-inventory-hostname.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
bugfixes:
- "lxd connection plugin - fix incorrect ``inventory_hostname`` in ``remote_addr``. This is needed for compatibility with ansible-core 2.13 (https://github.com/ansible-collections/community.general/issues/4886)."
14 changes: 7 additions & 7 deletions plugins/connection/lxd.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
- Container identifier.
default: inventory_hostname
vars:
- name: inventory_hostname
- name: ansible_host
- name: ansible_lxd_host
executable:
Expand Down Expand Up @@ -61,7 +62,6 @@ class Connection(ConnectionBase):
def __init__(self, play_context, new_stdin, *args, **kwargs):
super(Connection, self).__init__(play_context, new_stdin, *args, **kwargs)

self._host = self._play_context.remote_addr
try:
self._lxc_cmd = get_bin_path("lxc")
except ValueError:
Expand All @@ -75,14 +75,14 @@ def _connect(self):
super(Connection, self)._connect()

if not self._connected:
self._display.vvv(u"ESTABLISH LXD CONNECTION FOR USER: root", host=self._host)
self._display.vvv(u"ESTABLISH LXD CONNECTION FOR USER: root", host=self.get_option('remote_addr'))
self._connected = True

def exec_command(self, cmd, in_data=None, sudoable=True):
""" execute a command on the lxd host """
super(Connection, self).exec_command(cmd, in_data=in_data, sudoable=sudoable)

self._display.vvv(u"EXEC {0}".format(cmd), host=self._host)
self._display.vvv(u"EXEC {0}".format(cmd), host=self.get_option('remote_addr'))

local_cmd = [self._lxc_cmd]
if self.get_option("project"):
Expand All @@ -104,18 +104,18 @@ def exec_command(self, cmd, in_data=None, sudoable=True):
stderr = to_text(stderr)

if stderr == "error: Container is not running.\n":
raise AnsibleConnectionFailure("container not running: %s" % self._host)
raise AnsibleConnectionFailure("container not running: %s" % self.get_option('remote_addr'))

if stderr == "error: not found\n":
raise AnsibleConnectionFailure("container not found: %s" % self._host)
raise AnsibleConnectionFailure("container not found: %s" % self.get_option('remote_addr'))

return process.returncode, stdout, stderr

def put_file(self, in_path, out_path):
""" put a file from local to lxd """
super(Connection, self).put_file(in_path, out_path)

self._display.vvv(u"PUT {0} TO {1}".format(in_path, out_path), host=self._host)
self._display.vvv(u"PUT {0} TO {1}".format(in_path, out_path), host=self.get_option('remote_addr'))

if not os.path.isfile(to_bytes(in_path, errors='surrogate_or_strict')):
raise AnsibleFileNotFound("input path is not a file: %s" % in_path)
Expand All @@ -138,7 +138,7 @@ def fetch_file(self, in_path, out_path):
""" fetch a file from lxd to local """
super(Connection, self).fetch_file(in_path, out_path)

self._display.vvv(u"FETCH {0} TO {1}".format(in_path, out_path), host=self._host)
self._display.vvv(u"FETCH {0} TO {1}".format(in_path, out_path), host=self.get_option('remote_addr'))

local_cmd = [self._lxc_cmd]
if self.get_option("project"):
Expand Down

0 comments on commit a9ae6a3

Please sign in to comment.