diff options
Diffstat (limited to 'qtip')
-rw-r--r-- | qtip/ansible_library/plugins/action/calculate.py | 5 | ||||
-rw-r--r-- | qtip/ansible_library/plugins/action/collect.py | 13 |
2 files changed, 17 insertions, 1 deletions
diff --git a/qtip/ansible_library/plugins/action/calculate.py b/qtip/ansible_library/plugins/action/calculate.py index f88729b7..ac7f10f2 100644 --- a/qtip/ansible_library/plugins/action/calculate.py +++ b/qtip/ansible_library/plugins/action/calculate.py @@ -10,6 +10,7 @@ ############################################################################## from numpy import mean +import yaml from ansible.plugins.action import ActionBase from ansible.utils.display import Display @@ -28,7 +29,9 @@ class ActionModule(ActionBase): if result.get('skipped', False): return result - spec = self._task.args.get('spec') + with open(self._task.args.get('spec')) as stream: + spec = yaml.safe_load(stream) + metrics = self._task.args.get('metrics') return calc_qpi(spec, metrics) diff --git a/qtip/ansible_library/plugins/action/collect.py b/qtip/ansible_library/plugins/action/collect.py index 88ad0e35..26e813b8 100644 --- a/qtip/ansible_library/plugins/action/collect.py +++ b/qtip/ansible_library/plugins/action/collect.py @@ -10,6 +10,7 @@ ############################################################################## from collections import defaultdict +import os import re from ansible.plugins.action import ActionBase @@ -26,6 +27,10 @@ class ActionModule(ActionBase): string = self._task.args.get('string') patterns = self._task.args.get('patterns') + dump = self._task.args.get('dump') + if dump is not None: + dump_facts(task_vars['inventory_hostname'], [{'name': 'inxi.log', 'content': string}]) + return collect(patterns, string) @@ -43,3 +48,11 @@ def collect(patterns, string): captured[key].append(value) return captured + + +def dump_facts(hostname, facts): + dump_root = os.path.join('dump', hostname) + if not os.path.exists(dump_root): + os.mkdir(dump_root) + return [{'name': fact['name'], 'result': open(os.path.join(dump_root, fact['name']), 'w+').write(fact['content'])} + for fact in facts] |