eole-galaxy/cadoles/eole/plugins/modules/eole_facts.py

110 lines
3.2 KiB
Python
Raw Normal View History

2021-07-06 17:55:48 +02:00
#!/usr/bin/python
# Copyright: (c) 2021, Cadoles <contact@cadoles.com>
# 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: eole_facts
short_description: Gathers facts about EOLE modules
version_added: "1.0.0"
description: Determines if targeted server has EOLE module capacity.
author:
- Benjamin Bohard
'''
EXAMPLES = r'''
- name: Return ansible_facts
cadoles.eole.eole_facts:
'''
RETURN = r'''
# These are examples of possible return values, and in general should use other names for return values.
ansible_facts:
description: Facts to add to ansible_facts.
returned: always
type: dict
contains:
is_eole:
description: is_eole facts about operating system.
type: boolean
return: always
sample: True
module_eole:
description: eole module facts about operating system.
type: str
returned: when operating system eole module fact is present
sample: 'eolebase'
release_eole:
description:
- eole release facts about operating system.
- This description can be a list as well.
type: str
returned: when operating system eole release fact is present
sample: '2.7.2'
'''
from ansible.module_utils.basic import AnsibleModule
def run_module():
# define available arguments/parameters a user can pass to the module
module_args = dict()
# seed the result dict in the object
# we primarily care about changed and state
# changed is if this module effectively modified the target
# state will include any data that you want your module to pass back
# for consumption, for example, in a subsequent task
result = dict(
changed=False,
ansible_facts=dict(),
)
# the AnsibleModule object will be our abstraction working with Ansible
# this includes instantiation, a couple of common attr would be the
# args/params passed to the execution, as well as if the module
# supports check mode
module = AnsibleModule(
argument_spec=module_args,
supports_check_mode=True
)
# if the user is working with this module in only check mode we do not
# want to make any changes to the environment, just return the current
# state with no modifications
if module.check_mode:
module.exit_json(**result)
# manipulate or modify the state as needed (this is going to be the
# part where your module will do what it needs to do)
try:
from creole.eoleversion import EOLE_RELEASE
from creole.client import CreoleClient
module_eole = CreoleClient().get_creole('eole_module')
result['ansible_facts'] = {
'is_eole': True,
'module_eole': module_eole,
'release_eole': EOLE_RELEASE,
}
except:
result['ansible_facts'] = {'is_eole': False}
# in the event of a successful module execution, you will want to
# simple AnsibleModule.exit_json(), passing the key/value results
module.exit_json(**result)
def main():
run_module()
if __name__ == '__main__':
main()