mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
Fix detection of installed cargo packages with hyphens in name (#4052)
* Fix detection of installed cargo packages with hyphens in name
* Add changelog fragment
* Fix outdated package detection
* Add changelog fragment for af4fae72
* One more thing
* Add idempotency tests
This commit is contained in:
parent
5540dab382
commit
c18fdb43d7
3 changed files with 28 additions and 4 deletions
|
@ -0,0 +1,3 @@
|
||||||
|
bugfixes:
|
||||||
|
- cargo - fix incorrectly reported changed status for packages with a name containing a hyphen (https://github.com/ansible-collections/community.general/issues/4044, https://github.com/ansible-collections/community.general/pull/4052).
|
||||||
|
- cargo - fix detection of outdated packages when ``state=latest`` (https://github.com/ansible-collections/community.general/pull/4052).
|
|
@ -112,7 +112,7 @@ class Cargo(object):
|
||||||
cmd = ["install", "--list"]
|
cmd = ["install", "--list"]
|
||||||
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(.+):$")
|
||||||
installed = {}
|
installed = {}
|
||||||
for line in data.splitlines():
|
for line in data.splitlines():
|
||||||
package_info = package_regex.match(line)
|
package_info = package_regex.match(line)
|
||||||
|
@ -136,11 +136,11 @@ class Cargo(object):
|
||||||
installed_version = self.get_installed().get(name)
|
installed_version = self.get_installed().get(name)
|
||||||
|
|
||||||
cmd = ["search", name, "--limit", "1"]
|
cmd = ["search", name, "--limit", "1"]
|
||||||
data = self._exec(cmd, True, False, False)
|
data, dummy = self._exec(cmd, True, False, False)
|
||||||
|
|
||||||
match = re.search(r'"(.+)"', data)
|
match = re.search(r'"(.+)"', data)
|
||||||
if match:
|
if match:
|
||||||
latest_version = match[1]
|
latest_version = match.group(1)
|
||||||
|
|
||||||
return installed_version != latest_version
|
return installed_version != latest_version
|
||||||
|
|
||||||
|
|
|
@ -5,21 +5,42 @@
|
||||||
version: 0.1.0
|
version: 0.1.0
|
||||||
register: install_helloworld_010
|
register: install_helloworld_010
|
||||||
|
|
||||||
|
- name: Install application helloworld-yliu 0.1.0 (idempotent)
|
||||||
|
community.general.cargo:
|
||||||
|
name: helloworld-yliu
|
||||||
|
version: 0.1.0
|
||||||
|
register: install_helloworld_010_idem
|
||||||
|
|
||||||
- name: Upgrade helloworld-yliu 0.1.0
|
- name: Upgrade helloworld-yliu 0.1.0
|
||||||
community.general.cargo:
|
community.general.cargo:
|
||||||
name: helloworld-yliu
|
name: helloworld-yliu
|
||||||
state: latest
|
state: latest
|
||||||
register: upgrade_helloworld_010
|
register: upgrade_helloworld_010
|
||||||
|
|
||||||
|
- name: Upgrade helloworld-yliu 0.1.0 (idempotent)
|
||||||
|
community.general.cargo:
|
||||||
|
name: helloworld-yliu
|
||||||
|
state: latest
|
||||||
|
register: upgrade_helloworld_010_idem
|
||||||
|
|
||||||
- name: Downgrade helloworld-yliu 0.1.0
|
- name: Downgrade helloworld-yliu 0.1.0
|
||||||
community.general.cargo:
|
community.general.cargo:
|
||||||
name: helloworld-yliu
|
name: helloworld-yliu
|
||||||
version: 0.1.0
|
version: 0.1.0
|
||||||
register: downgrade_helloworld_010
|
register: downgrade_helloworld_010
|
||||||
|
|
||||||
- name: Check assertions helloworld-yliu 0.1.0
|
- name: Downgrade helloworld-yliu 0.1.0 (idempotent)
|
||||||
|
community.general.cargo:
|
||||||
|
name: helloworld-yliu
|
||||||
|
version: 0.1.0
|
||||||
|
register: downgrade_helloworld_010_idem
|
||||||
|
|
||||||
|
- name: Check assertions helloworld-yliu
|
||||||
assert:
|
assert:
|
||||||
that:
|
that:
|
||||||
- install_helloworld_010 is changed
|
- install_helloworld_010 is changed
|
||||||
|
- install_helloworld_010_idem is not changed
|
||||||
- upgrade_helloworld_010 is changed
|
- upgrade_helloworld_010 is changed
|
||||||
|
- upgrade_helloworld_010_idem is not changed
|
||||||
- downgrade_helloworld_010 is changed
|
- downgrade_helloworld_010 is changed
|
||||||
|
- downgrade_helloworld_010_idem is not changed
|
||||||
|
|
Loading…
Reference in a new issue