diff options
author | Yujun Zhang <zhang.yujunz@zte.com.cn> | 2017-04-15 09:07:30 +0000 |
---|---|---|
committer | Gerrit Code Review <gerrit@opnfv.org> | 2017-04-15 09:07:30 +0000 |
commit | 550a975949328619139631e363c3bc1b48411402 (patch) | |
tree | 2f9d75d34ca678d5b979265f093740f086be9c4d | |
parent | dd5e0ce2bd1c6be943bbb9eff3698d92c0c812ad (diff) | |
parent | 9c274969f1d8cee2012ec16a21ad85d20d585c84 (diff) |
Merge "Dump collected facts"
-rw-r--r-- | .gitignore | 6 | ||||
-rw-r--r-- | qtip/ansible_library/plugins/action/collect.py | 13 | ||||
-rw-r--r-- | tests/integration/run.yaml | 3 | ||||
-rw-r--r-- | tests/integration/tasks/inxi.yaml | 5 |
4 files changed, 25 insertions, 2 deletions
@@ -73,3 +73,9 @@ ChangeLog # unignore external data !/tests/data/**/* + +# integration data +/tests/integration/hosts +/tests/integration/ssh.cfg +/tests/integration/reports/* +!/tests/integration/reports/*.sample 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] diff --git a/tests/integration/run.yaml b/tests/integration/run.yaml index 7eb141d7..d2768d68 100644 --- a/tests/integration/run.yaml +++ b/tests/integration/run.yaml @@ -21,6 +21,7 @@ include: tasks/inxi.yaml - name: ssl metrics include: tasks/openssl.yaml + tags: [ssl] - hosts: compute tasks: @@ -59,6 +60,7 @@ baseline: 6402.9 register: qpi_result delegate_to: localhost + tags: [calculate] # Generate and publish report - hosts: local @@ -67,4 +69,5 @@ template: src=templates/system-info.j2 dest=reports/system-info - name: create qpi report template: src=templates/qpi-report.j2 dest=reports/qpi-report + tags: [report] # TODO(yujunz) push test result to testapi diff --git a/tests/integration/tasks/inxi.yaml b/tests/integration/tasks/inxi.yaml index 6c2db6a4..47eb2e73 100644 --- a/tests/integration/tasks/inxi.yaml +++ b/tests/integration/tasks/inxi.yaml @@ -14,7 +14,7 @@ - name: check hardware information with inxi command: inxi -b -c0 -n - register: inxi_log + register: inxi_out # TODO(yujunz) normalize system information, test condition and performance metrics for future data mining # e.g. convert "2 Deca core Intel Xeon E5-2650 v3s (-HT-MCP-SMP-) speed/max: 1200/3000 MHz" to @@ -31,7 +31,7 @@ # cache_mb: None - name: collect system information from inxi collect: - string: "{{ inxi_log.stdout }}" + string: "{{ inxi_out.stdout }}" patterns: - '.+\s+Host:\s+(?P<hostname>.+)\sKernel' - '.+\sMemory:\s+(?P<memory>.+MB)\s' @@ -40,4 +40,5 @@ - '.+\sKernel:\s+(?P<kernel>.+)\sConsole' - '.+\s+HDD Total Size:\s+(?P<disk>.+)\s' - '.+\sproduct:\s+(?P<product>.+)\sv' + dump: 'inix.log' register: system_info |