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

* Added support for multi-line key files.

This commit is contained in:
Piffey Parlance 2013-02-02 18:07:10 -06:00
parent f7e286cf34
commit 39c8becfc8

View file

@ -143,28 +143,32 @@ def enforce_state(module, params):
key = params["key"] key = params["key"]
state = params.get("state", "present") state = params.get("state", "present")
# If multiple keys split on the newline
if '\n' in key: if '\n' in key:
module.fail_json(msg="key= can only contain a single key") new_keys = key.split('\n')
# check current state -- just get the filename, don't create file # check current state -- just get the filename, don't create file
params["keyfile"] = keyfile(module, user, write=False) params["keyfile"] = keyfile(module, user, write=False)
keys = readkeys(params["keyfile"]) keys = readkeys(params["keyfile"])
present = key in keys
# handle idempotent state=present # Check our new keys, if any of them exist we'll continue.
if state=="present": for new_key in new_keys:
if present: present = new_key in keys
module.exit_json(changed=False) # handle idempotent state=present
keys.append(key) if state=="present":
writekeys(module, keyfile(module, user,write=True), keys) if present:
continue
keys.append(new_key)
writekeys(module, keyfile(module, user,write=True), keys)
params['changed'] = True
elif state=="absent": elif state=="absent":
if not present: if not present:
module.exit_json(changed=False) continue
keys.remove(key) keys.remove(new_key)
writekeys(module, keyfile(module, user,write=True), keys) writekeys(module, keyfile(module, user,write=True), keys)
params['changed'] = True
params['changed'] = True
return params return params
def main(): def main():