#!/usr/bin/python # coding: utf-8 # (c) 2022, Johanna Dorothea Reichmann __metaclass__ = type import json from ansible.module_utils.basic import AnsibleModule from ansible_collections.finallycoffee.proxmox.plugins.module_utils.common import * from ansible_collections.finallycoffee.proxmox.plugins.module_utils.proxmox_pool import * DOCUMENTATION = r''' --- module: pool_info author: - Johanna Dorothea Reichmann (transcaffeine@finally.coffee) requirements: - python >= 3.9 short_description: Get information about all proxmox cluster nodes description: - "Equivalent to /api2/json/nodes, returns all available top-level information about all visible nodes" options: proxmox_instance: description: Location of the proxmox API with scheme, domain name/ip and port, e.g. https://localhost:8006 type: str required: true proxmox_api_token_id: description: The token ID containing username, realm and token name (format: user@realm!name) type: str required: true proxmox_api_secret: description: The secret type: str required: true proxmox_api_verify_cert: description: If the certificate presented for `proxmox_instance_url` should be verified type: bool required: false default: true ''' EXAMPLES = r''' - name: Retrieve all resource pools finallycoffee.proxmox.pool_info: proxmox_instance: https://my.proxmox-node.local:8006 promox_api_token_id: root@pam!token proxmox_api_secret: supersecuretokencontent ''' RETURN = r''' pools: description: All resource pools present in the datacenter returned: When pools are visible (token has atleast Pool.Audit on each pool) type: list elements: str ''' def main(): _ = dict module = AnsibleModule( argument_spec=_( proxmox_instance=_(required=True, type='str'), proxmox_api_token_id=_(required=True, type='str'), proxmox_api_secret=_(type='str', required=True, no_log=True), proxmox_api_verify_cert=_(type='bool', required=False, default=True), ), supports_check_mode=True ) result = _( changed=False, diff={}, message='' ) pools = [] try: pools = get_pools(ProxmoxAuthInfo( module.params['proxmox_instance'], module.params['proxmox_api_token_id'], module.params['proxmox_api_secret'], module.params['proxmox_api_verify_cert'], )) except IOError as owie: result['msg'] = owie module.exit_json(**result) result['pools'] = pools module.exit_json(**result) if __name__ == '__main__': main()