summaryrefslogtreecommitdiffstats
path: root/resources/roles/qtip-bootstrap/files
diff options
context:
space:
mode:
Diffstat (limited to 'resources/roles/qtip-bootstrap/files')
-rw-r--r--resources/roles/qtip-bootstrap/files/fixtures/case.json14
-rw-r--r--resources/roles/qtip-bootstrap/files/fixtures/pod.json6
-rw-r--r--resources/roles/qtip-bootstrap/files/fixtures/project.json4
-rw-r--r--resources/roles/qtip-bootstrap/files/group_vars/all.yml13
-rw-r--r--resources/roles/qtip-bootstrap/files/host_vars/localhost.yml16
-rw-r--r--resources/roles/qtip-bootstrap/files/run.yml109
-rw-r--r--resources/roles/qtip-bootstrap/files/setup.yml64
7 files changed, 226 insertions, 0 deletions
diff --git a/resources/roles/qtip-bootstrap/files/fixtures/case.json b/resources/roles/qtip-bootstrap/files/fixtures/case.json
new file mode 100644
index 00000000..22abc40f
--- /dev/null
+++ b/resources/roles/qtip-bootstrap/files/fixtures/case.json
@@ -0,0 +1,14 @@
+{
+ "run": "",
+ "name": "compute",
+ "ci_loop": "",
+ "tags": "",
+ "url": "",
+ "domains": "",
+ "dependencies": "",
+ "version": "",
+ "criteria": "",
+ "tier": "",
+ "blocking": "",
+ "description": ""
+} \ No newline at end of file
diff --git a/resources/roles/qtip-bootstrap/files/fixtures/pod.json b/resources/roles/qtip-bootstrap/files/fixtures/pod.json
new file mode 100644
index 00000000..654b5828
--- /dev/null
+++ b/resources/roles/qtip-bootstrap/files/fixtures/pod.json
@@ -0,0 +1,6 @@
+{
+ "details": "",
+ "role": "",
+ "name": "qtip-pod",
+ "mode": ""
+} \ No newline at end of file
diff --git a/resources/roles/qtip-bootstrap/files/fixtures/project.json b/resources/roles/qtip-bootstrap/files/fixtures/project.json
new file mode 100644
index 00000000..ecd03e83
--- /dev/null
+++ b/resources/roles/qtip-bootstrap/files/fixtures/project.json
@@ -0,0 +1,4 @@
+{
+ "name": "qtip",
+ "description": "Platform Performance Benchmarking"
+} \ No newline at end of file
diff --git a/resources/roles/qtip-bootstrap/files/group_vars/all.yml b/resources/roles/qtip-bootstrap/files/group_vars/all.yml
new file mode 100644
index 00000000..933cffe5
--- /dev/null
+++ b/resources/roles/qtip-bootstrap/files/group_vars/all.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
+##############################################################################
+
+qtip_resources: ../../resources
+qtip_reports: ./reports
+qtip_fixtures: ./fixtures
+qtip_dump: ./dump
diff --git a/resources/roles/qtip-bootstrap/files/host_vars/localhost.yml b/resources/roles/qtip-bootstrap/files/host_vars/localhost.yml
new file mode 100644
index 00000000..66aa5d0e
--- /dev/null
+++ b/resources/roles/qtip-bootstrap/files/host_vars/localhost.yml
@@ -0,0 +1,16 @@
+##############################################################################
+# 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
+##############################################################################
+
+testapi_url: http://localhost:8000/api/v1
+project_name: qtip
+case_name: compute
+pod_name: qtip-pod
+installer: fuel
+version: master
+scenario: demo
diff --git a/resources/roles/qtip-bootstrap/files/run.yml b/resources/roles/qtip-bootstrap/files/run.yml
new file mode 100644
index 00000000..696235c2
--- /dev/null
+++ b/resources/roles/qtip-bootstrap/files/run.yml
@@ -0,0 +1,109 @@
+##############################################################################
+# 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
+##############################################################################
+
+---
+# Execute compute benchmark plan and collect data
+# - system information
+# - test condition
+# - performance metrics
+- hosts: compute
+ tasks:
+ - name: check ssh connection
+ ping:
+ tags: [setup]
+
+- hosts: compute
+ roles:
+ - development-tools
+ tags: [setup]
+
+- hosts: compute
+ roles:
+ - unixbench
+ tags: [unixbench]
+
+- hosts: compute
+ 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:
+ ssl_rsa: "{{ openssl_rsa_metrics }}"
+ spec: "{{ qtip_resources }}/QPI/compute.yaml"
+ register: qpi_result
+ 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
+
+- 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"
+ 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]
diff --git a/resources/roles/qtip-bootstrap/files/setup.yml b/resources/roles/qtip-bootstrap/files/setup.yml
new file mode 100644
index 00000000..fed5e9d9
--- /dev/null
+++ b/resources/roles/qtip-bootstrap/files/setup.yml
@@ -0,0 +1,64 @@
+##############################################################################
+# 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
+##############################################################################
+
+# Prepare connection to SUT (System Under Test)
+- hosts: fuel-master
+ 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
+ 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 }}"
+ - 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
+
+# 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]