Organize **all** tasks into ansible role `qtip` 57/33657/2
authorYujun Zhang <zhang.yujunz@zte.com.cn>
Sat, 22 Apr 2017 04:49:21 +0000 (12:49 +0800)
committerYujun Zhang <zhang.yujunz@zte.com.cn>
Mon, 24 Apr 2017 00:51:46 +0000 (08:51 +0800)
Change-Id: I5d3852d2a31e9c4043191377e5cb7d539d222a8c
Signed-off-by: Yujun Zhang <zhang.yujunz@zte.com.cn>
16 files changed:
resources/ansible_roles/opnfv-testapi/tasks/main.yml
resources/ansible_roles/opnfv-testapi/tasks/report.yml
resources/ansible_roles/opnfv-testapi/tasks/setup.yml [moved from resources/ansible_roles/opnfv-testapi/tasks/init.yml with 99% similarity]
resources/ansible_roles/qtip-workspace/files/defaults/run.yml
resources/ansible_roles/qtip-workspace/files/defaults/setup.yml
resources/ansible_roles/qtip/tasks/aggregate.yml [new file with mode: 0644]
resources/ansible_roles/qtip/tasks/calculate.yml [new file with mode: 0644]
resources/ansible_roles/qtip/tasks/gather-facts-apex.yml [new file with mode: 0644]
resources/ansible_roles/qtip/tasks/gather-facts-fuel.yml [new file with mode: 0644]
resources/ansible_roles/qtip/tasks/generate-inventory.yml [new file with mode: 0644]
resources/ansible_roles/qtip/tasks/install-deps-debian.yml [moved from resources/ansible_roles/qtip-deps/tasks/debian.yml with 88% similarity]
resources/ansible_roles/qtip/tasks/install-deps-redhat.yml [moved from resources/ansible_roles/qtip-deps/tasks/redhat.yml with 90% similarity]
resources/ansible_roles/qtip/tasks/install-deps.yml [moved from resources/ansible_roles/qtip-deps/tasks/main.yml with 77% similarity]
resources/ansible_roles/qtip/tasks/main.yml [new file with mode: 0644]
resources/ansible_roles/qtip/tasks/setup-local.yml [new file with mode: 0644]
resources/ansible_roles/qtip/tasks/setup-node.yml [new file with mode: 0644]

index 1dd5220..270ffb5 100644 (file)
@@ -8,8 +8,5 @@
 ##############################################################################
 
 ---
-- include: init.yml
-  when: action == 'init'
 
-- include: report.yml
-  when: action == 'report'
+- include: "{{ tasks }}.yml"
index fd23e54..aa213a7 100644 (file)
@@ -7,6 +7,8 @@
 # http://www.apache.org/licenses/LICENSE-2.0
 ##############################################################################
 
+---
+
 - name: push result to testapi
   uri:
     url: "{{ testapi_url }}/results"
@@ -8,6 +8,7 @@
 ##############################################################################
 
 ---
+
 - name: create project and pod
   uri:
     url: "{{ testapi_url }}/{{item}}s"
index 3196928..b76e457 100644 (file)
@@ -8,74 +8,38 @@
 ##############################################################################
 
 ---
-# Execute compute benchmark plan and collect data
-# - system information
-# - test condition
-# - performance metrics
 
 - hosts: localhost
-  tasks:
-  - name: setting result directory name
-    set_fact:
-      qtip_results_base: "{{ qtip_results }}/{{ pod_name }}-{{ lookup('pipe', 'date +%Y%m%d-%H%M') }}"
 
-- hosts: compute
-
-  pre_tasks:
-
-  - name: check ssh connection
-    ping:
+  roles:
+  # prepare local environment
+  - { role: qtip, tasks: setup-local }
 
-  - name: overriding result directory name
-    set_fact:
-      qtip_results: "{{ hostvars['localhost']['qtip_results_base']}}/{{ inventory_hostname }}"
 
-  - name: create result directory
-    file:
-      path: "{{ qtip_results }}"
-      state: directory
-    delegate_to: localhost
+- hosts: compute
 
   roles:
-  - qtip-deps
-
-  tags: [setup]
+  # prepare environment
+  - { role: qtip, tasks: setup-node }
 
 
 - 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]}
-
-  post_tasks:
-  - name: calculate QPI of compute
-    calculate:
-      metrics:
-        ssl_rsa: "{{ ssl_rsa_metrics }}"
-      spec:   "{{ qtip_resources }}/QPI/compute.yaml"
-    register: qpi_result
-    delegate_to: localhost
-    tags: [qpi]
+  # calculate scores
+    - { role: qtip, tasks: calculate}
 
 
 - hosts: localhost
 
-  pre_tasks:
-
-  - name: aggregate QPI results from all tested nodes
-    aggregate:
-      group: compute
-    register: pod_result
-    tags: [pod]
-
-  # Generate and publish report
-
   roles:
-    - role: opnfv-testapi
-      action: report
-      when: testapi_url is defined
+  # aggregate results and produce report
+    - { role: qtip, tasks: aggregate }
+  # publish results
+    - { role: opnfv-testapi, tasks: report, when: testapi_url is defined}
index 5b4677e..a522d67 100644 (file)
@@ -8,43 +8,10 @@
 ##############################################################################
 
 # Prepare connection to SUT (System Under Test)
-- hosts: fuel-masters
-  gather_facts: no
-  tasks:
-  - name: collect facts of fuel hosts
-    fuel:
-
-- hosts: apex-underclouds
-  gather_facts: no
 
-  tasks:
-  - name: collect overcloud baremetal info
-    shell: . /root/stackrc && openstack baremetal list --fields instance_uuid properties provision_state --format json
-    register: baremetal_info
-  - name: collect overcloud server info
-    shell: . /root/stackrc && openstack server list --format json
-    register: server_info
-  - name: generate inventory
-    apex_generate_inventory:
-      baremetal_info: "{{ baremetal_info.stdout | from_json }}"
-      server_info: "{{ server_info.stdout | from_json }}"
+---
 
-- hosts:
-  - fuel-masters
-  - apex-underclouds
-  tasks:
-  - name: update inventory file
-    template: src=templates/hosts dest=./hosts
-    delegate_to: localhost
-  - name: update ssh.cfg file
-    template: src=templates/ssh.cfg dest=./ssh.cfg
-    delegate_to: localhost
-
-- hosts: localhost
-  tasks:
-  - name: create cache directory
-    file:
-      path: "{{ item }}"
-      state: directory
-    with_items:
-      - "{{ qtip_cache }}"
+- hosts: [fuel-masters, apex-underclouds]
+  gather_facts: no
+  roles:
+    - { role: qtip, tasks: generate-inventory }
diff --git a/resources/ansible_roles/qtip/tasks/aggregate.yml b/resources/ansible_roles/qtip/tasks/aggregate.yml
new file mode 100644 (file)
index 0000000..659874f
--- /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
+##############################################################################
+
+---
+
+- name: aggregate results from all tested nodes
+  aggregate:
+    group: compute
+  register: pod_result
diff --git a/resources/ansible_roles/qtip/tasks/calculate.yml b/resources/ansible_roles/qtip/tasks/calculate.yml
new file mode 100644 (file)
index 0000000..aae4b45
--- /dev/null
@@ -0,0 +1,18 @@
+##############################################################################
+# 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: calculate compute score
+  calculate:
+    metrics:
+      ssl_rsa: "{{ ssl_rsa_metrics }}"
+    spec:   "{{ qtip_resources }}/QPI/compute.yaml"
+  register: qpi_result
+  delegate_to: localhost
diff --git a/resources/ansible_roles/qtip/tasks/gather-facts-apex.yml b/resources/ansible_roles/qtip/tasks/gather-facts-apex.yml
new file mode 100644 (file)
index 0000000..f711255
--- /dev/null
@@ -0,0 +1,23 @@
+##############################################################################
+# 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: gathering overcloud baremetal info
+  shell: . /root/stackrc && openstack baremetal list --fields instance_uuid properties provision_state --format json
+  register: baremetal_info
+
+- name: gathering overcloud server info
+  shell: . /root/stackrc && openstack server list --format json
+  register: server_info
+
+- name: generating inventory
+  apex_generate_inventory:
+    baremetal_info: "{{ baremetal_info.stdout | from_json }}"
+    server_info: "{{ server_info.stdout | from_json }}"
diff --git a/resources/ansible_roles/qtip/tasks/gather-facts-fuel.yml b/resources/ansible_roles/qtip/tasks/gather-facts-fuel.yml
new file mode 100644 (file)
index 0000000..cd3e75e
--- /dev/null
@@ -0,0 +1,13 @@
+##############################################################################
+# 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: gathering facts of fuel slave nodes
+  fuel:
diff --git a/resources/ansible_roles/qtip/tasks/generate-inventory.yml b/resources/ansible_roles/qtip/tasks/generate-inventory.yml
new file mode 100644 (file)
index 0000000..f19b044
--- /dev/null
@@ -0,0 +1,21 @@
+##############################################################################
+# 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
+##############################################################################
+
+# Common tasks for installer master setup
+
+---
+
+- include: "gather-facts-{{ installer }}.yml"
+
+- name: generating inventory file
+  template: src=templates/hosts dest=./hosts
+  delegate_to: localhost
+- name: generating ssh.cfg file
+  template: src=templates/ssh.cfg dest=./ssh.cfg
+  delegate_to: localhost
@@ -8,14 +8,14 @@
 ##############################################################################
 
 ---
-- name: Installing software properties common
+- name: installing software properties common
   apt:
     name: "{{ item }}"
     state: present
   with_items:
     - software-properties-common
 
-- name: Adding ubuntu backport main repo
+- name: adding ubuntu backport main repo
   apt_repository:
     repo: "{{ item }}"
     state: present
@@ -23,7 +23,7 @@
     - deb http://archive.ubuntu.com/ubuntu/ {{ansible_distribution_release}}-backports  main restricted universe multiverse
     - deb http://archive.ubuntu.com/ubuntu/ {{ansible_distribution_release}} main restricted universe multiverse
 
-- name: Installing required software
+- name: installing dependencies
   apt:
     name: "{{ item }}"
     state: present
@@ -8,12 +8,12 @@
 ##############################################################################
 
 ---
-- name: Installing epel release
+- name: installing epel release
   yum:
     name: epel-release
     state: present
 
-- name: Installing required packages
+- name: installing dependencis
   yum:
     name: "{{ item }}"
     state: present
@@ -8,13 +8,9 @@
 ##############################################################################
 
 ---
-- include: redhat.yml
-  when: ansible_os_family == "RedHat"
+- include: "install-deps-{{ ansible_os_family|lower }}.yml"
 
-- include: debian.yml
-  when: ansible_os_family == "Debian"
-
-- name: Installing required packages
+- name: installing dependencies
   package:
     name: "{{ item }}"
     state: present
diff --git a/resources/ansible_roles/qtip/tasks/main.yml b/resources/ansible_roles/qtip/tasks/main.yml
new file mode 100644 (file)
index 0000000..270ffb5
--- /dev/null
@@ -0,0 +1,12 @@
+##############################################################################
+# 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: "{{ tasks }}.yml"
diff --git a/resources/ansible_roles/qtip/tasks/setup-local.yml b/resources/ansible_roles/qtip/tasks/setup-local.yml
new file mode 100644 (file)
index 0000000..add58b3
--- /dev/null
@@ -0,0 +1,21 @@
+##############################################################################
+# 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: setting result directory name
+  set_fact:
+    qtip_results_base: "{{ qtip_results }}/{{ pod_name }}-{{ lookup('pipe', 'date +%Y%m%d-%H%M') }}"
+
+- name: create cache directory
+  file:
+    path: "{{ item }}"
+    state: directory
+  with_items:
+    - "{{ qtip_cache }}"
diff --git a/resources/ansible_roles/qtip/tasks/setup-node.yml b/resources/ansible_roles/qtip/tasks/setup-node.yml
new file mode 100644 (file)
index 0000000..b40cc62
--- /dev/null
@@ -0,0 +1,22 @@
+##############################################################################
+# 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: overriding result directory name
+  set_fact:
+    qtip_results: "{{ hostvars['localhost']['qtip_results_base']}}/{{ inventory_hostname }}"
+
+- name: create result directory
+  file:
+    path: "{{ qtip_results }}"
+    state: directory
+  delegate_to: localhost
+
+- include: install-deps.yml