Support running collect stage only 13/33713/2
authorYujun Zhang <zhang.yujunz@zte.com.cn>
Mon, 24 Apr 2017 13:14:40 +0000 (21:14 +0800)
committerYujun Zhang <zhang.yujunz@zte.com.cn>
Mon, 24 Apr 2017 14:47:18 +0000 (22:47 +0800)
- add `always` tag to tasks required for all stages
- apply `setup`, `collect` and `run` tag to each stage

Change-Id: I806ec1add08bb18cb5b2848c78a039ed8a38c8ff
Signed-off-by: Yujun Zhang <zhang.yujunz@zte.com.cn>
qtip/ansible_library/plugins/action/collect.py
resources/ansible_roles/inxi/tasks/main.yml
resources/ansible_roles/qtip-workspace/files/defaults/run.yml
resources/ansible_roles/qtip/tasks/setup-local.yml
resources/ansible_roles/qtip/tasks/setup-node.yml

index 88ad0e3..e51b807 100644 (file)
@@ -10,6 +10,7 @@
 ##############################################################################
 
 from collections import defaultdict
+import json
 import re
 
 from ansible.plugins.action import ActionBase
@@ -25,11 +26,12 @@ class ActionModule(ActionBase):
 
         string = self._task.args.get('string')
         patterns = self._task.args.get('patterns')
+        export_to = self._task.args.get('export_to')
 
-        return collect(patterns, string)
+        return collect(patterns, string, export_to)
 
 
-def collect(patterns, string):
+def collect(patterns, string, export_to=None):
     """collect all named subgroups of the match into a list keyed by subgroup name
     """
     captured = defaultdict(list)
@@ -42,4 +44,7 @@ def collect(patterns, string):
             for (key, value) in match_obj.groupdict().items():
                 captured[key].append(value)
 
+    if export_to is not None:
+        with open(export_to, 'w+') as f:
+            f.write(json.dumps(captured, indent=2))
     return captured
index 6d041e3..e7ffd18 100644 (file)
@@ -19,6 +19,8 @@
 - name: generating log filename
   set_fact:
     logfile: "{{ qtip_results }}/inxi.log"
+  tags:
+    - always
 
 - name: saving output to log
   copy:
       - '.+\sKernel:\s+(?P<kernel>.+)\sConsole'
       - '.+\s+HDD Total Size:\s+(?P<disk>.+)\s'
       - '.+\sproduct:\s+(?P<product>.+)\sv'
-    dump: 'inix.log'
+    export_to: "{{ qtip_results }}/system_info.json"
   register: system_info
   delegate_to: localhost
+  tags:
+    - collect
 
 - name: create system information report
   template:
     src: system-info.j2
     dest: "{{ qtip_results }}/system-info"
   delegate_to: localhost
-  tags: [report]
+  tags:
+    - report
index b76e457..15b1221 100644 (file)
 
   roles:
   # prepare local environment
-  - { role: qtip, tasks: setup-local }
+  - { role: qtip, tasks: setup-local, tags: [setup] }
 
 
 - hosts: compute
 
   roles:
   # prepare environment
-  - { role: qtip, tasks: setup-node }
+  - { role: qtip, tasks: setup-node, tags: [setup] }
 
 
 - hosts: compute
 
   roles:
   # run test and collect metrics
-    - { role: inxi, tags: [inxi, sysinfo] }
-    - { role: unixbench, tags: [unixbench, float, int] }
-    - { role: openssl, tags: [openssl, ssl]}
-    - { role: nDPI, tags: [ndpi, dpi]}
-    - { role: ramspeed, tags: [ramspeed, mem]}
+    - { role: inxi, tags: [run, inxi, sysinfo] }
+    - { role: unixbench, tags: [run, unixbench, arithmetic] }
+    - { role: openssl, tags: [run, openssl, ssl] }
+    - { role: nDPI, tags: [run, ndpi, dpi] }
+    - { role: ramspeed, tags: [run, ramspeed, memory] }
   # calculate scores
-    - { role: qtip, tasks: calculate}
+    - { role: qtip, tasks: calculate, tags: [calculate] }
 
 
 - hosts: localhost
 
   roles:
   # aggregate results and produce report
-    - { role: qtip, tasks: aggregate }
+    - { role: qtip, tasks: aggregate, tags: [aggregate] }
   # publish results
-    - { role: opnfv-testapi, tasks: report, when: testapi_url is defined}
+    - { role: opnfv-testapi, tasks: report, when: testapi_url is defined, tags: [report] }
index add58b3..f5f8327 100644 (file)
@@ -9,9 +9,20 @@
 
 ---
 
-- name: setting result directory name
+- name: formatting directory name for current run
   set_fact:
-    qtip_results_base: "{{ qtip_results }}/{{ pod_name }}-{{ lookup('pipe', 'date +%Y%m%d-%H%M') }}"
+    pod_results: "{{ pod_name }}-{{ lookup('pipe', 'date +%Y%m%d-%H%M') }}"
+
+- name: creating directory for current run
+  file:
+    state: directory
+    path: "{{ qtip_results }}/{{ pod_results }}"
+
+- name: creating symbolic link to current test
+  file:
+    state: link
+    src: "{{ pod_results }}"
+    dest: "{{ qtip_results }}/current"
 
 - name: create cache directory
   file:
index 92ee66b..af848f7 100644 (file)
@@ -11,7 +11,9 @@
 
 - name: overriding result directory name
   set_fact:
-    qtip_results: "{{ hostvars['localhost']['qtip_results_base']}}/{{ inventory_hostname }}"
+    qtip_results: "{{ qtip_results }}/current/{{ inventory_hostname }}"
+  tags:
+    - always
 
 - name: creating result directory
   file: