1
0
Fork 0
mirror of https://github.com/ansible-collections/community.general.git synced 2024-09-14 20:13:21 +02:00

cargo: use the correct path when checking installation status fixing idempotency issue. (#7970)

* cargo: use the correct path when checking installation status

* Add changelog fragment

* Update changelogs/fragments/7970-fix-cargo-path-idempotency.yaml

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

---------

Co-authored-by: Felix Fontein <felix@fontein.de>
This commit is contained in:
rbomze 2024-02-23 20:34:18 +01:00 committed by GitHub
parent beacd54b7b
commit 9510988abc
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 14 additions and 0 deletions

View file

@ -0,0 +1,10 @@
bugfixes:
- "cargo - fix idempotency issues when using a custom installation path
for packages (using the ``--path`` parameter).
The initial installation runs fine, but subsequent runs use the
``get_installed()`` function which did not check the given installation
location, before running ``cargo install``. This resulted in a false
``changed`` state.
Also the removal of packeges using ``state: absent`` failed, as the
installation check did not use the given parameter
(https://github.com/ansible-collections/community.general/pull/7970)."

View file

@ -137,6 +137,10 @@ class Cargo(object):
def get_installed(self): def get_installed(self):
cmd = ["install", "--list"] cmd = ["install", "--list"]
if self.path:
cmd.append("--root")
cmd.append(self.path)
data, dummy = self._exec(cmd, True, False, False) data, dummy = self._exec(cmd, True, False, False)
package_regex = re.compile(r"^([\w\-]+) v(.+):$") package_regex = re.compile(r"^([\w\-]+) v(.+):$")