Organize testapi tasks into ansible roles 05/33605/3
authorYujun Zhang <zhang.yujunz@zte.com.cn>
Fri, 21 Apr 2017 02:28:56 +0000 (10:28 +0800)
committerYujun Zhang <zhang.yujunz@zte.com.cn>
Fri, 21 Apr 2017 05:55:11 +0000 (13:55 +0800)
Change-Id: If073401b94e7146521fb54a85470b931e458de3c
Signed-off-by: Yujun Zhang <zhang.yujunz@zte.com.cn>
resources/roles/opnfv-testapi/tasks/init.yml [new file with mode: 0644]
resources/roles/opnfv-testapi/tasks/main.yml [new file with mode: 0644]
resources/roles/opnfv-testapi/tasks/report.yml [new file with mode: 0644]
resources/roles/qtip-workspace/files/copy/run.yml
resources/roles/qtip-workspace/files/copy/setup.yml

diff --git a/resources/roles/opnfv-testapi/tasks/init.yml b/resources/roles/opnfv-testapi/tasks/init.yml
new file mode 100644 (file)
index 0000000..278a4e2
--- /dev/null
@@ -0,0 +1,28 @@
+##############################################################################
+# Copyright (c) 2017 ZTE Corporation and others.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+
+---
+- name: create project and pod
+  uri:
+    url: "{{ testapi_url }}/{{item}}s"
+    method: POST
+    body: "{{ lookup('file', '{}/{}.json'.format(qtip_fixtures, item)) }}"
+    status_code: [200, 403]
+    body_format: json
+  with_items:
+    - project
+    - pod
+
+- name: create cases
+  uri:
+    url: "{{ testapi_url }}/projects/{{ project_name }}/cases"
+    method: POST
+    body: "{{ lookup('file', '{}/case.json'.format(qtip_fixtures)) }}"
+    status_code: [200, 403]
+    body_format: json
diff --git a/resources/roles/opnfv-testapi/tasks/main.yml b/resources/roles/opnfv-testapi/tasks/main.yml
new file mode 100644 (file)
index 0000000..1dd5220
--- /dev/null
@@ -0,0 +1,15 @@
+##############################################################################
+# Copyright (c) 2017 ZTE Corporation and others.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+
+---
+- include: init.yml
+  when: action == 'init'
+
+- include: report.yml
+  when: action == 'report'
diff --git a/resources/roles/opnfv-testapi/tasks/report.yml b/resources/roles/opnfv-testapi/tasks/report.yml
new file mode 100644 (file)
index 0000000..fd23e54
--- /dev/null
@@ -0,0 +1,28 @@
+##############################################################################
+# Copyright (c) 2017 ZTE Corporation and others.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+
+- name: push result to testapi
+  uri:
+    url: "{{ testapi_url }}/results"
+    body: "{{ item|to_json }}"
+    method: POST
+    body_format: json
+    status_code: 200
+  with_items:
+    -
+      project_name: "{{ project_name }}"
+      case_name: "{{ case_name }}"
+      pod_name: "{{ pod_name }}"
+      installer: "{{ installer }}"
+      version: "{{ version }}"
+      scenario: "{{ scenario }}"
+      start_date: "{{ ansible_date_time.date }}"
+      stop_date: "{{ ansible_date_time.date }}"
+      criteria: "unknown"
+      details: "{{ pod_result }}"
index ed87b6a..98846ff 100644 (file)
@@ -48,7 +48,7 @@
 
 - hosts: localhost
 
-  tasks:
+  pre_tasks:
 
   - name: aggregate QPI results from all tested nodes
     aggregate:
 
   # Generate and publish report
 
-  - name: push result to testapi
-    uri:
-      url: "{{ testapi_url }}/results"
-      body: "{{ item|to_json }}"
-      method: POST
-      body_format: json
-      status_code: 200
-    with_items:
-      -
-        project_name: "{{ project_name }}"
-        case_name: "{{ case_name }}"
-        pod_name: "{{ pod_name }}"
-        installer: "{{ installer }}"
-        version: "{{ version }}"
-        scenario: "{{ scenario }}"
-        start_date: "{{ ansible_date_time.date }}"
-        stop_date: "{{ ansible_date_time.date }}"
-        criteria: ""
-        details: "{{ pod_result }}"
-
-    tags: [testapi]
+  roles:
+    - role: opnfv-testapi
+      action: report
+      when: testapi_url is defined
index 0923ba5..4fa7557 100644 (file)
     with_items:
       - "{{ qtip_cache }}"
       - "{{ qtip_results }}"
-
-# Initialize testapi database
-- hosts: localhost
-  tasks:
-  - name: create project and pod
-    uri:
-      url: "{{ testapi_url }}/{{item}}s"
-      method: POST
-      body: "{{ lookup('file', '{}/{}.json'.format(qtip_fixtures, item)) }}"
-      status_code: [200, 403]
-      body_format: json
-    with_items:
-      - project
-      - pod
-  - name: create cases
-    uri:
-      url: "{{ testapi_url }}/projects/qtip/cases"
-      method: POST
-      body: "{{ lookup('file', '{}/case.json'.format(qtip_fixtures)) }}"
-      status_code: [200, 403]
-      body_format: json
-  tags: [testapi]