diff options
-rw-r--r-- | .gitignore | 4 | ||||
-rw-r--r-- | resources/roles/qtip-bootstrap/defaults/main.yml | 9 | ||||
-rw-r--r-- | resources/roles/qtip-bootstrap/files/copy/fixtures/case.json (renamed from resources/roles/qtip-bootstrap/files/fixtures/case.json) | 0 | ||||
-rw-r--r-- | resources/roles/qtip-bootstrap/files/copy/fixtures/pod.json (renamed from resources/roles/qtip-bootstrap/files/fixtures/pod.json) | 0 | ||||
-rw-r--r-- | resources/roles/qtip-bootstrap/files/copy/fixtures/project.json (renamed from resources/roles/qtip-bootstrap/files/fixtures/project.json) | 0 | ||||
-rw-r--r-- | resources/roles/qtip-bootstrap/files/copy/group_vars/.gitkeep | 0 | ||||
-rw-r--r-- | resources/roles/qtip-bootstrap/files/copy/host_vars/.gitkeep | 0 | ||||
-rw-r--r-- | resources/roles/qtip-bootstrap/files/copy/run.yml (renamed from resources/roles/qtip-bootstrap/files/run.yml) | 41 | ||||
-rw-r--r-- | resources/roles/qtip-bootstrap/files/copy/setup.yml (renamed from resources/roles/qtip-bootstrap/files/setup.yml) | 29 | ||||
-rw-r--r-- | resources/roles/qtip-bootstrap/files/copy/templates/hosts (renamed from resources/template/hosts.j2) | 4 | ||||
-rw-r--r-- | resources/roles/qtip-bootstrap/files/copy/templates/ssh.cfg (renamed from resources/template/ssh.cfg.j2) | 2 | ||||
-rw-r--r-- | resources/roles/qtip-bootstrap/files/render/ansible.cfg (renamed from resources/roles/qtip-bootstrap/templates/ansible.cfg.j2) | 4 | ||||
-rw-r--r-- | resources/roles/qtip-bootstrap/files/render/group_vars/all.yml (renamed from resources/roles/qtip-bootstrap/files/group_vars/all.yml) | 22 | ||||
-rw-r--r-- | resources/roles/qtip-bootstrap/files/render/host_vars/localhost.yml (renamed from resources/roles/qtip-bootstrap/files/host_vars/localhost.yml) | 7 | ||||
-rw-r--r-- | resources/roles/qtip-bootstrap/files/render/hosts (renamed from resources/roles/qtip-bootstrap/templates/hosts.j2) | 1 | ||||
-rw-r--r-- | resources/roles/qtip-bootstrap/tasks/main.yml | 18 | ||||
l--------- | tests/integration/roles | 1 | ||||
-rw-r--r-- | tests/integration/workspace-create.yml | 9 |
18 files changed, 97 insertions, 54 deletions
@@ -75,5 +75,5 @@ ChangeLog !/tests/data/**/* # integration data -/tests/integration/*.retry -/tests/integration/*-workspace +*.retry +/tests/integration/workspace/ diff --git a/resources/roles/qtip-bootstrap/defaults/main.yml b/resources/roles/qtip-bootstrap/defaults/main.yml index 10e464e4..55e2cbce 100644 --- a/resources/roles/qtip-bootstrap/defaults/main.yml +++ b/resources/roles/qtip-bootstrap/defaults/main.yml @@ -8,7 +8,12 @@ ############################################################################## installer: fuel + installer_master: fuel-master -workspace: "./{{ installer }}-workspace" -qtip_package: ../.. +installer_master_group: + fuel: fuel-masters + apex: apex-underclouds + +workspace: "workspace" +qtip_package: ../../.. diff --git a/resources/roles/qtip-bootstrap/files/fixtures/case.json b/resources/roles/qtip-bootstrap/files/copy/fixtures/case.json index 22abc40f..22abc40f 100644 --- a/resources/roles/qtip-bootstrap/files/fixtures/case.json +++ b/resources/roles/qtip-bootstrap/files/copy/fixtures/case.json diff --git a/resources/roles/qtip-bootstrap/files/fixtures/pod.json b/resources/roles/qtip-bootstrap/files/copy/fixtures/pod.json index 654b5828..654b5828 100644 --- a/resources/roles/qtip-bootstrap/files/fixtures/pod.json +++ b/resources/roles/qtip-bootstrap/files/copy/fixtures/pod.json diff --git a/resources/roles/qtip-bootstrap/files/fixtures/project.json b/resources/roles/qtip-bootstrap/files/copy/fixtures/project.json index ecd03e83..ecd03e83 100644 --- a/resources/roles/qtip-bootstrap/files/fixtures/project.json +++ b/resources/roles/qtip-bootstrap/files/copy/fixtures/project.json diff --git a/resources/roles/qtip-bootstrap/files/copy/group_vars/.gitkeep b/resources/roles/qtip-bootstrap/files/copy/group_vars/.gitkeep new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/resources/roles/qtip-bootstrap/files/copy/group_vars/.gitkeep diff --git a/resources/roles/qtip-bootstrap/files/copy/host_vars/.gitkeep b/resources/roles/qtip-bootstrap/files/copy/host_vars/.gitkeep new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/resources/roles/qtip-bootstrap/files/copy/host_vars/.gitkeep diff --git a/resources/roles/qtip-bootstrap/files/run.yml b/resources/roles/qtip-bootstrap/files/copy/run.yml index 696235c2..52a66990 100644 --- a/resources/roles/qtip-bootstrap/files/run.yml +++ b/resources/roles/qtip-bootstrap/files/copy/run.yml @@ -12,42 +12,54 @@ # - 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: @@ -57,35 +69,40 @@ 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" diff --git a/resources/roles/qtip-bootstrap/files/setup.yml b/resources/roles/qtip-bootstrap/files/copy/setup.yml index fed5e9d9..88cdb1d2 100644 --- a/resources/roles/qtip-bootstrap/files/setup.yml +++ b/resources/roles/qtip-bootstrap/files/copy/setup.yml @@ -8,19 +8,13 @@ ############################################################################## # 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: @@ -34,13 +28,28 @@ 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: diff --git a/resources/template/hosts.j2 b/resources/roles/qtip-bootstrap/files/copy/templates/hosts index 2ebf3c8b..27c8d1d6 100644 --- a/resources/template/hosts.j2 +++ b/resources/roles/qtip-bootstrap/files/copy/templates/hosts @@ -1,6 +1,8 @@ -fuel-master localhost ansible_connection=local +[{{ installer_master_group[installer] }}] +{{ installer_master }} + [fuel-groups:children] {% for group in hosts|sort %} {{ group }} diff --git a/resources/template/ssh.cfg.j2 b/resources/roles/qtip-bootstrap/files/copy/templates/ssh.cfg index 2fe049e2..d6a266ba 100644 --- a/resources/template/ssh.cfg.j2 +++ b/resources/roles/qtip-bootstrap/files/copy/templates/ssh.cfg @@ -9,6 +9,6 @@ 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 %} diff --git a/resources/roles/qtip-bootstrap/templates/ansible.cfg.j2 b/resources/roles/qtip-bootstrap/files/render/ansible.cfg index 1d563f1a..2d4b0b1d 100644 --- a/resources/roles/qtip-bootstrap/templates/ansible.cfg.j2 +++ b/resources/roles/qtip-bootstrap/files/render/ansible.cfg @@ -56,6 +56,7 @@ gathering = smart # 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 @@ -172,7 +173,7 @@ callback_whitelist = profile_tasks # 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 @@ -329,7 +330,6 @@ filter_plugins = {{ qtip_package }}/qtip/ansible_library/plugins/filter # 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 diff --git a/resources/roles/qtip-bootstrap/files/group_vars/all.yml b/resources/roles/qtip-bootstrap/files/render/group_vars/all.yml index 933cffe5..c00e72a4 100644 --- a/resources/roles/qtip-bootstrap/files/group_vars/all.yml +++ b/resources/roles/qtip-bootstrap/files/render/group_vars/all.yml @@ -7,7 +7,21 @@ # http://www.apache.org/licenses/LICENSE-2.0 ############################################################################## -qtip_resources: ../../resources -qtip_reports: ./reports -qtip_fixtures: ./fixtures -qtip_dump: ./dump +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: "{{ installer }}" +version: master +scenario: demo + +installer_master: "{{ installer_master }}" +installer_master_group: + fuel: fuel-masters + apex: apex-underclouds diff --git a/resources/roles/qtip-bootstrap/files/host_vars/localhost.yml b/resources/roles/qtip-bootstrap/files/render/host_vars/localhost.yml index 66aa5d0e..8135e809 100644 --- a/resources/roles/qtip-bootstrap/files/host_vars/localhost.yml +++ b/resources/roles/qtip-bootstrap/files/render/host_vars/localhost.yml @@ -7,10 +7,3 @@ # 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/templates/hosts.j2 b/resources/roles/qtip-bootstrap/files/render/hosts index c4b985b3..bf19efab 100644 --- a/resources/roles/qtip-bootstrap/templates/hosts.j2 +++ b/resources/roles/qtip-bootstrap/files/render/hosts @@ -1,3 +1,4 @@ localhost ansible_connection=local +[{{ installer_master_group[installer] }}] {{ installer_master }} diff --git a/resources/roles/qtip-bootstrap/tasks/main.yml b/resources/roles/qtip-bootstrap/tasks/main.yml index 96d6c7d8..e198732b 100644 --- a/resources/roles/qtip-bootstrap/tasks/main.yml +++ b/resources/roles/qtip-bootstrap/tasks/main.yml @@ -9,17 +9,13 @@ - 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' diff --git a/tests/integration/roles b/tests/integration/roles deleted file mode 120000 index a2363eeb..00000000 --- a/tests/integration/roles +++ /dev/null @@ -1 +0,0 @@ -../../resources/roles
\ No newline at end of file diff --git a/tests/integration/workspace-create.yml b/tests/integration/workspace-create.yml index 83e0fadd..71fd08da 100644 --- a/tests/integration/workspace-create.yml +++ b/tests/integration/workspace-create.yml @@ -10,4 +10,11 @@ --- - 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 |