diff options
16 files changed, 174 insertions, 102 deletions
diff --git a/resources/ansible_roles/opnfv-testapi/tasks/main.yml b/resources/ansible_roles/opnfv-testapi/tasks/main.yml index 1dd52208..270ffb59 100644 --- a/resources/ansible_roles/opnfv-testapi/tasks/main.yml +++ b/resources/ansible_roles/opnfv-testapi/tasks/main.yml @@ -8,8 +8,5 @@ ############################################################################## --- -- include: init.yml - when: action == 'init' -- include: report.yml - when: action == 'report' +- include: "{{ tasks }}.yml" diff --git a/resources/ansible_roles/opnfv-testapi/tasks/report.yml b/resources/ansible_roles/opnfv-testapi/tasks/report.yml index fd23e549..aa213a71 100644 --- a/resources/ansible_roles/opnfv-testapi/tasks/report.yml +++ b/resources/ansible_roles/opnfv-testapi/tasks/report.yml @@ -7,6 +7,8 @@ # http://www.apache.org/licenses/LICENSE-2.0 ############################################################################## +--- + - name: push result to testapi uri: url: "{{ testapi_url }}/results" diff --git a/resources/ansible_roles/opnfv-testapi/tasks/init.yml b/resources/ansible_roles/opnfv-testapi/tasks/setup.yml index 278a4e27..e6bb5224 100644 --- a/resources/ansible_roles/opnfv-testapi/tasks/init.yml +++ b/resources/ansible_roles/opnfv-testapi/tasks/setup.yml @@ -8,6 +8,7 @@ ############################################################################## --- + - name: create project and pod uri: url: "{{ testapi_url }}/{{item}}s" diff --git a/resources/ansible_roles/qtip-workspace/files/defaults/run.yml b/resources/ansible_roles/qtip-workspace/files/defaults/run.yml index 31969281..b76e4573 100644 --- a/resources/ansible_roles/qtip-workspace/files/defaults/run.yml +++ b/resources/ansible_roles/qtip-workspace/files/defaults/run.yml @@ -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} diff --git a/resources/ansible_roles/qtip-workspace/files/defaults/setup.yml b/resources/ansible_roles/qtip-workspace/files/defaults/setup.yml index 5b4677e9..a522d67b 100644 --- a/resources/ansible_roles/qtip-workspace/files/defaults/setup.yml +++ b/resources/ansible_roles/qtip-workspace/files/defaults/setup.yml @@ -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 index 00000000..659874fe --- /dev/null +++ b/resources/ansible_roles/qtip/tasks/aggregate.yml @@ -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 index 00000000..aae4b453 --- /dev/null +++ b/resources/ansible_roles/qtip/tasks/calculate.yml @@ -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 index 00000000..f7112554 --- /dev/null +++ b/resources/ansible_roles/qtip/tasks/gather-facts-apex.yml @@ -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 index 00000000..cd3e75e7 --- /dev/null +++ b/resources/ansible_roles/qtip/tasks/gather-facts-fuel.yml @@ -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 index 00000000..f19b0447 --- /dev/null +++ b/resources/ansible_roles/qtip/tasks/generate-inventory.yml @@ -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 diff --git a/resources/ansible_roles/qtip-deps/tasks/debian.yml b/resources/ansible_roles/qtip/tasks/install-deps-debian.yml index 1e15a68b..d71a984e 100644 --- a/resources/ansible_roles/qtip-deps/tasks/debian.yml +++ b/resources/ansible_roles/qtip/tasks/install-deps-debian.yml @@ -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 diff --git a/resources/ansible_roles/qtip-deps/tasks/redhat.yml b/resources/ansible_roles/qtip/tasks/install-deps-redhat.yml index 6a53aacf..32df3a41 100644 --- a/resources/ansible_roles/qtip-deps/tasks/redhat.yml +++ b/resources/ansible_roles/qtip/tasks/install-deps-redhat.yml @@ -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 diff --git a/resources/ansible_roles/qtip-deps/tasks/main.yml b/resources/ansible_roles/qtip/tasks/install-deps.yml index 3e885796..f48c5191 100644 --- a/resources/ansible_roles/qtip-deps/tasks/main.yml +++ b/resources/ansible_roles/qtip/tasks/install-deps.yml @@ -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 index 00000000..270ffb59 --- /dev/null +++ b/resources/ansible_roles/qtip/tasks/main.yml @@ -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 index 00000000..add58b3e --- /dev/null +++ b/resources/ansible_roles/qtip/tasks/setup-local.yml @@ -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 index 00000000..b40cc625 --- /dev/null +++ b/resources/ansible_roles/qtip/tasks/setup-node.yml @@ -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 |