summaryrefslogtreecommitdiffstats
path: root/qtip
diff options
context:
space:
mode:
Diffstat (limited to 'qtip')
-rw-r--r--qtip/ansible_library/plugins/action/calculate.py5
-rw-r--r--qtip/ansible_library/plugins/action/collect.py13
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]