diff options
author | Julien Dessaux | 2023-01-23 17:33:53 +0100 |
---|---|---|
committer | Julien Dessaux | 2023-01-23 23:12:56 +0100 |
commit | b6ee8f76c2883a934bcf412722e0cf83830173c9 (patch) | |
tree | 97d33cb1f4ea74e0b277a4ed6890b35bc022816e /action_plugins/syncthing_pre.py | |
parent | Imported from personal ansible repository (diff) | |
download | syncthing-ansible-role-b6ee8f76c2883a934bcf412722e0cf83830173c9.tar.gz syncthing-ansible-role-b6ee8f76c2883a934bcf412722e0cf83830173c9.tar.bz2 syncthing-ansible-role-b6ee8f76c2883a934bcf412722e0cf83830173c9.zip |
Simplify fact gathering by using the cli instead of a webapi request1.1
Diffstat (limited to '')
-rw-r--r-- | action_plugins/syncthing_pre.py | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/action_plugins/syncthing_pre.py b/action_plugins/syncthing_pre.py new file mode 100644 index 0000000..4b7b0b3 --- /dev/null +++ b/action_plugins/syncthing_pre.py @@ -0,0 +1,46 @@ +from ansible.plugins.action import ActionBase +import re +import yaml +from yaml.loader import SafeLoader + +class ActionModule(ActionBase): + def run(self, tmp=None, task_vars=None): + if task_vars is None: + task_vars = dict() + result = super(ActionModule, self).run(tmp, task_vars) + result['changed'] = False + result['failed'] = False + + error_msgs = [] + + ### Compiling host configuration ###################################### + config = {} + if 'syncthing' in task_vars: + config = { + 'config_path': "", + 'folders_to_create': [], + 'packages': [], + 'service': "syncthing", + 'user_group': "syncthing", + } + if task_vars['ansible_distribution'] == 'FreeBSD': + config['config_dir'] = "/usr/local/etc/syncthing/" + config['data_dir'] = "/var/syncthing" + config['packages'] = ["syncthing"] + elif task_vars['ansible_distribution'] == 'Gentoo': + config['config_dir'] = "/var/lib/syncthing/.config/syncthing/" + config['data_dir'] = "/var/lib/syncthing" + config['packages'] = ["net-p2p/syncthing"] + else: + error_msgs.append(f"syncthing role does not support {task_vars['ansible_distribution']} hosts yet") + + ### Results compilation ############################################## + if error_msgs != []: + result['msg'] = ' ; '.join(error_msgs) + result['failed'] = True + + result['ansible_facts'] = { + 'syncthing_pre': config, + } + + return result |