Repository URL to install this package:
|
Version:
6.0.0 ▾
|
#!/usr/bin/python
# -*- coding: utf-8 -*-
# (c) 2019 Felix Fontein <felix@fontein.de>
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
from __future__ import absolute_import, division, print_function
__metaclass__ = type
DOCUMENTATION = r'''
---
module: ssh_key_info
short_description: Query information on SSH keys
version_added: 1.2.0
author:
- Felix Fontein (@felixfontein)
description:
- List information on all your SSH keys stored in Hetzner's Robot.
seealso:
- module: community.hrobot.ssh_key
description: Add, remove or update SSH key
extends_documentation_fragment:
- community.hrobot.robot
'''
EXAMPLES = r'''
- name: List all SSH keys
community.hrobot.ssh_key_info:
hetzner_user: foo
hetzner_password: bar
register: ssh_keys
- name: Show how many keys were found
ansible.builtin.debug:
msg: "Found {{ ssh_keys.ssh_keys | length }} keys"
'''
RETURN = r'''
ssh_keys:
description:
- The list of all SSH keys stored in Hetzner's Robot for your user.
returned: success
type: list
elements: dict
contains:
name:
description:
- The key's name shown in the UI.
type: str
sample: key1
fingerprint:
description:
- The key's MD5 fingerprint.
type: str
sample: 56:29:99:a4:5d:ed:ac:95:c1:f5:88:82:90:5d:dd:10
type:
description:
- The key's algorithm type.
type: str
sample: ECDSA
size:
description:
- The key's size in bits.
type: int
sample: 521
data:
description:
- The key data in OpenSSH's format.
type: str
sample: ecdsa-sha2-nistp521 AAAAE2VjZHNh ...
'''
from ansible.module_utils.basic import AnsibleModule
from ansible_collections.community.hrobot.plugins.module_utils.robot import (
BASE_URL,
ROBOT_DEFAULT_ARGUMENT_SPEC,
fetch_url_json,
)
def main():
argument_spec = dict()
argument_spec.update(ROBOT_DEFAULT_ARGUMENT_SPEC)
module = AnsibleModule(
argument_spec=argument_spec,
supports_check_mode=True,
)
url = "{0}/key".format(BASE_URL)
result, error = fetch_url_json(module, url, accept_errors=['NOT_FOUND'])
if error == 'NOT_FOUND':
result = []
elif error is not None:
raise AssertionError('Unexpected error {0}'.format(error)) # pragma: no cover
keys = []
for key in result:
keys.append(key['key'])
module.exit_json(changed=False, ssh_keys=keys)
if __name__ == '__main__': # pragma: no cover
main() # pragma: no cover