##############################################################################
---
-- include: init.yml
- when: action == 'init'
-- include: report.yml
- when: action == 'report'
+- include: "{{ tasks }}.yml"
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
+---
+
- name: push result to testapi
uri:
url: "{{ testapi_url }}/results"
##############################################################################
---
+
- name: create project and pod
uri:
url: "{{ testapi_url }}/{{item}}s"
##############################################################################
---
-# 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}
##############################################################################
# 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 }
--- /dev/null
+##############################################################################
+# 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
--- /dev/null
+##############################################################################
+# 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
--- /dev/null
+##############################################################################
+# 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 }}"
--- /dev/null
+##############################################################################
+# 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:
--- /dev/null
+##############################################################################
+# 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
##############################################################################
---
-- 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
- 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
##############################################################################
---
-- 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
##############################################################################
---
-- 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
--- /dev/null
+##############################################################################
+# 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"
--- /dev/null
+##############################################################################
+# 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 }}"
--- /dev/null
+##############################################################################
+# 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