summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEvgeny Vereshchagin <evvers@ya.ru>2016-01-12 01:07:07 +0000
committerEvgeny Vereshchagin <evvers@ya.ru>2016-01-12 01:11:59 +0000
commitd441cb176c1dc624525fa870a0389ba6df366e79 (patch)
treeaf5fab8fd7424096e23b1bc77fc462477d864afe
parent33014c6db1ce757d0ffa065e6c9924ac4db1cacc (diff)
downloadansible-modules-core-d441cb176c1dc624525fa870a0389ba6df366e79.tar.gz
apt-key: convert ids to the 'short' format
Fixes: $ ansible all -m apt_key -a 'state=present id=7A82B743B9B8E46F12C733FA4759FA960E27C0A6 keyserver=hkp://keyserver.ubuntu.com:80' --sudo 127.0.0.1 | SUCCESS => { "changed": true } $ ansible all -m apt_key -a 'state=absent id=7A82B743B9B8E46F12C733FA4759FA960E27C0A6' --sudo 127.0.0.1 | SUCCESS => { "changed": false } $ apt-key export 7A82B743B9B8E46F12C733FA4759FA960E27C0A6 -----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v1 ... See https://bugs.launchpad.net/ubuntu/+source/apt/+bug/1481871
-rw-r--r--packaging/os/apt_key.py9
1 files changed, 6 insertions, 3 deletions
diff --git a/packaging/os/apt_key.py b/packaging/os/apt_key.py
index d41664f1..bedd159f 100644
--- a/packaging/os/apt_key.py
+++ b/packaging/os/apt_key.py
@@ -220,19 +220,22 @@ def main():
keyserver = module.params['keyserver']
changed = False
+ # we use the "short" id: key_id[-8:], short_format=True
+ # it's a workaround for https://bugs.launchpad.net/ubuntu/+source/apt/+bug/1481871
+
if key_id:
try:
_ = int(key_id, 16)
if key_id.startswith('0x'):
key_id = key_id[2:]
- key_id = key_id.upper()
+ key_id = key_id.upper()[-8:]
except ValueError:
module.fail_json(msg="Invalid key_id", id=key_id)
# FIXME: I think we have a common facility for this, if not, want
check_missing_binaries(module)
- short_format = (key_id is not None and len(key_id) == 8)
+ short_format = True
keys = all_keys(module, keyring, short_format)
return_values = {}
@@ -257,7 +260,7 @@ def main():
keys2 = all_keys(module, keyring, short_format)
if len(keys) != len(keys2):
changed=True
- if key_id and not key_id[-16:] in keys2:
+ if key_id and not key_id in keys2:
module.fail_json(msg="key does not seem to have been added", id=key_id)
module.exit_json(changed=changed)
elif state == 'absent':