From 6bace8aa5444c7b2ec8be53d0ec615c2a6763af0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Moser?= Date: Wed, 19 Jun 2019 14:10:55 +0200 Subject: [PATCH] vultr: vultr_account_facts -> info (#57563) --- .../modules/cloud/vultr/_vr_account_facts.py | 2 +- ...count_facts.py => _vultr_account_facts.py} | 6 +- .../modules/cloud/vultr/vultr_account_info.py | 126 ++++++++++++++++++ .../vultr_account_facts/tasks/main.yml | 24 ---- .../aliases | 0 .../targets/vultr_account_info/tasks/main.yml | 27 ++++ 6 files changed, 159 insertions(+), 26 deletions(-) rename lib/ansible/modules/cloud/vultr/{vultr_account_facts.py => _vultr_account_facts.py} (95%) create mode 100644 lib/ansible/modules/cloud/vultr/vultr_account_info.py delete mode 100644 test/integration/targets/vultr_account_facts/tasks/main.yml rename test/integration/targets/{vultr_account_facts => vultr_account_info}/aliases (100%) create mode 100644 test/integration/targets/vultr_account_info/tasks/main.yml diff --git a/lib/ansible/modules/cloud/vultr/_vr_account_facts.py b/lib/ansible/modules/cloud/vultr/_vr_account_facts.py index bba7a8bfa8..cbff6b7a82 120000 --- a/lib/ansible/modules/cloud/vultr/_vr_account_facts.py +++ b/lib/ansible/modules/cloud/vultr/_vr_account_facts.py @@ -1 +1 @@ -vultr_account_facts.py \ No newline at end of file +_vultr_account_facts.py \ No newline at end of file diff --git a/lib/ansible/modules/cloud/vultr/vultr_account_facts.py b/lib/ansible/modules/cloud/vultr/_vultr_account_facts.py similarity index 95% rename from lib/ansible/modules/cloud/vultr/vultr_account_facts.py rename to lib/ansible/modules/cloud/vultr/_vultr_account_facts.py index 0c96731d42..fd1aaf7c61 100644 --- a/lib/ansible/modules/cloud/vultr/vultr_account_facts.py +++ b/lib/ansible/modules/cloud/vultr/_vultr_account_facts.py @@ -8,7 +8,7 @@ from __future__ import (absolute_import, division, print_function) __metaclass__ = type ANSIBLE_METADATA = {'metadata_version': '1.1', - 'status': ['preview'], + 'status': ['deprecated'], 'supported_by': 'community'} DOCUMENTATION = r''' @@ -18,6 +18,10 @@ short_description: Gather facts about the Vultr account. description: - Gather facts about account balance, charges and payments. version_added: "2.5" +deprecated: + removed_in: "2.12" + why: Transformed into an info module. + alternative: Use M(vultr_account_info) instead. author: "René Moser (@resmo)" extends_documentation_fragment: vultr ''' diff --git a/lib/ansible/modules/cloud/vultr/vultr_account_info.py b/lib/ansible/modules/cloud/vultr/vultr_account_info.py new file mode 100644 index 0000000000..22d4dc1dcb --- /dev/null +++ b/lib/ansible/modules/cloud/vultr/vultr_account_info.py @@ -0,0 +1,126 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Copyright (c) 2019, René Moser +# 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 + +ANSIBLE_METADATA = {'metadata_version': '1.1', + 'status': ['preview'], + 'supported_by': 'community'} + +DOCUMENTATION = r''' +--- +module: vultr_account_info +short_description: Get infos about the Vultr account. +description: + - Get infos about account balance, charges and payments. +version_added: "2.9" +author: "René Moser (@resmo)" +extends_documentation_fragment: vultr +''' + +EXAMPLES = r''' +- name: Get Vultr account infos + vultr_account_info: + register: result + +- name: Print the infos + debug: + var: result.vultr_account_info +''' + +RETURN = r''' +--- +vultr_api: + description: Response from Vultr API with a few additions/modification + returned: success + type: complex + contains: + api_account: + description: Account used in the ini file to select the key + returned: success + type: str + sample: default + api_timeout: + description: Timeout used for the API requests + returned: success + type: int + sample: 60 + api_retries: + description: Amount of max retries for the API requests + returned: success + type: int + sample: 5 + api_endpoint: + description: Endpoint used for the API requests + returned: success + type: str + sample: "https://api.vultr.com" +vultr_account_info: + description: Response from Vultr API + returned: success + type: complex + contains: + balance: + description: Your account balance. + returned: success + type: float + sample: -214.69 + pending_charges: + description: Charges pending. + returned: success + type: float + sample: 57.03 + last_payment_date: + description: Date of the last payment. + returned: success + type: str + sample: "2017-08-26 12:47:48" + last_payment_amount: + description: The amount of the last payment transaction. + returned: success + type: float + sample: -250.0 +''' + +from ansible.module_utils.basic import AnsibleModule +from ansible.module_utils.vultr import ( + Vultr, + vultr_argument_spec, +) + + +class AnsibleVultrAccountInfo(Vultr): + + def __init__(self, module): + super(AnsibleVultrAccountInfo, self).__init__(module, "vultr_account_info") + + self.returns = { + 'balance': dict(convert_to='float'), + 'pending_charges': dict(convert_to='float'), + 'last_payment_date': dict(), + 'last_payment_amount': dict(convert_to='float'), + } + + def get_account_info(self): + return self.api_query(path="/v1/account/info") + + +def main(): + argument_spec = vultr_argument_spec() + + module = AnsibleModule( + argument_spec=argument_spec, + supports_check_mode=True, + ) + + account_info = AnsibleVultrAccountInfo(module) + result = account_info.get_result(account_info.get_account_info()) + module.exit_json(**result) + + +if __name__ == '__main__': + main() diff --git a/test/integration/targets/vultr_account_facts/tasks/main.yml b/test/integration/targets/vultr_account_facts/tasks/main.yml deleted file mode 100644 index ffe373fb99..0000000000 --- a/test/integration/targets/vultr_account_facts/tasks/main.yml +++ /dev/null @@ -1,24 +0,0 @@ -# Copyright (c) 2018, René Moser -# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) ---- -- name: test gather vultr account facts in check mode - vultr_account_facts: - check_mode: yes - -- name: verify test gather vultr account facts in check mode - assert: - that: - - ansible_facts.vultr_account_facts.balance is defined - - ansible_facts.vultr_account_facts.last_payment_amount is defined - - ansible_facts.vultr_account_facts.last_payment_date is defined - - ansible_facts.vultr_account_facts.last_payment_amount is defined - -- name: test gather vultr account fact - vultr_account_facts: -- name: verify test gather vultr account facts - assert: - that: - - ansible_facts.vultr_account_facts.balance is defined - - ansible_facts.vultr_account_facts.last_payment_amount is defined - - ansible_facts.vultr_account_facts.last_payment_date is defined - - ansible_facts.vultr_account_facts.last_payment_amount is defined diff --git a/test/integration/targets/vultr_account_facts/aliases b/test/integration/targets/vultr_account_info/aliases similarity index 100% rename from test/integration/targets/vultr_account_facts/aliases rename to test/integration/targets/vultr_account_info/aliases diff --git a/test/integration/targets/vultr_account_info/tasks/main.yml b/test/integration/targets/vultr_account_info/tasks/main.yml new file mode 100644 index 0000000000..1dfa8c44f2 --- /dev/null +++ b/test/integration/targets/vultr_account_info/tasks/main.yml @@ -0,0 +1,27 @@ +# Copyright (c) 2018, René Moser +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) +--- +- name: test get vultr account infos in check mode + vultr_account_info: + check_mode: yes + register: result + +- name: verify test get vultr account infos in check mode + assert: + that: + - result.vultr_account_info.balance is defined + - result.vultr_account_info.last_payment_amount is defined + - result.vultr_account_info.last_payment_date is defined + - result.vultr_account_info.last_payment_amount is defined + +- name: test get vultr account fact + vultr_account_info: + register: result + +- name: verify test get vultr account infos + assert: + that: + - result.vultr_account_info.balance is defined + - result.vultr_account_info.last_payment_amount is defined + - result.vultr_account_info.last_payment_date is defined + - result.vultr_account_info.last_payment_amount is defined