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"]
|
||||
data, dummy = self._exec(cmd, True, False, False)
|
||||
|
||||
package_regex = re.compile(r"^(\w+) v(.+):$")
|
||||
package_regex = re.compile(r"^([\w\-]+) v(.+):$")
|
||||
installed = {}
|
||||
for line in data.splitlines():
|
||||
package_info = package_regex.match(line)
|
||||
|
@ -136,11 +136,11 @@ class Cargo(object):
|
|||
installed_version = self.get_installed().get(name)
|
||||
|
||||
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)
|
||||
if match:
|
||||
latest_version = match[1]
|
||||
latest_version = match.group(1)
|
||||
|
||||
return installed_version != latest_version
|
||||
|
||||
|
|
|
@ -5,21 +5,42 @@
|
|||
version: 0.1.0
|
||||
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
|
||||
community.general.cargo:
|
||||
name: helloworld-yliu
|
||||
state: latest
|
||||
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
|
||||
community.general.cargo:
|
||||
name: helloworld-yliu
|
||||
version: 0.1.0
|
||||
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:
|
||||
that:
|
||||
- install_helloworld_010 is changed
|
||||
- install_helloworld_010_idem is not changed
|
||||
- upgrade_helloworld_010 is changed
|
||||
- upgrade_helloworld_010_idem is not changed
|
||||
- downgrade_helloworld_010 is changed
|
||||
- downgrade_helloworld_010_idem is not changed
|
||||
|
|
Loading…
Reference in a new issue