1#!/usr/bin/python 2# 3# (c) 2018, Yanis Guenane <yanis+ansible@guenane.org> 4# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) 5 6from __future__ import (absolute_import, division, print_function) 7__metaclass__ = type 8 9ANSIBLE_METADATA = {'metadata_version': '1.1', 10 'status': ['deprecated'], 11 'supported_by': 'community'} 12 13DOCUMENTATION = r''' 14--- 15module: vultr_user_facts 16short_description: Gather facts about the Vultr user available. 17description: 18 - Gather facts about users available in Vultr. 19version_added: "2.7" 20author: "Yanis Guenane (@Spredzy)" 21deprecated: 22 removed_in: "2.12" 23 why: Transformed into an info module. 24 alternative: Use M(vultr_user_info) instead. 25extends_documentation_fragment: vultr 26''' 27 28EXAMPLES = r''' 29- name: Gather Vultr user facts 30 local_action: 31 module: vultr_user_facts 32 33- name: Print the gathered facts 34 debug: 35 var: ansible_facts.vultr_user_facts 36''' 37 38RETURN = r''' 39--- 40vultr_api: 41 description: Response from Vultr API with a few additions/modification 42 returned: success 43 type: complex 44 contains: 45 api_account: 46 description: Account used in the ini file to select the key 47 returned: success 48 type: str 49 sample: default 50 api_timeout: 51 description: Timeout used for the API requests 52 returned: success 53 type: int 54 sample: 60 55 api_retries: 56 description: Amount of max retries for the API requests 57 returned: success 58 type: int 59 sample: 5 60 api_retry_max_delay: 61 description: Exponential backoff delay in seconds between retries up to this max delay value. 62 returned: success 63 type: int 64 sample: 12 65 version_added: '2.9' 66 api_endpoint: 67 description: Endpoint used for the API requests 68 returned: success 69 type: str 70 sample: "https://api.vultr.com" 71vultr_user_facts: 72 description: Response from Vultr API 73 returned: success 74 type: complex 75 sample: 76 "vultr_user_facts": [ 77 { 78 "acls": [], 79 "api_enabled": "yes", 80 "email": "mytestuser@example.com", 81 "id": "a235b4f45e87f", 82 "name": "mytestuser" 83 } 84 ] 85''' 86 87from ansible.module_utils.basic import AnsibleModule 88from ansible.module_utils.vultr import ( 89 Vultr, 90 vultr_argument_spec, 91) 92 93 94class AnsibleVultrUserFacts(Vultr): 95 96 def __init__(self, module): 97 super(AnsibleVultrUserFacts, self).__init__(module, "vultr_user_facts") 98 99 self.returns = { 100 "USERID": dict(key='id'), 101 "acls": dict(), 102 "api_enabled": dict(), 103 "email": dict(), 104 "name": dict() 105 } 106 107 def get_regions(self): 108 return self.api_query(path="/v1/user/list") 109 110 111def main(): 112 argument_spec = vultr_argument_spec() 113 114 module = AnsibleModule( 115 argument_spec=argument_spec, 116 supports_check_mode=True, 117 ) 118 119 user_facts = AnsibleVultrUserFacts(module) 120 result = user_facts.get_result(user_facts.get_regions()) 121 ansible_facts = { 122 'vultr_user_facts': result['vultr_user_facts'] 123 } 124 module.exit_json(ansible_facts=ansible_facts, **result) 125 126 127if __name__ == '__main__': 128 main() 129