!/tests/data/**/*
# integration data
-/tests/integration/*.retry
-/tests/integration/*-workspace
+*.retry
+/tests/integration/workspace/
##############################################################################
installer: fuel
+
installer_master: fuel-master
-workspace: "./{{ installer }}-workspace"
-qtip_package: ../..
+installer_master_group:
+ fuel: fuel-masters
+ apex: apex-underclouds
+
+workspace: "workspace"
+qtip_package: ../../..
# - system information
# - test condition
# - performance metrics
+
- hosts: compute
- tasks:
+
+ pre_tasks:
- name: check ssh connection
ping:
- tags: [setup]
-- hosts: compute
roles:
- - development-tools
+ - development-tools
+
+ post_tasks:
+ - name: create dumping directories
+ file:
+ path: "{{ qtip_dump }}/{{ inventory_hostname }}"
+ state: directory
+ delegate_to: localhost
+
tags: [setup]
+
- hosts: compute
+
roles:
- - unixbench
- tags: [unixbench]
-- hosts: compute
+ - { role: unixbench, tags: [unixbench] }
+
tasks:
+
- name: collect system information
include: "{{ qtip_resources }}/metric/inxi.yaml"
+
- name: ssl metrics
include: "{{ qtip_resources }}/metric/openssl.yaml"
tags: [ssl]
+
- name: DPI metrics
include: "{{ qtip_resources }}/metric/nDPI.yaml"
vars:
nDPI_cwd: "{{ ansible_env.HOME }}/qtip/nDPI"
nDPI_file: "dpi.pcap"
tags: [dpi]
+
- name: memory metrics
include: "{{ qtip_resources }}/metric/ramspeed.yaml"
vars:
cwd: "{{ ansible_env.HOME }}/qtip/ramspeed"
tags: [mem]
-- hosts: compute
- tasks:
+
- name: calculate QPI of compute
calculate:
metrics:
delegate_to: localhost
tags: [calculate]
+
- hosts: localhost
+
tasks:
+
- name: aggregate QPI results from all tested nodes
aggregate:
group: compute
register: pod_result
-# Generate and publish report
+ # Generate and publish report
-- hosts: localhost
- tasks:
- name: create report folder
file:
path: "{{ qtip_reports }}"
state: directory
+
- name: create system information report
template:
src: "{{ qtip_resources }}/template/system-info.j2"
dest: "{{ qtip_reports }}/system-info"
+
- name: create qpi report
template:
src: "{{ qtip_resources }}/template/qpi-report.j2"
dest: "{{ qtip_reports }}/qpi-report"
tags: [report]
+
- name: create dpi metrics report
template:
src: "{{ qtip_resources }}/template/dpi-metrics.j2"
dest: "{{ qtip_reports }}/dpi-metrics"
tags: [report, dpi]
+
- name: push result to testapi
uri:
url: "{{ testapi_url }}/results"
##############################################################################
# Prepare connection to SUT (System Under Test)
-- hosts: fuel-master
+- hosts: fuel-masters
gather_facts: no
tasks:
- name: collect facts of fuel hosts
fuel:
- - name: update inventory file
- template: src={{ qtip_resources }}/template/hosts.j2 dest=./hosts
- delegate_to: localhost
- - name: update ssh.cfg file
- template: src={{ qtip_resources }}/template/ssh.cfg.j2 dest=./ssh.cfg
- delegate_to: localhost
-- hosts: apex-undercloud
+- hosts: apex-underclouds
gather_facts: no
tasks:
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={{ qtip_resources }}/template/hosts.j2 dest=./hosts
+ template: src=templates/hosts dest=./hosts
delegate_to: localhost
- name: update ssh.cfg file
- template: src={{ qtip_resources }}/template/ssh.cfg.j2 dest=./ssh.cfg
+ template: src=templates/ssh.cfg dest=./ssh.cfg
delegate_to: localhost
+- hosts: localhost
+ tasks:
+ - name: create output directories
+ file:
+ path: "{{ item }}"
+ state: directory
+ with_items:
+ - "{{ qtip_cache }}"
+ - "{{ qtip_reports }}"
+
# Initialize testapi database
- hosts: localhost
tasks:
-fuel-master
localhost ansible_connection=local
+[{{ installer_master_group[installer] }}]
+{{ installer_master }}
+
[fuel-groups:children]
{% for group in hosts|sort %}
{{ group }}
Host {{ name }}
HostName {{ host.ansible_ssh_host }}
User root
- ProxyCommand ssh -o 'ForwardAgent yes' fuel-master 'ssh-add && nc %h %p'
+ ProxyCommand ssh -o 'ForwardAgent yes' {{ installer_master }} 'ssh-add && nc %h %p'
{% endfor %}
# additional paths to search for roles in, colon separated
#roles_path = /etc/ansible/roles
+roles_path = {{ qtip_package }}/resources/roles
# uncomment this to disable SSH key host checking
#host_key_checking = False
# set plugin path directories here, separate with colons
-action_plugins = {{ qtip_package }}/ansible_library/plugins/action
+action_plugins = {{ qtip_package }}/qtip/ansible_library/plugins/action
#cache_plugins = /usr/share/ansible/plugins/cache
#callback_plugins = /usr/share/ansible/plugins/callback
#connection_plugins = /usr/share/ansible/plugins/connection
# Leaving off ControlPersist will result in poor performance, so use
# paramiko on older platforms rather than removing it, -C controls compression use
#ssh_args = -C -o ControlMaster=auto -o ControlPersist=60s
-ssh_args = -F ssh.cfg
# The base directory for the ControlPath sockets.
# This is the "%(directory)s" in the control_path option
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
+qtip_resources: "{{ qtip_package }}/resources"
+qtip_reports: reports
+qtip_fixtures: fixtures
+qtip_dump: dump
+qtip_cache: .cache
+
testapi_url: http://localhost:8000/api/v1
project_name: qtip
case_name: compute
pod_name: qtip-pod
-installer: fuel
+installer: "{{ installer }}"
version: master
scenario: demo
+
+installer_master: "{{ installer_master }}"
+installer_master_group:
+ fuel: fuel-masters
+ apex: apex-underclouds
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
-qtip_resources: ../../resources
-qtip_reports: ./reports
-qtip_fixtures: ./fixtures
-qtip_dump: ./dump
localhost ansible_connection=local
+[{{ installer_master_group[installer] }}]
{{ installer_master }}
- name: copy initial files
synchronize:
- src: "{{ item }}"
- dest: "{{ workspace }}"
- with_items:
- - group_vars
- - host_vars
- - fixtures
+ src: copy/
+ dest: "{{ workspace }}/"
- name: generate default configuration
template:
- src: "{{ item }}.j2"
- dest: "{{ workspace }}/{{ item }}"
- with_items:
- - ansible.cfg
- - hosts
+ src: "{{ item.src }}"
+ dest: "{{ workspace }}/{{ item.path }}"
+ force: yes
+ with_filetree: render
+ when: item.state == 'file'
+++ /dev/null
-../../resources/roles
\ No newline at end of file
---
- hosts: localhost
roles:
- - { role: qtip-bootstrap, installer: fuel }
+ - role: qtip-bootstrap
+ installer: fuel # fuel|apex
+ pod_name: qtip-pod
+ scenario: default
+ version: master
+ testapi_url: http://localhost:8000/api/v1
+ installer_master: f5 # hostname of installer master
+ qtip_package: ../../.. # note the relative path in workspace might be different from current working directory