Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
systemsmanagement:Ardana:8:CentOS:7.5
ardana-qa-ansible
ardana-qa-ansible-8.0+git.1534266448.a583ec9.ob...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File ardana-qa-ansible-8.0+git.1534266448.a583ec9.obscpio of Package ardana-qa-ansible
07070100000000000081A40000000000000000000000015B730C5000000002000000000000000000000000000000000000003E00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/.copyrightignore* 07070100000001000081A40000000000000000000000015B730C5000000085000000000000000000000000000000000000003800000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/.gitreview[gerrit] host=gerrit.suse.provo.cloud port=29418 project=ardana/ardana-qa-ansible.git defaultremote=ardana defaultbranch=stable/pike 07070100000002000081A40000000000000000000000015B730C50000000FF000000000000000000000000000000000000003F00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/.rebranding-links./hos-qa-deploy.yml ./roles/hqe-common/tasks/read-hlm-admin-token.yml ./roles/hqe-common/tasks/read-hlm-group-vars.yml ./roles/hqe-monascatempest-deploy/templates/helion-tempest.sh.j2 ./hos-qa-run.yml ./hos-qa-pre-deploy.yml ./hos-qa-role-scaffolding.yml 07070100000003000081A40000000000000000000000015B730C500000279F000000000000000000000000000000000000003500000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/LICENSE Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and (b) You must cause any modified files to carry prominent notices stating that You changed the files; and (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. 07070100000004000081A40000000000000000000000015B730C5000000DF7000000000000000000000000000000000000003700000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/README.mdREADME ====== This repo holds ansible playbooks to install, configure and execute Ardana OpenStack QE tests. The ansible code aims to be consumable by different parties, such as: - Jenkins jobs in the various steps of the testing pipeline - Ardana developers to test their code - Professional services, customers These tests runs against OpenStack, version 2.0 and further. The tests targeted by ardana/ardana-qa-ansible are stored in the ardana/ardana-qa-tests repository. The ardana-qa-tests holds an heterogeneous set of tests, which cover different area and aspects of testing, and use different technologies. This repo implements a common interface that can be used to interact with all these different tests. It defines a number of roles, two per type of tests, one covering test deployment and one covering test execution. Within each role a common set of tests is defined. Different consumers need to have the ability to execute subset the roles, as well as subsets of the tests available within each role. To select roles we use tags, which allow us to both: - create predefined collections of roles, used by CI - select custom list of roles by specifying a custom list of tags The folder structure is: ``` └── ardana-qa-ansible ├── ardana-qa-deploy.yml ├── ardana-qa-run.yml └── roles ├── hqe-common-deploy │ ├── defaults │ ├── files │ ├── handlers │ ├── meta │ ├── tasks │ │ └── ..... │ ├── templates │ └── vars │ └── main.yml ├── hqe-common-run │ ├── defaults │ ├── files │ ├── handlers │ ├── meta │ ├── tasks │ │ └── ..... │ ├── templates │ └── vars │ └── main.yml ├── hqe-test-group1-deploy │ ├── defaults │ ├── vars │ ├── files │ ├── templates │ ├── tasks │ │ └── main.yml │ │ └── install.yml │ │ └── configure.yml ├── hqe-test-group1-run │ ├── defaults │ ├── vars │ ├── files │ ├── templates │ ├── tasks │ │ └── main.yml │ │ └── test-resources.yml │ │ └── run.yml │ │ └── cleanup.yml (...) ├── hqe-test-groupN-deploy ├── hqe-test-groupN-run ``` The hqe-common-(deploy|run) roles contain tools that can be shared among tests across roles, such as git repo cloning, cleanup tools, resource creation tools, result processing tools. The root deploy and run playbooks use tags to select which roles shall be executed in which run (CI, periodic, etc). Tags are applied to roles and automatically propagated, via the main.yml task, to all the relevant tasks. To use several groups of tests for a specific test run, define a tag, apply it the relevant roles in the deploy and in the run playbooks, and then install and run with: ``` ansible-playbook ardana-qa-deploy.yml --tags my-run-tag ansible-playbook ardana-qa-run.yml --tags my-run-tag ``` 07070100000005000081A40000000000000000000000015B730C50000005C3000000000000000000000000000000000000004600000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/SERVICE_AVAILABILITY.rstService availability in HLM =========================== Depending on model used some service might not be available in HLM system that is being tested. There is ansible code that is able to find is those services are there from analysis of inventory file. It then sets value of variable for every service to be either "True" or "False" depending if service is there. Note that those values are strings, so when using them in ansible you must use filter '| bool' It is up to owners of various suites to consume this information and update playbooks to use it. In most cases (like Swift) it simply enough to add clause 'when:' to task/main.yml items in deploy and run role, for example: .. code-block:: yaml - include: install.yml when: hqe_group_vars.swift_available | bool Sometimes it may be required to run tests, but make sure they information that service is disabled in passed on. In case of logging when centralized system is not there we just skip passing variable with configuration, so template file looks like that: .. code-block:: jinja {% if hqe_group_vars.centralized_logging_available | bool %} export ES_NODE_COUNT={{ es_servers| count }} export ES_URL={{ es_url }} export ES_USERNAME='kibana' export ES_PASSWORD={{ kibana_password }} {% endif %} Then inside affected tests skipUnless is used .. code-block:: python @skipUnless('ES_URL' in environ, 'Centralized logging is disabled') def test_basic_vip_access(self): 07070100000006000081A40000000000000000000000015B730C500000016D000000000000000000000000000000000000003600000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/TEST.rstTesting ======= Tests are only available at the moment for the test_tracker module. Test Tracker Module Tests ------------------------- Tests must be executed with a virtualenv. Run the following steps:: virtualenv test ./test/bin/activate pip install -r test-requirements.txt ansible-playbook -c local tests/library/test_tracker.yml -M library/ 07070100000007000081A40000000000000000000000015B730C500000038E000000000000000000000000000000000000003800000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/VOTING.rstVoting ====== Voting means that if test fails and it will mark ansible run to be failed. In case of runs inside automated systems like CI/CD this usually would mean that build will be marked with failure. Voting happens each time after run.yml for a given role was executed and it reads return code from test_output variable. If this code is different than 0 and suite is permitted to vote it would set test_status variable to be false. Even if later suites would pass, whole run would me marked as failed. Voting is by default enabled for every role, if you need to get it disabled you need to use variable that is [name]_voting where [name] is value between 'hqe-' and '-run' in role name of your job(with dashes removed, if any). For example for hqe-swift-run this would be swift_voting. You can pass this value using '-e' option in ansible-playbook and permanently change in var/main.yml for your role. 07070100000008000081A40000000000000000000000015B730C5000000E5A000000000000000000000000000000000000004200000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/ardana-qa-deploy.yml--- # This playbook deployes tests to be run against a deployed cloud. # It is not executed as part of HLM deploy. It is instead triggered # independently either by CI, or by an user of the deployed cloud. # Example usage: # ansible-playbook -c local -i hosts -e cache_folder=[local cache folder] # -e run_filter=periodic ardana-qa-deploy.yml --tags periodic - hosts: test_driver remote_user: "{{ test_driver_login }}" sudo: yes sudo_user: "{{ hqe_user }}" roles: - { role: hqe-common, tags: always } - hosts: test_driver remote_user: "{{ test_driver_login }}" sudo: yes sudo_user: "{{ hqe_user }}" environment: "{{ test_driver_env }}" roles: # Tag details: # 1. "<rolename>" - Tag that is same as role name gets used in Parallel environment. # Please do not use "parallel" tag. # 2. "periodic" - Used by Dev pipeline in baremetal installations. # 3. "periodic-virtual"- Used by dev pipeline in virtual install. # 4. "smoke" - Used by canary builds # 5. "no-qa" - Used to skip tests in tests-ci which tests the tests. - { role: hqe-common-deploy, tags: always } - { role: hqe-template-deploy, tags: ["template", "ci", "periodic", "periodic-virtual", "smoke"] } - { role: hqe-boot-many-deploy, tags: ["boot-many", "no-qa"] } - { role: hqe-test-stress-run-deploy, tags: ["test-stress-run", "no-qa"] } - { role: hqe-net-smoke-deploy, tags: ["net-smoke", "periodic", "ci"] } - { role: hqe-net-endurance-deploy, tags: ["net-endurance", "periodic", "no-qa"] } - { role: hqe-net-fragping-deploy, tags: ["net-fragping", "periodic", "no-qa"] } - { role: hqe-net-vrrp-deploy, tags: ["net-vrrp", "no-qa"] } - { role: hqe-net-transpvlan-deploy, tags: ["net-transpvlan", "periodic", "no-qa"] } - { role: hqe-net-rbac-deploy, tags: ["net-rbac", "periodic", "no-qa"] } - { role: hqe-net-dsnat-deploy, tags: ["net-dsnat", "periodic", "no-qa"] } - { role: hqe-monasca-cli-tests-deploy, tags: ["monasca-cli-tests", "no-qa"] } - { role: hqe-keystone-soapui-deploy, tags: ["keystone-soapui", "periodic", "no-qa"] } - { role: hqe-cinder-backup-restore-deploy, tags: ["cinder-backup-restore", "no-qa"] } - { role: hqe-swift-deploy, tags: ["swift", "ci", "periodic", "periodic-virtual", "smoke"] } - { role: hqe-cinder-snapshot-stack-deploy, tags: ["cinder-snapshot-stack", "no-qa"] } - { role: hqe-logging-deploy, tags: ["logging", "periodic", "periodic-virtual", "smoke"] } - { role: hqe-keystone-ansible-deploy, tags: ["keystone-ansible", "periodic", "no-qa"] } - { role: hqe-monasca-soapui-deploy, tags: ["monasca-soapui", "periodic", "no-qa"] } - { role: hqe-keystone-ldap-deploy, tags: ["keystone-ldap", "periodic", "no-qa"] } - { role: hqe-cinder-multiple-attach-detach-deploy, tags: ["cinder-multiple-attach-detach", "no-qa"] } - { role: hqe-monascatempest-deploy, tags: ["monascatempest", "no-qa"] } - { role: hqe-barbican-functional-deploy, tags: ["barbican-functional", "no-qa"] } - { role: hqe-barbican-cli-func-deploy, tags: ["barbican-cli-func", "no-qa"] } - { role: hqe-barbican-monitoring-deploy, tags: ["barbican-monitoring", "no-qa"] } - { role: hqe-ceilometer-test-deploy, tags: ["ceilometer-test", "no-qa"] } - { role: hqe-ceph-deploy, tags: ["ceph", "no-qa"] } - { role: hqe-iverify-deploy, tags: ["hqe-iverify", "no-qa"] } - { role: hqe-heat-integrationtests-deploy, tags: ["heat-integrationtests", "no-qa"] } - { role: hqe-heat-sampletests-deploy, tags: ["heat-sampletests", "no-qa"] } - { role: hqe-tempest-plugin-deploy, tags: ["tempest-plugin"] } - { role: hqe-playbooktests, tags: ["playbooktests"] } 07070100000009000081A40000000000000000000000015B730C500000054E000000000000000000000000000000000000004600000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/ardana-qa-pre-deploy.yml--- # This playbook pulls the files needed for the test from a deployed cloud. # It is not executed as part of HLM deploy. It is instead triggered # independently either by CI, or by an user of the deployed cloud. # Example usage: # # Customise your inventory file, e.g. copy default_hosts to my_hosts and add # in there the IP of the deployer and test driver (typically localhost). # # ansible-playbook -i hosts/my_hosts ardana-qa-pre-deploy.yml # -e ardana_group_vars_node_name="ccp" # -e cache_folder=/home/nithyag/qe -e ardana_user=ardana # -e ardana_ansible_root="/var/lib/ardana/scratch/ansible/next/ardana/ansible" # -e ardana_home_folder=/var/lib/ardana # # Notes: # - the pre-deploy play can run on a test node or on the deployer node # - when running from # # Prerequisites on the test driver node: # - passwordless ssh access to the deployer via "ardana_user" # - account running ansible must have passworldless sudo rights on the node # # Running on macosx: # - the sudoers group is usually called wheel - you can tell the play that # by passing -e test_driver_sudo_group=wheel - hosts: hqa_deployer remote_user: "{{ ardana_user }}" roles: - { role: hqe-common-pull-from-deployer, tags: always } - hosts: test_driver remote_user: "{{ test_driver_login }}" sudo: yes roles: - { role: hqe-common-init-test-driver, tags: always } 0707010000000A000081A40000000000000000000000015B730C500000011C000000000000000000000000000000000000004C00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/ardana-qa-role-scaffolding.yml--- # This playbook builds a skeleton test script ansible wrapper. # It is triggered by tools/bin/roles_scaffolding.sh # Example usage: # ansible-playbook hqe-role-scaffolding.yml -e role_name="$1" - hosts: localhost gather_facts: no roles: - role: hqe-role-scaffolding 0707010000000B000081A40000000000000000000000015B730C50000014CD000000000000000000000000000000000000003F00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/ardana-qa-run.yml--- # This playbook performs a test run against a deployed cloud. # It is not executed as part of HLM deploy. It is instead triggered # independently either by CI, or by an user of the deployed cloud. # This playbook aims to return the cloud to the same state it was before tests # were executed. To achieve this it will create test resources, update the # configuration, run the tests, archive the test results, and cleanup the # test resources initially created. # Example usage: # ansible-playbook -c local -i hosts ardana-qa-run.yml --tags periodic -e run_filter=periodic - hosts: test_driver remote_user: "{{ test_driver_login }}" sudo: yes sudo_user: "{{ hqe_user }}" roles: - { role: hqe-common, tags: always } - hosts: test_driver remote_user: "{{ test_driver_login }}" sudo: yes sudo_user: "{{ hqe_user }}" vars: run_filter: ci environment: "{{ test_driver_env }}" roles: # Tag details: # 1. "<rolename>" - Tag that is same as role name gets used in Parallel environment. # Please do not use "parallel" tag. # 2. "periodic" - Used by Dev pipeline in baremetal installations. # 3. "periodic-virtual"- Used by dev pipeline in virtual install. # 4. "smoke" - Used by canary builds. # 5. "no-qa" - Used to skip tests in tests-ci which tests the tests. - { role: hqe-common-run, tags: always } - { role: hqe-template-run, run_filter_file: "{{ run_filter }}.txt", tags: ["template", "ci", "periodic", "periodic-virtual", "smoke"] } - { role: hqe-boot-many-run, run_filter_file: "{{ run_filter }}.txt", tags: ["boot-many", "no-qa"] } - { role: hqe-test-stress-run-run, run_filter_file: "{{ run_filter }}.txt", tags: ["test-stress-run", "no-qa"] } - { role: hqe-net-smoke-run, run_filter_file: "{{ run_filter }}.txt", tags: ["net-smoke", "periodic", "no-qa"] } - { role: hqe-net-endurance-run, run_filter_file: "{{ run_filter }}.txt", tags: ["net-endurance", "periodic", "no-qa"] } - { role: hqe-net-fragping-run, run_filter_file: "{{ run_filter }}.txt", tags: ["net-fragping", "periodic", "no-qa"] } - { role: hqe-net-vrrp-run, run_filter_file: "{{ run_filter }}.txt", tags: ["net-vrrp", "no-qa"] } - { role: hqe-net-transpvlan-run, run_filter_file: "{{ run_filter }}.txt", tags: ["net-transpvlan", "periodic", "no-qa"] } - { role: hqe-net-rbac-run, run_filter_file: "{{ run_filter }}.txt", tags: ["net-rbac", "periodic", "no-qa"] } - { role: hqe-net-dsnat-run, run_filter_file: "{{ run_filter }}.txt", tags: ["net-dsnat", "periodic", "no-qa"] } - { role: hqe-monasca-cli-tests-run, run_filter_file: "{{ run_filter }}.txt", tags: ["monasca-cli-tests", "no-qa"] } - { role: hqe-keystone-soapui-run, run_filter_file: "{{ run_filter }}.txt", tags: ["keystone-soapui", "periodic", "no-qa"] } - { role: hqe-cinder-backup-restore-run, run_filter_file: "{{ run_filter }}.txt", tags: ["cinder-backup-restore", "no-qa"] } - { role: hqe-keystone-ansible-run, run_filter_file: "{{ run_filter }}.txt", tags: ["keystone-ansible", "periodic", "no-qa"] } - { role: hqe-monasca-soapui-run, run_filter_file: "{{ run_filter }}.txt", tags: ["monasca-soapui", "periodic", "no-qa"] } - { role: hqe-swift-run, run_filter_file: "{{ run_filter }}.txt", tags: ["swift", "ci", "periodic", "periodic-virtual", "smoke"] } - { role: hqe-keystone-ldap-run, run_filter_file: "{{ run_filter }}.txt", tags: ["keystone-ldap", "periodic", "no-qa"] } - { role: hqe-cinder-snapshot-stack-run, run_filter_file: "{{ run_filter }}.txt", tags: ["cinder-snapshot-stack", "no-qa"] } - { role: hqe-cinder-multiple-attach-detach-run, run_filter_file: "{{ run_filter }}.txt", tags: ["cinder-multiple-attach-detach", "no-qa"] } - { role: hqe-barbican-functional-run, run_filter_file: "{{ run_filter }}.txt", tags: ["barbican-functional", "no-qa"] } - { role: hqe-barbican-cli-func-run, run_filter_file: "{{ run_filter }}.txt", tags: ["barbican-cli-func", "no-qa"] } - { role: hqe-barbican-monitoring-run, run_filter_file: "{{ run_filter }}.txt", tags: ["barbican-monitoring", "no-qa"] } - { role: hqe-ceilometer-test-run, run_filter_file: "{{ run_filter }}.txt", tags: ["ceilometer-test", "no-qa"] } - { role: hqe-monascatempest-run, run_filter_file: "{{ run_filter }}.txt", tags: ["monascatempest", "periodic", "parallel", "no-qa"] } - { role: hqe-ceph-run, run_filter_file: "{{ run_filter }}.txt", tags: ["ceph", "parallel", "no-qa"] } - { role: hqe-iverify-run, run_filter_file: "{{ run_filter }}.txt", tags: ["hqe-iverify", "no-qa"] } - { role: hqe-heat-integrationtests-run, run_filter_file: "{{ run_filter }}.txt", tags: ["heat-integrationtests", "no-qa"] } - { role: hqe-heat-sampletests-run, run_filter_file: "{{ run_filter }}.txt", tags: ["heat-sampletests", "no-qa"] } - { role: hqe-playbooktests, run_filter_file: "{{ run_filter }}.txt", tags: ["playbooktests"] } # Please add further tests above this line, so logging tests can run as last, this way there would be some logs already collected - { role: hqe-logging-run, run_filter_file: "{{ run_filter }}.txt", tags: ["logging", "periodic", "periodic-virtual", "smoke"] } tasks: - name: ardana-qa-run | test status fail: msg="Test run failed. Please look at the logs for further information" when: not test_status tags: always 0707010000000C000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000003C00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/filter_plugins0707010000000D000081A40000000000000000000000015B730C50000004AD000000000000000000000000000000000000004B00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/filter_plugins/update_dict.py# # (c) Copyright 2015-2017 Hewlett Packard Enterprise Development LP # (c) Copyright 2017-2018 SUSE LLC # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # # Create a dict update filter def update(hash_a, hash_b): new = dict(hash_a) for k_b, v_b in hash_b.items(): v_a = hash_a.get(k_b) # If both are dicts, merge recursively if isinstance(v_b, dict) and isinstance(v_a, dict): v_b = update(v_a, v_b) # If both are lists, concatenate elif isinstance(v_b, list) and isinstance(v_a, list): v_b = v_a + v_b new[k_b] = v_b return new class FilterModule(object): def filters(self): return {'update': update} 0707010000000E000081A40000000000000000000000015B730C500000019B000000000000000000000000000000000000004500000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/filter_plugins/utils.py# Util filters for HOS QA import uuid UUID_NAMESPACE_HOSQA = uuid.UUID('361E6D51-FAEC-444A-9079-341386DA8E2F') # This is pretty much a backport from ansible 1.9.0 def to_uuid(string): return str(uuid.uuid5(UUID_NAMESPACE_HOSQA, str(string))) class FilterModule(object): # HOS QA util jinja2 filters def filters(self): return { # uuid 'to_uuid': to_uuid }0707010000000F000041ED0000000000000000000000035B730C5000000000000000000000000000000000000000000000003800000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/group_vars07070100000010000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000003C00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/group_vars/all07070100000011000081A40000000000000000000000015B730C500000035C000000000000000000000000000000000000005B00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/group_vars/all/hqe_barbican_client_functional# # (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017-2018 SUSE LLC # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. hqe_barbican_client_functional: deploy: venv_folder: hqe-barbican-cli-func tests_folder: hqe-barbican-client test_suite: barbican-cli-func service_name: hqe_barbican-cli-func 07070100000012000081A40000000000000000000000015B730C5000000350000000000000000000000000000000000000005400000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/group_vars/all/hqe_barbican_functional# # (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017-2018 SUSE LLC # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # hqe_barbican_functional: deploy: venv_folder: hqe-barbican-functional tests_folder: barbican test_suite: barbican-functional service_name: hqe_barbican_functional 07070100000013000081A40000000000000000000000015B730C5000000342000000000000000000000000000000000000005400000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/group_vars/all/hqe_barbican_monitoring# # (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017-2018 SUSE LLC # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # hqe_barbican_monitoring: deploy: tests_folder: ardana-qa-tests/barbican-hlm/monitoring test_suite: barbican-monitoring service_name: hqe_barbican_monitoring 07070100000014000081A40000000000000000000000015B730C5000000301000000000000000000000000000000000000004A00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/group_vars/all/hqe_boot_many# # (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017-2018 SUSE LLC # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # hqe_boot_many: deploy: tests_folder: ardana-qa-tests/system/boot-many-at-once test_suite: boot-many 07070100000015000081A40000000000000000000000015B730C500000030E000000000000000000000000000000000000005000000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/group_vars/all/hqe_ceilometer_test# # (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017-2018 SUSE LLC # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # hqe_ceilometer_test: deploy: tests_folder: ardana-qa-tests/ceilometer/ceilometertest test_suite: ceilometer-test 07070100000016000081A40000000000000000000000015B730C50000002E3000000000000000000000000000000000000004500000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/group_vars/all/hqe_ceph# # (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017-2018 SUSE LLC # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # hqe_ceph: deploy: tests_folder: ardana-qa-tests/ceph test_suite: ceph 07070100000017000081A40000000000000000000000015B730C5000000316000000000000000000000000000000000000005600000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/group_vars/all/hqe_cinder_backup_restore# # (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017-2018 SUSE LLC # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # hqe_cinder_backup_restore: deploy: tests_folder: ardana-qa-tests/cinder/backup_restore test_suite: cinder-backup-restore 07070100000018000081A40000000000000000000000015B730C5000000335000000000000000000000000000000000000005E00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/group_vars/all/hqe_cinder_multiple_attach_detach# # (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017-2018 SUSE LLC # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # hqe_cinder_multiple_attach_detach: deploy: tests_folder: ardana-qa-tests/system/cinder-multiple-attach-detach test_suite: cinder-multiple-attach-detach 07070100000019000081A40000000000000000000000015B730C500000031D000000000000000000000000000000000000005600000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/group_vars/all/hqe_cinder_snapshot_stack# # (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017-2018 SUSE LLC # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # hqe_cinder_snapshot_stack: deploy: tests_folder: ardana-qa-tests/system/cinder-snapshot-stack test_suite: cinder-snapshot-stack 0707010000001A000081A40000000000000000000000015B730C50000005C9000000000000000000000000000000000000004700000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/group_vars/all/hqe_common# # (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017-2018 SUSE LLC # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # build_venvs: False ca_bundle: /etc/ssl/ca-bundle.pem hqe_common: deploy: hqe_user: hqe hqe_group: hqe code_folder: /home/ardanauser tests_git_repo: ardana-qa-tests work_folder: /opt/stack/hqe venv_folder_root: /opt/stack/venv inventory_location: "verb_hosts_{{ groups['hqa_deployer'][0] }}" hlm_ansible_dir: /home/stack/scratch/ansible/next/ardana/ansible venv_folder: ardana-qa-tests-example ardana_user: ardanauser test_driver_login: ardanauser default_test_region: region1 run: test_suite_results_output: hosqa.subunit test_results_output: hosqa-tests.subunit hqe_template: deploy: service_name: ardana_qa_tests_example tests_folder: ardana-qa-tests/example test_suite: template 0707010000001B000081A40000000000000000000000015B730C5000000358000000000000000000000000000000000000005600000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/group_vars/all/hqe_heat_integrationtests# # (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017-2018 SUSE LLC # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. hqe_heat_integrationtests: deploy: venv_folder: hqe-heat-integrationtests service_name: ardana_qa_heat tests_folder: heat-integrationtests test_suite: heat-integrationtests 0707010000001C000081A40000000000000000000000015B730C5000000366000000000000000000000000000000000000005100000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/group_vars/all/hqe_heat_sampletests# # (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017-2018 SUSE LLC # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # hqe_heat_sampletests: deploy: venv_folder: hqe-heat-sampletests service_name: hos_heat_samples tests_folder: ardana-qa-tests/heat/testcase/sample_templates test_suite: heat-sampletests 0707010000001D000081A40000000000000000000000015B730C500000030D000000000000000000000000000000000000004800000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/group_vars/all/hqe_iverify# # (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017-2018 SUSE LLC # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # hqe_iverify: deploy: venv_folder: hqe-iverify tests_folder: ardana-qa-tests/iverify test_suite: iverify 0707010000001E000081A40000000000000000000000015B730C5000000324000000000000000000000000000000000000005100000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/group_vars/all/hqe_keystone_ansible# # (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017-2018 SUSE LLC # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # hqe_keystone_ansible: deploy: tests_folder: ardana-qa-tests/keystone/testcase/functional/keystone-ansible test_suite: keystone-ansible 0707010000001F000081A40000000000000000000000015B730C5000000314000000000000000000000000000000000000004E00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/group_vars/all/hqe_keystone_ldap# # (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017-2018 SUSE LLC # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # hqe_keystone_ldap: deploy: tests_folder: ardana-qa-tests/keystone/testcase/functional/SoapUI test_suite: keystone-ldap 07070100000020000081A40000000000000000000000015B730C5000000318000000000000000000000000000000000000005000000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/group_vars/all/hqe_keystone_soapui# # (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017-2018 SUSE LLC # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # hqe_keystone_soapui: deploy: tests_folder: ardana-qa-tests/keystone/testcase/functional/SoapUI test_suite: keystone-soapui 07070100000021000081A40000000000000000000000015B730C500000033B000000000000000000000000000000000000004800000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/group_vars/all/hqe_logging# # (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017-2018 SUSE LLC # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # hqe_logging: deploy: venv_folder: ardana_qa_logging tests_folder: ardana-qa-tests/logging service_name: ardana_qa_logging test_suite: logging 07070100000022000081A40000000000000000000000015B730C500000031F000000000000000000000000000000000000005200000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/group_vars/all/hqe_monasca_cli_tests# # (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017-2018 SUSE LLC # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # hqe_monasca_cli_tests: deploy: tests_folder: ardana-qa-tests/monasca/python-monasca-client-tests test_suite: monasca-client-tests 07070100000023000081A40000000000000000000000015B730C500000030C000000000000000000000000000000000000004F00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/group_vars/all/hqe_monasca_soapui# # (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017-2018 SUSE LLC # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # hqe_monasca_soapui: deploy: tests_folder: ardana-qa-tests/monasca/monasca-api-tests test_suite: monasca-soapui 07070100000024000081A40000000000000000000000015B730C5000000316000000000000000000000000000000000000004F00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/group_vars/all/hqe_monascatempest# # (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017-2018 SUSE LLC # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # hqe_monascatempest: deploy: venv_folder: hqe-monascatempest tests_folder: monasca-api test_suite: monascatempest 07070100000025000081A40000000000000000000000015B730C50000002F1000000000000000000000000000000000000004A00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/group_vars/all/hqe_net_dsnat# # (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017-2018 SUSE LLC # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # hqe_net_dsnat: deploy: tests_folder: ardana-qa-tests/neutron test_suite: net-dsnat 07070100000026000081A40000000000000000000000015B730C50000002F8000000000000000000000000000000000000004E00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/group_vars/all/hqe_net_endurance# # (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017-2018 SUSE LLC # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # hqe_net_endurance: deploy: tests_folder: ardana-qa-tests/neutron test_suite: net-endurance 07070100000027000081A40000000000000000000000015B730C50000002F6000000000000000000000000000000000000004D00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/group_vars/all/hqe_net_fragping# # (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017-2018 SUSE LLC # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # hqe_net_fragping: deploy: tests_folder: ardana-qa-tests/neutron test_suite: net-fragping 07070100000028000081A40000000000000000000000015B730C50000002EE000000000000000000000000000000000000004900000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/group_vars/all/hqe_net_rbac# # (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017-2018 SUSE LLC # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # hqe_net_rbac: deploy: tests_folder: ardana-qa-tests/neutron test_suite: net-rbac 07070100000029000081A40000000000000000000000015B730C5000000318000000000000000000000000000000000000004A00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/group_vars/all/hqe_net_smoke# # (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017-2018 SUSE LLC # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # hqe_net_smoke: deploy: service_name: ardana_qa_neutron tests_folder: ardana-qa-tests/neutron test_suite: net-smoke 0707010000002A000081A40000000000000000000000015B730C5000000347000000000000000000000000000000000000004F00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/group_vars/all/hqe_net_transpvlan# # (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017-2018 SUSE LLC # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # hqe_net_transpvlan: deploy: service_name: hos_net_transpvlan tests_folder: ardana-qa-tests/neutron venv_folder: hos-qa-neutron test_suite: net-transpvlan 0707010000002B000081A40000000000000000000000015B730C50000002EE000000000000000000000000000000000000004900000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/group_vars/all/hqe_net_vrrp# # (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017-2018 SUSE LLC # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # hqe_net_vrrp: deploy: tests_folder: ardana-qa-tests/neutron test_suite: net-vrrp 0707010000002C000081A40000000000000000000000015B730C50000002BD000000000000000000000000000000000000004E00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/group_vars/all/hqe_playbooktests# # (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017-2018 SUSE LLC # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. hqe_playbootests: test_suite: playbooktests 0707010000002D000081A40000000000000000000000015B730C5000000331000000000000000000000000000000000000004600000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/group_vars/all/hqe_swift# # (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017-2018 SUSE LLC # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # hqe_swift: deploy: venv_folder: ardana_qa_swift service_name: ardana_qa_swift tests_folder: ardana-qa-tests/swift test_suite: swift 0707010000002E000081A40000000000000000000000015B730C500000030B000000000000000000000000000000000000005000000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/group_vars/all/hqe_test_stress_run# # (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017-2018 SUSE LLC # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # hqe_test_stress_run: deploy: tests_folder: ardana-qa-tests/system/test_stress_run test_suite: test-stress-run 0707010000002F0000A1FF0000000000000000000000016421F27200000014000000000000000000000000000000000000003F00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/hos-qa-deploy.ymlardana-qa-deploy.yml070701000000300000A1FF0000000000000000000000016421F27200000018000000000000000000000000000000000000004300000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/hos-qa-pre-deploy.ymlardana-qa-pre-deploy.yml070701000000310000A1FF0000000000000000000000016421F2720000001E000000000000000000000000000000000000004900000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/hos-qa-role-scaffolding.ymlardana-qa-role-scaffolding.yml070701000000320000A1FF0000000000000000000000016421F27200000011000000000000000000000000000000000000003C00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/hos-qa-run.ymlardana-qa-run.yml07070100000033000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000003700000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/host_vars07070100000034000081A40000000000000000000000015B730C5000000036000000000000000000000000000000000000004100000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/host_vars/localhost# We only need this to make the ansible lint job happy07070100000035000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000003300000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/hosts07070100000036000081A40000000000000000000000015B730C5000000322000000000000000000000000000000000000004100000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/hosts/default_hosts# # (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # # Default setup for CI, all in one box: # ansible runs on the deployer, tests are executed on the deployer [test_driver] localhost [hqa_deployer] localhost 07070100000037000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000003500000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/library07070100000038000081A40000000000000000000000015B730C5000002C6F000000000000000000000000000000000000004500000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/library/test_tracker.py#!/usr/bin/python # # (c) Copyright 2015 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # Documentation = """ --- module: test_tracker short_description: track ansible tasks as tests description: track ansible tasks (or parts of them) as tests. Generate subunit (in a file) which includes the result of the task, the time it took to execute and other metadata. This module requires python-subunit to be installed. Note: the ability to add attachments is not fully verified yet, so it's not recommended. options: name: required: true description: - The name of the test suite or task to track. Naming convention: In case of tests, test-framework.test-suite.task, in case of installer, installer-name.role.task output: required: true description: - The subunit file where the test results are to be appended. The directory where the file is written must exists. If the file does not yet exist it will be created. status: required: false default: "inprogress" choices: ["xfail", "success", "uxsuccess", "fail", "skip", "inprogress"] description: - The status of the test. "inprogress" is used to start a test, or to report that the test is still running. See http://testtools.readthedocs.org/en/latest/api.html#testtools.StreamResult.status for details on the other statuses. status_rc: required: false description: - The status of the test expressed via an integer. This can be used as an alternative to status, to pass in a return code directly. 0 -> 'success', =!0 -> 'fail' attachment_name: (beta) required: false default: "console" choices: ["stdout", "stderr", "console", "notes"] description: - The name of the test attachment. "stdout" and "stderr" are what one might expect them to be from the name. "console" can be used if all output streams are mixed. "notes" can be used to attach any extra text to a test. attachment_file: (beta) required: false description: - Path to the file that contains the attachment. Either attachment or attachment-file can be specified. attachment: (beta) required: false description: - Content of the attachment. Either attachment or attachment-file can be specified. mime_type: (beta) required: false description: - The mime type of the file to attach. This is only used when attachment-file is specified. run_filter: required: false description: - Run filter used - if any. When provided, it is used to extend the test name. tags: required: false description: - List of tags attached to the test """ Examples = """ # Example usage with a test - test_tracker: name: hos-qa.template.run run_filter: ci output: {{ test_results_subunit }} # Run test, collect result - [test run command] ignore_errors: True register: test_result - test_tracker: name: hos-qa.template.run run_filter: ci status_rc: {{ test_result.rc }} attachment_name: console attachment: {{ test_result.stdout_lines }} output: {{ test_results_subunit }} # Example usage within an installer - test_tracker: name: hos-qa-hlm-installer.configure.unarchive_hlm # Ansible steps to unarchive (...) # We only track the execution time in case of success - test_tracker: name: hos-qa-hlm-installer.configure.unarchive_hlm status: "success" """ # =========================================== import datetime from functools import partial import io import os _CHUNK_SIZE = 3670016 # 3.5 MiB def create_timestamp(): return datetime.datetime.now(UTC) class TestTracker(object): def __init__(self, ansible_module): self.ansible_module = ansible_module import_msg = "Could not import subunit" SUBUNIT_AVAILABLE or ansible_module.fail_json(msg=import_msg) self.name = ansible_module.params['name'] self.output = ansible_module.params['output'] status = ansible_module.params['status'] status_rc = ansible_module.params['status_rc'] self.attachment_name = ansible_module.params['attachment_name'] attachment_file = ansible_module.params['attachment_file'] attachment = ansible_module.params['attachment'] self.attachment = attachment self.mime_type = ansible_module.params['mime_type'] self.run_filter = ansible_module.params['run_filter'] self.tags = ansible_module.params['tags'] # Perform some further input validation if status and status_rc is not None: msg = 'Both status=%s and status_rc=%s have been specified\n' msg += ' Use either of the two to specify status' ansible_module.fail_json(msg=msg % (status, status_rc)) elif not status and status_rc is None: # Define default here and not in the AnsibleModule directly # because the default there would mask the user input and make # validation not possible status = 'inprogress' if attachment and attachment_file: msg = 'Both attachment=%s and attachment_file=%s have been' msg += ' specified\n Use only one of these two options' ansible_module.fail_json(msg=msg % (attachment, attachment_file)) directory = os.path.dirname(self.output) or "." if not os.path.exists(directory): msg = 'The folder \"%s\" does not exist, cannot write subunit.' ansible_module.fail_json(msg=msg % directory) if not (attachment_file or attachment) and self.mime_type: msg = 'Cannot specify mime type without attachment' ansible_module.fail_json(msg=msg) # Set the name # TODO(andreaf) add validation for names and run_filters # Names and run_filters should be [a-z0-9_\-\.]+ only if self.run_filter: self.name = "".join([self.name, "[", self.run_filter, "]"]) # Set the status if status_rc is not None: if status_rc == 0: self.status = 'success' else: self.status = 'fail' else: self.status = status # Set the input if attachment: self.attachment_input = partial(io.BytesIO( bytearray(attachment)).read, _CHUNK_SIZE) elif attachment_file: # TODO(andreaf) we don't close this file file = open(attachment_file, 'rb') self.attachment_input = partial(file.read, _CHUNK_SIZE) else: self.attachment_input = None def write_to_stream(self, output_writer): # This code is mostly taken from the _output module of python-subunit. # The original code is written as private, and not meant to be # consumed as a stable interface - which is the reason for the copy # here. output_writer.startTestRun() if self.attachment_input: this_file_hunk = self.attachment_input() next_file_hunk = self.attachment_input() is_first_packet = True is_last_packet = False while not is_last_packet: write_status = output_writer.status if is_first_packet: if self.attachment_input: if self.mime_type: write_status = partial(write_status, mime_type=self.mime_type) if self.tags: write_status = partial(write_status, test_tags=set(self.tags)) write_status = partial(write_status, timestamp=create_timestamp()) if self.status == 'inprogress': write_status = partial(write_status, test_status='inprogress') is_first_packet = False if self.attachment_input: filename = self.attachment_name write_status = partial(write_status, file_name=filename, file_bytes=this_file_hunk) if next_file_hunk == b'': write_status = partial(write_status, eof=True) is_last_packet = True else: this_file_hunk = next_file_hunk next_file_hunk = self.attachment_input() else: is_last_packet = True if self.name: write_status = partial(write_status, test_id=self.name) if is_last_packet: if self.status != 'inprogress': write_status = partial(write_status, test_status=self.status) write_status() output_writer.stopTestRun() def main(): ansible_module = AnsibleModule( argument_spec=dict( name=dict(required=True, type='str'), output=dict(required=True, type='str'), status=dict(choices=['xfail', 'success', 'uxsuccess', 'fail', 'skip', 'inprogress'], type='str'), status_rc=dict(default=None, type='int'), attachment_name=dict(default='console', choices=['stdout', 'stderr', 'console', 'notes'], type='str'), attachment_file=dict(default=None, type='str'), attachment=dict(default=None, type='str'), mime_type=dict(default=None, type='str'), run_filter=dict(default=None, type='str'), tags=dict(default=None, type='list'), ), supports_check_mode=False ) test_tracker = TestTracker(ansible_module=ansible_module) with open(test_tracker.output, 'ab') as file_output: output = StreamResultToBytes(file_output) test_tracker.write_to_stream(output) ansible_module.exit_json(attachment=test_tracker.attachment) # import module snippets from ansible.module_utils.basic import * try: import subunit from subunit.iso8601 import UTC from subunit.v2 import StreamResultToBytes SUBUNIT_AVAILABLE = True except ImportError: SUBUNIT_AVAILABLE = False if __name__ == '__main__': main() 07070100000039000041ED0000000000000000000000445B730C5000000000000000000000000000000000000000000000003300000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles0707010000003A000041ED0000000000000000000000065B730C5000000000000000000000000000000000000000000000005000000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-barbican-cli-func-deploy0707010000003B000041ED0000000000000000000000035B730C5000000000000000000000000000000000000000000000005600000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-barbican-cli-func-deploy/files0707010000003C000081A40000000000000000000000015B730C50000001D3000000000000000000000000000000000000006200000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-barbican-cli-func-deploy/files/.testr.conf[DEFAULT] test_command=OS_STDOUT_CAPTURE=${OS_STDOUT_CAPTURE:-1} \ OS_STDERR_CAPTURE=${OS_STDERR_CAPTURE:-1} \ OS_TEST_TIMEOUT=${OS_TEST_TIMEOUT:-500} \ OS_TEST_LOCK_PATH=${OS_TEST_LOCK_PATH:-${TMPDIR:-'/tmp'}} \ ${PYTHON:-python} -m subunit.run discover -t ${OS_TOP_LEVEL:-./} ${OS_TEST_PATH:-./functionaltests} $LISTOPT $IDOPTION test_id_option=--load-list $IDFILE test_list_option=--list group_regex=([^\.]*\.)* 0707010000003D000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000006200000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-barbican-cli-func-deploy/files/run_filters0707010000003E000081A40000000000000000000000015B730C5000000011000000000000000000000000000000000000007800000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-barbican-cli-func-deploy/files/run_filters/barbican-cli-func.txt+functionaltests 0707010000003F000081A40000000000000000000000015B730C5000000000000000000000000000000000000000000000007100000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-barbican-cli-func-deploy/files/run_filters/tests2skip.txt07070100000040000081A40000000000000000000000015B730C500000084A000000000000000000000000000000000000006400000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-barbican-cli-func-deploy/files/tests2skip.py#!/usr/bin/env python # # Copyright 2013 Red Hat # All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # Reads in a list of exclude regular expressions from a file and outputs a # regex suitable to be passed into testr import sys """ Whitelist is applied first. The blacklist is executed against the set of tests returned by the whitelist. If whitelist is empty, all available tests are fed to blacklist. If blacklist is empty, all tests from whitelist are returned. The syntax for white-list and black-list is as follows: - lines starting with # or empty are ignored - lines starting with "+" are whitelisted - lines starting with "-" are blacklisted - lines not matching any of the above conditions are blacklisted The match for each line gets added a "^" in the beginning, so the regular expression should account for that. For example, the following scenario: run all the smoke tests and scenario tests, but exclude the api.volume tests. is implemented as: +.*smoke +tempest\.scenario -tempest\.api\.volume.* """ whitelist = [] blacklist = [] with open(sys.argv[1]) as fp: for line in fp: line = line.strip() if not line or line[0] == '#': continue if line.startswith("+"): whitelist.append(line[1:]) elif line.startswith("-"): blacklist.append(line[1:]) else: blacklist.append(line) regex = '^(?=({whitelist}))' params = dict(whitelist="|".join(whitelist)) if blacklist: regex += '(?!({blacklist}))' params['blacklist'] = "|".join(blacklist) print(regex.format(**params)) 07070100000041000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005600000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-barbican-cli-func-deploy/tasks07070100000042000081A40000000000000000000000015B730C5000000862000000000000000000000000000000000000006400000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-barbican-cli-func-deploy/tasks/configure.yml- name: hqe-barbican-cli-func | configure | Create work folder {{ barbican_client_functional_work_folder }} file: path: "{{ barbican_client_functional_work_folder }}" state: "directory" owner: "{{ hqe_user }}" group: "{{ hqe_group }}" - name: hqe-barbican-cli-func | configure | Create venv folder {{ barbican_client_functional_venv_folder }} file: path: "{{ barbican_client_functional_venv_folder }}" mode: 0755 - name: hqe-barbican-cli-func | configure | Initialise the .testrepository directory if it doesn't exist become: yes become_user: "{{ hqe_user }}" shell: "{{ barbican_client_functional_venv_folder }}/bin/testr init" args: chdir: "{{ barbican_client_functional_work_folder }}" creates: "{{ barbican_client_functional_work_folder }}/.testrepository" - name: hqe-barbican-cli-func | configure | Create testr config file copy: src: .testr.conf dest: "{{ barbican_client_functional_work_folder }}/.testr.conf" mode: 0640 - name: hqe-barbican-cli-func | configure | Update functional_tests.conf template: src: functional_tests.conf.j2 dest: "{{ barbican_client_functional_work_folder }}/etc/functional_tests.conf" - name: hqe-barbican-cli-func | configure | Fix configuration file ownership file: path: "{{ barbican_client_functional_work_folder }}/etc/functional_tests.conf" owner: "{{ hqe_user }}" group: "{{ hqe_group }}" mode: 0640 - name: hqe-barbican-cli-func | configure | Deploy tests2skip.py copy: src: tests2skip.py dest: "{{ barbican_client_functional_work_folder }}/tests2skip.py" owner: "{{ hqe_user }}" group: "{{ hqe_group }}" mode: 0640 - name: hqe-barbican-cli-func | configure | Deploy run_filters copy: > src=run_filters dest="{{ barbican_client_functional_work_folder }}/" owner={{ hqe_user }} group={{ hqe_group }} mode=0640 - name: hqe-barbican-cli-func | configure | Deploy run script template: > src=hqe-barbican-cli-func.sh.j2 dest="{{ barbican_client_functional_work_folder }}/hqe-barbican-cli-func.sh" owner={{ hqe_user }} group={{ hqe_group }} mode=0700 07070100000043000081A40000000000000000000000015B730C5000000A91000000000000000000000000000000000000006200000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-barbican-cli-func-deploy/tasks/install.yml--- # Install test dependencies - name: hqe-barbican-cli-func-deploy | install | Update package cache install_package: cache: update when: not (build_venvs | bool) - name: hqe-barbican-cli-func-deploy | install | Install the prebuilt env install_package: name: "{{ barbican_client_functional_service_name }}" service: "{{ barbican_client_functional_service_name }}" state: present when: not (build_venvs | bool) # NOTE(andreaf) In future repo cloning shall be handled by the framework. For now # we sudo to create the clone folder - name: hqe-barbican-cli-func-deploy | install | Create the clone folder become: yes become_user: root file: path: "{{ barbican_client_functional_code_folder }}" state: directory owner: "{{ hqe_user }}" group: "{{ hqe_group }}" mode: 0755 - name: hqe-barbican-cli-func-deploy | install | Pull the functional tests from the barbican client repo git: # Liberty based tests # NOTE(andreaf) Having the repo hardcoded here should be fixed # It will be done as part of the overall refactor repo: "http://git.suse.provo.cloud/openstack/python-barbicanclient.git" dest: "{{ barbican_client_functional_code_folder }}" version: stable/pike force: yes - name: hqe-barbican-cli-func-deploy | install | Upgrade pip pip: name: pip extra_args: --upgrade virtualenv: "{{ barbican_client_functional_venv_folder }}" when: build_venvs | bool - name: hqe-barbican-cli-func | install | Install requirements pip: requirements: "{{ barbican_client_functional_code_folder }}/requirements.txt" virtualenv: "{{ barbican_client_functional_venv_folder }}" when: build_venvs | bool - name: hqe-barbican-cli-func | install | Install test requirements pip: requirements={{ barbican_client_functional_code_folder }}/test-requirements.txt virtualenv={{ barbican_client_functional_venv_folder }} when: build_venvs | bool - name: hqe-barbican-cli-func | install | Install os-testr #for subunit-trace pip: name=os-testr virtualenv={{ barbican_client_functional_venv_folder }} extra_args='--upgrade' when: build_venvs | bool - name: hqe-barbican-cli-func | install | Install client from source shell: "{{ barbican_client_functional_venv_folder }}/bin/python setup.py install" args: chdir: "{{ barbican_client_functional_code_folder }}" when: build_venvs | bool # NOTE: This task can be removed for next release as we have a fix upstream - name: hqe-barbican-cli-func-deploy | install | temporary fix for bugzilla-1084362 shell: "git grep -l '2018-02' | xargs sed -i 's/2018-02/2021-02/g'" args: chdir: "{{ barbican_client_functional_code_folder }}" 07070100000044000081A40000000000000000000000015B730C5000000033000000000000000000000000000000000000005F00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-barbican-cli-func-deploy/tasks/main.yml--- - include: install.yml - include: configure.yml07070100000045000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005A00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-barbican-cli-func-deploy/templates07070100000046000081A40000000000000000000000015B730C500000021C000000000000000000000000000000000000007300000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-barbican-cli-func-deploy/templates/functional_tests.conf.j2[DEFAULT] [identity] uri={{ uri }} auth_version=v3 username={{ username }} tenant_name={{ tenant_name }} password={{ password }} domain_name={{ domain_name }} admin_username={{ admin_username }} admin_tenant_name={{ admin_tenant_name }} admin_password={{ admin_password }} admin_domain_name={{ admin_domain_name }} [keymanager] url={{ km_url }} username={{ km_username }} password={{ km_password }} project_name={{ km_project_name }} project_id={{ km_project_id }} #max_payload_size=10000 project_domain_name={{ km_project_domain_name }} 07070100000047000081A40000000000000000000000015B730C50000003F3000000000000000000000000000000000000007600000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-barbican-cli-func-deploy/templates/hqe-barbican-cli-func.sh.j2#!/usr/bin/env bash set -eux set -o pipefail # This script runs barbican client functional tests against a deployed Helion OpenStack cloud # Discover cli tests export OS_TEST_PATH="{{ barbican_client_functional_code_folder }}/functionaltests" export OS_TOP_LEVEL="{{ barbican_client_functional_code_folder }}" export VENV_FOLDER="{{ barbican_client_functional_venv_folder }}" export TESTR="{{ barbican_client_functional_venv_folder }}/bin/testr" export PYTHON="{{ barbican_client_functional_venv_folder }}/bin/python" export TESTS_TO_SKIP_BIN="{{ barbican_client_functional_work_folder }}/tests2skip.py" export RUN_FILTER="{{ barbican_client_functional_work_folder }}/run_filters/${1:-{{ run_filter }}}.txt" export REQUESTS_CA_BUNDLE={{ ca_bundle }} cd {{ barbican_client_functional_work_folder }} http_proxy= https_proxy= HTTP_PROXY= HTTPS_PROXY= ${TESTR} run \ --subunit $(python ${TESTS_TO_SKIP_BIN} ${RUN_FILTER})| ${VENV_FOLDER}/bin/subunit-trace --no-failure-debug -f | tee testr_results.log 07070100000048000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005500000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-barbican-cli-func-deploy/vars07070100000049000081A40000000000000000000000015B730C500000059E000000000000000000000000000000000000005E00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-barbican-cli-func-deploy/vars/main.yml--- barbican_client_functional_service_name: "{{ hqe_barbican_client_functional.deploy.service_name }}" barbican_client_functional_venv_folder: "{{ common_venv_root }}/{{ hqe_barbican_client_functional.deploy.venv_folder }}" run_filter: smoke run_concurrency: 0 uri: "{{ osrc_vars.os_unversioned_auth_url }}" auth_version: v3 username: "{{ osrc_vars.os_username }}" password: "{{ osrc_vars.os_password }}" tenant_name: "{{ osrc_vars.os_project_name }}" domain_name: "{{ osrc_vars.os_domain_name }}" os_ca_cert: "{{ osrc_vars.os_ca_cert }}" admin_username: "{{ osrc_vars.os_username }}" admin_password: "{{ osrc_vars.os_password }}" admin_tenant_name: "{{ osrc_vars.os_project_name }}" admin_domain_name: "{{ osrc_vars.os_domain_name }}" km_url: "{{ hqe_group_vars.km_url }}" km_username: barbican_client_hqe_admin km_password: barbican_client_hqe_admin km_project_name: barbican_client_hqe_admin_project km_project_id: barbican_client_hqe_admin_project km_project_domain_name: "{{ osrc_vars.os_domain_name }}" # NOTE(andreaf) Barbican has an own repo for tests, so the path where the git # repo is cloned is in tests_folder, and the path to the tests within the folder # is hardcoded in the run script barbican_client_functional_code_folder: "{{ work_folder }}/{{ hqe_barbican_client_functional.deploy.test_suite }}" barbican_client_functional_work_folder: "{{ work_folder }}/{{ hqe_barbican_client_functional.deploy.test_suite }}" 0707010000004A000041ED0000000000000000000000045B730C5000000000000000000000000000000000000000000000004D00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-barbican-cli-func-run0707010000004B000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005300000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-barbican-cli-func-run/tasks0707010000004C000081A40000000000000000000000015B730C5000000004000000000000000000000000000000000000005F00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-barbican-cli-func-run/tasks/cleanup.yml--- 0707010000004D000081A40000000000000000000000015B730C500000015B000000000000000000000000000000000000005C00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-barbican-cli-func-run/tasks/main.yml--- - include: test-resources.yml vars: ansible_python_interpreter: "{{ common_venv_python }}" - include: ../../hqe-common/tasks/common-run.yml vars: caller_role_path: "{{ role_path }}" ansible_python_interpreter: "{{ common_venv_python }}" - include: cleanup.yml vars: ansible_python_interpreter: "{{ common_venv_python }}" 0707010000004E000081A40000000000000000000000015B730C5000000250000000000000000000000000000000000000005B00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-barbican-cli-func-run/tasks/run.yml--- # Run the test script # # The test log shall be placed in a folder where it's picked up by the CI jobs # # Ignore errors is require to make sure the following tasks are executed # We will need to store the exit code somewhere for Jenkins to pick it up (TBD) - name: hqe-barbican-cli-func-run | run | Run the tests become: yes become_user: "{{ hqe_user }}" command: "{{ barbican_client_functional_work_folder }}/hqe-barbican-cli-func.sh {{ run_filter }}" register: test_output ignore_errors: True - name: hqe-barbican-cli-func| run | Show test output debug: var=test_output 0707010000004F000081A40000000000000000000000015B730C50000006DB000000000000000000000000000000000000006600000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-barbican-cli-func-run/tasks/test-resources.yml--- # Setup the test account used for testing the client - name: hqe-barbican-cli-func | test_resources | Get a domain scoped token keystone_v3: endpoint: "{{ uri_v3 }}" login_username: "{{ admin_username }}" login_password: "{{ admin_password }}" login_user_domain_name: "Default" login_domain_name: "Default" action: "token_get" cacert: "{{ os_ca_cert }}" register: domain_scoped_token - name: hqe-barbican-cli-func | test_resources | Create Test User barbican_client_hqe_admin keystone_v3: login_token: "{{ domain_scoped_token.result }}" endpoint: "{{ os_auth_url }}" action: "create_user" user_name: "{{ km_username }}" user_password: "{{ km_password }}" description: "key-manager:admin" user_domain_name: "{{ domain_name }}" cacert: "{{ os_ca_cert }}" run_once: true - name: hqe-barbican-cli-func | test_resources | Create Test Project barbican_client_hqe_admin_project keystone_v3: login_token: "{{ domain_scoped_token.result }}" endpoint: "{{ os_auth_url }}" action: "create_project" project_name: "{{ km_project_name }}" project_domain_name: "{{ km_project_domain_name }}" description: "barbican_client_hqe_admin_project" cacert: "{{ os_ca_cert }}" run_once: true - name: hqe-barbican-cli-func | test_resources | add key-manager:admin role assignment keystone_v3: action: "grant_project_role" login_token: "{{ domain_scoped_token.result }}" endpoint: "{{ os_auth_url }}" user_name: "{{ km_username }}" project_name: "{{ km_project_name }}" user_domain_name: "{{ domain_name }}" project_domain_name: "{{ km_project_domain_name }}" role_name: "key-manager:admin" cacert: "{{ os_ca_cert }}" run_once: true07070100000050000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005200000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-barbican-cli-func-run/vars07070100000051000081A40000000000000000000000015B730C500000057C000000000000000000000000000000000000005B00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-barbican-cli-func-run/vars/main.yml--- service_name: "{{ hqe_barbican_client_functional.deploy.service_name }}" venv_folder: "{{ hqe_barbican_client_functional.deploy.venv_folder }}" run_filter: smoke run_concurrency: 0 uri: "{{ osrc_vars.os_unversioned_auth_url }}/v2.0" uri_v3: "{{ osrc_vars.os_auth_url }}" auth_version: v3 username: "{{ osrc_vars.os_username }}" password: "{{ osrc_vars.os_password }}" tenant_name: "{{ osrc_vars.os_project_name }}" domain_name: "{{ osrc_vars.os_domain_name }}" os_ca_cert: "{{ osrc_vars.os_ca_cert }}" admin_username: "{{ osrc_vars.os_username }}" admin_password: "{{ osrc_vars.os_password }}" admin_tenant_name: "{{ osrc_vars.os_project_name }}" admin_domain_name: "{{ osrc_vars.os_domain_name }}" km_url: "{{ hqe_group_vars.km_url }}" km_username: barbican_client_hqe_admin km_password: barbican_client_hqe_admin km_project_name: barbican_client_hqe_admin_project km_project_id: barbican_client_hqe_admin_project km_project_domain_name: "{{ osrc_vars.os_domain_name }}" # NOTE(andreaf) Barbican has an own repo for tests, so the path where the git # repo is cloned is in tests_folder, and the path to the tests within the folder # is hardcoded in the run script barbican_client_functional_code_folder: "{{ work_folder }}/{{ hqe_barbican_client_functional.deploy.test_suite }}" barbican_client_functional_work_folder: "{{ work_folder }}/{{ hqe_barbican_client_functional.deploy.test_suite }}" 07070100000052000041ED0000000000000000000000065B730C5000000000000000000000000000000000000000000000005200000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-barbican-functional-deploy07070100000053000041ED0000000000000000000000035B730C5000000000000000000000000000000000000000000000005800000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-barbican-functional-deploy/files07070100000054000081A40000000000000000000000015B730C50000001D7000000000000000000000000000000000000006400000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-barbican-functional-deploy/files/.testr.conf[DEFAULT] test_command=OS_STDOUT_CAPTURE=${OS_STDOUT_CAPTURE:-1} \ OS_STDERR_CAPTURE=${OS_STDERR_CAPTURE:-1} \ OS_TEST_TIMEOUT=${OS_TEST_TIMEOUT:-500} \ OS_TEST_LOCK_PATH=${OS_TEST_LOCK_PATH:-${TMPDIR:-'/tmp'}} \ ${PYTHON:-python} -m subunit.run discover -t ${OS_TOP_LEVEL:-./} ${OS_TEST_PATH:-./functionaltests/api} $LISTOPT $IDOPTION test_id_option=--load-list $IDFILE test_list_option=--list group_regex=([^\.]*\.)* 07070100000055000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000006400000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-barbican-functional-deploy/files/run_filters07070100000056000081A40000000000000000000000015B730C5000000C5C000000000000000000000000000000000000007C00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-barbican-functional-deploy/files/run_filters/barbican-functional.txt+functionaltests\.api\.v1\.functional +functionaltests\.api\.v1\.smoke -functionaltests\.api\.v1\.functional\.test_certificate_orders\.CertificatesTestCase\.test_create_simple_cmc_order -functionaltests\.api\.v1\.functional\.test_cas\.CertificateAuthoritiesTestCase\.test_add_snakeoil_ca__to_project_and_get_preferred -functionaltests\.api\.v1\.functional\.test_cas\.CertificateAuthoritiesTestCase\.test_create_and_delete_snakeoil_subca -functionaltests\.api\.v1\.functional\.test_cas\.CertificateAuthoritiesTestCase\.test_create_and_delete_snakeoil_subca_and_artifacts -functionaltests\.api\.v1\.functional\.test_cas\.CertificateAuthoritiesTestCase\.test_create_snakeoil_subca -functionaltests\.api\.v1\.functional\.test_cas\.CertificateAuthoritiesTestCase\.test_create_snakeoil_subca_and_get_cacert -functionaltests\.api\.v1\.functional\.test_cas\.CertificateAuthoritiesTestCase\.test_create_snakeoil_subca_and_send_cert_order -functionaltests\.api\.v1\.functional\.test_cas\.CertificateAuthoritiesTestCase\.test_create_snakeoil_subca_and_send_cert_order_and_verify_cert -functionaltests\.api\.v1\.functional\.test_cas\.CertificateAuthoritiesTestCase\.test_create_snakeoil_subca_with_missing_subjectdn -functionaltests\.api\.v1\.functional\.test_cas\.CertificateAuthoritiesTestCase\.test_create_subca_of_snakeoil_subca -functionaltests\.api\.v1\.functional\.test_cas\.CertificateAuthoritiesTestCase\.test_fail_to_create_subca_of_snakeoil_not_owned_subca -functionaltests\.api\.v1\.functional\.test_cas\.CertificateAuthoritiesTestCase\.test_fail_to_delete_top_level_snakeoil_ca -functionaltests\.api\.v1\.functional\.test_cas\.CertificateAuthoritiesTestCase\.test_try_and_fail_to_add_to_proj_snakeoil_subca_that_is_not_mine -functionaltests\.api\.v1\.functional\.test_cas\.CertificateAuthoritiesTestCase\.test_try_and_fail_to_use_snakeoil_subca_that_is_not_mine -functionaltests\.api\.v1\.functional\.test_cas\.GlobalPreferredCATestCase\.test_global_preferred_affects_project_preferred -functionaltests\.api\.v1\.functional\.test_cas\.GlobalPreferredCATestCase\.test_project_preferred_overrides_global_preferred -functionaltests\.api\.v1\.functional\.test_cas\.ListingCAsTestCase\.test_list_snakeoil_and_simple_cert_cas -functionaltests\.api\.v1\.functional\.test_cas\.ProjectCATestCase\.test_addition_of_project_ca_affects_getting_ca_list -functionaltests\.api\.v1\.functional\.test_quotas_enforce\.QuotaEnforcementTestCase\.test_snakeoil_cas_unlimited -functionaltests\.api\.v1\.functional\.test_quotas_enforce\.QuotaEnforcementTestCase\.test_snakeoil_cas_disabled -functionaltests\.api\.v1\.functional\.test_quotas_enforce\.QuotaEnforcementTestCase\.test_snakeoil_cas_limited_one -functionaltests\.api\.v1\.functional\.test_quotas_enforce\.QuotaEnforcementTestCase\.test_snakeoil_cas_limited_five -functionaltests\.api\.v1\.functional\.test_secretmeta\.SecretMetadataTestCase\.test_secret_metadata_create_no_secret -functionaltests\.api\.v1\.functional\.test_secretmeta\.SecretMetadataTestCase\.test_secret_metadata_get_no_secret -functionaltests\.api\.v1\.functional\.test_secrets\.SecretsTestCase\.test_secret_put_two_phase_w_oversized_binary_data_not_utf8 07070100000057000081A40000000000000000000000015B730C5000000047000000000000000000000000000000000000006B00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-barbican-functional-deploy/files/run_filters/ci.txt+functionaltests\.api\.v1\.smoke -functionaltests\.api\.v1\.functional 07070100000058000081A40000000000000000000000015B730C5000000047000000000000000000000000000000000000007100000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-barbican-functional-deploy/files/run_filters/periodic.txt+functionaltests\.api\.v1\.functional -functionaltests\.api\.v1\.smoke 07070100000059000081A40000000000000000000000015B730C5000000000000000000000000000000000000000000000007300000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-barbican-functional-deploy/files/run_filters/tests2skip.txt0707010000005A000081A40000000000000000000000015B730C5000000047000000000000000000000000000000000000007000000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-barbican-functional-deploy/files/run_filters/upgrade.txt-functionaltests\.api\.v1\.smoke -functionaltests\.api\.v1\.functional 0707010000005B000081A40000000000000000000000015B730C500000084A000000000000000000000000000000000000006600000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-barbican-functional-deploy/files/tests2skip.py#!/usr/bin/env python # # Copyright 2013 Red Hat # All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # Reads in a list of exclude regular expressions from a file and outputs a # regex suitable to be passed into testr import sys """ Whitelist is applied first. The blacklist is executed against the set of tests returned by the whitelist. If whitelist is empty, all available tests are fed to blacklist. If blacklist is empty, all tests from whitelist are returned. The syntax for white-list and black-list is as follows: - lines starting with # or empty are ignored - lines starting with "+" are whitelisted - lines starting with "-" are blacklisted - lines not matching any of the above conditions are blacklisted The match for each line gets added a "^" in the beginning, so the regular expression should account for that. For example, the following scenario: run all the smoke tests and scenario tests, but exclude the api.volume tests. is implemented as: +.*smoke +tempest\.scenario -tempest\.api\.volume.* """ whitelist = [] blacklist = [] with open(sys.argv[1]) as fp: for line in fp: line = line.strip() if not line or line[0] == '#': continue if line.startswith("+"): whitelist.append(line[1:]) elif line.startswith("-"): blacklist.append(line[1:]) else: blacklist.append(line) regex = '^(?=({whitelist}))' params = dict(whitelist="|".join(whitelist)) if blacklist: regex += '(?!({blacklist}))' params['blacklist'] = "|".join(blacklist) print(regex.format(**params)) 0707010000005C000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005800000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-barbican-functional-deploy/tasks0707010000005D000081A40000000000000000000000015B730C500000081F000000000000000000000000000000000000006600000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-barbican-functional-deploy/tasks/configure.yml# (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017-2018 SUSE LLC - name: hqe-barbican-functional | configure | Set ownership of {{ barbican_functional_code_folder }} folder file: path={{ barbican_functional_code_folder }} owner={{ hqe_user }} group={{ hqe_group }} state=directory recurse=yes - name: hqe-barbican-functional | configure | Set ACLs of {{ barbican_functional_venv_folder }} folder file: path={{ barbican_functional_venv_folder }} mode=0755 recurse=no - name: hqe-barbican-functional | configure | Initialise the .testrepository directory if it doesn't exist become: yes become_user: "{{ hqe_user }}" shell: "{{ barbican_functional_venv_folder }}/bin/testr init" args: chdir: "{{ barbican_functional_work_folder }}" creates: "{{ barbican_functional_work_folder }}/.testrepository" - name: hqe-barbican-functional | configure | Create testr config file copy: src: .testr.conf dest: "{{ barbican_functional_work_folder }}/.testr.conf" owner: "{{ hqe_user }}" group: "{{ hqe_group }}" mode: 0640 - name: hqe-barbican-functional | configure | Update barbican-functional.conf template: src: barbican-functional.conf.j2 dest: "{{ barbican_functional_work_folder }}/etc/barbican/barbican-functional.conf" owner: "{{ hqe_user }}" group: "{{ hqe_group }}" mode: 0640 - name: hqe-barbican-functional | configure | Deploy tests2skip.py copy: src: tests2skip.py dest: "{{ barbican_functional_work_folder }}/tests2skip.py" owner: "{{ hqe_user }}" group: "{{ hqe_group }}" mode: 0640 - name: hqe-barbican-functional | configure | Deploy run_filters copy: > src=run_filters dest="{{ barbican_functional_work_folder }}/" owner={{ hqe_user }} group={{ hqe_group }} mode=0640 - name: hqe-barbican-functional | configure | Deploy run script template: > src=hqe-barbican-functional.sh.j2 dest="{{ barbican_functional_work_folder }}/hqe-barbican-functional.sh" owner={{ hqe_user }} group={{ hqe_group }} mode=0700 0707010000005E000081A40000000000000000000000015B730C5000000CFA000000000000000000000000000000000000006400000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-barbican-functional-deploy/tasks/install.yml--- # Install test dependencies - name: hqe-barbican-functional | install | set os-specific variables include_vars: "../vars/{{ ansible_os_family.split(' ')[0] | lower | replace('open', '') }}.yml" - name: hqe-barbican-functional | install | Install binary dependencies for barbican functional tests become: yes become_user: root package: name={{ item }} state=present with_items: hqe_barbican_functional_pkgs - name: hqe-barbican-functional-deploy | install | Update package cache install_package: cache: update when: not (build_venvs | bool) - name: hqe-barbican-functional-deploy | install | Install the prebuilt env install_package: name: "{{ barbican_functional_service_name }}" service: "{{ barbican_functional_service_name }}" state: present when: not (build_venvs | bool) # NOTE(andreaf) In future repo cloning shall be handled by the framework. For now # we sudo to create the clone folder - name: hqe-barbican-functional-deploy | install | Create the clone folder become: yes become_user: root file: path: "{{ barbican_functional_code_folder }}" state: directory owner: "{{ hqe_user }}" group: "{{ hqe_group }}" mode: 0755 - name: hqe-barbican-functional-deploy | install | Pull the functional tests from the barbican repo git: # Liberty based tests # NOTE(andreaf) Having the repo hardcoded here should be fixed # It will be done as part of the overall refactor repo: "http://git.suse.provo.cloud/openstack/barbican.git" dest: "{{ barbican_functional_code_folder }}" version: stable/pike force: yes - name: hqe-barbican-functional-deploy | install | Upgrade pip pip: name: pip extra_args: --upgrade virtualenv: "{{ barbican_functional_venv_folder }}" when: build_venvs | bool - name: hqe-barbican-functional | install | Install requirements pip: requirements={{ barbican_functional_code_folder }}/requirements.txt virtualenv={{ barbican_functional_venv_folder }} when: build_venvs | bool - name: hqe-barbican-functional | install | Install test requirements pip: requirements={{ barbican_functional_code_folder }}/test-requirements.txt virtualenv={{ barbican_functional_venv_folder }} when: build_venvs | bool - name: hqe-barbican-functional | install | Install os-testr #for subunit-trace pip: name=os-testr virtualenv={{ barbican_functional_venv_folder }} extra_args='--upgrade' when: build_venvs | bool - name: hqe-barbican-functional | Ensures ~/.barbican file: path: ~/.barbican state: directory - name: hqe-barbican-functional | Copy barbican.conf template: src: "barbican.conf" dest: "~/.barbican/barbican.conf" owner: "{{ hqe_user }}" group: "{{ hqe_group }}" mode: 0644 # NOTE(andreaf) Barbican functional relies on oslo.cfg, which expects the # config dir to be under ~/.barbican. WHile this is outside the work folder, # it's at least within the home of hqe_user, and still allows some degree # of multi-tenancy on the test driver. # # No longer needed #- name: hqe-barbican-functional | Copy barbican.conf # template: # src: "{{ barbican_functional_code_folder }}/etc/barbican/barbican.conf" # dest: "~/.barbican/barbican.conf" # owner: "{{ hqe_user }}" # group: "{{ hqe_group }}" # mode: 0644 0707010000005F000081A40000000000000000000000015B730C5000000033000000000000000000000000000000000000006100000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-barbican-functional-deploy/tasks/main.yml--- - include: install.yml - include: configure.yml07070100000060000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005C00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-barbican-functional-deploy/templates07070100000061000081A40000000000000000000000015B730C50000005AF000000000000000000000000000000000000007800000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-barbican-functional-deploy/templates/barbican-functional.conf.j2[DEFAULT] [identity] uri={{ os_auth_url }} version=v3 username={{ username }} project_name={{ project_name }} password={{ password }} domain_name={{ domain_name }} service_admin={{ service_admin }} service_admin_project={{ service_admin_project }} service_admin_password={{ service_admin_password }} [keymanager] service_type={{ service_type }} service_name={{ barbican_service_name }} region_name={{ region_name }} endpoint_type={{ endpoint_type }} override_url={{ override_url }} override_url_version={{ override_url_version }} server_host_href_set={{ server_host_href_set }} [rbac_users] project_a={{ project_a }} project_b={{ project_b }} admin_a={{ admin_a }} admin_a_password={{ admin_a_password }} creator_a={{ creator_a }} creator_a_password={{ creator_a_password }} creator_a_2={{ creator_a_2 }} creator_a_2_password={{ creator_a_2_password }} observer_a={{ observer_a }} observer_a_password={{ observer_a_password }} auditor_a={{ auditor_a }} auditor_a_password={{ auditor_a_password }} admin_b={{ admin_b }} admin_b_password={{ admin_b_password }} creator_b={{ creator_b }} creator_b_password={{ creator_b_password }} observer_b={{ observer_b }} observer_b_password={{ observer_b_password }} auditor_b={{ auditor_b }} auditor_b_password={{ auditor_b_password }} [quotas] quota_secrets={{ quota_secrets }} quota_orders={{ quota_orders }} quota_containers={{ quota_containers }} quota_consumers={{ quota_consumers }} quota_cas={{ quota_cas }} 07070100000062000081A40000000000000000000000015B730C500000000A000000000000000000000000000000000000006A00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-barbican-functional-deploy/templates/barbican.conf[DEFAULT] 07070100000063000081A40000000000000000000000015B730C50000003C5000000000000000000000000000000000000007A00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-barbican-functional-deploy/templates/hqe-barbican-functional.sh.j2#!/usr/bin/env bash set -eux set -o pipefail # This script runs barbican functional tests against a deployed Helion OpenStack cloud # Discover only API tests for now export OS_TEST_PATH="{{ barbican_functional_code_folder }}/functionaltests/api" export OS_TOP_LEVEL="{{ barbican_functional_code_folder }}" export VENV_FOLDER="{{ barbican_functional_venv_folder }}" export TESTR="{{ barbican_functional_venv_folder }}/bin/testr" export PYTHON="{{ barbican_functional_venv_folder }}/bin/python" export TESTS_TO_SKIP_BIN="{{ barbican_functional_work_folder }}/tests2skip.py" export RUN_FILTER="{{ barbican_functional_work_folder }}/run_filters/${1:-{{ run_filter }}}.txt" export REQUESTS_CA_BUNDLE={{ ca_bundle }} cd {{ barbican_functional_work_folder }} http_proxy= https_proxy= HTTP_PROXY= HTTPS_PROXY= ${TESTR} run \ --subunit $(python ${TESTS_TO_SKIP_BIN} ${RUN_FILTER})| ${VENV_FOLDER}/bin/subunit-trace --no-failure-debug -f | tee testr_results.log 07070100000064000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005700000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-barbican-functional-deploy/vars07070100000065000081A40000000000000000000000015B730C500000009A000000000000000000000000000000000000006200000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-barbican-functional-deploy/vars/debian.yml--- hqe_barbican_functional_pkgs: - python-dev - libffi-dev - libssl-dev - libmysqlclient18 - libldap2-dev - libsasl2-dev - python-httplib2 07070100000066000081A40000000000000000000000015B730C5000000B2A000000000000000000000000000000000000006000000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-barbican-functional-deploy/vars/main.yml# (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC --- barbican_functional_service_name: "{{ hqe_barbican_functional.deploy.service_name }}" barbican_functional_venv_folder: "{{ common_venv_root }}/{{ hqe_barbican_functional.deploy.venv_folder }}" barbican_functional_test_suite: "{{ hqe_barbican_functional.deploy.test_suite }}" run_filter: ci run_concurrency: 0 admin_user: "{{ osrc_vars.os_username }}" admin_password: "{{ osrc_vars.os_password }}" os_auth_url: "{{ osrc_vars.os_auth_url }}" username: barbican_hqe_admin password: barbican_hqe_admin project_name: barbican_hqe_admin_project domain_name: "{{ osrc_vars.os_domain_name }}" os_ca_cert: "{{ osrc_vars.os_ca_cert }}" #### Mitaka based configuration service_type: key-manager barbican_service_name: barbican region_name: region1 endpoint_type: internal server_host_href_set: False # This workaround to use override is needed until we backport the review # https://review.openstack.org/#/c/229588. Once that happens, I will remove # this reference to KEYMGR_API override_url: "{{ hqe_group_vars.km_url }}" override_url_version: v1 service_admin: barbican_hqe_service_admin service_admin_project: barbican_hqe_service_admin_project service_admin_password: barbican_hqe_service_admin #Projects project_a: barbican_project_a project_b: barbican_project_b # users for project_a admin_a: barbican_project_a_admin admin_a_password: barbican creator_a: barbican_project_a_creator creator_a_password: barbican observer_a: barbican_project_a_observer observer_a_password: barbican auditor_a: barbican_project_a_auditor auditor_a_password: barbican # Another creator user for project_a due to changes in review 120282 creator_a_2: barbican_project_a_creator_2 creator_a_2_password: barbican # users for project_b admin_b: barbican_project_b_admin admin_b_password: barbican creator_b: barbican_project_b_creator creator_b_password: barbican observer_b: barbican_project_b_observer observer_b_password: barbican auditor_b: barbican_project_b_auditor auditor_b_password: barbican #Quotas # default number of secrets allowed per project quota_secrets: -1 # default number of orders allowed per project quota_orders: -1 # default number of containers allowed per project quota_containers: -1 # default number of consumers allowed per project quota_consumers: -1 # default number of CAs allowed per project quota_cas: -1 # We clone code into work folder directly, because that's the only way to make # Barbican tests work - they depend on pbr reading the version of barbican, # and that only works if python is invoked from barbican source folder barbican_functional_code_folder: "{{ work_folder }}/{{ hqe_barbican_functional.deploy.test_suite }}" barbican_functional_work_folder: "{{ work_folder }}/{{ hqe_barbican_functional.deploy.test_suite }}" 07070100000067000081A40000000000000000000000015B730C500000006B000000000000000000000000000000000000006000000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-barbican-functional-deploy/vars/suse.yml--- hqe_barbican_functional_pkgs: - libffi4 - libopenssl1_0_0 - libmysqlclient18 - python-httplib2 07070100000068000041ED0000000000000000000000045B730C5000000000000000000000000000000000000000000000004F00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-barbican-functional-run07070100000069000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005500000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-barbican-functional-run/tasks0707010000006A000081A40000000000000000000000015B730C5000000004000000000000000000000000000000000000006100000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-barbican-functional-run/tasks/cleanup.yml--- 0707010000006B000081A40000000000000000000000015B730C500000015B000000000000000000000000000000000000005E00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-barbican-functional-run/tasks/main.yml--- - include: test-resources.yml vars: ansible_python_interpreter: "{{ common_venv_python }}" - include: ../../hqe-common/tasks/common-run.yml vars: caller_role_path: "{{ role_path }}" ansible_python_interpreter: "{{ common_venv_python }}" - include: cleanup.yml vars: ansible_python_interpreter: "{{ common_venv_python }}" 0707010000006C000081A40000000000000000000000015B730C500000024F000000000000000000000000000000000000005D00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-barbican-functional-run/tasks/run.yml--- # Run the test script # # The test log shall be placed in a folder where it's picked up by the CI jobs # # Ignore errors is require to make sure the following tasks are executed # We will need to store the exit code somewhere for Jenkins to pick it up (TBD) - name: hqe-barbican-functional-run | run | Run the tests become: yes become_user: "{{ hqe_user }}" command: "{{ barbican_functional_work_folder }}/hqe-barbican-functional.sh {{ run_filter }}" register: test_output ignore_errors: True - name: hqe-barbican-functional| run | Show test output debug: var=test_output 0707010000006D000081A40000000000000000000000015B730C5000003033000000000000000000000000000000000000006800000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-barbican-functional-run/tasks/test-resources.yml# (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC --- # Setup the test account used for testing #RBAC users - name: hqe-barbican-functional | test_resources | Get a domain scoped token keystone_v3: endpoint: "{{ os_auth_url }}" login_username: "{{ admin_user }}" login_password: "{{ admin_password }}" login_user_domain_name: "Default" login_domain_name: "Default" action: "token_get" cacert: "{{ os_ca_cert }}" register: domain_scoped_token - name: hqe-barbican-functional | test_resources | Create Test User barbican_hqe_admin keystone_v3: login_token: "{{ domain_scoped_token.result }}" endpoint: "{{ os_auth_url }}" action: "create_user" user_name: "{{ username }}" user_password: "{{ password }}" description: "key:manager:admin" user_domain_name: "{{ domain_name }}" cacert: "{{ os_ca_cert }}" run_once: true - name: hqe-barbican-functional | test_resources | Create Test Project barbican_hqe_admin_project keystone_v3: login_token: "{{ domain_scoped_token.result }}" endpoint: "{{ os_auth_url }}" action: "create_project" project_name: "{{ project_name }}" project_domain_name: "{{ domain_name }}" description: "barbican_hqe_admin_project" cacert: "{{ os_ca_cert }}" run_once: true - name: hqe-barbican-functional | test_resources | add key-manager:admin role assignment keystone_v3: action: "grant_project_role" login_token: "{{ domain_scoped_token.result }}" endpoint: "{{ os_auth_url }}" user_name: "{{ username }}" project_name: "{{ project_name }}" user_domain_name: "{{ domain_name }}" project_domain_name: "{{ domain_name }}" role_name: "key-manager:admin" cacert: "{{ os_ca_cert }}" run_once: true - name: hqe-barbican-functional | test_resources | Create Test User barbican_hqe_service_admin keystone_v3: login_token: "{{ domain_scoped_token.result }}" endpoint: "{{ os_auth_url }}" action: "create_user" user_name: "{{ service_admin }}" user_password: "{{ service_admin_password }}" description: "barbican_hqe_service_admin" user_domain_name: "{{ domain_name }}" cacert: "{{ os_ca_cert }}" run_once: true - name: hqe-barbican-functional | test_resources | Create Test Project barbican_hqe_service_admin_project keystone_v3: login_token: "{{ domain_scoped_token.result }}" endpoint: "{{ os_auth_url }}" action: "create_project" project_name: "{{ service_admin_project}}" project_domain_name: "{{ domain_name }}" description: "barbican_hqe_service_admin_project" cacert: "{{ os_ca_cert }}" run_once: true - name: hqe-barbican-functional | test_resources | add key-manager:service-admin role assignment keystone_v3: action: "grant_project_role" login_token: "{{ domain_scoped_token.result }}" endpoint: "{{ os_auth_url }}" user_name: "{{ service_admin }}" project_name: "{{ service_admin_project }}" user_domain_name: "{{ domain_name }}" project_domain_name: "{{ domain_name }}" role_name: "key-manager:service-admin" cacert: "{{ os_ca_cert }}" run_once: true - name: hqe-barbican-functional | test_resources | Create Test Project a keystone_v3: login_token: "{{ domain_scoped_token.result }}" endpoint: "{{ os_auth_url }}" action: "create_project" project_name: "{{ project_a }}" project_domain_name: "{{ domain_name }}" description: "projecta" cacert: "{{ os_ca_cert }}" run_once: true - name: hqe-barbican-functional | test_resources | Create Test Project b keystone_v3: login_token: "{{ domain_scoped_token.result }}" endpoint: "{{ os_auth_url }}" action: "create_project" project_name: "{{ project_b }}" project_domain_name: "{{ domain_name }}" description: "projecta" cacert: "{{ os_ca_cert }}" run_once: true - name: hqe-barbican-functional | test_resources | Create Test User project_a_admin for project_a keystone_v3: login_token: "{{ domain_scoped_token.result }}" endpoint: "{{ os_auth_url }}" action: "create_user" user_name: "{{ admin_a }}" user_password: "{{ admin_a_password }}" description: "user project_a_admin" user_domain_name: "{{ domain_name }}" cacert: "{{ os_ca_cert }}" run_once: true - name: hqe-barbican-functional | test_resources | Create Test User project_a_creator for project_a keystone_v3: login_token: "{{ domain_scoped_token.result }}" endpoint: "{{ os_auth_url }}" action: "create_user" user_name: "{{ creator_a }}" user_password: "{{ creator_a_password }}" description: "user project_a_creator" user_domain_name: "{{ domain_name }}" cacert: "{{ os_ca_cert }}" run_once: true - name: hqe-barbican-functional | test_resources | Create Test User project_a_creator_a_2 for project_a keystone_v3: login_token: "{{ domain_scoped_token.result }}" endpoint: "{{ os_auth_url }}" action: "create_user" user_name: "{{ creator_a_2 }}" user_password: "{{ creator_a_2_password }}" description: "user project_a_creator_a_2" user_domain_name: "{{ domain_name }}" cacert: "{{ os_ca_cert }}" run_once: true - name: hqe-barbican-functional | test_resources | Create Test User project_a_observer for project_a keystone_v3: login_token: "{{ domain_scoped_token.result }}" endpoint: "{{ os_auth_url }}" action: "create_user" user_name: "{{ observer_a }}" user_password: "{{ observer_a_password }}" description: "user project_a_observer" user_domain_name: "{{ domain_name }}" project_name: "project_a" cacert: "{{ os_ca_cert }}" run_once: true - name: hqe-barbican-functional | test_resources | Create Test User project_a_auditor for project_a keystone_v3: login_token: "{{ domain_scoped_token.result }}" endpoint: "{{ os_auth_url }}" action: "create_user" user_name: "{{ auditor_a }}" user_password: "{{ auditor_a_password }}" description: "user project_a_auditor" user_domain_name: "{{ domain_name }}" cacert: "{{ os_ca_cert }}" run_once: true - name: hqe-barbican-functional | test_resources | Create Test User project_b_admin for project_b keystone_v3: login_token: "{{ domain_scoped_token.result }}" endpoint: "{{ os_auth_url }}" action: "create_user" user_name: "{{admin_b}}" user_password: "{{ admin_b_password }}" description: "user project_b_admin" user_domain_name: "{{ domain_name }}" cacert: "{{ os_ca_cert }}" run_once: true - name: hqe-barbican-functional | test_resources | Create Test User project_b_creator for project_b keystone_v3: login_token: "{{ domain_scoped_token.result }}" endpoint: "{{ os_auth_url }}" action: "create_user" user_name: "{{ creator_b }}" user_password: "{{ creator_b_password }}" description: "user project_b_creator" user_domain_name: "{{ domain_name }}" cacert: "{{ os_ca_cert }}" run_once: true - name: hqe-barbican-functional | test_resources | Create Test User project_b_observer for project_b keystone_v3: login_token: "{{ domain_scoped_token.result }}" endpoint: "{{ os_auth_url }}" action: "create_user" user_name: "{{ observer_b }}" user_password: "{{ observer_b_password }}" description: "user project_b_observer" user_domain_name: "{{ domain_name }}" cacert: "{{ os_ca_cert }}" run_once: true - name: hqe-barbican-functional | test_resources | Create Test User project_b_auditor for project_b keystone_v3: login_token: "{{ domain_scoped_token.result }}" endpoint: "{{ os_auth_url }}" action: "create_user" user_name: "{{ auditor_b }}" user_password: "{{ auditor_b_password }}" description: "user project_b_auditor" user_domain_name: "{{ domain_name }}" cacert: "{{ os_ca_cert }}" run_once: true - name: hqe-barbican-functional | test_resources | add key-manger:admin role assignment for admin_a for project_a keystone_v3: action: "grant_project_role" login_token: "{{ domain_scoped_token.result }}" endpoint: "{{ os_auth_url }}" user_name: "{{ admin_a }}" project_name: "{{ project_a }}" user_domain_name: "{{ domain_name }}" project_domain_name: "{{ domain_name }}" role_name: "key-manager:admin" cacert: "{{ os_ca_cert }}" run_once: true - name: hqe-barbican-functional | test_resources | add key-manager:creator role assignment for creator_a for project_a keystone_v3: action: "grant_project_role" login_token: "{{ domain_scoped_token.result }}" endpoint: "{{ os_auth_url }}" user_name: "{{ creator_a }}" project_name: "{{ project_a }}" user_domain_name: "{{ domain_name }}" project_domain_name: "{{ domain_name }}" role_name: "key-manager:creator" cacert: "{{ os_ca_cert }}" run_once: true - name: hqe-barbican-functional | test_resources | add key-manager:creator role assignment for creator_a_2 for project_a keystone_v3: action: "grant_project_role" login_token: "{{ domain_scoped_token.result }}" endpoint: "{{ os_auth_url }}" user_name: "{{ creator_a_2 }}" project_name: "{{ project_a }}" user_domain_name: "{{ domain_name }}" project_domain_name: "{{ domain_name }}" role_name: "key-manager:creator" cacert: "{{ os_ca_cert }}" run_once: true - name: hqe-barbican-functional | test_resources | add key-manager:observer role assignment for observer_a for project_a keystone_v3: action: "grant_project_role" login_token: "{{ domain_scoped_token.result }}" endpoint: "{{ os_auth_url }}" user_name: "{{ observer_a }}" project_name: "{{ project_a }}" user_domain_name: "{{ domain_name }}" project_domain_name: "{{ domain_name }}" role_name: "key-manager:observer" cacert: "{{ os_ca_cert }}" run_once: true - name: hqe-barbican-functional | test_resources | add key-manager:auditor role assignment for auditor_a for project_a keystone_v3: action: "grant_project_role" login_token: "{{ domain_scoped_token.result }}" endpoint: "{{ os_auth_url }}" user_name: "{{ auditor_a }}" project_name: "{{ project_a }}" user_domain_name: "{{ domain_name }}" project_domain_name: "{{ domain_name }}" role_name: "key-manager:auditor" cacert: "{{ os_ca_cert }}" run_once: true - name: hqe-barbican-functional | test_resources | add key-manager:admin role assignment for admin_b for project_b keystone_v3: action: "grant_project_role" login_token: "{{ domain_scoped_token.result }}" endpoint: "{{ os_auth_url }}" user_name: "{{ admin_b }}" project_name: "{{ project_b }}" user_domain_name: "{{ domain_name }}" project_domain_name: "{{ domain_name }}" role_name: "key-manager:admin" cacert: "{{ os_ca_cert }}" run_once: true - name: hqe-barbican-functional | test_resources | add key-manager:creator role assignment for creator_b for project_b keystone_v3: action: "grant_project_role" login_token: "{{ domain_scoped_token.result }}" endpoint: "{{ os_auth_url }}" user_name: "{{ creator_b }}" project_name: "{{ project_b }}" user_domain_name: "{{ domain_name }}" project_domain_name: "{{ domain_name }}" role_name: "key-manager:creator" cacert: "{{ os_ca_cert }}" run_once: true - name: hqe-barbican-functional | test_resources | add key-manager:observer role assignment for observer_b for project_b keystone_v3: action: "grant_project_role" login_token: "{{ domain_scoped_token.result }}" endpoint: "{{ os_auth_url }}" user_name: "{{ observer_b }}" project_name: "{{ project_b }}" user_domain_name: "{{ domain_name }}" project_domain_name: "{{ domain_name }}" role_name: "key-manager:observer" cacert: "{{ os_ca_cert }}" run_once: true - name: hqe-barbican-functional | test_resources | add key-manager:auditor role assignment for auditor_b for project_b keystone_v3: action: "grant_project_role" login_token: "{{ domain_scoped_token.result }}" endpoint: "{{ os_auth_url }}" user_name: "{{ auditor_b }}" project_name: "{{ project_b }}" user_domain_name: "{{ domain_name }}" project_domain_name: "{{ domain_name }}" role_name: "key-manager:auditor" cacert: "{{ os_ca_cert }}" run_once: true 0707010000006E000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005400000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-barbican-functional-run/vars0707010000006F000081A40000000000000000000000015B730C5000000A47000000000000000000000000000000000000005D00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-barbican-functional-run/vars/main.yml# (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC --- # Settings from deploy ## This role uses a custom virtual environment barbican_venv_python: "{{ hqe_barbican_functional.deploy.venv_folder }}/bin/python" run_filter: ci run_concurrency: 0 admin_user: "{{ osrc_vars.os_username }}" admin_password: "{{ osrc_vars.os_password }}" os_auth_url: "{{ osrc_vars.os_auth_url }}" username: barbican_hqe_admin password: barbican_hqe_admin project_name: barbican_hqe_admin_project domain_name: "{{ osrc_vars.os_domain_name }}" os_ca_cert: "{{ osrc_vars.os_ca_cert }}" #### Mitaka based configuration service_type: key-manager service_name: barbican region_name: region1 endpoint_type: internal server_host_href_set: False # This workaround to use override is needed until we backport the review # https://review.openstack.org/#/c/229588. override_url: "{{ hqe_group_vars.km_url }}" override_url_version: v1 service_admin: barbican_hqe_service_admin service_admin_project: barbican_hqe_service_admin_project service_admin_password: barbican_hqe_service_admin #Projects project_a: barbican_project_a project_b: barbican_project_b # users for project_a admin_a: barbican_project_a_admin admin_a_password: barbican creator_a: barbican_project_a_creator creator_a_password: barbican observer_a: barbican_project_a_observer observer_a_password: barbican auditor_a: barbican_project_a_auditor auditor_a_password: barbican # Another creator user for project_a due to changes in review 120282 creator_a_2: barbican_project_a_creator_2 creator_a_2_password: barbican # users for project_b admin_b: barbican_project_b_admin admin_b_password: barbican creator_b: barbican_project_b_creator creator_b_password: barbican observer_b: barbican_project_b_observer observer_b_password: barbican auditor_b: barbican_project_b_auditor auditor_b_password: barbican #Quotas # default number of secrets allowed per project quota_secrets: -1 # default number of orders allowed per project quota_orders: -1 # default number of containers allowed per project quota_containers: -1 # default number of consumers allowed per project quota_consumers: -1 # default number of CAs allowed per project quota_cas: -1 # NOTE(andreaf) Barbican has an own repo for tests, so the path where the git # repo is cloned is in tests_folder, and the path to the tests within the folder # is hardcoded in the run script barbican_functional_code_folder: "{{ work_folder }}/{{ hqe_barbican_functional.deploy.test_suite }}" barbican_functional_work_folder: "{{ work_folder }}/{{ hqe_barbican_functional.deploy.test_suite }}" 07070100000070000041ED0000000000000000000000065B730C5000000000000000000000000000000000000000000000005200000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-barbican-monitoring-deploy07070100000071000041ED0000000000000000000000035B730C5000000000000000000000000000000000000000000000005800000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-barbican-monitoring-deploy/files07070100000072000081A40000000000000000000000015B730C50000001C9000000000000000000000000000000000000006400000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-barbican-monitoring-deploy/files/.testr.conf[DEFAULT] test_command=OS_STDOUT_CAPTURE=${OS_STDOUT_CAPTURE:-1} \ OS_STDERR_CAPTURE=${OS_STDERR_CAPTURE:-1} \ OS_TEST_TIMEOUT=${OS_TEST_TIMEOUT:-500} \ OS_TEST_LOCK_PATH=${OS_TEST_LOCK_PATH:-${TMPDIR:-'/tmp'}} \ ${PYTHON:-python} -m subunit.run discover -t ${OS_TOP_LEVEL:-./} ${OS_TEST_PATH:-./tests} $LISTOPT $IDOPTION test_id_option=--load-list $IDFILE test_list_option=--list group_regex=([^\.]*\.)* 07070100000073000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000006400000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-barbican-monitoring-deploy/files/run_filters07070100000074000081A40000000000000000000000015B730C5000000007000000000000000000000000000000000000007C00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-barbican-monitoring-deploy/files/run_filters/barbican-monitoring.txt+tests 07070100000075000081A40000000000000000000000015B730C500000084A000000000000000000000000000000000000006600000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-barbican-monitoring-deploy/files/tests2skip.py#!/usr/bin/env python # # Copyright 2013 Red Hat # All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # Reads in a list of exclude regular expressions from a file and outputs a # regex suitable to be passed into testr import sys """ Whitelist is applied first. The blacklist is executed against the set of tests returned by the whitelist. If whitelist is empty, all available tests are fed to blacklist. If blacklist is empty, all tests from whitelist are returned. The syntax for white-list and black-list is as follows: - lines starting with # or empty are ignored - lines starting with "+" are whitelisted - lines starting with "-" are blacklisted - lines not matching any of the above conditions are blacklisted The match for each line gets added a "^" in the beginning, so the regular expression should account for that. For example, the following scenario: run all the smoke tests and scenario tests, but exclude the api.volume tests. is implemented as: +.*smoke +tempest\.scenario -tempest\.api\.volume.* """ whitelist = [] blacklist = [] with open(sys.argv[1]) as fp: for line in fp: line = line.strip() if not line or line[0] == '#': continue if line.startswith("+"): whitelist.append(line[1:]) elif line.startswith("-"): blacklist.append(line[1:]) else: blacklist.append(line) regex = '^(?=({whitelist}))' params = dict(whitelist="|".join(whitelist)) if blacklist: regex += '(?!({blacklist}))' params['blacklist'] = "|".join(blacklist) print(regex.format(**params)) 07070100000076000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005800000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-barbican-monitoring-deploy/tasks07070100000077000081A40000000000000000000000015B730C50000007E2000000000000000000000000000000000000006600000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-barbican-monitoring-deploy/tasks/configure.yml# (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017-2018 SUSE LLC --- - name: hqe-barbican-monitoring | configure | Create work folder file: path: "{{ barbican_monitoring_work_folder }}" owner: "{{ hqe_user }}" group: "{{ hqe_group }}" state: directory - name: hqe-barbican-monitoring | configure | Initialise the .testrepository directory if it doesn't exist become: yes become_user: "{{ hqe_user }}" shell: "{{ common_venv_bin }}/testr init" args: chdir: "{{ barbican_monitoring_work_folder }}" creates: "{{ barbican_monitoring_work_folder }}/.testrepository" - name: hqe-barbican-monitoring | configure | Create testr config file copy: src: .testr.conf dest: "{{ barbican_monitoring_work_folder }}/.testr.conf" owner: "{{ hqe_user }}" group: "{{ hqe_group }}" mode: 0640 - name: hqe-barbican-monitoring | configure | Prepare configuration file folder file: path: "{{ barbican_monitoring_work_folder }}/etc/barbican" owner: "{{ hqe_user }}" group: "{{ hqe_group }}" state: directory - name: hqe-barbican-monitoring | configure | Update monitoring_barbican.conf template: src: monitoring_barbican.conf.j2 dest: "{{ barbican_monitoring_work_folder }}/etc/barbican/monitoring_barbican.conf" - name: hqe-barbican-monitoring | configure | Deploy tests2skip.py copy: src: tests2skip.py dest: "{{ barbican_monitoring_work_folder }}/tests2skip.py" owner: "{{ hqe_user }}" group: "{{ hqe_group }}" mode: 0640 - name: hqe-barbican-monitoring | configure | Deploy run_filters copy: > src=run_filters dest="{{ barbican_monitoring_work_folder }}/" owner={{ hqe_user }} group={{ hqe_group }} mode=0640 - name: hqe-barbican-monitoring | configure | Deploy run script template: > src=hqe-barbican-monitoring.sh.j2 dest="{{ barbican_monitoring_work_folder }}/hqe-barbican-monitoring.sh" owner={{ hqe_user }} group={{ hqe_group }} mode=0700 07070100000078000081A40000000000000000000000015B730C500000020A000000000000000000000000000000000000006400000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-barbican-monitoring-deploy/tasks/install.yml--- # Install test dependencies # FIXME(andreaf) Extra dependencies shall be moved into common requirements # rather than installed here into the common venv - name: hqe-barbican-monitoring-deploy | install | Install junitxml pip: name=junitxml virtualenv={{ common_venv_folder }} when: build_venvs | bool - name: hqe-barbican-monitoring-deploy | install | Install os-testr #for subunit-trace pip: name=os-testr virtualenv={{ common_venv_folder }} extra_args='--upgrade' when: build_venvs | bool 07070100000079000081A40000000000000000000000015B730C5000000033000000000000000000000000000000000000006100000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-barbican-monitoring-deploy/tasks/main.yml--- - include: install.yml - include: configure.yml0707010000007A000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005C00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-barbican-monitoring-deploy/templates0707010000007B000081A40000000000000000000000015B730C5000000352000000000000000000000000000000000000007A00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-barbican-monitoring-deploy/templates/hqe-barbican-monitoring.sh.j2#!/usr/bin/env bash set -eux set -o pipefail # This script runs barbican monitoring tests against a deployed Helion OpenStack cloud # Discover cli tests export OS_TEST_PATH="{{ barbican_monitoring_code_folder }}" export OS_TOP_LEVEL="{{ barbican_monitoring_code_folder }}" export VENV_BIN="{{ common_venv_bin }}" export TESTR="$VENV_BIN/testr" export PYTHON="{{ common_venv_python }}" export TESTS_TO_SKIP_BIN="{{ barbican_monitoring_work_folder }}/tests2skip.py" export RUN_FILTER="{{ barbican_monitoring_work_folder }}/run_filters/${1:-{{ run_filter }}}.txt" export REQUESTS_CA_BUNDLE={{ ca_bundle }} cd {{ barbican_monitoring_work_folder }} http_proxy= https_proxy= HTTP_PROXY= HTTPS_PROXY= ${TESTR} run \ --subunit $(python ${TESTS_TO_SKIP_BIN} ${RUN_FILTER})| ${VENV_BIN}/subunit-trace --no-failure-debug -f | tee testr_results.log 0707010000007C000081A40000000000000000000000015B730C500000024D000000000000000000000000000000000000007800000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-barbican-monitoring-deploy/templates/monitoring_barbican.conf.j2[monitoring_barbican] username={{ username }} password={{ password }} user_domain_name={{ user_domain_name }} project_name={{ project_name }} project_domain_name={{ project_domain_name }} auth_url={{ auth_url }} cli_dir={{ barbican_monitoring_cli_dir }} component={{ component }} service={{ service }} hostname1={{ hostname1 }} hostname2={{ hostname2 }} hostname3={{ hostname3 }} monitoring_hostname1={{ monitoring_hostname1 }} monitoring_hostname2={{ monitoring_hostname2 }} monitoring_hostname3={{ monitoring_hostname3 }} hostnameforstopstartbarbican={{ hostnameforstopstartbarbican }} 0707010000007D000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005700000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-barbican-monitoring-deploy/vars0707010000007E000081A40000000000000000000000015B730C50000007E7000000000000000000000000000000000000006000000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-barbican-monitoring-deploy/vars/main.yml# # (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # --- run_filter: barbican-monitoring run_concurrency: 0 username: "{{ osrc_vars.os_username }}" password: "{{ osrc_vars.os_password }}" project_name: "{{ osrc_vars.os_project_name }}" auth_url: "{{ osrc_vars.os_auth_url }}" endpoint_type: internalURL user_domain_name: "{{ osrc_vars.os_user_domain_name }}" project_domain_name: "{{ osrc_vars.os_project_domain_name }}" barbican_monitoring_cli_dir: '{{ common_venv_bin }}' component: 'barbican-api' service: 'key-manager' hostname1: "{{ hqe_group_vars.barbican_servers[0] }}" hostname2: "{{ hqe_group_vars.barbican_servers[1] }}" hostname3: "{{ hqe_group_vars.barbican_servers[2] | default(hqe_group_vars.barbican_servers[0]) }}" #mid-scale model - default monitoring_hostname1: "{{ hqe_group_vars.monasca_cluster1 | default(hqe_group_vars.barbican_servers[0]) }}" monitoring_hostname2: "{{ hqe_group_vars.monasca_cluster2 | default(hqe_group_vars.barbican_servers[1]) }}" monitoring_hostname3: "{{ hqe_group_vars.monasca_cluster3 | default(hqe_group_vars.barbican_servers[2]) }}" hostnameforstopstartbarbican: "{{ hqe_group_vars.barbican_servers[2] | default(hqe_group_vars.barbican_servers[0]) }}" barbican_monitoring_code_folder: "{{ work_folder }}/{{ tests_git_repo }}/{{ hqe_barbican_monitoring.deploy.tests_folder }}" barbican_monitoring_work_folder: "{{ work_folder }}/{{ hqe_barbican_monitoring.deploy.test_suite }}" 0707010000007F000041ED0000000000000000000000045B730C5000000000000000000000000000000000000000000000004F00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-barbican-monitoring-run07070100000080000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005500000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-barbican-monitoring-run/tasks07070100000081000081A40000000000000000000000015B730C5000000003000000000000000000000000000000000000006100000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-barbican-monitoring-run/tasks/cleanup.yml---07070100000082000081A40000000000000000000000015B730C500000015C000000000000000000000000000000000000005E00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-barbican-monitoring-run/tasks/main.yml--- - include: test-resources.yml vars: ansible_python_interpreter: "{{ common_venv_python }}" - include: ../../hqe-common/tasks/common-run.yml vars: caller_role_path: "{{ role_path }}" ansible_python_interpreter: "{{ common_venv_python }}" - include: cleanup.yml vars: ansible_python_interpreter: "{{ common_venv_python }}" 07070100000083000081A40000000000000000000000015B730C5000000225000000000000000000000000000000000000005D00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-barbican-monitoring-run/tasks/run.yml--- # Run the test script # # The test log shall be placed in a folder where it's picked up by the CI jobs # # Ignore errors is require to make sure the following tasks are executed # We will need to store the exit code somewhere for Jenkins to pick it up (TBD) - name: hqe-barbican-monitoring-run | run | Run the tests command: "{{ barbican_monitoring_work_folder }}/hqe-barbican-monitoring.sh {{ run_filter }}" register: test_output ignore_errors: True - name: hqe-barbican-monitoring-run| run | Show test output debug: var=test_output 07070100000084000081A40000000000000000000000015B730C5000000003000000000000000000000000000000000000006800000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-barbican-monitoring-run/tasks/test-resources.yml---07070100000085000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005400000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-barbican-monitoring-run/vars07070100000086000081A40000000000000000000000015B730C5000000811000000000000000000000000000000000000005D00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-barbican-monitoring-run/vars/main.yml# # (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # --- run_filter: barbican-monitoring run_concurrency: 0 hqe_user: "{{ hqe_common.deploy.hqe_user }}" hqe_group: "{{ hqe_common.deploy.hqe_group }}" username: "{{ osrc_vars.os_username }}" password: "{{ osrc_vars.os_password }}" project_name: "{{ osrc_vars.os_project_name }}" auth_url: "{{ osrc_vars.os_auth_url }}" endpoint_type: internalURL user_domain_name: "{{ osrc_vars.os_user_domain_name }}" project_domain_name: "{{ osrc_vars.os_project_domain_name }}" component: 'barbican-api' service: 'key-manager' hostname1: "{{ hqe_group_vars.barbican_servers[0] }}" hostname2: "{{ hqe_group_vars.barbican_servers[1] }}" hostname3: "{{ hqe_group_vars.barbican_servers[2] | default(hqe_group_vars.barbican_servers[0]) }}" #mid-scale model - default monitoring_hostname1: "{{ hqe_group_vars.monasca_cluster1 | default(hqe_group_vars.barbican_servers[0]) }}" monitoring_hostname2: "{{ hqe_group_vars.monasca_cluster2 | default(hqe_group_vars.barbican_servers[1]) }}" monitoring_hostname3: "{{ hqe_group_vars.monasca_cluster3 | default(hqe_group_vars.barbican_servers[2]) }}" hostnameforstopstartbarbican: "{{ hqe_group_vars.barbican_servers[2] | default(hqe_group_vars.barbican_servers[0]) }}" barbican_monitoring_code_folder: "{{ work_folder }}/{{ tests_git_repo }}/{{ hqe_barbican_monitoring.deploy.tests_folder }}" barbican_monitoring_work_folder: "{{ work_folder }}/{{ hqe_barbican_monitoring.deploy.test_suite }}" 07070100000087000041ED0000000000000000000000065B730C5000000000000000000000000000000000000000000000004800000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-boot-many-deploy07070100000088000041ED0000000000000000000000035B730C5000000000000000000000000000000000000000000000004E00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-boot-many-deploy/files07070100000089000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005A00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-boot-many-deploy/files/run_filters0707010000008A000081A40000000000000000000000015B730C500000000E000000000000000000000000000000000000006800000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-boot-many-deploy/files/run_filters/boot-many.txthqe-boot-many 0707010000008B000081A40000000000000000000000015B730C500000000E000000000000000000000000000000000000006700000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-boot-many-deploy/files/run_filters/parallel.txthqe-boot-many 0707010000008C000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000004E00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-boot-many-deploy/tasks0707010000008D000081A40000000000000000000000015B730C500000009A000000000000000000000000000000000000005C00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-boot-many-deploy/tasks/configure.yml--- # Configure boot-many # The only configuration required here is the RC file with the # credentials but that can only be created after test-resources 0707010000008E000081A40000000000000000000000015B730C5000000189000000000000000000000000000000000000005A00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-boot-many-deploy/tasks/install.yml--- - name: hqe-boot-many | install | Deploy run_filters copy: > src=run_filters dest="{{ boot_many_work_folder }}/" owner={{ hqe_user }} group={{ hqe_group }} mode=0640 - name: hqe-boot-many | install | Deploy run script template: > src=hqe-boot-many.j2 dest={{ boot_many_work_folder }}/hqe-boot-many owner={{ hqe_user }} group={{ hqe_group }} mode=0755 0707010000008F000081A40000000000000000000000015B730C5000000033000000000000000000000000000000000000005700000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-boot-many-deploy/tasks/main.yml--- - include: install.yml - include: configure.yml07070100000090000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005200000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-boot-many-deploy/templates07070100000091000081A40000000000000000000000015B730C50000003AB000000000000000000000000000000000000006300000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-boot-many-deploy/templates/hqe-boot-many.j2#!/bin/bash # Wrapper script to execute boot-many # within the venv, with the right parameters # # Usage: hqe-boot-many run_filter_filename set -o pipefail IMAGE_ID=$1 KEYNAME=$2 FLAVOR=$3 AZ=$4 NVMS=$5 RUN_FILTER=${6:-parallel.txt} TEST_HOME={{ boot_many_code_folder }} WORK_HOME={{ boot_many_work_folder }} VENV={{ common_venv_folder }} # Activate the virtual environment source ${VENV}/bin/activate # activate the credentials source $WORK_HOME/boot-many.testrc # Run the test cmd="${TEST_HOME}/boot-many-at-once.sh -d -s -i $IMAGE_ID\ -k $KEYNAME\ -n bootmany\ -f $FLAVOR\ -z $AZ\ -N $NVMS\ $(cat ${WORK_HOME}/run_filters/${RUN_FILTER}) | tee ${WORK_HOME}/test_boot_many.log" echo $cmd $cmd 07070100000092000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000004D00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-boot-many-deploy/vars07070100000093000081A40000000000000000000000015B730C50000000BD000000000000000000000000000000000000005600000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-boot-many-deploy/vars/main.yml--- boot_many_code_folder: "{{ work_folder }}/{{ tests_git_repo }}/{{ hqe_boot_many.deploy.tests_folder }}" boot_many_work_folder: "{{ work_folder }}/{{ hqe_boot_many.deploy.test_suite }}" 07070100000094000041ED0000000000000000000000055B730C5000000000000000000000000000000000000000000000004500000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-boot-many-run07070100000095000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000004B00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-boot-many-run/tasks07070100000096000081A40000000000000000000000015B730C5000000BBB000000000000000000000000000000000000005700000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-boot-many-run/tasks/cleanup.yml--- # Cleanup the account used for testing - name: hqe-boot-many | test-resources | Detach subnet from router ignore_errors: true environment: OS_USERNAME: "{{ demo_test_user }}" OS_TENANT_NAME: "{{ demo_test_project }}" OS_PASSWORD: "{{ demo_test_password }}" OS_CACERT: "{{ ca_bundle }}" OS_AUTH_URL: "{{ os_auth_url }}" shell: "{{ common_venv_bin }}/neutron router-interface-delete {{ demo_test_router }} {{ demo_test_subnet }}" register: result until: result.rc == 0 retries: 5 delay: 10 - name: hqe-boot-many | test-resources | Delete subnet ignore_errors: true environment: OS_USERNAME: "{{ demo_test_user }}" OS_TENANT_NAME: "{{ demo_test_project }}" OS_PASSWORD: "{{ demo_test_password }}" OS_CACERT: "{{ ca_bundle }}" OS_AUTH_URL: "{{ os_auth_url }}" shell: "{{ common_venv_bin }}/neutron subnet-delete --name {{ demo_test_subnet }} {{ demo_test_network }} {{ demo_test_cidr }}" register: result until: result.rc == 0 retries: 5 delay: 10 - name: hqe-boot-many | test-resources | Delete network ignore_errors: true environment: OS_USERNAME: "{{ demo_test_user }}" OS_TENANT_NAME: "{{ demo_test_project }}" OS_PASSWORD: "{{ demo_test_password }}" OS_CACERT: "{{ ca_bundle }}" OS_AUTH_URL: "{{ os_auth_url }}" shell: "{{ common_venv_bin }}/neutron net-delete {{ demo_test_network }}" register: result until: result.rc == 0 retries: 5 delay: 10 - name: hqe-boot-many | test-resources | Delete router ignore_errors: true environment: OS_USERNAME: "{{ demo_test_user }}" OS_TENANT_NAME: "{{ demo_test_project }}" OS_PASSWORD: "{{ demo_test_password }}" OS_CACERT: "{{ ca_bundle }}" OS_AUTH_URL: "{{ os_auth_url }}" shell: "{{ common_venv_bin }}/neutron router-delete {{ demo_test_router }}" register: result until: result.rc == 0 retries: 5 delay: 10 - name: hqe-boot-many | test-resources | Delete keyname ignore_errors: true environment: OS_USERNAME: "{{ demo_test_user }}" OS_TENANT_NAME: "{{ demo_test_project }}" OS_PASSWORD: "{{ demo_test_password }}" OS_CACERT: "{{ ca_bundle }}" OS_AUTH_URL: "{{ os_auth_url }}" shell: "{{ common_venv_bin }}/nova keypair-delete {{ demo_test_keyname }}" register: result until: result.rc == 0 retries: 5 delay: 10 - name: hqe-boot-many | test-resources | Delete test user ignore_errors: true keystone_v3: login_token: "{{ keystone_admin_token }}" endpoint: "{{ keystone_admin_endpoint }}/v3" action: "delete_user" user_name: "{{ demo_test_user }}" user_domain_name: "{{ demo_test_domain }}" - name: hqe-boot-many | test-resources | Delete test project ignore_errors: true keystone_v3: login_token: "{{ keystone_admin_token }}" endpoint: "{{ keystone_admin_endpoint }}/v3" action: "delete_project" project_name: "{{ demo_test_project }}" project_domain_name: "{{ demo_test_domain }}" 07070100000097000081A40000000000000000000000015B730C500000015B000000000000000000000000000000000000005400000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-boot-many-run/tasks/main.yml--- - include: test-resources.yml vars: ansible_python_interpreter: "{{ common_venv_python }}" - include: ../../hqe-common/tasks/common-run.yml vars: caller_role_path: "{{ role_path }}" ansible_python_interpreter: "{{ common_venv_python }}" - include: cleanup.yml vars: ansible_python_interpreter: "{{ common_venv_python }}" 07070100000098000081A40000000000000000000000015B730C500000029D000000000000000000000000000000000000005300000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-boot-many-run/tasks/run.yml--- # Run the test script # # The test log shall be placed in a folder where it's picked up by the CI jobs # # Ignore errors is require to make sure the following tasks are executed # We will need to store the exit code somewhere for Jenkins to pick it up (TBD) - name: hqe-boot-many | run | Run the tests become: yes become_user: "{{ hqe_user }}" command: "{{ boot_many_work_folder }}/hqe-boot-many {{ demo_test_image_id.stdout }} {{ demo_test_keyname }} {{ demo_test_flavor }} {{ demo_test_az }} {{ demo_test_nvms }} {{ run_filter_file }}" register: test_output ignore_errors: True - name: hqe-boot-many | run | Show test output debug: var=test_output 07070100000099000081A40000000000000000000000015B730C5000000E5C000000000000000000000000000000000000005E00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-boot-many-run/tasks/test-resources.yml--- # Setup the test account used for testing - name: hqe-boot-many | test-resources | Create test project keystone_v3: login_token: "{{ keystone_admin_token }}" endpoint: "{{ keystone_admin_endpoint }}/v3" action: "create_project" project_name: "{{ demo_test_project }}" project_domain_name: "{{ demo_test_domain }}" description: "Ephemeral test account" - name: hqe-boot-many | test-resources | Create test user keystone_v3: login_token: "{{ keystone_admin_token }}" endpoint: "{{ keystone_admin_endpoint }}/v3" action: "create_user" user_name: "{{ demo_test_user }}" user_password: "{{ demo_test_password}}" description: "Ephemeral test account" user_domain_name: "{{ demo_test_domain }}" - name: hqe-boot-many | test-resources | Grant member role to Test User on Test Project keystone_v3: login_token: "{{ keystone_admin_token }}" endpoint: "{{ keystone_admin_endpoint }}/v3" action: "grant_project_role" user_name: "{{ demo_test_user }}" project_name: "{{ demo_test_project }}" role_name: "{{ demo_test_role }}" user_domain_name: "{{ demo_test_domain }}" project_domain_name: "{{ demo_test_domain }}" - name: hqe-boot-many | test-resources | Deploy the configuration file template: > src=testrc.j2 dest="{{ boot_many_work_folder }}/boot-many.testrc" owner={{ hqe_user }} group={{ hqe_group }} mode=0600 # test requires the following items - name: hqe-boot-many | test-resources | Create router ignore_errors: true shell: "{{ common_venv_bin }}/neutron --os-username {{ demo_test_user }} --os-tenant-name {{ demo_test_project }} --os-password {{ demo_test_password }} --os-cacert {{ ca_bundle }} --os-auth-url {{ os_auth_url }} router-create {{ demo_test_router }}" # not connecting router to ext-net as not needed. - name: hqe-boot-many | test-resources | Create network ignore_errors: true shell: "{{ common_venv_bin }}/neutron --os-username {{ demo_test_user }} --os-tenant-name {{ demo_test_project }} --os-password {{ demo_test_password }} --os-cacert {{ ca_bundle }} --os-auth-url {{ os_auth_url }} net-create {{ demo_test_network }}" - name: hqe-boot-many | test-resources | Create subnet ignore_errors: true shell: "{{ common_venv_bin }}/neutron --os-username {{ demo_test_user }} --os-tenant-name {{ demo_test_project }} --os-password {{ demo_test_password }} --os-cacert {{ ca_bundle }} --os-auth-url {{ os_auth_url }} subnet-create --name {{ demo_test_subnet }} {{ demo_test_network }} {{ demo_test_cidr }}" - name: hqe-boot-many | test-resources | Connect subnet to router ignore_errors: true shell: "{{ common_venv_bin }}/neutron --os-username {{ demo_test_user }} --os-tenant-name {{ demo_test_project }} --os-password {{ demo_test_password }} --os-cacert {{ ca_bundle }} --os-auth-url {{ os_auth_url }} router-interface-add {{ demo_test_router }} --subnet {{ demo_test_subnet }}" - name: hqe-boot-many | test-resources | Create keyname ignore_errors: true shell: "{{ common_venv_bin }}/nova --os-username {{ demo_test_user }} --os-tenant-name {{ demo_test_project }} --os-password {{ demo_test_password }} --os-cacert {{ ca_bundle }} --os-auth-url {{ os_auth_url }} keypair-add {{ demo_test_keyname }} > {{ demo_test_key_file }}" - name: hqe-boot-many | test-resources | Verify image exists ignore_errors: true shell: "{{ common_venv_bin }}/nova --os-username {{ demo_test_user }} --os-tenant-name {{ demo_test_project }} --os-password {{ demo_test_password }} --os-cacert {{ ca_bundle }} --os-auth-url {{ os_auth_url }} image-list | grep cirros | head -1 | awk '{print $2}'" register: demo_test_image_id 0707010000009A000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000004F00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-boot-many-run/templates0707010000009B000081A40000000000000000000000015B730C5000000171000000000000000000000000000000000000005900000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-boot-many-run/templates/testrc.j2export OS_BASE_AUTH_URL={{ keystone_admin_endpoint }} export OS_AUTH_URL={{ keystone_admin_endpoint }} export OS_USERNAME={{ demo_test_user }} export OS_PASSWORD={{ demo_test_password }} export OS_PROJECT_NAME={{ demo_test_project }} export OS_CACERT={{ ca_bundle }} export OS_USER_DOMAIN_NAME={{ demo_test_domain }} export OS_PROJECT_DOMAIN_NAME={{ demo_test_domain }}0707010000009C000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000004A00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-boot-many-run/vars0707010000009D000081A40000000000000000000000015B730C500000069B000000000000000000000000000000000000005300000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-boot-many-run/vars/main.yml--- # Filter variable must be defined in all roles to allow for # test filtering. The test filter file contains the data to # be able to filter which tests to be executed out of role, # stored in the format which is more suitable for the specific role. # Test filter files are expected under a run_filters folder. # The file name must match the tags, for it to be selected properly # when a specific test run is requested in ardana-qa-run.yml run_filter_file: parallel.txt # Settings from deploy # Test account setup for testing, and clean-ed up afterwards demo_random_uuid: "{{ ansible_date_time.epoch | to_uuid }}" demo_random_id: "{{ ['hqe_boot_many', demo_random_uuid] | join('-') }}" demo_test_user: "{{ demo_random_id }}" demo_test_project: "{{ demo_random_id }}" demo_test_password: "{{ demo_random_id }}" demo_test_domain: Default demo_test_role: "{{ hqe_group_vars.keystone_member_role }}" # test resources demo_test_router: "{{ demo_random_id }}" demo_test_network: "{{ demo_random_id }}" demo_test_subnet: "{{ demo_random_id }}" demo_test_cidr: "192.168.1.0/24" demo_test_keyname: "{{ demo_random_id }}" demo_test_key_file: "{{ boot_many_work_folder }}/{{ [demo_test_keyname, 'pem'] | join('.') }}" demo_test_az: "nova" demo_test_flavor: 2 demo_test_nvms: 4 # General keystone settings keystone_admin_token: "{{ hqe_token_vars.keystone_admin_token }}" keystone_admin_endpoint: "{{ osrc_vars.os_unversioned_auth_url }}" # os_auth_url os_auth_url: "{{ osrc_vars.os_unversioned_auth_url }}" boot_many_code_folder: "{{ work_folder }}/{{ tests_git_repo }}/{{ hqe_boot_many.deploy.tests_folder }}" boot_many_work_folder: "{{ work_folder }}/{{ hqe_boot_many.deploy.test_suite }}" 0707010000009E000041ED0000000000000000000000065B730C5000000000000000000000000000000000000000000000004E00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-ceilometer-test-deploy0707010000009F000041ED0000000000000000000000035B730C5000000000000000000000000000000000000000000000005400000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-ceilometer-test-deploy/files070701000000A0000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000006000000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-ceilometer-test-deploy/files/run_filters070701000000A1000081A40000000000000000000000015B730C5000000010000000000000000000000000000000000000007400000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-ceilometer-test-deploy/files/run_filters/ceilometer-test.txtceilometer-test 070701000000A2000081A40000000000000000000000015B730C5000000010000000000000000000000000000000000000006D00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-ceilometer-test-deploy/files/run_filters/parallel.txtceilometer-test 070701000000A3000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005400000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-ceilometer-test-deploy/tasks070701000000A4000081A40000000000000000000000015B730C50000002BB000000000000000000000000000000000000006000000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-ceilometer-test-deploy/tasks/install.yml--- - name: hqe-ceilometer-test | install | Deploy run_filters copy: > src=run_filters dest="{{ ceilometer_test_work_folder }}/" owner={{ hqe_user }} group={{ hqe_group }} mode=0640 - name: hqe-ceilometer-test | install | Deploy run script template: > src=hqe-ceilometer-test.j2 dest={{ ceilometer_test_work_folder }}/hqe-ceilometer-test owner={{ hqe_user }} group={{ hqe_group }} mode=0755 - name: hqe-ceilometer-test | install | Deploy csv files copy: src: "{{ item }}" dest: "{{ ceilometer_test_work_folder }}/" owner: "{{ hqe_user }}" group: "{{ hqe_group }}" mode: 0644 with_fileglob: - "{{ ceilometer_test_code_folder}}/*.csv"070701000000A5000081A40000000000000000000000015B730C500000001B000000000000000000000000000000000000005D00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-ceilometer-test-deploy/tasks/main.yml--- - include: install.yml 070701000000A6000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005800000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-ceilometer-test-deploy/templates070701000000A7000081A40000000000000000000000015B730C500000029F000000000000000000000000000000000000006F00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-ceilometer-test-deploy/templates/hqe-ceilometer-test.j2#!/bin/bash # Wrapper script to execute ceilometer-test # within the venv, with the right parameters # # Usage: hqe-ceilometer-test run_filter_filename set -o pipefail RUN_FILTER=${1:-ceilometer-test.txt} TEST_HOME={{ ceilometer_test_code_folder }} WORK_HOME={{ ceilometer_test_work_folder }} VENV={{ common_venv_folder }} # Activate virtual environment source ${VENV}/bin/activate # Run the test export CEILOMETER_WORK_FOLDER=$WORK_HOME export CEILOMETER_SERVICE_OSRC={{ osrc_vars.service_osrc_path }} export CEILOMETER_KEYSTONE_OSRC={{ osrc_vars.keystone_osrc_path }} cmd="python -m unittest discover -s ${TEST_HOME} -p test_ceilometer_client.py" echo $cmd $cmd 070701000000A8000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005300000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-ceilometer-test-deploy/vars070701000000A9000081A40000000000000000000000015B730C50000000D6000000000000000000000000000000000000005C00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-ceilometer-test-deploy/vars/main.yml--- ceilometer_test_code_folder: "{{ work_folder }}/{{ tests_git_repo }}/{{ hqe_ceilometer_test.deploy.tests_folder }}" ceilometer_test_work_folder: "{{ work_folder }}/{{ hqe_ceilometer_test.deploy.test_suite }}" 070701000000AA000041ED0000000000000000000000055B730C5000000000000000000000000000000000000000000000004B00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-ceilometer-test-run070701000000AB000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005100000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-ceilometer-test-run/tasks070701000000AC000081A40000000000000000000000015B730C5000000003000000000000000000000000000000000000005D00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-ceilometer-test-run/tasks/cleanup.yml---070701000000AD000081A40000000000000000000000015B730C500000015B000000000000000000000000000000000000005A00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-ceilometer-test-run/tasks/main.yml--- - include: test-resources.yml vars: ansible_python_interpreter: "{{ common_venv_python }}" - include: ../../hqe-common/tasks/common-run.yml vars: caller_role_path: "{{ role_path }}" ansible_python_interpreter: "{{ common_venv_python }}" - include: cleanup.yml vars: ansible_python_interpreter: "{{ common_venv_python }}" 070701000000AE000081A40000000000000000000000015B730C5000000235000000000000000000000000000000000000005900000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-ceilometer-test-run/tasks/run.yml--- # Run the test script # # The test log shall be placed in a folder where it's picked up by the CI jobs # # Ignore errors is require to make sure the following tasks are executed # We will need to store the exit code somewhere for Jenkins to pick it up (TBD) - set_fact: test_status: true - name: hqe-ceilometer-test | run | Run the tests command: "{{ ceilometer_test_work_folder }}/hqe-ceilometer-test {{ run_filter_file }}" register: test_output ignore_errors: True - name: hqe-ceilometer-test | run | Show test output debug: var=test_output 070701000000AF000081A40000000000000000000000015B730C50000000FA000000000000000000000000000000000000006400000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-ceilometer-test-run/tasks/test-resources.yml--- - name: hqe-ceilometer-test | test-resources | Deploy the configuration file template: > src=testrc.j2 dest="{{ ceilometer_test_work_folder }}/hqe-ceilometer-test.testrc" owner={{ hqe_user }} group={{ hqe_group }} mode=0600 070701000000B0000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005500000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-ceilometer-test-run/templates070701000000B1000081A40000000000000000000000015B730C5000000134000000000000000000000000000000000000005F00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-ceilometer-test-run/templates/testrc.j2export OS_AUTH_URL={{ os_auth_url }} export OS_USERNAME={{ demo_test_user }} export OS_PASSWORD={{ demo_test_password }} export OS_PROJECT_NAME={{ keystone_admin_tenant }} export OS_CACERT={{ ca_bundle }} export OS_USER_DOMAIN_NAME={{ demo_test_domain }} export OS_PROJECT_DOMAIN_NAME={{ demo_test_domain }} 070701000000B2000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005000000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-ceilometer-test-run/vars070701000000B3000081A40000000000000000000000015B730C500000046A000000000000000000000000000000000000005900000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-ceilometer-test-run/vars/main.yml--- # Filter variable must be defined in all roles to allow for # test filtering. The test filter file contains the data to # be able to filter which tests to be executed out of role, # stored in the format which is more suitable for the specific role. # Test filter files are expected under a run_filters folder. # The file name must match the tags, for it to be selected properly # when a specific test run is requested in ardana-qa-run.yml run_filter_file: parallel.txt # Settings from deploy ceilometer_run_service_name: "not-yet-defined" # Test account setup for testing, and clean-ed up afterwards demo_test_user: "{{ demo_random_id }}" demo_test_password: "{{ demo_random_id }}" demo_test_domain: Default # General keystone settings keystone_version: "v3" keystone_admin_tenant: "{{ osrc_vars.os_project_name }}" # os_auth_url os_auth_url: "{{ KEY_API.advertises.vips.admin[0].url }}/{{ keystone_version }}" ceilometer_test_code_folder: "{{ work_folder }}/{{ tests_git_repo }}/{{ hqe_ceilometer_test.deploy.tests_folder }}" ceilometer_test_work_folder: "{{ work_folder }}/{{ hqe_ceilometer_test.deploy.test_suite }}" 070701000000B4000041ED0000000000000000000000065B730C5000000000000000000000000000000000000000000000004300000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-ceph-deploy070701000000B5000041ED0000000000000000000000035B730C5000000000000000000000000000000000000000000000004900000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-ceph-deploy/files070701000000B6000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005500000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-ceph-deploy/files/run_filters070701000000B7000081A40000000000000000000000015B730C5000000005000000000000000000000000000000000000005E00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-ceph-deploy/files/run_filters/ceph.txtceph 070701000000B8000081A40000000000000000000000015B730C5000000005000000000000000000000000000000000000006200000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-ceph-deploy/files/run_filters/parallel.txtceph 070701000000B9000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000004900000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-ceph-deploy/tasks070701000000BA000081A40000000000000000000000015B730C500000016B000000000000000000000000000000000000005700000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-ceph-deploy/tasks/configure.yml--- # Configure ceph - name: hqe-ceph | configure | Deploy ceph test input file shell: "cp {{ ceph_code_folder }}/ceph_inputs.json {{ ceph_work_folder }}" - name: hqe-ceph | configure | Fix ownership on ceph test input file file: path: "{{ ceph_work_folder }}/ceph_inputs.json" owner: "{{ hqe_user }}" group: "{{ hqe_group }}" mode: 0644 070701000000BB000081A40000000000000000000000015B730C50000003C3000000000000000000000000000000000000005500000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-ceph-deploy/tasks/install.yml--- - name: hqe-ceph | install | Set ensure {{ ceph_work_folder }} folder exists file: path: "{{ ceph_work_folder }}" owner: "{{ hqe_user }}" group: "{{ hqe_group }}" state: directory recurse: yes # NOTE(andreaf) Ceph test code opens the input file for read-write (even if # it's actually only read, and the input file location is not configurable. # As a workaround extend access to it. - name: hqe-ceph | install | Ensure input file is readable become: yes become_user: root file: path: "{{ ceph_code_folder }}/ceph_inputs.json" mode: 0777 - name: hqe-ceph | install | Deploy run_filters copy: src: run_filters dest: "{{ ceph_work_folder }}/" owner: "{{ hqe_user }}" group: "{{ hqe_group }}" mode: 0640 - name: hqe-ceph | install | Deploy run script template: src: hqe-ceph.j2 dest: "{{ ceph_work_folder }}/hqe-ceph" owner: "{{ hqe_user }}" group: "{{ hqe_group }}" mode: 0755 070701000000BC000081A40000000000000000000000015B730C5000000034000000000000000000000000000000000000005200000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-ceph-deploy/tasks/main.yml--- - include: install.yml - include: configure.yml 070701000000BD000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000004D00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-ceph-deploy/templates070701000000BE000081A40000000000000000000000015B730C5000000295000000000000000000000000000000000000005900000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-ceph-deploy/templates/hqe-ceph.j2#!/bin/bash # Wrapper script to execute ceph # within the venv, with the right parameters # # Usage: hqe-ceph run_filter_filename set -o pipefail IMAGE_ID=$1 KEYNAME=$2 FLAVOR=$3 AZ=$4 NVMS=$5 RUN_FILTER=${6:-parallel.txt} TEST_HOME={{ ceph_code_folder }} WORK_HOME={{ ceph_work_folder }} VENV={{ common_venv_folder }} # Activate the virtual environment source ${VENV}/bin/activate # activate the credentials source $WORK_HOME/hqe-ceph.testrc # Run the test cmd="python -m subunit.run discover -t ${TEST_HOME} test_cinder_ceph_client" echo $cmd "| tee ${WORK_HOME}/test_cinder_ceph_client.subunit" $cmd | tee ${WORK_HOME}/test_cinder_ceph_client.subunit 070701000000BF000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000004800000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-ceph-deploy/vars070701000000C0000081A40000000000000000000000015B730C50000004DD000000000000000000000000000000000000005100000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-ceph-deploy/vars/main.yml--- # Filter variable must be defined in all roles to allow for # test filtering. The test filter file contains the data to # be able to filter which tests to be executed out of role, # stored in the format which is more suitable for the specific role. # Test filter files are expected under a run_filters folder. # The file name must match the tags, for it to be selected properly # when a specific test run is requested in ardana-qa-run.yml run_filter_file: parallel.txt # Test account setup for testing, and clean-ed up afterwards demo_random_uuid: "{{ ansible_date_time.epoch | to_uuid }}" demo_random_id: "{{ ['hqe_ceph', demo_random_uuid] | join('-') }}" demo_test_user: "{{ demo_random_id }}" demo_test_project: "{{ demo_random_id }}" demo_test_password: "{{ demo_random_id }}" demo_test_domain: Default demo_test_role: "{{ hqe_group_vars.keystone_member_role }}" # General keystone settings keystone_admin_token: "{{ hqe_token_vars.keystone_admin_token }}" keystone_admin_endpoint: "{{ osrc_vars.os_auth_url}}" # os_auth_url os_auth_url: "{{ osrc_vars.os_auth_url}}" ceph_code_folder: "{{ work_folder }}/{{ tests_git_repo }}/{{ hqe_ceph.deploy.tests_folder }}" ceph_work_folder: "{{ work_folder }}/{{ hqe_ceph.deploy.test_suite }}" 070701000000C1000041ED0000000000000000000000055B730C5000000000000000000000000000000000000000000000004000000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-ceph-run070701000000C2000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000004600000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-ceph-run/tasks070701000000C3000081A40000000000000000000000015B730C5000000288000000000000000000000000000000000000005200000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-ceph-run/tasks/cleanup.yml--- # Cleanup the account used for testing - name: hqe-ceph | test-resources | Delete test user ignore_errors: true keystone_v3: login_token: "{{ keystone_admin_token }}" endpoint: "{{ keystone_admin_endpoint }}" action: "delete_user" user_name: "{{ demo_test_user }}" user_domain_name: "{{ demo_test_domain }}" - name: hqe-ceph | test-resources | Delete test project ignore_errors: true keystone_v3: login_token: "{{ keystone_admin_token }}" endpoint: "{{ keystone_admin_endpoint }}" action: "delete_project" project_name: "{{ demo_test_project }}" project_domain_name: "{{ demo_test_domain }}" 070701000000C4000081A40000000000000000000000015B730C500000015B000000000000000000000000000000000000004F00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-ceph-run/tasks/main.yml--- - include: test-resources.yml vars: ansible_python_interpreter: "{{ common_venv_python }}" - include: ../../hqe-common/tasks/common-run.yml vars: caller_role_path: "{{ role_path }}" ansible_python_interpreter: "{{ common_venv_python }}" - include: cleanup.yml vars: ansible_python_interpreter: "{{ common_venv_python }}" 070701000000C5000081A40000000000000000000000015B730C5000000213000000000000000000000000000000000000004E00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-ceph-run/tasks/run.yml--- # Run the test script # # The test log shall be placed in a folder where it's picked up by the CI jobs # # Ignore errors is require to make sure the following tasks are executed # We will need to store the exit code somewhere for Jenkins to pick it up (TBD) - name: hqe-ceph | run | Run the tests become: yes become_user: "{{ hqe_user }}" command: "{{ ceph_work_folder }}/hqe-ceph {{ run_filter_file }}" register: test_output ignore_errors: True - name: hqe-ceph | run | Show test output debug: var=test_output 070701000000C6000081A40000000000000000000000015B730C500000065D000000000000000000000000000000000000005900000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-ceph-run/tasks/test-resources.yml--- # Setup the test account used for testing - name: hqe-ceph | test-resources | Create test project keystone_v3: login_token: "{{ keystone_admin_token }}" endpoint: "{{ keystone_admin_endpoint }}" action: "create_project" project_name: "{{ demo_test_project }}" project_domain_name: "{{ demo_test_domain }}" description: "Ephemeral test account" - name: hqe-ceph | test-resources | Create test user keystone_v3: login_token: "{{ keystone_admin_token }}" endpoint: "{{ keystone_admin_endpoint }}" action: "create_user" user_name: "{{ demo_test_user }}" user_password: "{{ demo_test_password}}" description: "Ephemeral test account" user_domain_name: "{{ demo_test_domain }}" - name: hqe-ceph | test-resources | Grant member role to Test User on Test Project keystone_v3: login_token: "{{ keystone_admin_token }}" endpoint: "{{ keystone_admin_endpoint }}" action: "grant_project_role" user_name: "{{ demo_test_user }}" project_name: "{{ demo_test_project }}" role_name: "{{ demo_test_role }}" user_domain_name: "{{ demo_test_domain }}" project_domain_name: "{{ demo_test_domain }}" - name: hqe-ceph | test-resources | Deploy the configuration file template: src: testrc.j2 dest: "{{ ceph_work_folder }}/hqe-ceph.testrc" owner: "{{ hqe_user }}" group: "{{ hqe_group }}" mode: 0600 - name: hqe-ceph | test-resources | Deploy the v2 configuration file template: src: testrc.j2 dest: "{{ ceph_work_folder }}/hqe-ceph-v2.testrc" owner: "{{ hqe_user }}" group: "{{ hqe_group }}" mode: 0600 070701000000C7000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000004A00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-ceph-run/templates070701000000C8000081A40000000000000000000000015B730C50000001C6000000000000000000000000000000000000005400000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-ceph-run/templates/testrc.j2# FIXME(andreaf) hardcoded AUTH URL - HQA-910 export OS_BASE_AUTH_URL="https://myhelion.test:5000/v3" export OS_AUTH_URL={{ keystone_admin_endpoint }} export OS_USERNAME={{ demo_test_user }} export OS_PASSWORD={{ demo_test_password }} export OS_PROJECT_NAME={{ demo_test_project }} export OS_CACERT={{ ca_bundle }} export OS_USER_DOMAIN_NAME={{ demo_test_domain }} export OS_PROJECT_DOMAIN_NAME={{ demo_test_domain }} export OS_ENDPOINT_TYPE=internalURL 070701000000C9000081A40000000000000000000000015B730C5000000106000000000000000000000000000000000000005700000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-ceph-run/templates/testrc_v2.j2# FIXME(andreaf) hardcoded AUTH URL - HQA-910 export OS_AUTH_URL="https://myhelion.test:5000/v2.0" export OS_USERNAME={{ demo_test_user }} export OS_PASSWORD={{ demo_test_password }} export OS_TENANT_NAME={{ demo_test_project }} export OS_CACERT={{ ca_bundle }} 070701000000CA000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000004500000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-ceph-run/vars070701000000CB000081A40000000000000000000000015B730C50000004EB000000000000000000000000000000000000004E00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-ceph-run/vars/main.yml--- # Filter variable must be defined in all roles to allow for # test filtering. The test filter file contains the data to # be able to filter which tests to be executed out of role, # stored in the format which is more suitable for the specific role. # Test filter files are expected under a run_filters folder. # The file name must match the tags, for it to be selected properly # when a specific test run is requested in ardana-qa-run.yml run_filter_file: parallel.txt # Test account setup for testing, and clean-ed up afterwards demo_random_uuid: "{{ ansible_date_time.epoch | to_uuid }}" demo_random_id: "{{ ['hqe_ceph', demo_random_uuid] | join('-') }}" demo_test_user: "{{ demo_random_id }}" demo_test_project: "{{ demo_random_id }}" demo_test_password: "{{ demo_random_id }}" demo_test_domain: Default demo_test_role: "{{ hqe_group_vars.keystone_member_role }}" # General keystone settings keystone_admin_token: "{{ hqe_token_vars.keystone_admin_token }}" keystone_admin_endpoint: "{{ osrc_vars.os_unversioned_auth_url }}" # os_auth_url os_auth_url: "{{ osrc_vars.os_auth_url}}" ceph_code_folder: "{{ work_folder }}/{{ tests_git_repo }}/{{ hqe_ceph.deploy.tests_folder }}" ceph_work_folder: "{{ work_folder }}/{{ hqe_ceph.deploy.test_suite }}" 070701000000CC000041ED0000000000000000000000065B730C5000000000000000000000000000000000000000000000005400000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-cinder-backup-restore-deploy070701000000CD000041ED0000000000000000000000035B730C5000000000000000000000000000000000000000000000005A00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-cinder-backup-restore-deploy/files070701000000CE000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000006600000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-cinder-backup-restore-deploy/files/run_filters070701000000CF000081A40000000000000000000000015B730C5000000016000000000000000000000000000000000000008000000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-cinder-backup-restore-deploy/files/run_filters/cinder-backup-restore.txtcinder-backup-restore 070701000000D0000081A40000000000000000000000015B730C5000000016000000000000000000000000000000000000007300000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-cinder-backup-restore-deploy/files/run_filters/parallel.txtcinder-backup-restore 070701000000D1000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005A00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-cinder-backup-restore-deploy/tasks070701000000D2000081A40000000000000000000000015B730C5000000026000000000000000000000000000000000000006800000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-cinder-backup-restore-deploy/tasks/configure.yml--- # Configure cinder-backup-restore 070701000000D3000081A40000000000000000000000015B730C50000002AE000000000000000000000000000000000000006600000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-cinder-backup-restore-deploy/tasks/install.yml--- - name: hqe-cinder-backup-restore | install | Create work folder {{ cinder_backup_restore_work_folder }} file: path={{ cinder_backup_restore_work_folder }} owner={{ hqe_user }} group={{ hqe_group }} state=directory recurse=yes - name: hqe-cinder-backup-restore | install | Deploy run_filters copy: > src=run_filters dest="{{ cinder_backup_restore_work_folder }}/" owner={{ hqe_user }} group={{ hqe_group }} mode=0640 - name: hqe-cinder-backup-restore | install | Deploy run script template: > src=hqe-cinder-backup-restore.j2 dest={{ cinder_backup_restore_work_folder }}/hqe-cinder-backup-restore owner={{ hqe_user }} group={{ hqe_group }} mode=0755 070701000000D4000081A40000000000000000000000015B730C5000000034000000000000000000000000000000000000006300000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-cinder-backup-restore-deploy/tasks/main.yml--- - include: install.yml - include: configure.yml 070701000000D5000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005E00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-cinder-backup-restore-deploy/templates070701000000D6000081A40000000000000000000000015B730C50000003A6000000000000000000000000000000000000007B00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-cinder-backup-restore-deploy/templates/hqe-cinder-backup-restore.j2#!/bin/bash # Wrapper script to execute cinder-backup-restore # within the venv, with the right parameters # # Usage: hqe-cinder-backup-restore run_filter_filename set -o pipefail IMAGE_ID=$1 KEYNAME=$2 FLAVOR=$3 AZ=$4 NVMS=$5 RUN_FILTER=${6:-parallel.txt} TEST_HOME={{ cinder_backup_restore_code_folder }} WORK_HOME={{ cinder_backup_restore_work_folder }} VENV={{ common_venv_folder }} # Activate the virtual environment source ${VENV}/bin/activate # activate the credentials source $WORK_HOME/cinder-backup-restore.testrc # Run the test # FIXME(andreaf) Note that this is broken, cinder tests depend on cinder/common # which is not discoverable with this command. Common own deps are missing as well cmd="PYTHONPATH=$PTYHONPATH:${TEST_HOME}:${TEST_HOME}/../common python -u ${TEST_HOME}/test_backup_restore.py \ $(cat ${WORK_HOME}/run_filters/${RUN_FILTER}) | tee ${WORK_HOME}/test_backup_restore.log" echo $cmd $cmd 070701000000D7000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005900000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-cinder-backup-restore-deploy/vars070701000000D8000081A40000000000000000000000015B730C50000006A2000000000000000000000000000000000000006200000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-cinder-backup-restore-deploy/vars/main.yml--- # Filter variable must be defined in all roles to allow for # test filtering. The test filter file contains the data to # be able to filter which tests to be executed out of role, # stored in the format which is more suitable for the specific role. # Test filter files are expected under a run_filters folder. # The file name must match the tags, for it to be selected properly # when a specific test run is requested in ardana-qa-run.yml run_filter_file: parallel.txt # Test account setup for testing, and clean-ed up afterwards demo_random_uuid: "{{ ansible_date_time.epoch | to_uuid }}" demo_random_id: "{{ ['hqe_cinder-backup-restore', demo_random_uuid] | join('-') }}" demo_test_user: "{{ demo_random_id }}" demo_test_project: "{{ demo_random_id }}" demo_test_password: "{{ demo_random_id }}" demo_test_domain: Default demo_test_role: "{{ hqe_group_vars.keystone_member_role }}" # test resources demo_test_router: "{{ demo_random_id }}" demo_test_network: "{{ demo_random_id }}" demo_test_subnet: "{{ demo_random_id }}" demo_test_cidr: "192.168.1.0/24" demo_test_keyname: "{{ demo_random_id }}" demo_test_key_file: "{{ [demo_test_keyname, 'pem'] | join('.') }}" demo_test_az: "nova" demo_test_flavor: 2 demo_test_nvms: 1 # General keystone settings keystone_admin_token: "{{ hqe_token_vars.keystone_admin_token }}" keystone_admin_endpoint: "{{ osrc_vars.os_unversioned_auth_url }}" # os_auth_url os_auth_url: "{{ osrc_vars.os_unversioned_auth_url }}" cinder_backup_restore_code_folder: "{{ work_folder }}/{{ tests_git_repo }}/{{ hqe_cinder_backup_restore.deploy.tests_folder }}" cinder_backup_restore_work_folder: "{{ work_folder }}/{{ hqe_cinder_backup_restore.deploy.test_suite }}" 070701000000D9000041ED0000000000000000000000055B730C5000000000000000000000000000000000000000000000005100000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-cinder-backup-restore-run070701000000DA000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005700000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-cinder-backup-restore-run/tasks070701000000DB000081A40000000000000000000000015B730C5000000C10000000000000000000000000000000000000006300000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-cinder-backup-restore-run/tasks/cleanup.yml--- # Cleanup the account used for testing - name: hqe-cinder-backup-restore | test-resources | Detech subnet from router ignore_errors: true environment: OS_USERNAME: "{{ demo_test_user }}" OS_TENANT_NAME: "{{ demo_test_project }}" OS_PASSWORD: "{{ demo_test_password }}" OS_CACERT: "{{ ca_bundle }}" OS_AUTH_URL: "{{ os_auth_url }}" shell: "{{ common_venv_bin }}/neutron router-interface-delete {{ demo_test_router }} {{ demo_test_subnet }}" register: result until: result.rc == 0 retries: 5 delay: 10 - name: hqe-cinder-backup-restore | test-resources | Delete subnet ignore_errors: true environment: OS_USERNAME: "{{ demo_test_user }}" OS_TENANT_NAME: "{{ demo_test_project }}" OS_PASSWORD: "{{ demo_test_password }}" OS_CACERT: "{{ ca_bundle }}" OS_AUTH_URL: "{{ os_auth_url }}" shell: "{{ common_venv_bin }}/neutron subnet-delete --name {{ demo_test_subnet }} {{ demo_test_network }} {{ demo_test_cidr }}" register: result until: result.rc == 0 retries: 5 delay: 10 - name: hqe-cinder-backup-restore | test-resources | Delete network ignore_errors: true environment: OS_USERNAME: "{{ demo_test_user }}" OS_TENANT_NAME: "{{ demo_test_project }}" OS_PASSWORD: "{{ demo_test_password }}" OS_CACERT: "{{ ca_bundle }}" OS_AUTH_URL: "{{ os_auth_url }}" shell: "{{ common_venv_bin }}/neutron net-delete {{ demo_test_network }}" register: result until: result.rc == 0 retries: 5 delay: 10 - name: hqe-cinder-backup-restore | test-resources | Delete router ignore_errors: true environment: OS_USERNAME: "{{ demo_test_user }}" OS_TENANT_NAME: "{{ demo_test_project }}" OS_PASSWORD: "{{ demo_test_password }}" OS_CACERT: "{{ ca_bundle }}" OS_AUTH_URL: "{{ os_auth_url }}" shell: "{{ common_venv_bin }}/neutron router-delete {{ demo_test_router }}" register: result until: result.rc == 0 retries: 5 delay: 10 - name: hqe-cinder-backup-restore | test-resources | Delete keyname ignore_errors: true environment: OS_USERNAME: "{{ demo_test_user }}" OS_TENANT_NAME: "{{ demo_test_project }}" OS_PASSWORD: "{{ demo_test_password }}" OS_CACERT: "{{ ca_bundle }}" OS_AUTH_URL: "{{ os_auth_url }}" shell: "{{ common_venv_bin }}/nova keypair-delete {{ demo_test_keyname }}" register: result until: result.rc == 0 retries: 5 delay: 10 - name: hqe-cinder-backup-restore | test-resources | Delete test user ignore_errors: true keystone_v3: login_token: "{{ keystone_admin_token }}" endpoint: "{{ keystone_admin_endpoint }}/v3" action: "delete_user" user_name: "{{ demo_test_user }}" user_domain_name: "{{ demo_test_domain }}" - name: hqe-cinder-backup-restore | test-resources | Delete test project ignore_errors: true keystone_v3: login_token: "{{ keystone_admin_token }}" endpoint: "{{ keystone_admin_endpoint }}/v3" action: "delete_project" project_name: "{{ demo_test_project }}" project_domain_name: "{{ demo_test_domain }}" 070701000000DC000081A40000000000000000000000015B730C500000015B000000000000000000000000000000000000006000000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-cinder-backup-restore-run/tasks/main.yml--- - include: test-resources.yml vars: ansible_python_interpreter: "{{ common_venv_python }}" - include: ../../hqe-common/tasks/common-run.yml vars: caller_role_path: "{{ role_path }}" ansible_python_interpreter: "{{ common_venv_python }}" - include: cleanup.yml vars: ansible_python_interpreter: "{{ common_venv_python }}" 070701000000DD000081A40000000000000000000000015B730C5000000212000000000000000000000000000000000000005F00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-cinder-backup-restore-run/tasks/run.yml--- # Run the test script # # The test log shall be placed in a folder where it's picked up by the CI jobs # # Ignore errors is require to make sure the following tasks are executed # We will need to store the exit code somewhere for Jenkins to pick it up (TBD) - name: hqe-cinder-backup-restore | run | Run the tests command: "{{ cinder_backup_restore_work_folder }}/hqe-cinder-backup-restore" register: test_output ignore_errors: True - name: hqe-cinder-backup-restore | run | Show test output debug: var=test_output 070701000000DE000081A40000000000000000000000015B730C5000000BA6000000000000000000000000000000000000006A00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-cinder-backup-restore-run/tasks/test-resources.yml--- # Setup the test account used for testing - name: hqe-cinder-backup-restore | test-resources | Create test project keystone_v3: login_token: "{{ keystone_admin_token }}" endpoint: "{{ keystone_admin_endpoint }}/v3" action: "create_project" project_name: "{{ demo_test_project }}" project_domain_name: "{{ demo_test_domain }}" description: "Ephemeral test account" - name: hqe-cinder-backup-restore | test-resources | Create test user keystone_v3: login_token: "{{ keystone_admin_token }}" endpoint: "{{ keystone_admin_endpoint }}/v3" action: "create_user" user_name: "{{ demo_test_user }}" user_password: "{{ demo_test_password}}" description: "Ephemeral test account" user_domain_name: "{{ demo_test_domain }}" - name: hqe-cinder-backup-restore | test-resources | Grant member role to Test User on Test Project keystone_v3: login_token: "{{ keystone_admin_token }}" endpoint: "{{ keystone_admin_endpoint }}/v3" action: "grant_project_role" user_name: "{{ demo_test_user }}" project_name: "{{ demo_test_project }}" role_name: "{{ demo_test_role }}" user_domain_name: "{{ demo_test_domain }}" project_domain_name: "{{ demo_test_domain }}" - name: hqe-cinder-backup-restore | test-resources | Deploy the configuration file template: > src=testrc.j2 dest="{{ cinder_backup_restore_work_folder }}/cinder-backup-restore.testrc" owner={{ hqe_user }} group={{ hqe_group }} mode=0600 - set_fact: cbr_creds: "{{ cinder_backup_restore_work_folder }}/cinder-backup-restore.testrc" # test requires the following items - name: hqe-cinder-backup-restore | test-resources | Create router ignore_errors: true shell: ". {{ cbr_creds }}; {{ common_venv_bin }}/neutron router-create {{ demo_test_router }}" # not connecting router to ext-net as not needed. - name: hqe-cinder-backup-restore | test-resources | Create network ignore_errors: true shell: ". {{ cbr_creds }}; {{ common_venv_bin }}/neutron net-create {{ demo_test_network }}" - name: hqe-cinder-backup-restore | test-resources | Create subnet ignore_errors: true shell: ". {{ cbr_creds }}; {{ common_venv_bin }}/neutron subnet-create --name {{ demo_test_subnet }} {{ demo_test_network }} {{ demo_test_cidr }}" - name: hqe-cinder-backup-restore | test-resources | Connect subnet to router ignore_errors: true shell: ". {{ cbr_creds }}; {{ common_venv_bin }}/neutron router-interface-add {{ demo_test_router }} --subnet {{ demo_test_subnet }}" - name: hqe-cinder-backup-restore | test-resources | Create keyname ignore_errors: true shell: ". {{ cbr_creds }}; {{ common_venv_bin }}/nova keypair-add {{ demo_test_keyname }} > {{ demo_test_key_file }}" - name: hqe-cinder-backup-restore | test-resources | Verify image exists ignore_errors: true shell: ". {{ cbr_creds }}; {{ common_venv_bin }}/nova image-list | grep cirros | head -1 | awk '{print $2}'" register: demo_test_image_id 070701000000DF000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005B00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-cinder-backup-restore-run/templates070701000000E0000081A40000000000000000000000015B730C5000000172000000000000000000000000000000000000006500000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-cinder-backup-restore-run/templates/testrc.j2export OS_BASE_AUTH_URL={{ keystone_admin_endpoint }} export OS_AUTH_URL={{ keystone_admin_endpoint }} export OS_USERNAME={{ demo_test_user }} export OS_PASSWORD={{ demo_test_password }} export OS_PROJECT_NAME={{ demo_test_project }} export OS_CACERT={{ ca_bundle }} export OS_USER_DOMAIN_NAME={{ demo_test_domain }} export OS_PROJECT_DOMAIN_NAME={{ demo_test_domain }} 070701000000E1000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005600000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-cinder-backup-restore-run/vars070701000000E2000081A40000000000000000000000015B730C50000002C4000000000000000000000000000000000000005F00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-cinder-backup-restore-run/vars/main.yml--- # Filter variable must be defined in all roles to allow for # test filtering. The test filter file contains the data to # be able to filter which tests to be executed out of role, # stored in the format which is more suitable for the specific role. # Test filter files are expected under a run_filters folder. # The file name must match the tags, for it to be selected properly # when a specific test run is requested in ardana-qa-run.yml run_filter_file: parallel.txt cinder_backup_restore_code_folder: "{{ work_folder }}/{{ tests_git_repo }}/{{ hqe_cinder_backup_restore.deploy.tests_folder }}" cinder_backup_restore_work_folder: "{{ work_folder }}/{{ hqe_cinder_backup_restore.deploy.test_suite }}" 070701000000E3000041ED0000000000000000000000065B730C5000000000000000000000000000000000000000000000005C00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-cinder-multiple-attach-detach-deploy070701000000E4000041ED0000000000000000000000035B730C5000000000000000000000000000000000000000000000006200000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-cinder-multiple-attach-detach-deploy/files070701000000E5000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000006E00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-cinder-multiple-attach-detach-deploy/files/run_filters070701000000E6000081A40000000000000000000000015B730C500000001E000000000000000000000000000000000000009000000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-cinder-multiple-attach-detach-deploy/files/run_filters/cinder-multiple-attach-detach.txtcinder-multiple-attach-detach 070701000000E7000081A40000000000000000000000015B730C500000001E000000000000000000000000000000000000007B00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-cinder-multiple-attach-detach-deploy/files/run_filters/parallel.txtcinder-multiple-attach-detach 070701000000E8000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000006200000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-cinder-multiple-attach-detach-deploy/tasks070701000000E9000081A40000000000000000000000015B730C500000002E000000000000000000000000000000000000007000000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-cinder-multiple-attach-detach-deploy/tasks/configure.yml--- # Configure cinder-multiple-attach-detach 070701000000EA000081A40000000000000000000000015B730C50000002EE000000000000000000000000000000000000006E00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-cinder-multiple-attach-detach-deploy/tasks/install.yml--- - name: hqe-cinder-multiple-attach-detach | install | Create work folder {{ cinder_multiple_attach_detach_work_folder }} file: path={{ cinder_backup_restore_work_folder }} owner={{ hqe_user }} group={{ hqe_group }} state=directory recurse=yes - name: hqe-cinder-multiple-attach-detach | install | Deploy run_filters copy: > src=run_filters dest="{{ cinder_multiple_attach_detach_work_folder }}/" owner={{ hqe_user }} group={{ hqe_group }} mode=0640 - name: hqe-cinder-multiple-attach-detach | install | Deploy run script template: > src=hqe-cinder-multiple-attach-detach.j2 dest={{ cinder_multiple_attach_detach_work_folder }}/hqe-cinder-multiple-attach-detach owner={{ hqe_user }} group={{ hqe_group }} mode=0755 070701000000EB000081A40000000000000000000000015B730C5000000034000000000000000000000000000000000000006B00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-cinder-multiple-attach-detach-deploy/tasks/main.yml--- - include: install.yml - include: configure.yml 070701000000EC000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000006600000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-cinder-multiple-attach-detach-deploy/templates070701000000ED000081A40000000000000000000000015B730C500000039C000000000000000000000000000000000000008B00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-cinder-multiple-attach-detach-deploy/templates/hqe-cinder-multiple-attach-detach.j2#!/bin/bash # Wrapper script to execute cinder-multiple-attach-detach # within the venv, with the right parameters # # Usage: hqe-cinder-multiple-attach-detach run_filter_filename set -o pipefail IMAGE_ID=$1 KEYNAME=$2 FLAVOR=$3 AZ=$4 NVMS=$5 RUN_FILTER=${6:-parallel.txt} TEST_HOME={{ cinder_multiple_attach_detach_code_folder }} WORK_HOME={{ cinder_multiple_attach_detach_work_folder }} VENV={{ common_venv_folder }} # Activate the virtual environment source ${VENV}/bin/activate # activate the credentials source $WORK_HOME/cinder-multiple-attach-detach.testrc # Run the test # FIXME(andreaf) Note that this is broken, cinder tests depend on dependencies # that are either not specified, not used or not discoverable (cinder/common) cmd="python -u ${TEST_HOME}/test_multiple_attach_detach \ $(cat ${$WORK_HOME}/run_filters/${RUN_FILTER}) | tee ${$WORK_HOME}/test_multiple_attach_detach.log" echo $cmd $cmd 070701000000EE000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000006100000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-cinder-multiple-attach-detach-deploy/vars070701000000EF000081A40000000000000000000000015B730C50000002E3000000000000000000000000000000000000006A00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-cinder-multiple-attach-detach-deploy/vars/main.yml--- # Filter variable must be defined in all roles to allow for # test filtering. The test filter file contains the data to # be able to filter which tests to be executed out of role, # stored in the format which is more suitable for the specific role. # Test filter files are expected under a run_filters folder. # The file name must match the tags, for it to be selected properly # when a specific test run is requested in ardana-qa-run.yml run_filter_file: parallel.txt cinder_multiple_attach_detach_code_folder: "{{ work_folder }}/{{ tests_git_repo }}/{{ hqe_cinder_multiple_attach_detach.deploy.tests_folder }}" cinder_multiple_attach_detach_work_folder: "{{ work_folder }}/{{ hqe_cinder_multiple_attach_detach.deploy.test_suite }}" 070701000000F0000041ED0000000000000000000000055B730C5000000000000000000000000000000000000000000000005900000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-cinder-multiple-attach-detach-run070701000000F1000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005F00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-cinder-multiple-attach-detach-run/tasks070701000000F2000081A40000000000000000000000015B730C5000000C48000000000000000000000000000000000000006B00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-cinder-multiple-attach-detach-run/tasks/cleanup.yml--- # Cleanup the account used for testing - name: hqe-cinder-multiple-attach-detach | test-resources | Detech subnet from router ignore_errors: true environment: OS_USERNAME: "{{ demo_test_user }}" OS_TENANT_NAME: "{{ demo_test_project }}" OS_PASSWORD: "{{ demo_test_password }}" OS_CACERT: "{{ ca_bundle }}" OS_AUTH_URL: "{{ os_auth_url }}" shell: "{{ common_venv_bin }}/neutron router-interface-delete {{ demo_test_router }} {{ demo_test_subnet }}" register: result until: result.rc == 0 retries: 5 delay: 10 - name: hqe-cinder-multiple-attach-detach | test-resources | Delete subnet ignore_errors: true environment: OS_USERNAME: "{{ demo_test_user }}" OS_TENANT_NAME: "{{ demo_test_project }}" OS_PASSWORD: "{{ demo_test_password }}" OS_CACERT: "{{ ca_bundle }}" OS_AUTH_URL: "{{ os_auth_url }}" shell: "{{ common_venv_bin }}/neutron subnet-delete --name {{ demo_test_subnet }} {{ demo_test_network }} {{ demo_test_cidr }}" register: result until: result.rc == 0 retries: 5 delay: 10 - name: hqe-cinder-multiple-attach-detach | test-resources | Delete network ignore_errors: true environment: OS_USERNAME: "{{ demo_test_user }}" OS_TENANT_NAME: "{{ demo_test_project }}" OS_PASSWORD: "{{ demo_test_password }}" OS_CACERT: "{{ ca_bundle }}" OS_AUTH_URL: "{{ os_auth_url }}" shell: "{{ common_venv_bin }}/neutron net-delete {{ demo_test_network }}" register: result until: result.rc == 0 retries: 5 delay: 10 - name: hqe-cinder-multiple-attach-detach | test-resources | Delete router ignore_errors: true environment: OS_USERNAME: "{{ demo_test_user }}" OS_TENANT_NAME: "{{ demo_test_project }}" OS_PASSWORD: "{{ demo_test_password }}" OS_CACERT: "{{ ca_bundle }}" OS_AUTH_URL: "{{ os_auth_url }}" shell: "{{ common_venv_bin }}/neutron router-delete {{ demo_test_router }}" register: result until: result.rc == 0 retries: 5 delay: 10 - name: hqe-cinder-multiple-attach-detach | test-resources | Delete keyname ignore_errors: true environment: OS_USERNAME: "{{ demo_test_user }}" OS_TENANT_NAME: "{{ demo_test_project }}" OS_PASSWORD: "{{ demo_test_password }}" OS_CACERT: "{{ ca_bundle }}" OS_AUTH_URL: "{{ os_auth_url }}" shell: "{{ common_venv_bin }}/nova keypair-delete {{ demo_test_keyname }}" register: result until: result.rc == 0 retries: 5 delay: 10 - name: hqe-cinder-multiple-attach-detach | test-resources | Delete test user ignore_errors: true keystone_v3: login_token: "{{ keystone_admin_token }}" endpoint: "{{ keystone_admin_endpoint }}/v3" action: "delete_user" user_name: "{{ demo_test_user }}" user_domain_name: "{{ demo_test_domain }}" - name: hqe-cinder-multiple-attach-detach | test-resources | Delete test project ignore_errors: true keystone_v3: login_token: "{{ keystone_admin_token }}" endpoint: "{{ keystone_admin_endpoint }}/v3" action: "delete_project" project_name: "{{ demo_test_project }}" project_domain_name: "{{ demo_test_domain }}" 070701000000F3000081A40000000000000000000000015B730C5000000222000000000000000000000000000000000000006800000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-cinder-multiple-attach-detach-run/tasks/main.yml--- - include: test-resources.yml vars: ansible_python_interpreter: "{{ common_venv_python }}" - include: ../../hqe-common/tasks/common-run.yml vars: caller_role_path: "{{ role_path }}" ansible_python_interpreter: "{{ common_venv_python }}" - include: cleanup.yml vars: ansible_python_interpreter: "{{ common_venv_python }}" - name: hqe-cinder-multiple-attach-detach-run | main | test status fail: msg="hqe-cinder-multiple-attach-detach-run failed. Please look at the logs for further information" when: not test_status 070701000000F4000081A40000000000000000000000015B730C5000000232000000000000000000000000000000000000006700000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-cinder-multiple-attach-detach-run/tasks/run.yml--- # Run the test script # # The test log shall be placed in a folder where it's picked up by the CI jobs # # Ignore errors is require to make sure the following tasks are executed # We will need to store the exit code somewhere for Jenkins to pick it up (TBD) - name: hqe-cinder-multiple-attach-detach | run | Run the tests command: "{{ cinder_multiple_attach_detach_work_folder }}/hqe-cinder-multiple-attach-detach" register: test_output ignore_errors: True - name: hqe-cinder-multiple-attach-detach | run | Show test output debug: var=test_output 070701000000F5000081A40000000000000000000000015B730C5000000C1B000000000000000000000000000000000000007200000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-cinder-multiple-attach-detach-run/tasks/test-resources.yml--- # Setup the test account used for testing - name: hqe-cinder-multiple-attach-detach | test-resources | Create test project keystone_v3: login_token: "{{ keystone_admin_token }}" endpoint: "{{ keystone_admin_endpoint }}/v3" action: "create_project" project_name: "{{ demo_test_project }}" project_domain_name: "{{ demo_test_domain }}" description: "Ephemeral test account" - name: hqe-cinder-multiple-attach-detach | test-resources | Create test user keystone_v3: login_token: "{{ keystone_admin_token }}" endpoint: "{{ keystone_admin_endpoint }}/v3" action: "create_user" user_name: "{{ demo_test_user }}" user_password: "{{ demo_test_password}}" description: "Ephemeral test account" user_domain_name: "{{ demo_test_domain }}" - name: hqe-cinder-multiple-attach-detach | test-resources | Grant member role to Test User on Test Project keystone_v3: login_token: "{{ keystone_admin_token }}" endpoint: "{{ keystone_admin_endpoint }}/v3" action: "grant_project_role" user_name: "{{ demo_test_user }}" project_name: "{{ demo_test_project }}" role_name: "{{ demo_test_role }}" user_domain_name: "{{ demo_test_domain }}" project_domain_name: "{{ demo_test_domain }}" - name: hqe-cinder-multiple-attach-detach | test-resources | Deploy the configuration file template: > src=testrc.j2 dest="{{ cinder_multiple_attach_detach_work_folder }}/cinder-multiple-attach-detach.testrc" owner={{ hqe_user }} group={{ hqe_group }} mode=0600 - set_fact: cmad_creds: "{{ cinder_multiple_attach_detach_work_folder }}/cinder-multiple-attach-detach.testrc" # test requires the following items - name: hqe-cinder-multiple-attach-detach | test-resources | Create router ignore_errors: true shell: ". {{ cmad_creds }}; {{ common_venv_bin }}/neutron router-create {{ demo_test_router }}" # not connecting router to ext-net as not needed. - name: hqe-cinder-multiple-attach-detach | test-resources | Create network ignore_errors: true shell: ". {{ cmad_creds }}; {{ common_venv_bin }}/neutron net-create {{ demo_test_network }}" - name: hqe-cinder-multiple-attach-detach | test-resources | Create subnet ignore_errors: true shell: ". {{ cmad_creds }}; {{ common_venv_bin }}/neutron subnet-create --name {{ demo_test_subnet }} {{ demo_test_network }} {{ demo_test_cidr }}" - name: hqe-cinder-multiple-attach-detach | test-resources | Connect subnet to router ignore_errors: true shell: ". {{ cmad_creds }}; {{ common_venv_bin }}/neutron router-interface-add {{ demo_test_router }} --subnet {{ demo_test_subnet }}" - name: hqe-cinder-multiple-attach-detach | test-resources | Create keyname ignore_errors: true shell: ". {{ cmad_creds }}; {{ common_venv_bin }}/nova keypair-add {{ demo_test_keyname }} > {{ demo_test_key_file }}" - name: hqe-cinder-multiple-attach-detach | test-resources | Verify image exists ignore_errors: true shell: ". {{ cmad_creds }}; {{ common_venv_bin }}/nova image-list | grep cirros | head -1 | awk '{print $2}'" register: demo_test_image_id070701000000F6000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000006300000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-cinder-multiple-attach-detach-run/templates070701000000F7000081A40000000000000000000000015B730C5000000172000000000000000000000000000000000000006D00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-cinder-multiple-attach-detach-run/templates/testrc.j2export OS_BASE_AUTH_URL={{ keystone_admin_endpoint }} export OS_AUTH_URL={{ keystone_admin_endpoint }} export OS_USERNAME={{ demo_test_user }} export OS_PASSWORD={{ demo_test_password }} export OS_PROJECT_NAME={{ demo_test_project }} export OS_CACERT={{ ca_bundle }} export OS_USER_DOMAIN_NAME={{ demo_test_domain }} export OS_PROJECT_DOMAIN_NAME={{ demo_test_domain }} 070701000000F8000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005E00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-cinder-multiple-attach-detach-run/vars070701000000F9000081A40000000000000000000000015B730C5000000705000000000000000000000000000000000000006700000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-cinder-multiple-attach-detach-run/vars/main.yml--- # Filter variable must be defined in all roles to allow for # test filtering. The test filter file contains the data to # be able to filter which tests to be executed out of role, # stored in the format which is more suitable for the specific role. # Test filter files are expected under a run_filters folder. # The file name must match the tags, for it to be selected properly # when a specific test run is requested in ardana-qa-run.yml run_filter_file: parallel.txt cinder_multiple_attach_detach_code_folder: "{{ work_folder }}/{{ tests_git_repo }}/{{ hqe_cinder_multiple_attach_detach.deploy.tests_folder }}" cinder_multiple_attach_detach_work_folder: "{{ work_folder }}/{{ hqe_cinder_multiple_attach_detach.deploy.test_suite }}" # Test account setup for testing, and clean-ed up afterwards demo_random_uuid: "{{ ansible_date_time.epoch | to_uuid }}" demo_random_id: "{{ ['cinder-attach-detach', demo_random_uuid] | join('-') }}" demo_test_user: "{{ demo_random_id }}" demo_test_project: "{{ demo_random_id }}" demo_test_password: "{{ demo_random_id }}" demo_test_domain: Default demo_test_role: "{{ hqe_group_vars.keystone_member_role }}" # test resources demo_test_router: "{{ demo_random_id }}" demo_test_network: "{{ demo_random_id }}" demo_test_subnet: "{{ demo_random_id }}" demo_test_cidr: "192.168.1.0/24" demo_test_keyname: "{{ demo_random_id }}" demo_test_key_file: "{{ cinder_multiple_attach_detach_work_folder }}/{{ [demo_test_keyname, 'pem'] | join('.') }}" demo_test_az: "nova" demo_test_flavor: 2 demo_test_nvms: 1 NUM_ITERATIONS: 10 NUM_VOLUMES: 10 # os_auth_url os_auth_url: "{{ osrc_vars.os_auth_url }}" # General keystone settings keystone_admin_token: "{{ hqe_token_vars.keystone_admin_token }}" keystone_admin_endpoint: "{{ osrc_vars.os_unversioned_auth_url }}" 070701000000FA000041ED0000000000000000000000065B730C5000000000000000000000000000000000000000000000005400000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-cinder-snapshot-stack-deploy070701000000FB000041ED0000000000000000000000035B730C5000000000000000000000000000000000000000000000005A00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-cinder-snapshot-stack-deploy/files070701000000FC000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000006600000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-cinder-snapshot-stack-deploy/files/run_filters070701000000FD000081A40000000000000000000000015B730C5000000016000000000000000000000000000000000000008000000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-cinder-snapshot-stack-deploy/files/run_filters/cinder-snapshot-stack.txtcinder-snapshot-stack 070701000000FE000081A40000000000000000000000015B730C5000000016000000000000000000000000000000000000007300000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-cinder-snapshot-stack-deploy/files/run_filters/parallel.txtcinder-snapshot-stack 070701000000FF000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005A00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-cinder-snapshot-stack-deploy/tasks07070100000100000081A40000000000000000000000015B730C5000000026000000000000000000000000000000000000006800000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-cinder-snapshot-stack-deploy/tasks/configure.yml--- # Configure cinder-snapshot-stack 07070100000101000081A40000000000000000000000015B730C50000002AE000000000000000000000000000000000000006600000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-cinder-snapshot-stack-deploy/tasks/install.yml--- - name: hqe-cinder-snapshot-stack | install | Create work folder {{ cinder_snapshot_stack_work_folder }} file: path={{ cinder_backup_restore_work_folder }} owner={{ hqe_user }} group={{ hqe_group }} state=directory recurse=yes - name: hqe-cinder-snapshot-stack | install | Deploy run_filters copy: > src=run_filters dest="{{ cinder_snapshot_stack_work_folder }}/" owner={{ hqe_user }} group={{ hqe_group }} mode=0640 - name: hqe-cinder-snapshot-stack | install | Deploy run script template: > src=hqe-cinder-snapshot-stack.j2 dest={{ cinder_snapshot_stack_work_folder }}/hqe-cinder-snapshot-stack owner={{ hqe_user }} group={{ hqe_group }} mode=0755 07070100000102000081A40000000000000000000000015B730C5000000034000000000000000000000000000000000000006300000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-cinder-snapshot-stack-deploy/tasks/main.yml--- - include: install.yml - include: configure.yml 07070100000103000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005E00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-cinder-snapshot-stack-deploy/templates07070100000104000081A40000000000000000000000015B730C5000000368000000000000000000000000000000000000007B00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-cinder-snapshot-stack-deploy/templates/hqe-cinder-snapshot-stack.j2#!/bin/bash # Wrapper script to execute cinder-snapshot-stack # within the venv, with the right parameters # # Usage: hqe-cinder-snapshot-stack run_filter_filename set -o pipefail IMAGE_ID=$1 KEYNAME=$2 FLAVOR=$3 AZ=$4 NVMS=$5 RUN_FILTER=${6:-parallel.txt} TEST_HOME={{ cinder_snapshot_stack_code_folder }} WORK_HOME={{ cinder_snapshot_stack_work_folder }} VENV={{ common_venv_folder }} # Activate the virtual environment source ${VENV}/bin/activate # activate the credentials source $WORK_HOME/cinder-snapshot-stack.testrc # Run the test # FIXME(andreaf) Note that this is broken, cinder tests depend on dependencies # that are either not specified, not used or not discoverable (cinder/common) cmd="python -u ${TEST_HOME}/test_snapshot_stack.py \ $(cat ${TEST_HOME}/run_filters/${RUN_FILTER}) | tee ${TEST_HOME}/test_snapshot_stack.log" echo $cmd $cmd 07070100000105000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005900000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-cinder-snapshot-stack-deploy/vars07070100000106000081A40000000000000000000000015B730C50000002C3000000000000000000000000000000000000006200000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-cinder-snapshot-stack-deploy/vars/main.yml--- # Filter variable must be defined in all roles to allow for # test filtering. The test filter file contains the data to # be able to filter which tests to be executed out of role, # stored in the format which is more suitable for the specific role. # Test filter files are expected under a run_filters folder. # The file name must match the tags, for it to be selected properly # when a specific test run is requested in ardana-qa-run.yml run_filter_file: parallel.txt cinder_snapshot_stack_code_folder: "{{ work_folder }}/{{ tests_git_repo }}/{{ hqe_cinder_snapshot_stack.deploy.tests_folder }}" cinder_snapshot_stack_work_folder: "{{ work_folder }}/{{ hqe_cinder_snapshot_stack.deploy.test_suite }}" 07070100000107000041ED0000000000000000000000055B730C5000000000000000000000000000000000000000000000005100000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-cinder-snapshot-stack-run07070100000108000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005700000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-cinder-snapshot-stack-run/tasks07070100000109000081A40000000000000000000000015B730C5000000C10000000000000000000000000000000000000006300000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-cinder-snapshot-stack-run/tasks/cleanup.yml--- # Cleanup the account used for testing - name: hqe-cinder-snapshot-stack | test-resources | Detech subnet from router ignore_errors: true environment: OS_USERNAME: "{{ demo_test_user }}" OS_TENANT_NAME: "{{ demo_test_project }}" OS_PASSWORD: "{{ demo_test_password }}" OS_CACERT: "{{ ca_bundle }}" OS_AUTH_URL: "{{ os_auth_url }}" shell: "{{ common_venv_bin }}/neutron router-interface-delete {{ demo_test_router }} {{ demo_test_subnet }}" register: result until: result.rc == 0 retries: 5 delay: 10 - name: hqe-cinder-snapshot-stack | test-resources | Delete subnet ignore_errors: true environment: OS_USERNAME: "{{ demo_test_user }}" OS_TENANT_NAME: "{{ demo_test_project }}" OS_PASSWORD: "{{ demo_test_password }}" OS_CACERT: "{{ ca_bundle }}" OS_AUTH_URL: "{{ os_auth_url }}" shell: "{{ common_venv_bin }}/neutron subnet-delete --name {{ demo_test_subnet }} {{ demo_test_network }} {{ demo_test_cidr }}" register: result until: result.rc == 0 retries: 5 delay: 10 - name: hqe-cinder-snapshot-stack | test-resources | Delete network ignore_errors: true environment: OS_USERNAME: "{{ demo_test_user }}" OS_TENANT_NAME: "{{ demo_test_project }}" OS_PASSWORD: "{{ demo_test_password }}" OS_CACERT: "{{ ca_bundle }}" OS_AUTH_URL: "{{ os_auth_url }}" shell: "{{ common_venv_bin }}/neutron net-delete {{ demo_test_network }}" register: result until: result.rc == 0 retries: 5 delay: 10 - name: hqe-cinder-snapshot-stack | test-resources | Delete router ignore_errors: true environment: OS_USERNAME: "{{ demo_test_user }}" OS_TENANT_NAME: "{{ demo_test_project }}" OS_PASSWORD: "{{ demo_test_password }}" OS_CACERT: "{{ ca_bundle }}" OS_AUTH_URL: "{{ os_auth_url }}" shell: "{{ common_venv_bin }}/neutron router-delete {{ demo_test_router }}" register: result until: result.rc == 0 retries: 5 delay: 10 - name: hqe-cinder-snapshot-stack | test-resources | Delete keyname ignore_errors: true environment: OS_USERNAME: "{{ demo_test_user }}" OS_TENANT_NAME: "{{ demo_test_project }}" OS_PASSWORD: "{{ demo_test_password }}" OS_CACERT: "{{ ca_bundle }}" OS_AUTH_URL: "{{ os_auth_url }}" shell: "{{ common_venv_bin }}/nova keypair-delete {{ demo_test_keyname }}" register: result until: result.rc == 0 retries: 5 delay: 10 - name: hqe-cinder-snapshot-stack | test-resources | Delete test user ignore_errors: true keystone_v3: login_token: "{{ keystone_admin_token }}" endpoint: "{{ keystone_admin_endpoint }}/v3" action: "delete_user" user_name: "{{ demo_test_user }}" user_domain_name: "{{ demo_test_domain }}" - name: hqe-cinder-snapshot-stack | test-resources | Delete test project ignore_errors: true keystone_v3: login_token: "{{ keystone_admin_token }}" endpoint: "{{ keystone_admin_endpoint }}/v3" action: "delete_project" project_name: "{{ demo_test_project }}" project_domain_name: "{{ demo_test_domain }}" 0707010000010A000081A40000000000000000000000015B730C500000015C000000000000000000000000000000000000006000000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-cinder-snapshot-stack-run/tasks/main.yml--- - include: test-resources.yml vars: ansible_python_interpreter: "{{ common_venv_python }}" - include: ../../hqe-common/tasks/common-run.yml vars: caller_role_path: "{{ role_path }}" ansible_python_interpreter: "{{ common_venv_python }}" - include: cleanup.yml vars: ansible_python_interpreter: "{{ common_venv_python }}" 0707010000010B000081A40000000000000000000000015B730C500000023E000000000000000000000000000000000000005F00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-cinder-snapshot-stack-run/tasks/run.yml--- # Run the test script # # The test log shall be placed in a folder where it's picked up by the CI jobs # # Ignore errors is require to make sure the following tasks are executed # We will need to store the exit code somewhere for Jenkins to pick it up (TBD) - set_fact: test_status: true - name: hqe-cinder-snapshot-stack | run | Run the tests command: "{{ cinder_snapshot_stack_work_folder }}/hqe-cinder-snapshot-stack-detach" register: test_output ignore_errors: True - name: hqe-cinder-snapshot-stack | run | Show test output debug: var=test_output 0707010000010C000081A40000000000000000000000015B730C5000000DC6000000000000000000000000000000000000006A00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-cinder-snapshot-stack-run/tasks/test-resources.yml--- # Setup the test account used for testing - name: hqe-cinder-snapshot-stack | test-resources | Create test project keystone_v3: action: "create_project" description: "Ephemeral test account" endpoint: "{{ keystone_admin_endpoint }}/v3" login_token: "{{ keystone_admin_token }}" project_domain_name: "{{ demo_test_domain }}" project_name: "{{ demo_test_project }}" - name: hqe-cinder-snapshot-stack | test-resources | Create test user keystone_v3: action: "create_user" description: "Ephemeral test account" endpoint: "{{ keystone_admin_endpoint }}/v3" login_token: "{{ keystone_admin_token }}" user_domain_name: "{{ demo_test_domain }}" user_name: "{{ demo_test_user }}" user_password: "{{ demo_test_password}}" - name: hqe-cinder-snapshot-stack | test-resources | Grant member role to Test User on Test Project keystone_v3: action: "grant_project_role" endpoint: "{{ keystone_admin_endpoint }}/v3" login_token: "{{ keystone_admin_token }}" project_domain_name: "{{ demo_test_domain }}" project_name: "{{ demo_test_project }}" role_name: "{{ demo_test_role }}" user_domain_name: "{{ demo_test_domain }}" user_name: "{{ demo_test_user }}" - name: hqe-cinder-snapshot-stack | test-resources | Deploy the configuration file template: > src=testrc.j2 dest="{{ cinder_snapshot_stack_work_folder }}/cinder-snapshot-stack.testrc" owner={{ hqe_user }} group={{ hqe_group }} mode=0600 - set_fact: css_creds: "{{ cinder_snapshot_stack_work_folder }}/cinder-snapshot-stack.testrc" # FIXME - Starting off with default rather than enhanced quotas # Grant enhanced snapshot quota to the user #- name: hqe-cinder-snapshot-stack | test-resources | Grant enhanced snapshot quota to Test User # shell: cinder quota-update --snapshots=20 {{ demo_test_domain }} # FIXME - Starting off with default rather than enhanced quotas # Grant enhanced volume quota to the user #- name: hqe-cinder-snapshot-stack | test-resources | Grant enhanced volume quota to Test User # shell: cinder quota-update --volumes=20 {{ demo_test_domain }} # test requires the following items - name: hqe-cinder-snapshot-stack | test-resources | Create router ignore_errors: true shell: ". {{ css_creds }}; {{ common_venv_bin }}/neutron router-create {{ demo_test_router }}" # not connecting router to ext-net as not needed. - name: hqe-cinder-snapshot-stack | test-resources | Create network ignore_errors: true shell: ". {{ css_creds }}; {{ common_venv_bin }}/neutron net-create {{ demo_test_network }}" - name: hqe-cinder-snapshot-stack | test-resources | Create subnet ignore_errors: true shell: ". {{ css_creds }}; {{ common_venv_bin }}/neutron subnet-create --name {{ demo_test_subnet }} {{ demo_test_network }} {{ demo_test_cidr }}" - name: hqe-cinder-snapshot-stack | test-resources | Connect subnet to router ignore_errors: true shell: ". {{ css_creds }}; {{ common_venv_bin }}/neutron router-interface-add {{ demo_test_router }} --subnet {{ demo_test_subnet }}" - name: hqe-cinder-snapshot-stack | test-resources | Create keyname ignore_errors: true shell: ". {{ css_creds }}; {{ common_venv_bin }}/nova keypair-add {{ demo_test_keyname }} > {{ demo_test_key_file }}" - name: hqe-cinder-snapshot-stack | test-resources | Verify image exists ignore_errors: true shell: ". {{ css_creds }}; {{ common_venv_bin }}/nova image-list | grep cirros | head -1 | awk '{print $2}'" register: demo_test_image_id 0707010000010D000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005B00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-cinder-snapshot-stack-run/templates0707010000010E000081A40000000000000000000000015B730C5000000171000000000000000000000000000000000000006500000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-cinder-snapshot-stack-run/templates/testrc.j2export OS_BASE_AUTH_URL={{ keystone_admin_endpoint }} export OS_AUTH_URL={{ keystone_admin_endpoint }} export OS_USERNAME={{ demo_test_user }} export OS_PASSWORD={{ demo_test_password }} export OS_PROJECT_NAME={{ demo_test_project }} export OS_CACERT={{ ca_bundle }} export OS_USER_DOMAIN_NAME={{ demo_test_domain }} export OS_PROJECT_DOMAIN_NAME={{ demo_test_domain }}0707010000010F000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005600000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-cinder-snapshot-stack-run/vars07070100000110000081A40000000000000000000000015B730C50000006C0000000000000000000000000000000000000005F00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-cinder-snapshot-stack-run/vars/main.yml--- # Filter variable must be defined in all roles to allow for # test filtering. The test filter file contains the data to # be able to filter which tests to be executed out of role, # stored in the format which is more suitable for the specific role. # Test filter files are expected under a run_filters folder. # The file name must match the tags, for it to be selected properly # when a specific test run is requested in ardana-qa-run.yml run_filter_file: parallel.txt cinder_snapshot_stack_code_folder: "{{ work_folder }}/{{ tests_git_repo }}/{{ hqe_cinder_snapshot_stack.deploy.tests_folder }}" cinder_snapshot_stack_work_folder: "{{ work_folder }}/{{ hqe_cinder_snapshot_stack.deploy.test_suite }}" # Test account setup for testing, and clean-ed up afterwards demo_random_uuid: "{{ ansible_date_time.epoch | to_uuid }}" demo_random_id: "{{ ['hqe_cinder-snapshot-stack', demo_random_uuid] | join('-') }}" demo_test_user: "{{ demo_random_id }}" demo_test_project: "{{ demo_random_id }}" demo_test_password: "{{ demo_random_id }}" demo_test_domain: Default demo_test_role: "{{ hqe_group_vars.keystone_member_role }}" # test resources demo_test_router: "{{ demo_random_id }}" demo_test_network: "{{ demo_random_id }}" demo_test_subnet: "{{ demo_random_id }}" demo_test_cidr: "192.168.1.0/24" demo_test_keyname: "{{ demo_random_id }}" demo_test_key_file: "{{ cinder_snapshot_stack_work_folder }}/{{ [demo_test_keyname, 'pem'] | join('.') }}" demo_test_az: "nova" demo_test_flavor: 2 demo_test_nvms: 4 # General keystone settings keystone_admin_token: "{{ hqe_token_vars.keystone_admin_token }}" keystone_admin_endpoint: "{{ osrc_vars.os_unversioned_auth_url }}" # os_auth_url os_auth_url: "{{ osrc_vars.os_auth_url }}" 07070100000111000041ED0000000000000000000000055B730C5000000000000000000000000000000000000000000000003E00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-common07070100000112000041ED0000000000000000000000055B730C5000000000000000000000000000000000000000000000004500000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-common-deploy07070100000113000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000004E00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-common-deploy/defaults07070100000114000081A40000000000000000000000015B730C5000000004000000000000000000000000000000000000005700000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-common-deploy/defaults/main.yml--- 07070100000115000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000004B00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-common-deploy/tasks07070100000116000081A40000000000000000000000015B730C5000000FE9000000000000000000000000000000000000005400000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-common-deploy/tasks/main.yml--- # Deployment prerequists for any test in ardana-qa-tests # It must be executed with sudo # NOTE(andreaf) Variable that depends on other ones cannot be defined in # vars/main.yml as they would not pick the correct value for the variables they # depend on in case they are overwritten via extra-vars - set_fact: code_folder: "{{ cache_folder | default(code_folder) }}" common_venv_folder: "{{ common_venv_root }}/{{ hqe_common.deploy.venv_folder }}" testhelper_code_folder: "{{ cache_folder | default(work_folder) }}/{{ tests_git_repo }}/tools/testhelper/" - include: ../../hqe-common/tasks/read-osrc.yml - include: ../../hqe-common/tasks/read-ardana-group-vars.yml - name: hqe-common-deploy | install | set os-specific variables include_vars: "{{ item }}" with_first_found: - "../vars/{{ ansible_os_family.split(' ')[0] | lower | replace('open', '') }}-{{ ansible_distribution_release }}.yml" - "../vars/{{ ansible_os_family.split(' ')[0] | lower | replace('open', '') }}.yml" # Install common test dependencies - name: hqe-common-deploy | install | Install binary dependencies for common venv become: yes become_user: root package: name={{ item }} state=present with_items: hqe_common_venv_packages when: build_venvs | bool - name: hqe-common-deploy | install | Update package cache install_package: cache: update when: not (build_venvs | bool) - name: hqe-common-deploy | install | Install the prebuilt env become: yes become_user: root install_package: name: ardana_qa_tests_example service: ardana_qa_tests_example state: present when: not (build_venvs | bool) - name: hqe-common-deploy | install | Upgrade pip pip: name: pip extra_args: --upgrade virtualenv: "{{ common_venv_folder }}" when: build_venvs | bool # Build_venvs is false in CI, this step is only executed outside of CI # In CI venvs are built from a stable pypi mirror, while outside they are # not, so we need to use a pinner requirements file instead. # Note that pinned requirements include extra packages as well which are not # OSRB approved and which cannot be used in CI because of that - name: hqe-common-deploy | install | Install requirements pip: requirements: "{{ work_folder }}/{{ tests_git_repo }}/{{ common_deploy_requirements_path }}/pinned-requirements.txt" virtualenv: "{{ common_venv_folder }}" extra_args: "--upgrade" when: build_venvs | bool - name: hqe-common-deploy | configure | Set ACLs of {{ common_venv_folder }} folder file: path: "{{ common_venv_folder }}" mode: 0755 recurse: no owner: "{{ hqe_user }}" group: "{{ hqe_group }}" when: build_venvs | bool # Define common venv variables - set_fact: common_venv_folder: "{{ common_venv_root }}/{{ hqe_common.deploy.venv_folder }}" common_venv_bin: "{{ common_venv_root }}/{{ hqe_common.deploy.venv_folder }}/bin" when: build_venvs | bool - set_fact: common_venv_folder: "{{ hqe_template.deploy.service_name | bin_dir | dirname }}" common_venv_bin: "{{ hqe_template.deploy.service_name | bin_dir }}" when: not (build_venvs | bool) - set_fact: common_venv_python: "{{ common_venv_bin }}/python" test_results_output: "{{ work_folder }}/{{ hqe_common.run.test_results_output }}" - name: hqe-common-deploy | main | Ensure {{ work_folder }}/bin file: path: "{{ work_folder}}/bin" state: directory mode: 0755 owner: "{{ hqe_user }}" group: "{{ hqe_group }}" - name: hqe-common-deploy | main | Deploy last2subunit template: src: ../../hqe-common/templates/last2subunit.j2 dest: "{{ work_folder}}/bin/last2subunit.sh" mode: 0750 owner: "{{ hqe_user }}" group: "{{ hqe_group }}" - name: hqe-common-deploy | token vars | Get cloud admin token args: executable: /bin/bash shell: | source "{{ osrc_vars.keystone_osrc_path }}" "{{ common_venv_bin }}/openstack" token issue | grep "| id" | awk '{print $4}' register: domain_scoped_token ignore_errors: true - include: ../../hqe-common/tasks/read-ardana-admin-token.yml 07070100000117000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000004A00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-common-deploy/vars07070100000118000081A40000000000000000000000015B730C5000000043000000000000000000000000000000000000005C00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-common-deploy/vars/debian-trusty.yml--- hqe_common_venv_packages: - python-virtualenv - python-dev 07070100000119000081A40000000000000000000000015B730C500000003C000000000000000000000000000000000000005500000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-common-deploy/vars/debian.yml--- hqe_common_venv_packages: - virtualenv - python-dev 0707010000011A000081A40000000000000000000000015B730C5000000728000000000000000000000000000000000000005300000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-common-deploy/vars/main.yml# # (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017-2018 SUSE LLC # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # --- hqe_user: "{{ hqe_common.deploy.hqe_user }}" hqe_group: "{{ hqe_common.deploy.hqe_group }}" code_folder: "{{ hqe_common.deploy.code_folder }}" work_folder: "{{ hqe_common.deploy.work_folder }}" ardana_user: "{{ hqe_common.deploy.ardana_user }}" test_driver_login: "{{ hqe_common.deploy.test_driver_login }}" default_test_region: "{{ hqe_common.deploy.default_test_region }}" tests_git_repo: "{{ hqe_common.deploy.tests_git_repo }}" # Note that inventory location cannot and shall not be overwritten via # extra vars as it depends on work_folder inventory_location: "{{ hqe_common.deploy.work_folder }}/{{ hqe_common.deploy.inventory_location }}" hlm_ansible_dir: "{{ hqe_common.deploy.hlm_ansible_dir }}" # Common venv - can be used by any role that doesn't need any # custom requirement common_venv_root: "{{ hqe_common.deploy.venv_folder_root }}" common_deploy_requirements_path: ardana-qa-tests/example/ # NOTE(andreaf) Download in AE1 is available at http://downloads.suse.provo.cloud/soapui/project/soapui/soapui/4.6.4/SoapUI-4.6.4-linux-bin.tar.gz soapui_download_url: http://10.84.144.252/downloads/SoapUI-4.6.4-linux-bin.tar.gz soapui_install_folder: SoapUI-4.6.4 0707010000011B000081A40000000000000000000000015B730C5000000045000000000000000000000000000000000000005300000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-common-deploy/vars/suse.yml--- hqe_common_venv_packages: - python-virtualenv - python-devel 0707010000011C000041ED0000000000000000000000055B730C5000000000000000000000000000000000000000000000004F00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-common-init-test-driver0707010000011D000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005500000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-common-init-test-driver/tasks0707010000011E000081A40000000000000000000000015B730C500000152E000000000000000000000000000000000000005E00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-common-init-test-driver/tasks/main.yml# # (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # --- # Deployment prerequists for any test in ardana-qa-tests # It must be executed with sudo - name: hqe-common-init-test-driver | main | set os-specific variables include_vars: "../vars/{{ ansible_os_family.split(' ')[0] | lower | replace('open', '') }}.yml" - name: hqe-common-init-test-driver | main | Create home directory if not present file: path: "{{ hqe_home }}" state: directory mode: 0755 # Create and configure a user used for tests - name: hqe-common-init-test-driver | main | Add group '{{ hqe_group }}' group: name: "{{ hqe_group }}" - name: hqe-common-init-test-driver | main | Add user '{{ hqe_user }}' user: name: "{{ hqe_user }}" group: "{{ hqe_group }}" #groups: "{{ test_driver_sudo_group }}" createhome: yes home: "{{ hqe_home }}" shell: /bin/bash - name: hqe-common-init-test-driver | main | Add user '{{ hqe_user }}' to sudoers.d lineinfile: dest: /etc/sudoers.d/{{ hqe_user }} state: present create: yes line: '{{ hqe_user }} ALL=(ALL) NOPASSWD: ALL' # Just in case the home directory was already existing but not owned by # {{ hqe_user }}, we force ownership here - name: hqe-common-init-test-driver | main | Set attributes of home directory file: path: "{{ hqe_home }}" owner: "{{ hqe_user }}" group: "{{ hqe_group }}" state: directory mode: 0755 # We make the work folder globabally readable so it's easy to fetch test results and logs - name: hqe-common-init-test-driver | main | Create work folder if not present file: path: "{{ work_folder }}" owner: "{{ hqe_user }}" group: "{{ hqe_group }}" state: directory mode: 0777 - name: hqe-common-init-test-driver | main | Create venv root directory if not present file: path: "{{ common_venv_root }}" owner: "{{ hqe_user }}" group: "{{ hqe_group }}" state: directory mode: 0755 - name: hqe-common-init-test-driver | main | Create SSH directory file: path: "{{ hqe_home }}/.ssh" mode: 0755 state: directory recurse: yes owner: "{{ hqe_user }}" group: "{{ hqe_group }}" # Pull deployer ssh setup into {{ hqe_user }} so that we gain paswordless ssh # cluster to the entire cluster with it - name: hqe-common-init-test-driver | main | Pull deployer ssh configs in copy: src={{ test_driver_pull_folder }}/{{ item }} dest={{ hqe_home }}/.ssh/ with_items: - id_rsa - known_hosts - name: hqe-common-init-test-driver | main | Change group permissions of id_rsa file: path: "{{ hqe_home }}/.ssh/id_rsa" mode: 0400 owner: "{{ hqe_user }}" group: "{{ hqe_group }}" - name: hqe-common-init-test-driver | main | Change group permissions of known_hosts file: path: "{{ hqe_home }}/.ssh/known_hosts" mode: 0600 owner: "{{ hqe_user }}" group: "{{ hqe_group }}" - name: hqe-common-init-test-driver | main | Create a subfolder to hold HOS ca-certificates file: path: "{{ testdriver_cert_path }}" state: directory - name: hqe-common-init-test-driver | main | Copy ca-certificates copy: src={{ item }} dest={{ testdriver_cert_path }}/{{ item | basename }} register: copy_certificates with_fileglob: - "{{ test_driver_pull_folder }}/*.crt" - name: hqe-common-init-test-driver | main | Update ca-certificates shell: update-ca-certificates --fresh become: yes when: copy_certificates.changed - name: hqe-common-init-test-driver | main | Pull deployer data copy: src={{ item }} dest={{ work_folder }}/ with_fileglob: - "{{ test_driver_pull_folder }}/*" ignore_errors: true - name: hqe-common-init-test-driver | main | Copy verb_hosts into test inventory fetch: src: "{{ work_folder }}/verb_hosts_{{ groups['hqa_deployer'][0] }}" dest: "{{ code_folder }}/ardana-qa-ansible/hosts/verb_hosts_{{ groups['hqa_deployer'][0] }}" flat: yes - name: hqe-common-init-test-driver | main | Make a copy of test repository in the work folder synchronize: src: "{{ code_folder }}/{{ tests_git_repo }}" dest: "{{ work_folder }}/" rsync_path: "sudo rsync" - name: hqe-common-init-test-driver | main | Ensure ownership to {{ hqe_user }} for pulled data file: path: "{{ work_folder }}" owner: "{{ hqe_user }}" group: "{{ hqe_group }}" recurse: yes - name: hqe-common-init-test-driver | main | Clean-up pull folder file: path: "{{ test_driver_pull_folder }}" state: absent - include: ../../hqe-common/tasks/read-ardana-group-vars.yml - name: hqe-common-init-test-driver | main | Include VIP ips in no_proxy set_fact: init_extra_exclude_proxy: "{{ init_extra_exclude_proxy }},{{ hqe_group_vars.keystone_private_vip_host }},{{ hqe_group_vars.keystone_admin_vip_host }}" - include: proxy-setup.yml when: init_setup_proxy 0707010000011F000081A40000000000000000000000015B730C50000004DE000000000000000000000000000000000000006500000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-common-init-test-driver/tasks/proxy-setup.yml# # (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # # Override / extend proxy settings from the deployer to fit the test driver --- - debug: msg={{ groups['hqa_deployer'][0] }} - name: hqe-common-init-test-driver | proxy-setup | Get original no_proxy shell: | . {{ work_folder }}/environment_{{ groups['hqa_deployer'][0] }} echo $no_proxy register: _init_no_proxy - set_fact: init_no_proxy: "{{ _init_no_proxy.stdout_lines }}" - name: hqe-common-init-test-driver | proxy-setup | Fix /etc/environment if needed template: src: environment.j2 dest: "{{ work_folder }}/environment_{{ groups['hqa_deployer'][0] }}" force: yes 07070100000120000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005900000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-common-init-test-driver/templates07070100000121000081A40000000000000000000000015B730C50000000B1000000000000000000000000000000000000006800000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-common-init-test-driver/templates/environment.j2no_proxy={{ init_no_proxy }},{{ init_extra_exclude_proxy }} NO_PROXY={{ init_no_proxy }},{{ init_extra_exclude_proxy }} http_proxy={{ init_proxy }} https_proxy={{ init_proxy }} 07070100000122000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005400000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-common-init-test-driver/vars07070100000123000081A40000000000000000000000015B730C5000000042000000000000000000000000000000000000005F00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-common-init-test-driver/vars/debian.yml--- testdriver_cert_path: "/usr/local/share/ca-certificates/hos/" 07070100000124000081A40000000000000000000000015B730C50000005A0000000000000000000000000000000000000005D00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-common-init-test-driver/vars/main.yml# # (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # --- hqe_user: "{{ hqe_common.deploy.hqe_user }}" hqe_group: "{{ hqe_common.deploy.hqe_group }}" hqe_home: "{{ hqe_common.deploy.work_folder }}" work_folder: "{{ hqe_common.deploy.work_folder }}" code_folder: "{{ hqe_common.deploy.code_folder }}" tests_git_repo: "{{ hqe_common.deploy.tests_git_repo }}" common_venv_root: "{{ hqe_common.deploy.venv_folder_root }}" test_driver_login: "{{ hqe_common.deploy.test_driver_login }}" test_driver_sudo_group: sudo # We only have one host in the 'deployer' group, so it's safe to pick [0] test_driver_pull_folder: "{{ hostvars[groups['hqa_deployer'][0]]['pull_folder'] }}" default_test_region: "{{ hqe_common.deploy.default_test_region }}" init_setup_proxy: no init_proxy: http://proxy.houston.hpecorp.net:8080 init_extra_exclude_proxy: myhelion.test 07070100000125000081A40000000000000000000000015B730C500000003A000000000000000000000000000000000000005D00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-common-init-test-driver/vars/suse.yml--- testdriver_cert_path: "/usr/share/pki/trust/anchors/" 07070100000126000041ED0000000000000000000000045B730C5000000000000000000000000000000000000000000000005100000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-common-pull-from-deployer07070100000127000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005700000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-common-pull-from-deployer/tasks07070100000128000081A40000000000000000000000015B730C50000012F1000000000000000000000000000000000000006000000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-common-pull-from-deployer/tasks/main.yml # (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017-2018 SUSE LLC # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # --- # Deployment prerequists for any test in ardana-qa-tests - set_fact: code_folder: "{{ cache_folder | default(code_folder) }}" # Create a temporary folder to put things to be fetched outside of ansible # The syntax for mktemp is different on linux and macosx - name: hqe-common-pull-from-deployer | main | Create pull folder shell: mktemp -d 2>/dev/null || mktemp -d -t tmp register: mktemp delegate_to: localhost # Define "pull_folder" - set_fact: pull_folder={{ mktemp.stdout }} - name: hqe-common-pull-from-deployer | install | set os-specific variables include_vars: "../vars/{{ ansible_os_family.split(' ')[0] | lower | replace('open', '') }}.yml" - name: hqe-common-pull-from-deployer | main | Discover HLM modules shell: ls -1 {{ ardana_ansible_root }}/library/ register: hlm_modules - name: hqe-common-pull-from-deployer | main | Pull in modules from HLM fetch: > src="{{ ardana_ansible_root }}/library/{{ item }}" dest="{{ code_folder }}/ardana-qa-ansible/library/{{ item }}" flat=yes with_items: "{{ hlm_modules.stdout_lines }}" - name: hqe-common-pull-from-deployer | main | Pull in filters from HLM fetch: > src="{{ ardana_ansible_root }}/filter_plugins/{{ item }}" dest="{{ code_folder }}/ardana-qa-ansible/filter_plugins/{{ item }}" flat=yes with_items: - "packager_filters.py" - "item.py" - name: hqe-common-pull-from-deployer | main | Pull in action_plugins from HLM fetch: > src="{{ ardana_ansible_root }}/action_plugins/{{ item }}" dest="{{ code_folder }}/ardana-qa-ansible/action_plugins/{{ item }}" flat=yes with_items: - "package.py" - name: hqe-common-pull-from-deployer | main | Get group_vars file names shell: ls {{ ardana_ansible_root | default('~/scratch/ansible/next/ardana/ansible') }}/group_vars/ register: hqe_common_pull_from_deployer_group_vars_path # We need to fail on missing, as otherwise the node will not be setup as a # functional test_driver. Note that this may fail if the cloud model does not # match the one defined on the target deployer - name: hqe-common-pull-from-deployer | main | Copy group_vars file fetch: > src={{ ardana_ansible_root | default('~/scratch/ansible/next/ardana/ansible') }}/group_vars/{{ item }} dest="{{ pull_folder }}/group_vars_{{ item }}_{{ inventory_hostname }}" flat=yes fail_on_missing=yes with_items: hqe_common_pull_from_deployer_group_vars_path.stdout_lines - name: hqe-common-pull-from-deployer | main | Copy verb_hosts file fetch: > src={{ ardana_ansible_root | default('~/scratch/ansible/next/ardana/ansible') }}/hosts/verb_hosts dest="{{ pull_folder }}/verb_hosts_{{ inventory_hostname }}" flat=yes fail_on_missing=yes - name: hqe-common-pull-from-deployer | main | Copy keystone.osrc file fetch: > src={{ ardana_home_folder }}/keystone.osrc dest="{{ pull_folder }}/keystone_{{ inventory_hostname }}.osrc" flat=yes fail_on_missing=yes - name: hqe-common-pull-from-deployer | main | Copy service.osrc file fetch: > src={{ ardana_home_folder }}/service.osrc dest="{{ pull_folder }}/service_{{ inventory_hostname }}.osrc" flat=yes fail_on_missing=yes - name: hqe-common-pull-from-deployer | main | Get certificate list shell: ls {{ certs_location }} register: cert_files - name: hqe-common-pull-from-deployer | main | Copy ca-certificates file fetch: > src="{{ item }}" dest="{{ pull_folder }}/{{ inventory_hostname }}_{{ item | basename }}" flat=yes fail_on_missing=yes with_items: cert_files.stdout_lines - name: hqe-common-pull-from-deployer | main | Copy SSH key file fetch: > src={{ ardana_home_folder }}/.ssh/id_rsa dest={{ pull_folder }}/id_rsa flat=yes fail_on_missing=yes - name: hqe-common-pull-from-deployer | main | Copy known hosts file fetch: > src={{ ardana_home_folder }}/.ssh/known_hosts dest={{ pull_folder }}/known_hosts flat=yes fail_on_missing=yes - name: hqe-common-pull-from-deployer | main | Pull /etc/environment in fetch: src: "/etc/environment" dest: "{{ pull_folder }}/environment_{{ inventory_hostname }}" flat: yes fail_on_missing: yes 07070100000129000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005600000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-common-pull-from-deployer/vars0707010000012A000081A40000000000000000000000015B730C500000003D000000000000000000000000000000000000006100000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-common-pull-from-deployer/vars/debian.yml--- certs_location: "/usr/local/share/ca-certificates/*.crt" 0707010000012B000081A40000000000000000000000015B730C50000000DB000000000000000000000000000000000000005F00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-common-pull-from-deployer/vars/main.yml--- ardana_user: "{{ hqe_common.deploy.ardana_user }}" test_driver_login: "{{ hqe_common.deploy.test_driver_login }}" code_folder: "{{ hqe_common.deploy.code_folder }}" ardana_home_folder: "{{ lookup('env','HOME') }}" 0707010000012C000081A40000000000000000000000015B730C5000000026000000000000000000000000000000000000005F00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-common-pull-from-deployer/vars/suse.yml--- certs_location: "{{ ca_bundle }}" 0707010000012D000041ED0000000000000000000000055B730C5000000000000000000000000000000000000000000000004200000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-common-run0707010000012E000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000004B00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-common-run/defaults0707010000012F000081A40000000000000000000000015B730C5000000004000000000000000000000000000000000000005400000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-common-run/defaults/main.yml--- 07070100000130000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000004800000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-common-run/tasks07070100000131000081A40000000000000000000000015B730C50000005EE000000000000000000000000000000000000005100000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-common-run/tasks/main.yml--- - action: setup - set_fact: code_folder: "{{ cache_folder | default(code_folder) }}" - include: ../../hqe-common/tasks/read-osrc.yml - include: ../../hqe-common/tasks/read-ardana-group-vars.yml - set_fact: test_status: true # Define common venv variables - set_fact: common_venv_folder: "{{ common_venv_root }}/{{ hqe_common.deploy.venv_folder }}" common_venv_bin: "{{ common_venv_root }}/{{ hqe_common.deploy.venv_folder }}/bin" when: build_venvs | bool - set_fact: common_venv_folder: "{{ hqe_template.deploy.service_name | bin_dir | dirname }}" common_venv_bin: "{{ hqe_template.deploy.service_name | bin_dir }}" when: not (build_venvs | bool) - set_fact: common_venv_python: "{{ common_venv_bin }}/python" - set_fact: test_suite_results_output: "{{ work_folder }}/{{ hqe_common.run.test_suite_results_output }}" test_results_output: "{{ work_folder }}/{{ hqe_common.run.test_results_output }}" - name: hqe-common-run | main | Clean-up test-suite level result file before run file: path: "{{ item }}" state: absent with_items: - "{{ test_suite_results_output}}" - "{{ test_results_output}}" - name: hqe-common-run | token vars | Get cloud admin token args: executable: /bin/bash shell: | source "{{ osrc_vars.keystone_osrc_path }}" "{{ common_venv_bin }}/openstack" token issue | grep "| id" | awk '{print $4}' register: domain_scoped_token ignore_errors: true - include: ../../hqe-common/tasks/read-ardana-admin-token.yml 07070100000132000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000004700000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-common-run/vars07070100000133000081A40000000000000000000000015B730C50000006EB000000000000000000000000000000000000005000000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-common-run/vars/main.yml# # (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # --- # Common vars, shared by all roles # NOTE: common vars are not mean to be overwritten by roles. In case that # would happen to be necessary, a different var must be used, with a name # scoped to the role, to avoid the specific role affecting behavior of # other roles hqe_user: "{{ hqe_common.deploy.hqe_user }}" hqe_group: "{{ hqe_common.deploy.hqe_group }}" code_folder: "{{ hqe_common.deploy.code_folder }}" work_folder: "{{ hqe_common.deploy.work_folder }}" ardana_user: "{{ hqe_common.deploy.ardana_user }}" test_driver_login: "{{ hqe_common.deploy.test_driver_login }}" default_test_region: "{{ hqe_common.deploy.default_test_region }}" tests_git_repo: "{{ hqe_common.deploy.tests_git_repo }}" # Note that inventory location cannot and shall not be overwritten via # extra vars as it depends on work_folder inventory_location: "{{ hqe_common.deploy.work_folder }}/{{ hqe_common.deploy.inventory_location }}" hlm_ansible_dir: "{{ hqe_common.deploy.hlm_ansible_dir }}" # Common venv - can be used by any role that doesn't need any # custom requirement common_venv_root: "{{ hqe_common.deploy.venv_folder_root }}" 07070100000134000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000004400000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-common/tasks07070100000135000081A40000000000000000000000015B730C50000006A4000000000000000000000000000000000000005300000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-common/tasks/common-run.yml# Common run task, tracks test duration and result in subunit --- - set_fact: _test_suite: "{{ caller_role_path | regex_replace('^.*/hqe-(.*)-run$', '\\\\1') }}" # This code sets the start time of the test suite - name: hqe-{{ test_suite_name }} | common-run | start recording test result test_tracker: name: hos-qa.{{ _test_suite }}.run run_filter: "{{ run_filter_file | basename | regex_replace('\\.[^.]+$', '') }}" output: "{{ test_suite_results_output }}" - include: "{{ caller_role_path }}/tasks/run.yml" # This registers failed test, unless suite is explicitly marked and non voting - name: hqe-{{ test_suite_name }} | run | Set test status set_fact: test_status: false when: ( test_output.rc != 0 ) and ( {{ _test_suite | regex_replace('-', '') }}_voting | default(true) ) # This code sets the final result of the test suite and records stop time - name: hqe-{{ test_suite_name }} | run | stop recording test result test_tracker: name: hos-qa.{{ _test_suite }}.run run_filter: "{{ run_filter_file | basename | regex_replace('\\.[^.]+$', '') }}" output: "{{ test_suite_results_output }}" status_rc: "{{ test_output.rc }}" # NOTE(andreaf) We calculate here the role specific work folder based on # {{ role_path }}. This may be not ideal, but it saves passing an extra # role specific variable - name: hqe-{{ test_suite_name }} | common-run | run last2subunit script command: "{{ work_folder }}/bin/last2subunit.sh {{ work_folder }}/{{ _test_suite }} {{ work_folder }}/{{ _test_suite }}.subunit" register: last2subunit_output - name: hqe-{{ test_suite_name }} | common-run | show script output debug: var: last2subunit_output.stdout 07070100000136000081A40000000000000000000000015B730C500000011B000000000000000000000000000000000000004D00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-common/tasks/main.yml# The common role is used as a role only to setup the environment. # The other tasks in here are included on demand where needed. # NOTE(andreaf) This task cannot be included directly from the play because # tags on task includes are broken in ansible - include: read-environment.yml07070100000137000081A40000000000000000000000015B730C5000000084000000000000000000000000000000000000006000000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-common/tasks/read-ardana-admin-token.yml--- - set_fact: hqe_token_vars: keystone_admin_token: "{{ domain_scoped_token.stdout }}" - debug: var=hqe_token_vars 07070100000138000081A40000000000000000000000015B730C5000003090000000000000000000000000000000000000005F00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-common/tasks/read-ardana-group-vars.yml# # (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017-2018 SUSE LLC # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # --- - name: hqe-common | read-ardana-group-vars | Get CP details of a region in the cluster shell: | cat {{ work_folder }}/group_vars_all_{{ groups['hqa_deployer'][0] }} register: group_var_all_result - name: hqe-common | read-ardana-group-vars | Set local variable to hold group_vars/all set_fact: _ardana_group_vars_all: "{{ group_var_all_result.stdout | from_yaml }}" no_log: true - name: hqe-common | read-ardana-group-vars | Get the region name list set_fact: region_names: "{{ _ardana_group_vars_all.region_topology.regions.keys() }}" - name: hqe-common | read-ardana-group-vars | Set region to the one available in single region model set_fact: default_test_region: "{{ region_names[0] }}" when: (_ardana_group_vars_all.region_topology.regions.keys() | length) == 1 - name: hqe-common | read-ardana-group-vars | Fail when region not found fail: msg: "Invalid region name set for testing. Please check default_test_region" when: default_test_region not in region_names - name: hqe-common | read-ardana-group-vars | Get HOS services list set_fact: _hos_services_list: "{{ _ardana_group_vars_all.region_by_cp_by_service | selectattr('region', 'equalto', default_test_region ) | map(attribute='service_component') | unique | list }}" - name: hqe-common | read-ardana-group-vars | Get control planes for the given region set_fact: region_control_planes: "{{ _ardana_group_vars_all.region_by_cp_by_service | selectattr('region', 'equalto', default_test_region ) | map(attribute='control_plane') | unique | list }}" # Debug statement added to get to know the control planes that are chosen to get the group vars - debug: var=region_control_planes - name: hqe-common | read-ardana-group-vars | Read the region files of QE interest shell: | cat {{ work_folder }}/group_vars_*{{ item }}_{{ groups['hqa_deployer'][0] }} register: group_var_list with_items: "{{ region_control_planes }}" - name: hqe-common | read-ardana-group-vars | Set local variable to hold group_vars set_fact: _ardana_group_vars: "{{ item.stdout | from_yaml }}" no_log: true with_items: "{{ group_var_list.results }}" register: _ardana_group_var_list_result - name: hqe-common | read-ardana-group-vars | Build hlm group_vars list set_fact: _ardana_group_vars: "{{ _ardana_group_var_list_result.results | map(attribute='ansible_facts._ardana_group_vars') | list }}" - name: hqe-common | read-ardana-group-vars | Set available hos services set_fact: hos_services: # Services available for test cinder_available: "{{ ( 'cinder-api' in _hos_services_list ) }}" neutron_available: "{{ ( 'neutron-server' in _hos_services_list ) }}" glance_available: "{{ ( 'glance-api' in _hos_services_list ) }}" swift_available: "{{ ( 'swift-proxy' in _hos_services_list ) }}" nova_available: "{{ ( 'nova-api' in _hos_services_list ) }}" heat_available: "{{ ( 'heat-api' in _hos_services_list ) }}" ceilometer_available: "{{ ( 'ceilometer-api' in _hos_services_list ) }}" horizon_available: "{{ ( 'horizon' in _hos_services_list ) }}" sahara_available: false ironic_available: "{{ ( 'ironic-api' in _hos_services_list ) }}" trove_available: false zaqar_available: false centralized_logging_available: "{{ ( 'logging-server' in _hos_services_list ) }}" barbican_available: "{{ ( 'barbican-api' in _hos_services_list ) }}" monasca_available: "{{ ( 'monasca-api' in _hos_services_list ) }}" - name: hqe-common | read-ardana-group-vars | Build a dictionary to hold variables of interest to QE set_fact: hqe_group_vars_key_api: keystone_member_role: "{{ item.KEY_API.vars.keystone_member_role }}" keystone_vip_protocol: "{{ item.KEY_API.advertises.vips.admin[0].protocol }}" keystone_admin_password: "{{ item.KEY_API.vars.keystone_admin_pwd }}" keystone_admin_vip_host: "{{ item.KEY_API.advertises.vips.admin[0].ip_address }}" keystone_private_vip_host: "{{ item.KEY_API.advertises.vips.private[0].ip_address }}" keystone_endpoint: "{{ item.KEY_API.advertises.vips.admin[0].protocol }}://{{ item.KEY_API.advertises.vips.admin[0].ip_address }}" keystone_endpoint_port: "{{ item.KEY_API.advertises.vips.private[0].port }}" keystone_admin_endpoint: "{{ item.KEY_API.advertises.vips.admin[0].protocol }}://{{ item.KEY_API.advertises.vips.admin[0].ip_address }}" keystone_admin_endpoint_port: "{{ item.KEY_API.advertises.vips.admin[0].port }}" keystone_noauth_admin_token: "{{ item.KEY_API.vars.keystone_admin_token }}" keystone_admin_user: "{{ item.KEY_API.vars.keystone_admin_user }}" keystone_default_domain: "{{ item.KEY_API.vars.keystone_default_domain }}" keystone_admin_url: "{{ item.KEY_API.advertises.vips.admin[0].url}}" keystone_private_url: "{{ item.KEY_API.advertises.vips.private[0].url}}" keystone_public_url: "{{ item.KEY_API.advertises.vips.public[0].url}}" when: item.KEY_API is defined with_items: "{{ _ardana_group_vars }}" no_log: true - set_fact: hqe_group_vars_barbican: km_url: "{{ item.KEYMGR_API.advertises.vips.admin[0].url }}" barbican_servers: "{{ item.FND_CLU.has_proxy.KEYMGR_API.servers }}" when: item.KEYMGR_API is defined and item.FND_CLU.has_proxy.KEYMGR_API is defined with_items: "{{ _ardana_group_vars }}" no_log: true - set_fact: hqe_group_vars_fnd_clu: keystone_observer_host1: "{{ item.FND_CLU.has_proxy.KEY_API.servers[0] }}" keystone_observer_host2: "{{ item.FND_CLU.has_proxy.KEY_API.servers[1] | default(item.FND_CLU.has_proxy.KEY_API.servers[0]) }}" keystone_observer_host3: "{{ item.FND_CLU.has_proxy.KEY_API.servers[2] | default(item.FND_CLU.has_proxy.KEY_API.servers[0]) }}" keystone_ccn_node2: "{{ item.FND_CLU.has_proxy.KEY_API.servers[1] | default(item.FND_CLU.has_proxy.KEY_API.servers[0]) }}" when: (item.FND_CLU is defined) and (item.FND_CLU.has_proxy.KEY_API is defined) with_items: "{{ _ardana_group_vars }}" no_log: true - set_fact: hqe_group_vars_mon_api_fnd_clu: monasca_cluster1: "{{ item.FND_CLU.has_proxy.MON_API.servers[0] }}" monasca_cluster2: "{{ item.FND_CLU.has_proxy.MON_API.servers[1] | default(item.FND_CLU.has_proxy.MON_API.servers[0]) }}" monasca_cluster3: "{{ item.FND_CLU.has_proxy.MON_API.servers[2] | default(item.FND_CLU.has_proxy.MON_API.servers[0]) }}" when: ( hos_services.monasca_available | bool ) and (item.FND_CLU is defined ) and (item.FND_CLU.has_proxy.MON_API is defined) with_items: "{{ _ardana_group_vars }}" no_log: true - set_fact: hqe_group_vars_cei_cmn: keystone_ceilometer_user: "{{ item.CEI_CMN.consumes_KEY_API.vars.keystone_ceilometer_user }}" keystone_ceilometer_password: "{{ item.CEI_CMN.consumes_KEY_API.vars.keystone_ceilometer_password }}" ceilometer_mysql_admin_user: "{{ item.CEI_CMN.consumes_FND_MDB.vars.accounts.ceilometer.username }}" ceilometer_mysql_admin_password: "{{ item.CEI_CMN.consumes_FND_MDB.vars.accounts.ceilometer.password }}" when: item.CEI_CMN is defined with_items: "{{ _ardana_group_vars }}" no_log: true - set_fact: hqe_group_vars_mon_api: monasca_endpoint: "{{ hqe_group_vars_key_api.keystone_vip_protocol }}://{{ item.MON_API.advertises.vips.private[0].ip_address }}" monasca_port: "{{ item.MON_API.advertises.vips.private[0].port }}" monasca_user: "{{ item.MON_API.consumes_KEY_API.vars.keystone_monasca_user }}" monasca_password: "{{ item.MON_API.consumes_KEY_API.vars.keystone_monasca_password }}" when: hos_services.monasca_available | bool and (item.MON_API is defined ) with_items: "{{ _ardana_group_vars }}" no_log: true - set_fact: hqe_group_vars_nov_api: nova_admin_url: "{{ item.NOV_API.advertises.vips.admin[0].url}}" nova_private_url: "{{ item.NOV_API.advertises.vips.private[0].url}}" nova_public_url: "{{ item.NOV_API.advertises.vips.public[0].url}}" when: item.NOV_API is defined with_items: "{{ _ardana_group_vars }}" no_log: true - set_fact: hqe_group_vars_gla_api: glance_admin_url: "{{ item.GLA_API.advertises.vips.admin[0].url}}" glance_private_url: "{{ item.GLA_API.advertises.vips.private[0].url}}" glance_public_url: "{{ item.GLA_API.advertises.vips.public[0].url}}" when: item.GLA_API is defined with_items: "{{ _ardana_group_vars }}" no_log: true - set_fact: hqe_group_vars_ops_lmtgt: controller_network_type: "{{ item.OPS_LMTGT.consumes_OPS_LM.members.bootp[0].network }}" no_log: true when: item.OPS_LMTGT is defined with_items: "{{ _ardana_group_vars }}" - set_fact: hqe_group_vars_logging: logging_kibana_password: "{{ item.LOG_SVR.vars.logging_kibana_password }}" es_servers: "{{ item.FND_CLU.has_proxy.LOG_SVR.servers }}" es_url: "{{ item.LOG_SVR.advertises.vips.private[0].url }}" hlm_regions: "{{ region_names }}" when: item.LOG_SVR is defined and item.FND_CLU.has_proxy.LOG_SVR is defined with_items: "{{ _ardana_group_vars }}" no_log: true - name: hqe-common | read-ardana-group-vars | Read the cluster files of QE interest shell: | cat {{ work_folder }}/group_vars_*{{ item }}-*_{{ groups['hqa_deployer'][0] }} register: cluster_group_var_list with_items: "{{ region_control_planes }}" - name: hqe-common | read-ardana-group-vars | Set local variable to hold group_cluster_vars set_fact: _ardana_group_cluster_vars: "{{ item.stdout | from_yaml }}" with_items: "{{ cluster_group_var_list.results }}" register: _ardana_group_cluster_var_list_result no_log: true - name: hqe-common | read-ardana-group-vars | Build hlm group_cluster_vars list set_fact: _ardana_group_cluster_vars: "{{ _ardana_group_cluster_var_list_result.results | map(attribute='ansible_facts._ardana_group_cluster_vars') | list }}" no_log: true - name: hqe-common | read-ardana-group-vars | Load Swift rings specs set_fact: hqe_group_vars_swift: rings_specs: "{{ item.config_data.SWF.control_plane_rings }}" when: item.config_data.SWF is defined with_items: "{{ _ardana_group_cluster_vars }}" no_log: true - set_fact: hqe_group_vars_others: config_file: "{{ work_folder }}/group_vars_{{ groups['hqa_deployer'][0] }}" test_region_ext_net: "ext-net" when: not _ardana_group_vars_all.cp_tempest_data - set_fact: hqe_group_vars_others: config_file: "{{ work_folder }}/group_vars_{{ groups['hqa_deployer'][0] }}" test_region_ext_net: "{{ (_ardana_group_vars_all.cp_tempest_data[default_test_region] | item('external_networks', default=['ext-net'])) | first }}" when: _ardana_group_vars_all.cp_tempest_data is defined - set_fact: hqe_group_vars: "{{ hos_services | update(hqe_group_vars_mon_api_fnd_clu | default({})) | update(hqe_group_vars_key_api | default({})) | update(hqe_group_vars_barbican | default({})) | update(hqe_group_vars_logging | default({})) | update(hqe_group_vars_fnd_clu | default({})) | update(hqe_group_vars_cei_cmn | default({})) | update(hqe_group_vars_mon_api | default({})) | update(hqe_group_vars_nov_api | default({}) ) | update(hqe_group_vars_gla_api | default({}) ) | update(hqe_group_vars_ops_lmtgt | default({})) | update(hqe_group_vars_others | default({})) | update(hqe_group_vars_swift | default({})) }}" no_log: true - debug: var=hqe_group_vars 07070100000139000081A40000000000000000000000015B730C5000000509000000000000000000000000000000000000005900000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-common/tasks/read-environment.yml# # (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # --- - name: hqe-common | read-environment | Read environment into a dictionary shell: | . environment_{{ groups['hqa_deployer'][0] }} cat <<EOF { "no_proxy": "$no_proxy", "http_proxy": "$http_proxy", "https_proxy": "$https_proxy", "NO_PROXY": "$no_proxy", "HTTP_PROXY": "$http_proxy", "HTTPS_PROXY": "$https_proxy", "REQUESTS_CA_BUNDLE": "{{ ca_bundle }}" } EOF args: chdir: "{{ work_folder }}" executable: "/bin/bash" register: _environment - set_fact: test_driver_env: "{{ _environment.stdout | replace('\n', '') | replace('EOF', '') | from_json}}" 0707010000013A0000A1FF0000000000000000000000016421F2720000001B000000000000000000000000000000000000005D00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-common/tasks/read-hlm-admin-token.ymlread-ardana-admin-token.yml0707010000013B0000A1FF0000000000000000000000016421F2720000001A000000000000000000000000000000000000005C00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-common/tasks/read-hlm-group-vars.ymlread-ardana-group-vars.yml0707010000013C000081A40000000000000000000000015B730C500000091E000000000000000000000000000000000000005200000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-common/tasks/read-osrc.yml# # (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # --- - name: hqe-common | read-osrc | Create keystone and service _all file shell: sed -e 's/^#[ ]*export/export/' -e 's/unset/#unset/' {{ item }}_{{ groups['hqa_deployer'][0] }}.osrc > {{ item }}_{{ groups['hqa_deployer'][0] }}_all.osrc args: chdir: "{{ work_folder }}" with_items: - service - keystone - name: hqe-common | read-osrc | Read keystone.osrc into a dictionary shell: | . keystone_{{ groups['hqa_deployer'][0] }}_all.osrc . service_{{ groups['hqa_deployer'][0] }}_all.osrc OS_SERVICE_OSRC_FILE="{{ work_folder }}/service_{{ groups['hqa_deployer'][0] }}.osrc" OS_KEYSTONE_OSRC_FILE="{{ work_folder }}/keystone_{{ groups['hqa_deployer'][0] }}.osrc" OS_UNVERSIONED_AUTH_URL=`echo $OS_AUTH_URL | egrep -o 'http[s]*:\/\/[^\/]*'` cat <<EOF { "os_username": "$OS_USERNAME", "os_password": "$OS_PASSWORD", "os_identity_api_version": "$OS_IDENTITY_API_VERSION", "os_user_domain_name": "$OS_USER_DOMAIN_NAME", "os_domain_name": "$OS_DOMAIN_NAME", "os_auth_url": "$OS_AUTH_URL", "os_interface": "$OS_INTERFACE", "os_ca_cert": "$OS_CACERT", "os_project_name": "$OS_PROJECT_NAME", "os_project_domain_name": "$OS_PROJECT_DOMAIN_NAME", "os_url": "$OS_URL", "os_unversioned_auth_url": "$OS_UNVERSIONED_AUTH_URL", "service_osrc_path": "$OS_SERVICE_OSRC_FILE", "keystone_osrc_path": "$OS_KEYSTONE_OSRC_FILE" } EOF args: chdir: "{{ work_folder }}" executable: "/bin/bash" register: _keystone_osrc_variables - set_fact: osrc_vars: "{{ _keystone_osrc_variables.stdout | replace('\n', '') | replace('EOF', '') | from_json}}" 0707010000013D000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000004800000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-common/templates0707010000013E000081A40000000000000000000000015B730C500000046F000000000000000000000000000000000000005800000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-common/templates/last2subunit.j2#!/bin/bash # # (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # Append test results to a subunit file, in case a testr repo is found. # Usage: [script] [work_folder] [dedicated_subunit] WORK_FOLDER=$1 DEDICATED_SUBUNIT_OUTPUT=$2 SUBUNIT_OUTPUT={{ test_results_output }} TESTR={{ common_venv_bin }}/testr if [ ! -d $WORK_FOLDER ]; then echo Work folder not found - nothing to be done fi cd $WORK_FOLDER if [ -f *.subunit ]; then # If subunit file(s) are found use them # Append results to shared file echo Appending results from $WORK_FOLDER to $SUBUNIT_OUTPUT cat *.subunit >> $SUBUNIT_OUTPUT # Create a test suite specific file as well cat *.subunit > $DEDICATED_SUBUNIT_OUTPUT elif [ -d .testrepository ]; then # If testr repo is found use it # Append results to shared file echo Appending results from $WORK_FOLDER to $SUBUNIT_OUTPUT $TESTR last --subunit >> $SUBUNIT_OUTPUT # Create a test suite specific file as well $TESTR last --subunit > $DEDICATED_SUBUNIT_OUTPUT else echo No subunit data found in $WORK_FOLDER fi 0707010000013F000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000004300000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-common/vars07070100000140000081A40000000000000000000000015B730C50000000A4000000000000000000000000000000000000004C00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-common/vars/main.yml--- work_folder: "{{ hqe_common.deploy.work_folder }}" hqe_user: "{{ hqe_common.deploy.hqe_user }}" test_driver_login: "{{ hqe_common.deploy.test_driver_login }}" 07070100000141000041ED0000000000000000000000065B730C5000000000000000000000000000000000000000000000005400000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-heat-integrationtests-deploy07070100000142000041ED0000000000000000000000035B730C5000000000000000000000000000000000000000000000005A00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-heat-integrationtests-deploy/files07070100000143000081A40000000000000000000000015B730C50000001BC000000000000000000000000000000000000006600000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-heat-integrationtests-deploy/files/.testr.conf[DEFAULT] test_command= PYTHON=$(echo ${PYTHON:-python} | sed 's/--source heat//g') START_AT=${TESTR_START_DIR:-.} ${PYTHON} -m subunit.run discover -s $START_AT -t . ${OS_TEST_PATH:-./heat_integrationtests} $LISTOPT $IDOPTION if [ "$START_AT" = "." ]; then for plugin in $START_AT/contrib/*; do ${PYTHON} -m subunit.run discover -s $plugin $LISTOPT $IDOPTION; done; fi test_id_option=--load-list $IDFILE test_list_option=--list07070100000144000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000006600000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-heat-integrationtests-deploy/files/run_filters07070100000145000081A40000000000000000000000015B730C5000004008000000000000000000000000000000000000006D00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-heat-integrationtests-deploy/files/run_filters/ci.txt# Known test failures on scenario tests # - HEAT-149 # - HEAT-160 # -heat_integrationtests\.scenario\.test_server_cfn_init\.CfnInitIntegrationTest\.test_server_cfn_init -heat_integrationtests\.scenario\.test_autoscaling_lb\.AutoscalingLoadBalancerTest\.test_autoscaling_loadbalancer_neutron -heat_integrationtests\.scenario\.test_ceilometer_alarm\.CeilometerAlarmTest\.test_alarm -heat_integrationtests\.scenario\.test_volumes\.VolumeBackupRestoreIntegrationTest\.test_cinder_volume_create_backup_restore -heat_integrationtests\.scenario\.test_server_software_config\.SoftwareConfigIntegrationTest\.test_server_software_config # List of functional tests # # stack action ABANDON & ADOPT disabled # +heat_integrationtests\.functional\.test_conditional_exposure\.RoleBasedExposureTest\.test_non_admin_forbidden_create_flavors -heat_integrationtests\.functional\.test_aws_stack\.AwsStackTest\.test_nested_stack_adopt_ok -heat_integrationtests\.functional\.test_aws_stack\.AwsStackTest\.test_nested_stack_adopt_fail -heat_integrationtests\.functional\.test_resource_group\.ResourceGroupAdoptTest\.test_adopt -heat_integrationtests\.functional\.test_template_resource\.TemplateResourceAdoptTest\.test_adopt -heat_integrationtests\.functional\.test_template_resource\.TemplateResourceAdoptTest\.test_abandon # # HEAT-159 # -heat_integrationtests\.functional\.test_notifications\.NotificationTest\.test_asg_notifications -heat_integrationtests\.functional\.test_notifications\.NotificationTest\.test_basic_notifications # # HEAT-149 # -heat_integrationtests\.functional\.test_software_config\.ParallelDeploymentsTest\.test_deployments_metadata # # failing to check heat config from the hard-coded location "/etc/heat/heat.conf" # -heat_integrationtests\.functional\.test_reload_on_sighup\.ReloadOnSighupTest\.test_api_reload_on_sighup -heat_integrationtests\.functional\.test_reload_on_sighup\.ReloadOnSighupTest\.test_api_cfn_reload_on_sighup -heat_integrationtests\.functional\.test_reload_on_sighup\.ReloadOnSighupTest\.test_api_cloudwatch_on_sighup # # failing to use the hard-coded region "RegionOne"/"DARKHOLE" # -heat_integrationtests\.functional\.test_remote_stack\.RemoteStackTest\.test_stack_create -heat_integrationtests\.functional\.test_remote_stack\.RemoteStackTest\.test_stack_resource_validation_fail -heat_integrationtests\.functional\.test_remote_stack\.RemoteStackTest\.test_stack_update -heat_integrationtests\.functional\.test_remote_stack\.RemoteStackTest\.test_stack_suspend_resume -heat_integrationtests\.functional\.test_remote_stack\.RemoteStackTest\.test_remote_stack_alone -heat_integrationtests\.functional\.test_remote_stack\.RemoteStackTest\.test_stack_create_bad_region # # HEAT-174 # -heat_integrationtests\.functional\.test_stack_tags\.StackTagTest\.test_hidden_stack # # HEAT-175 # -heat_integrationtests\.functional\.test_encryption_vol_type\.EncryptionVolTypeTest\.test_create_update +heat_integrationtests\.functional\.test_preview\.StackPreviewTest\.test_nested_pass +heat_integrationtests\.functional\.test_conditional_exposure\.ServiceBasedExposureTest\.test_unavailable_resources_not_created +heat_integrationtests\.functional\.test_conditional_exposure\.ServiceBasedExposureTest\.test_unavailable_resources_not_listed +heat_integrationtests\.functional\.test_default_parameters\.DefaultParametersTest\.test_defaults(none) +heat_integrationtests\.functional\.test_heat_autoscaling\.HeatAutoscalingTest\.test_path_attrs +heat_integrationtests\.functional\.test_resource_group\.ResourceGroupTest\.test_create +heat_integrationtests\.functional\.test_create_update\.UpdateStackTest\.test_stack_update_alias_changes +heat_integrationtests\.functional\.test_instance_group\.InstanceGroupBasicTest\.test_basic_create_works +heat_integrationtests\.functional\.test_template_resource\.NestedAttributesTest\.test_transparent_ref -heat_integrationtests\.functional\.test_aws_stack\.AwsStackTest\.test_nested_stack_create +heat_integrationtests\.functional\.test_template_resource\.ValidateFacadeTest\.test_missing_output -heat_integrationtests\.functional\.test_aws_stack\.AwsStackTest\.test_nested_stack_create_with_timeout +heat_integrationtests\.functional\.test_template_resource\.ValidateFacadeTest\.test_missing_param +heat_integrationtests\.functional\.test_heat_autoscaling\.AutoScalingGroupUpdateWithNoChanges\.test_as_group_update_without_resource_changes +heat_integrationtests\.functional\.test_create_update\.UpdateStackTest\.test_stack_update_from_failed +heat_integrationtests\.functional\.test_create_update\.UpdateStackTest\.test_stack_update_add_remove -heat_integrationtests\.functional\.test_aws_stack\.AwsStackTest\.test_nested_stack_suspend_resume +heat_integrationtests\.functional\.test_default_parameters\.DefaultParametersTest\.test_defaults(default) +heat_integrationtests\.functional\.test_hooks\.HooksTest\.test_hook_pre_create +heat_integrationtests\.functional\.test_autoscaling\.AutoscalingGroupBasicTest\.test_create_instance_error_causes_group_error +heat_integrationtests\.functional\.test_autoscaling\.AutoscalingGroupBasicTest\.test_update_group_replace +heat_integrationtests\.functional\.test_autoscaling\.AutoScalingSignalTest\.test_signal_during_suspend +heat_integrationtests\.functional\.test_autoscaling\.AutoscalingGroupBasicTest\.test_size_updates_work +heat_integrationtests\.functional\.test_hooks\.HooksTest\.test_hook_pre_update_in_place +heat_integrationtests\.functional\.test_resource_group\.ResourceGroupTest\.test_update_increase_decrease_count +heat_integrationtests\.functional\.test_autoscaling\.AutoscalingGroupBasicTest\.test_group_suspend_resume +heat_integrationtests\.functional\.test_default_parameters\.DefaultParametersTest\.test_defaults(both) +heat_integrationtests\.functional\.test_create_update_neutron_port\.UpdatePortTest\.test_stack_update_replace_with_ip -heat_integrationtests\.functional\.test_aws_stack\.AwsStackTest\.test_nested_stack_update +heat_integrationtests\.functional\.test_autoscaling\.AutoScalingSignalTest\.test_scaling_meta_update +heat_integrationtests\.functional\.test_autoscaling\.AutoscalingGroupBasicTest\.test_update_instance_error_causes_group_error +heat_integrationtests\.functional\.test_create_update\.UpdateStackTest\.test_stack_update_provider +heat_integrationtests\.functional\.test_default_parameters\.DefaultParametersTest\.test_defaults(no_temp_default) +heat_integrationtests\.functional\.test_hooks\.HooksTest\.test_hook_pre_create_nested +heat_integrationtests\.functional\.test_template_resource\.TemplateResourceTest\.test_no_infinite_recursion +heat_integrationtests\.functional\.test_autoscaling\.AutoscalingGroupBasicTest\.test_basic_create_works +heat_integrationtests\.functional\.test_create_update\.UpdateStackTest\.test_stack_in_place_update +heat_integrationtests\.functional\.test_create_update\.UpdateStackTest\.test_stack_update_alias_type +heat_integrationtests\.functional\.test_autoscaling\.AutoscalingGroupUpdatePolicyTest\.test_instance_group_update_replace_huge_batch_size +heat_integrationtests\.functional\.test_hooks\.HooksTest\.test_hook_pre_update_replace +heat_integrationtests\.functional\.test_create_update_neutron_port\.UpdatePortTest\.test_stack_update_in_place_remove_ip +heat_integrationtests\.functional\.test_template_validate\.StackTemplateValidateTest\.test_template_validate_basic +heat_integrationtests\.functional\.test_template_resource\.TemplateResourceErrorMessageTest\.test_fail +heat_integrationtests\.functional\.test_autoscaling\.AutoScalingSignalTest\.test_signal_with_policy_update +heat_integrationtests\.functional\.test_heat_autoscaling\.HeatAutoscalingTest\.test_path_attrs_nested +heat_integrationtests\.functional\.test_create_update_neutron_port\.UpdatePortTest\.test_stack_update_replace_with_ip_rollback +heat_integrationtests\.functional\.test_create_update\.UpdateStackTest\.test_stack_update_rollback +heat_integrationtests\.functional\.test_instance_group\.InstanceGroupUpdatePolicyTest\.test_instance_group_update_no_replace +heat_integrationtests\.functional\.test_create_update\.UpdateStackTest\.test_stack_update_provider_type +heat_integrationtests\.functional\.test_preview\.StackPreviewTest\.test_basic_fail +heat_integrationtests\.functional\.test_instance_group\.InstanceGroupBasicTest\.test_update_instance_error_causes_group_error +heat_integrationtests\.functional\.test_create_update_neutron_subnet\.UpdateSubnetTest\.test_update_to_no_allocation_pools +heat_integrationtests\.functional\.test_create_update\.UpdateStackTest\.test_stack_update_nochange +heat_integrationtests\.functional\.test_template_resource\.TemplateResourceUpdateFailedTest\.test_update_on_failed_create +heat_integrationtests\.functional\.test_template_validate\.StackTemplateValidateTest\.test_template_validate_override_default +heat_integrationtests\.functional\.test_autoscaling\.AutoscalingGroupUpdatePolicyTest\.test_instance_group_update_no_replace +heat_integrationtests\.functional\.test_template_resource\.TemplateResourceTest\.test_nested_env +heat_integrationtests\.functional\.test_template_validate\.StackTemplateValidateTest\.test_template_validate_fail_version +heat_integrationtests\.functional\.test_instance_group\.InstanceGroupBasicTest\.test_update_group_replace +heat_integrationtests\.functional\.test_instance_group\.InstanceGroupUpdatePolicyTest\.test_instance_group_update_replace_huge_min_in_service +heat_integrationtests\.functional\.test_resource_group\.ResourceGroupTest\.test_update_nochange +heat_integrationtests\.functional\.test_template_validate\.StackTemplateValidateTest\.test_template_validate_nested_on +heat_integrationtests\.functional\.test_hooks\.HooksTest\.test_hook_pre_update_nochange +heat_integrationtests\.functional\.test_resource_group\.ResourceGroupTest\.test_resource_group_zero_novalidate +heat_integrationtests\.functional\.test_autoscaling\.AutoscalingGroupUpdatePolicyTest\.test_instance_group_update_no_replace_with_adjusted_capacity +heat_integrationtests\.functional\.test_conditional_exposure\.RoleBasedExposureTest\.test_forbidden_resource_not_listed +heat_integrationtests\.functional\.test_create_update_neutron_subnet\.UpdateSubnetTest\.test_update_allocation_pools_to_empty +heat_integrationtests\.functional\.test_create_update_neutron_port\.UpdatePortTest\.test_stack_update_replace_no_ip +heat_integrationtests\.functional\.test_instance_group\.InstanceGroupBasicTest\.test_size_updates_work +heat_integrationtests\.functional\.test_instance_group\.InstanceGroupUpdatePolicyTest\.test_instance_group_update_replace_with_adjusted_capacity +heat_integrationtests\.functional\.test_resource_group\.ResourceGroupTest\.test_update_nochange_resource_needs_update +heat_integrationtests\.functional\.test_instance_group\.InstanceGroupUpdatePolicyTest\.test_instance_group_update_no_replace_with_adjusted_capacity +heat_integrationtests\.functional\.test_template_resource\.TemplateResourceSuspendResumeTest\.test_suspend_resume +heat_integrationtests\.functional\.test_create_update\.UpdateStackTest\.test_stack_update_provider_group +heat_integrationtests\.functional\.test_template_resource\.NestedAttributesTest\.test_nested_attributes +heat_integrationtests\.functional\.test_autoscaling\.AutoscalingGroupUpdatePolicyTest\.test_instance_group_update_replace +heat_integrationtests\.functional\.test_resource_group\.ResourceGroupTest\.test_update_removal_policies +heat_integrationtests\.functional\.test_resource_group\.ResourceGroupErrorResourceTest\.test_fail +heat_integrationtests\.functional\.test_template_validate\.StackTemplateValidateTest\.test_template_validate_basic_required_param +heat_integrationtests\.functional\.test_instance_group\.InstanceGroupUpdatePolicyTest\.test_instance_group_update_replace +heat_integrationtests\.functional\.test_template_resource\.NestedAttributesTest\.test_stack_ref +heat_integrationtests\.functional\.test_preview\.StackPreviewTest\.test_basic_pass +heat_integrationtests\.functional\.test_create_update\.CreateStackTest\.test_create_rollback +heat_integrationtests\.functional\.test_resource_group\.ResourceGroupTest\.test_props_update +heat_integrationtests\.functional\.test_template_resource\.TemplateResourceTest\.test_nested_stack_delete_then_delete_parent_stack +heat_integrationtests\.functional\.test_template_validate\.StackTemplateValidateTest\.test_template_validate_nested_off +heat_integrationtests\.functional\.test_instance_group\.InstanceGroupBasicTest\.test_create_instance_error_causes_group_error +heat_integrationtests\.functional\.test_validation\.StackValidationTest\.test_stack_validate_provider_references_parent_resource +heat_integrationtests\.functional\.test_template_validate\.StackTemplateValidateTest\.test_template_validate_nested_on_multiple +heat_integrationtests\.functional\.test_instance_group\.InstanceGroupUpdatePolicyTest\.test_instance_group_update_replace_huge_batch_size +heat_integrationtests\.functional\.test_autoscaling\.AutoscalingGroupUpdatePolicyTest\.test_instance_group_update_replace_huge_min_in_service +heat_integrationtests\.functional\.test_template_resource\.TemplateResourceUpdateTest\.test_template_resource_update_template_schema(no_changes) +heat_integrationtests\.functional\.test_autoscaling\.AutoscalingGroupUpdatePolicyTest\.test_instance_group_update_replace_with_adjusted_capacity +heat_integrationtests\.functional\.test_hooks\.HooksTest\.test_hook_pre_create_wildcard +heat_integrationtests\.functional\.test_create_update_neutron_port\.UpdatePortTest\.test_stack_update_replace_with_ip_after_failed_update +heat_integrationtests\.functional\.test_template_validate\.StackTemplateValidateTest\.test_template_validate_parameter_groups +heat_integrationtests\.functional\.test_create_update\.UpdateStackTest\.test_stack_update_replace +heat_integrationtests\.functional\.test_template_resource\.TemplateResourceUpdateTest\.test_template_resource_update_template_schema(main_tmpl_change) +heat_integrationtests\.functional\.test_swiftsignal_update\.SwiftSignalHandleUpdateTest\.test_stack_update_same_template_replace_no_url +heat_integrationtests\.functional\.test_create_update\.UpdateStackTest\.test_stack_update_with_new_env +heat_integrationtests\.functional\.test_template_resource\.TemplateResourceCheckTest\.test_check +heat_integrationtests\.functional\.test_create_update\.UpdateStackTest\.test_stack_update_with_replacing_userdata +heat_integrationtests\.functional\.test_template_validate\.StackTemplateValidateTest\.test_template_validate_override_none +heat_integrationtests\.functional\.test_template_resource\.TemplateResourceUpdateTest\.test_template_resource_update_template_schema(provider_change) +heat_integrationtests\.functional\.test_create_update_neutron_subnet\.UpdateSubnetTest\.test_update_allocation_pools +heat_integrationtests\.functional\.test_stack_tags\.StackTagTest\.test_stack_tag +heat_integrationtests\.functional\.test_template_resource\.TemplateResourceUpdateTest\.test_template_resource_update_template_schema(provider_props_change) +heat_integrationtests\.functional\.test_template_resource\.TemplateResourceTest\.test_change_in_file_path +heat_integrationtests\.functional\.test_template_resource\.TemplateResourceUpdateTest\.test_template_resource_update_template_schema(provider_props_add) +heat_integrationtests\.functional\.test_encrypted_parameter\.EncryptedParametersTest\.test_db_encryption +heat_integrationtests\.functional\.test_resource_group\.ResourceGroupTestNullParams\.test_create_pass_zero_parameter(string_empty) +heat_integrationtests\.functional\.test_template_resource\.TemplateResourceUpdateTest\.test_template_resource_update_template_schema(provider_props_remove) +heat_integrationtests\.functional\.test_resource_group\.ResourceGroupTestNullParams\.test_create_pass_zero_parameter(boolean_false) +heat_integrationtests\.functional\.test_template_resource\.TemplateResourceUpdateTest\.test_template_resource_update_template_schema(provider_attr_change) +heat_integrationtests\.functional\.test_resource_group\.ResourceGroupTestNullParams\.test_create_pass_zero_parameter(number_zero) +heat_integrationtests\.functional\.test_resource_group\.ResourceGroupTestNullParams\.test_create_pass_zero_parameter(comma_delimited_list) +heat_integrationtests\.functional\.test_resource_group\.ResourceGroupTestNullParams\.test_create_pass_zero_parameter(json_empty) 07070100000146000081A40000000000000000000000015B730C5000004008000000000000000000000000000000000000008000000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-heat-integrationtests-deploy/files/run_filters/heat-integrationtests.txt# Known test failures on scenario tests # - HEAT-149 # - HEAT-160 # -heat_integrationtests\.scenario\.test_server_cfn_init\.CfnInitIntegrationTest\.test_server_cfn_init -heat_integrationtests\.scenario\.test_autoscaling_lb\.AutoscalingLoadBalancerTest\.test_autoscaling_loadbalancer_neutron -heat_integrationtests\.scenario\.test_ceilometer_alarm\.CeilometerAlarmTest\.test_alarm -heat_integrationtests\.scenario\.test_volumes\.VolumeBackupRestoreIntegrationTest\.test_cinder_volume_create_backup_restore -heat_integrationtests\.scenario\.test_server_software_config\.SoftwareConfigIntegrationTest\.test_server_software_config # List of functional tests # # stack action ABANDON & ADOPT disabled # +heat_integrationtests\.functional\.test_conditional_exposure\.RoleBasedExposureTest\.test_non_admin_forbidden_create_flavors -heat_integrationtests\.functional\.test_aws_stack\.AwsStackTest\.test_nested_stack_adopt_ok -heat_integrationtests\.functional\.test_aws_stack\.AwsStackTest\.test_nested_stack_adopt_fail -heat_integrationtests\.functional\.test_resource_group\.ResourceGroupAdoptTest\.test_adopt -heat_integrationtests\.functional\.test_template_resource\.TemplateResourceAdoptTest\.test_adopt -heat_integrationtests\.functional\.test_template_resource\.TemplateResourceAdoptTest\.test_abandon # # HEAT-159 # -heat_integrationtests\.functional\.test_notifications\.NotificationTest\.test_asg_notifications -heat_integrationtests\.functional\.test_notifications\.NotificationTest\.test_basic_notifications # # HEAT-149 # -heat_integrationtests\.functional\.test_software_config\.ParallelDeploymentsTest\.test_deployments_metadata # # failing to check heat config from the hard-coded location "/etc/heat/heat.conf" # -heat_integrationtests\.functional\.test_reload_on_sighup\.ReloadOnSighupTest\.test_api_reload_on_sighup -heat_integrationtests\.functional\.test_reload_on_sighup\.ReloadOnSighupTest\.test_api_cfn_reload_on_sighup -heat_integrationtests\.functional\.test_reload_on_sighup\.ReloadOnSighupTest\.test_api_cloudwatch_on_sighup # # failing to use the hard-coded region "RegionOne"/"DARKHOLE" # -heat_integrationtests\.functional\.test_remote_stack\.RemoteStackTest\.test_stack_create -heat_integrationtests\.functional\.test_remote_stack\.RemoteStackTest\.test_stack_resource_validation_fail -heat_integrationtests\.functional\.test_remote_stack\.RemoteStackTest\.test_stack_update -heat_integrationtests\.functional\.test_remote_stack\.RemoteStackTest\.test_stack_suspend_resume -heat_integrationtests\.functional\.test_remote_stack\.RemoteStackTest\.test_remote_stack_alone -heat_integrationtests\.functional\.test_remote_stack\.RemoteStackTest\.test_stack_create_bad_region # # HEAT-174 # -heat_integrationtests\.functional\.test_stack_tags\.StackTagTest\.test_hidden_stack # # HEAT-175 # -heat_integrationtests\.functional\.test_encryption_vol_type\.EncryptionVolTypeTest\.test_create_update +heat_integrationtests\.functional\.test_preview\.StackPreviewTest\.test_nested_pass +heat_integrationtests\.functional\.test_conditional_exposure\.ServiceBasedExposureTest\.test_unavailable_resources_not_created +heat_integrationtests\.functional\.test_conditional_exposure\.ServiceBasedExposureTest\.test_unavailable_resources_not_listed +heat_integrationtests\.functional\.test_default_parameters\.DefaultParametersTest\.test_defaults(none) +heat_integrationtests\.functional\.test_heat_autoscaling\.HeatAutoscalingTest\.test_path_attrs +heat_integrationtests\.functional\.test_resource_group\.ResourceGroupTest\.test_create +heat_integrationtests\.functional\.test_create_update\.UpdateStackTest\.test_stack_update_alias_changes +heat_integrationtests\.functional\.test_instance_group\.InstanceGroupBasicTest\.test_basic_create_works +heat_integrationtests\.functional\.test_template_resource\.NestedAttributesTest\.test_transparent_ref -heat_integrationtests\.functional\.test_aws_stack\.AwsStackTest\.test_nested_stack_create +heat_integrationtests\.functional\.test_template_resource\.ValidateFacadeTest\.test_missing_output -heat_integrationtests\.functional\.test_aws_stack\.AwsStackTest\.test_nested_stack_create_with_timeout +heat_integrationtests\.functional\.test_template_resource\.ValidateFacadeTest\.test_missing_param +heat_integrationtests\.functional\.test_heat_autoscaling\.AutoScalingGroupUpdateWithNoChanges\.test_as_group_update_without_resource_changes +heat_integrationtests\.functional\.test_create_update\.UpdateStackTest\.test_stack_update_from_failed +heat_integrationtests\.functional\.test_create_update\.UpdateStackTest\.test_stack_update_add_remove -heat_integrationtests\.functional\.test_aws_stack\.AwsStackTest\.test_nested_stack_suspend_resume +heat_integrationtests\.functional\.test_default_parameters\.DefaultParametersTest\.test_defaults(default) +heat_integrationtests\.functional\.test_hooks\.HooksTest\.test_hook_pre_create +heat_integrationtests\.functional\.test_autoscaling\.AutoscalingGroupBasicTest\.test_create_instance_error_causes_group_error +heat_integrationtests\.functional\.test_autoscaling\.AutoscalingGroupBasicTest\.test_update_group_replace +heat_integrationtests\.functional\.test_autoscaling\.AutoScalingSignalTest\.test_signal_during_suspend +heat_integrationtests\.functional\.test_autoscaling\.AutoscalingGroupBasicTest\.test_size_updates_work +heat_integrationtests\.functional\.test_hooks\.HooksTest\.test_hook_pre_update_in_place +heat_integrationtests\.functional\.test_resource_group\.ResourceGroupTest\.test_update_increase_decrease_count +heat_integrationtests\.functional\.test_autoscaling\.AutoscalingGroupBasicTest\.test_group_suspend_resume +heat_integrationtests\.functional\.test_default_parameters\.DefaultParametersTest\.test_defaults(both) +heat_integrationtests\.functional\.test_create_update_neutron_port\.UpdatePortTest\.test_stack_update_replace_with_ip -heat_integrationtests\.functional\.test_aws_stack\.AwsStackTest\.test_nested_stack_update +heat_integrationtests\.functional\.test_autoscaling\.AutoScalingSignalTest\.test_scaling_meta_update +heat_integrationtests\.functional\.test_autoscaling\.AutoscalingGroupBasicTest\.test_update_instance_error_causes_group_error +heat_integrationtests\.functional\.test_create_update\.UpdateStackTest\.test_stack_update_provider +heat_integrationtests\.functional\.test_default_parameters\.DefaultParametersTest\.test_defaults(no_temp_default) +heat_integrationtests\.functional\.test_hooks\.HooksTest\.test_hook_pre_create_nested +heat_integrationtests\.functional\.test_template_resource\.TemplateResourceTest\.test_no_infinite_recursion +heat_integrationtests\.functional\.test_autoscaling\.AutoscalingGroupBasicTest\.test_basic_create_works +heat_integrationtests\.functional\.test_create_update\.UpdateStackTest\.test_stack_in_place_update +heat_integrationtests\.functional\.test_create_update\.UpdateStackTest\.test_stack_update_alias_type +heat_integrationtests\.functional\.test_autoscaling\.AutoscalingGroupUpdatePolicyTest\.test_instance_group_update_replace_huge_batch_size +heat_integrationtests\.functional\.test_hooks\.HooksTest\.test_hook_pre_update_replace +heat_integrationtests\.functional\.test_create_update_neutron_port\.UpdatePortTest\.test_stack_update_in_place_remove_ip +heat_integrationtests\.functional\.test_template_validate\.StackTemplateValidateTest\.test_template_validate_basic +heat_integrationtests\.functional\.test_template_resource\.TemplateResourceErrorMessageTest\.test_fail +heat_integrationtests\.functional\.test_autoscaling\.AutoScalingSignalTest\.test_signal_with_policy_update +heat_integrationtests\.functional\.test_heat_autoscaling\.HeatAutoscalingTest\.test_path_attrs_nested +heat_integrationtests\.functional\.test_create_update_neutron_port\.UpdatePortTest\.test_stack_update_replace_with_ip_rollback +heat_integrationtests\.functional\.test_create_update\.UpdateStackTest\.test_stack_update_rollback +heat_integrationtests\.functional\.test_instance_group\.InstanceGroupUpdatePolicyTest\.test_instance_group_update_no_replace +heat_integrationtests\.functional\.test_create_update\.UpdateStackTest\.test_stack_update_provider_type +heat_integrationtests\.functional\.test_preview\.StackPreviewTest\.test_basic_fail +heat_integrationtests\.functional\.test_instance_group\.InstanceGroupBasicTest\.test_update_instance_error_causes_group_error +heat_integrationtests\.functional\.test_create_update_neutron_subnet\.UpdateSubnetTest\.test_update_to_no_allocation_pools +heat_integrationtests\.functional\.test_create_update\.UpdateStackTest\.test_stack_update_nochange +heat_integrationtests\.functional\.test_template_resource\.TemplateResourceUpdateFailedTest\.test_update_on_failed_create +heat_integrationtests\.functional\.test_template_validate\.StackTemplateValidateTest\.test_template_validate_override_default +heat_integrationtests\.functional\.test_autoscaling\.AutoscalingGroupUpdatePolicyTest\.test_instance_group_update_no_replace +heat_integrationtests\.functional\.test_template_resource\.TemplateResourceTest\.test_nested_env +heat_integrationtests\.functional\.test_template_validate\.StackTemplateValidateTest\.test_template_validate_fail_version +heat_integrationtests\.functional\.test_instance_group\.InstanceGroupBasicTest\.test_update_group_replace +heat_integrationtests\.functional\.test_instance_group\.InstanceGroupUpdatePolicyTest\.test_instance_group_update_replace_huge_min_in_service +heat_integrationtests\.functional\.test_resource_group\.ResourceGroupTest\.test_update_nochange +heat_integrationtests\.functional\.test_template_validate\.StackTemplateValidateTest\.test_template_validate_nested_on +heat_integrationtests\.functional\.test_hooks\.HooksTest\.test_hook_pre_update_nochange +heat_integrationtests\.functional\.test_resource_group\.ResourceGroupTest\.test_resource_group_zero_novalidate +heat_integrationtests\.functional\.test_autoscaling\.AutoscalingGroupUpdatePolicyTest\.test_instance_group_update_no_replace_with_adjusted_capacity +heat_integrationtests\.functional\.test_conditional_exposure\.RoleBasedExposureTest\.test_forbidden_resource_not_listed +heat_integrationtests\.functional\.test_create_update_neutron_subnet\.UpdateSubnetTest\.test_update_allocation_pools_to_empty +heat_integrationtests\.functional\.test_create_update_neutron_port\.UpdatePortTest\.test_stack_update_replace_no_ip +heat_integrationtests\.functional\.test_instance_group\.InstanceGroupBasicTest\.test_size_updates_work +heat_integrationtests\.functional\.test_instance_group\.InstanceGroupUpdatePolicyTest\.test_instance_group_update_replace_with_adjusted_capacity +heat_integrationtests\.functional\.test_resource_group\.ResourceGroupTest\.test_update_nochange_resource_needs_update +heat_integrationtests\.functional\.test_instance_group\.InstanceGroupUpdatePolicyTest\.test_instance_group_update_no_replace_with_adjusted_capacity +heat_integrationtests\.functional\.test_template_resource\.TemplateResourceSuspendResumeTest\.test_suspend_resume +heat_integrationtests\.functional\.test_create_update\.UpdateStackTest\.test_stack_update_provider_group +heat_integrationtests\.functional\.test_template_resource\.NestedAttributesTest\.test_nested_attributes +heat_integrationtests\.functional\.test_autoscaling\.AutoscalingGroupUpdatePolicyTest\.test_instance_group_update_replace +heat_integrationtests\.functional\.test_resource_group\.ResourceGroupTest\.test_update_removal_policies +heat_integrationtests\.functional\.test_resource_group\.ResourceGroupErrorResourceTest\.test_fail +heat_integrationtests\.functional\.test_template_validate\.StackTemplateValidateTest\.test_template_validate_basic_required_param +heat_integrationtests\.functional\.test_instance_group\.InstanceGroupUpdatePolicyTest\.test_instance_group_update_replace +heat_integrationtests\.functional\.test_template_resource\.NestedAttributesTest\.test_stack_ref +heat_integrationtests\.functional\.test_preview\.StackPreviewTest\.test_basic_pass +heat_integrationtests\.functional\.test_create_update\.CreateStackTest\.test_create_rollback +heat_integrationtests\.functional\.test_resource_group\.ResourceGroupTest\.test_props_update +heat_integrationtests\.functional\.test_template_resource\.TemplateResourceTest\.test_nested_stack_delete_then_delete_parent_stack +heat_integrationtests\.functional\.test_template_validate\.StackTemplateValidateTest\.test_template_validate_nested_off +heat_integrationtests\.functional\.test_instance_group\.InstanceGroupBasicTest\.test_create_instance_error_causes_group_error +heat_integrationtests\.functional\.test_validation\.StackValidationTest\.test_stack_validate_provider_references_parent_resource +heat_integrationtests\.functional\.test_template_validate\.StackTemplateValidateTest\.test_template_validate_nested_on_multiple +heat_integrationtests\.functional\.test_instance_group\.InstanceGroupUpdatePolicyTest\.test_instance_group_update_replace_huge_batch_size +heat_integrationtests\.functional\.test_autoscaling\.AutoscalingGroupUpdatePolicyTest\.test_instance_group_update_replace_huge_min_in_service +heat_integrationtests\.functional\.test_template_resource\.TemplateResourceUpdateTest\.test_template_resource_update_template_schema(no_changes) +heat_integrationtests\.functional\.test_autoscaling\.AutoscalingGroupUpdatePolicyTest\.test_instance_group_update_replace_with_adjusted_capacity +heat_integrationtests\.functional\.test_hooks\.HooksTest\.test_hook_pre_create_wildcard +heat_integrationtests\.functional\.test_create_update_neutron_port\.UpdatePortTest\.test_stack_update_replace_with_ip_after_failed_update +heat_integrationtests\.functional\.test_template_validate\.StackTemplateValidateTest\.test_template_validate_parameter_groups +heat_integrationtests\.functional\.test_create_update\.UpdateStackTest\.test_stack_update_replace +heat_integrationtests\.functional\.test_template_resource\.TemplateResourceUpdateTest\.test_template_resource_update_template_schema(main_tmpl_change) +heat_integrationtests\.functional\.test_swiftsignal_update\.SwiftSignalHandleUpdateTest\.test_stack_update_same_template_replace_no_url +heat_integrationtests\.functional\.test_create_update\.UpdateStackTest\.test_stack_update_with_new_env +heat_integrationtests\.functional\.test_template_resource\.TemplateResourceCheckTest\.test_check +heat_integrationtests\.functional\.test_create_update\.UpdateStackTest\.test_stack_update_with_replacing_userdata +heat_integrationtests\.functional\.test_template_validate\.StackTemplateValidateTest\.test_template_validate_override_none +heat_integrationtests\.functional\.test_template_resource\.TemplateResourceUpdateTest\.test_template_resource_update_template_schema(provider_change) +heat_integrationtests\.functional\.test_create_update_neutron_subnet\.UpdateSubnetTest\.test_update_allocation_pools +heat_integrationtests\.functional\.test_stack_tags\.StackTagTest\.test_stack_tag +heat_integrationtests\.functional\.test_template_resource\.TemplateResourceUpdateTest\.test_template_resource_update_template_schema(provider_props_change) +heat_integrationtests\.functional\.test_template_resource\.TemplateResourceTest\.test_change_in_file_path +heat_integrationtests\.functional\.test_template_resource\.TemplateResourceUpdateTest\.test_template_resource_update_template_schema(provider_props_add) +heat_integrationtests\.functional\.test_encrypted_parameter\.EncryptedParametersTest\.test_db_encryption +heat_integrationtests\.functional\.test_resource_group\.ResourceGroupTestNullParams\.test_create_pass_zero_parameter(string_empty) +heat_integrationtests\.functional\.test_template_resource\.TemplateResourceUpdateTest\.test_template_resource_update_template_schema(provider_props_remove) +heat_integrationtests\.functional\.test_resource_group\.ResourceGroupTestNullParams\.test_create_pass_zero_parameter(boolean_false) +heat_integrationtests\.functional\.test_template_resource\.TemplateResourceUpdateTest\.test_template_resource_update_template_schema(provider_attr_change) +heat_integrationtests\.functional\.test_resource_group\.ResourceGroupTestNullParams\.test_create_pass_zero_parameter(number_zero) +heat_integrationtests\.functional\.test_resource_group\.ResourceGroupTestNullParams\.test_create_pass_zero_parameter(comma_delimited_list) +heat_integrationtests\.functional\.test_resource_group\.ResourceGroupTestNullParams\.test_create_pass_zero_parameter(json_empty) 07070100000147000081A40000000000000000000000015B730C5000004008000000000000000000000000000000000000007B00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-heat-integrationtests-deploy/files/run_filters/periodic-virtual.txt# Known test failures on scenario tests # - HEAT-149 # - HEAT-160 # -heat_integrationtests\.scenario\.test_server_cfn_init\.CfnInitIntegrationTest\.test_server_cfn_init -heat_integrationtests\.scenario\.test_autoscaling_lb\.AutoscalingLoadBalancerTest\.test_autoscaling_loadbalancer_neutron -heat_integrationtests\.scenario\.test_ceilometer_alarm\.CeilometerAlarmTest\.test_alarm -heat_integrationtests\.scenario\.test_volumes\.VolumeBackupRestoreIntegrationTest\.test_cinder_volume_create_backup_restore -heat_integrationtests\.scenario\.test_server_software_config\.SoftwareConfigIntegrationTest\.test_server_software_config # List of functional tests # # stack action ABANDON & ADOPT disabled # +heat_integrationtests\.functional\.test_conditional_exposure\.RoleBasedExposureTest\.test_non_admin_forbidden_create_flavors -heat_integrationtests\.functional\.test_aws_stack\.AwsStackTest\.test_nested_stack_adopt_ok -heat_integrationtests\.functional\.test_aws_stack\.AwsStackTest\.test_nested_stack_adopt_fail -heat_integrationtests\.functional\.test_resource_group\.ResourceGroupAdoptTest\.test_adopt -heat_integrationtests\.functional\.test_template_resource\.TemplateResourceAdoptTest\.test_adopt -heat_integrationtests\.functional\.test_template_resource\.TemplateResourceAdoptTest\.test_abandon # # HEAT-159 # -heat_integrationtests\.functional\.test_notifications\.NotificationTest\.test_asg_notifications -heat_integrationtests\.functional\.test_notifications\.NotificationTest\.test_basic_notifications # # HEAT-149 # -heat_integrationtests\.functional\.test_software_config\.ParallelDeploymentsTest\.test_deployments_metadata # # failing to check heat config from the hard-coded location "/etc/heat/heat.conf" # -heat_integrationtests\.functional\.test_reload_on_sighup\.ReloadOnSighupTest\.test_api_reload_on_sighup -heat_integrationtests\.functional\.test_reload_on_sighup\.ReloadOnSighupTest\.test_api_cfn_reload_on_sighup -heat_integrationtests\.functional\.test_reload_on_sighup\.ReloadOnSighupTest\.test_api_cloudwatch_on_sighup # # failing to use the hard-coded region "RegionOne"/"DARKHOLE" # -heat_integrationtests\.functional\.test_remote_stack\.RemoteStackTest\.test_stack_create -heat_integrationtests\.functional\.test_remote_stack\.RemoteStackTest\.test_stack_resource_validation_fail -heat_integrationtests\.functional\.test_remote_stack\.RemoteStackTest\.test_stack_update -heat_integrationtests\.functional\.test_remote_stack\.RemoteStackTest\.test_stack_suspend_resume -heat_integrationtests\.functional\.test_remote_stack\.RemoteStackTest\.test_remote_stack_alone -heat_integrationtests\.functional\.test_remote_stack\.RemoteStackTest\.test_stack_create_bad_region # # HEAT-174 # -heat_integrationtests\.functional\.test_stack_tags\.StackTagTest\.test_hidden_stack # # HEAT-175 # -heat_integrationtests\.functional\.test_encryption_vol_type\.EncryptionVolTypeTest\.test_create_update +heat_integrationtests\.functional\.test_preview\.StackPreviewTest\.test_nested_pass +heat_integrationtests\.functional\.test_conditional_exposure\.ServiceBasedExposureTest\.test_unavailable_resources_not_created +heat_integrationtests\.functional\.test_conditional_exposure\.ServiceBasedExposureTest\.test_unavailable_resources_not_listed +heat_integrationtests\.functional\.test_default_parameters\.DefaultParametersTest\.test_defaults(none) +heat_integrationtests\.functional\.test_heat_autoscaling\.HeatAutoscalingTest\.test_path_attrs +heat_integrationtests\.functional\.test_resource_group\.ResourceGroupTest\.test_create +heat_integrationtests\.functional\.test_create_update\.UpdateStackTest\.test_stack_update_alias_changes +heat_integrationtests\.functional\.test_instance_group\.InstanceGroupBasicTest\.test_basic_create_works +heat_integrationtests\.functional\.test_template_resource\.NestedAttributesTest\.test_transparent_ref -heat_integrationtests\.functional\.test_aws_stack\.AwsStackTest\.test_nested_stack_create +heat_integrationtests\.functional\.test_template_resource\.ValidateFacadeTest\.test_missing_output -heat_integrationtests\.functional\.test_aws_stack\.AwsStackTest\.test_nested_stack_create_with_timeout +heat_integrationtests\.functional\.test_template_resource\.ValidateFacadeTest\.test_missing_param +heat_integrationtests\.functional\.test_heat_autoscaling\.AutoScalingGroupUpdateWithNoChanges\.test_as_group_update_without_resource_changes +heat_integrationtests\.functional\.test_create_update\.UpdateStackTest\.test_stack_update_from_failed +heat_integrationtests\.functional\.test_create_update\.UpdateStackTest\.test_stack_update_add_remove -heat_integrationtests\.functional\.test_aws_stack\.AwsStackTest\.test_nested_stack_suspend_resume +heat_integrationtests\.functional\.test_default_parameters\.DefaultParametersTest\.test_defaults(default) +heat_integrationtests\.functional\.test_hooks\.HooksTest\.test_hook_pre_create +heat_integrationtests\.functional\.test_autoscaling\.AutoscalingGroupBasicTest\.test_create_instance_error_causes_group_error +heat_integrationtests\.functional\.test_autoscaling\.AutoscalingGroupBasicTest\.test_update_group_replace +heat_integrationtests\.functional\.test_autoscaling\.AutoScalingSignalTest\.test_signal_during_suspend +heat_integrationtests\.functional\.test_autoscaling\.AutoscalingGroupBasicTest\.test_size_updates_work +heat_integrationtests\.functional\.test_hooks\.HooksTest\.test_hook_pre_update_in_place +heat_integrationtests\.functional\.test_resource_group\.ResourceGroupTest\.test_update_increase_decrease_count +heat_integrationtests\.functional\.test_autoscaling\.AutoscalingGroupBasicTest\.test_group_suspend_resume +heat_integrationtests\.functional\.test_default_parameters\.DefaultParametersTest\.test_defaults(both) +heat_integrationtests\.functional\.test_create_update_neutron_port\.UpdatePortTest\.test_stack_update_replace_with_ip -heat_integrationtests\.functional\.test_aws_stack\.AwsStackTest\.test_nested_stack_update +heat_integrationtests\.functional\.test_autoscaling\.AutoScalingSignalTest\.test_scaling_meta_update +heat_integrationtests\.functional\.test_autoscaling\.AutoscalingGroupBasicTest\.test_update_instance_error_causes_group_error +heat_integrationtests\.functional\.test_create_update\.UpdateStackTest\.test_stack_update_provider +heat_integrationtests\.functional\.test_default_parameters\.DefaultParametersTest\.test_defaults(no_temp_default) +heat_integrationtests\.functional\.test_hooks\.HooksTest\.test_hook_pre_create_nested +heat_integrationtests\.functional\.test_template_resource\.TemplateResourceTest\.test_no_infinite_recursion +heat_integrationtests\.functional\.test_autoscaling\.AutoscalingGroupBasicTest\.test_basic_create_works +heat_integrationtests\.functional\.test_create_update\.UpdateStackTest\.test_stack_in_place_update +heat_integrationtests\.functional\.test_create_update\.UpdateStackTest\.test_stack_update_alias_type +heat_integrationtests\.functional\.test_autoscaling\.AutoscalingGroupUpdatePolicyTest\.test_instance_group_update_replace_huge_batch_size +heat_integrationtests\.functional\.test_hooks\.HooksTest\.test_hook_pre_update_replace +heat_integrationtests\.functional\.test_create_update_neutron_port\.UpdatePortTest\.test_stack_update_in_place_remove_ip +heat_integrationtests\.functional\.test_template_validate\.StackTemplateValidateTest\.test_template_validate_basic +heat_integrationtests\.functional\.test_template_resource\.TemplateResourceErrorMessageTest\.test_fail +heat_integrationtests\.functional\.test_autoscaling\.AutoScalingSignalTest\.test_signal_with_policy_update +heat_integrationtests\.functional\.test_heat_autoscaling\.HeatAutoscalingTest\.test_path_attrs_nested +heat_integrationtests\.functional\.test_create_update_neutron_port\.UpdatePortTest\.test_stack_update_replace_with_ip_rollback +heat_integrationtests\.functional\.test_create_update\.UpdateStackTest\.test_stack_update_rollback +heat_integrationtests\.functional\.test_instance_group\.InstanceGroupUpdatePolicyTest\.test_instance_group_update_no_replace +heat_integrationtests\.functional\.test_create_update\.UpdateStackTest\.test_stack_update_provider_type +heat_integrationtests\.functional\.test_preview\.StackPreviewTest\.test_basic_fail +heat_integrationtests\.functional\.test_instance_group\.InstanceGroupBasicTest\.test_update_instance_error_causes_group_error +heat_integrationtests\.functional\.test_create_update_neutron_subnet\.UpdateSubnetTest\.test_update_to_no_allocation_pools +heat_integrationtests\.functional\.test_create_update\.UpdateStackTest\.test_stack_update_nochange +heat_integrationtests\.functional\.test_template_resource\.TemplateResourceUpdateFailedTest\.test_update_on_failed_create +heat_integrationtests\.functional\.test_template_validate\.StackTemplateValidateTest\.test_template_validate_override_default +heat_integrationtests\.functional\.test_autoscaling\.AutoscalingGroupUpdatePolicyTest\.test_instance_group_update_no_replace +heat_integrationtests\.functional\.test_template_resource\.TemplateResourceTest\.test_nested_env +heat_integrationtests\.functional\.test_template_validate\.StackTemplateValidateTest\.test_template_validate_fail_version +heat_integrationtests\.functional\.test_instance_group\.InstanceGroupBasicTest\.test_update_group_replace +heat_integrationtests\.functional\.test_instance_group\.InstanceGroupUpdatePolicyTest\.test_instance_group_update_replace_huge_min_in_service +heat_integrationtests\.functional\.test_resource_group\.ResourceGroupTest\.test_update_nochange +heat_integrationtests\.functional\.test_template_validate\.StackTemplateValidateTest\.test_template_validate_nested_on +heat_integrationtests\.functional\.test_hooks\.HooksTest\.test_hook_pre_update_nochange +heat_integrationtests\.functional\.test_resource_group\.ResourceGroupTest\.test_resource_group_zero_novalidate +heat_integrationtests\.functional\.test_autoscaling\.AutoscalingGroupUpdatePolicyTest\.test_instance_group_update_no_replace_with_adjusted_capacity +heat_integrationtests\.functional\.test_conditional_exposure\.RoleBasedExposureTest\.test_forbidden_resource_not_listed +heat_integrationtests\.functional\.test_create_update_neutron_subnet\.UpdateSubnetTest\.test_update_allocation_pools_to_empty +heat_integrationtests\.functional\.test_create_update_neutron_port\.UpdatePortTest\.test_stack_update_replace_no_ip +heat_integrationtests\.functional\.test_instance_group\.InstanceGroupBasicTest\.test_size_updates_work +heat_integrationtests\.functional\.test_instance_group\.InstanceGroupUpdatePolicyTest\.test_instance_group_update_replace_with_adjusted_capacity +heat_integrationtests\.functional\.test_resource_group\.ResourceGroupTest\.test_update_nochange_resource_needs_update +heat_integrationtests\.functional\.test_instance_group\.InstanceGroupUpdatePolicyTest\.test_instance_group_update_no_replace_with_adjusted_capacity +heat_integrationtests\.functional\.test_template_resource\.TemplateResourceSuspendResumeTest\.test_suspend_resume +heat_integrationtests\.functional\.test_create_update\.UpdateStackTest\.test_stack_update_provider_group +heat_integrationtests\.functional\.test_template_resource\.NestedAttributesTest\.test_nested_attributes +heat_integrationtests\.functional\.test_autoscaling\.AutoscalingGroupUpdatePolicyTest\.test_instance_group_update_replace +heat_integrationtests\.functional\.test_resource_group\.ResourceGroupTest\.test_update_removal_policies +heat_integrationtests\.functional\.test_resource_group\.ResourceGroupErrorResourceTest\.test_fail +heat_integrationtests\.functional\.test_template_validate\.StackTemplateValidateTest\.test_template_validate_basic_required_param +heat_integrationtests\.functional\.test_instance_group\.InstanceGroupUpdatePolicyTest\.test_instance_group_update_replace +heat_integrationtests\.functional\.test_template_resource\.NestedAttributesTest\.test_stack_ref +heat_integrationtests\.functional\.test_preview\.StackPreviewTest\.test_basic_pass +heat_integrationtests\.functional\.test_create_update\.CreateStackTest\.test_create_rollback +heat_integrationtests\.functional\.test_resource_group\.ResourceGroupTest\.test_props_update +heat_integrationtests\.functional\.test_template_resource\.TemplateResourceTest\.test_nested_stack_delete_then_delete_parent_stack +heat_integrationtests\.functional\.test_template_validate\.StackTemplateValidateTest\.test_template_validate_nested_off +heat_integrationtests\.functional\.test_instance_group\.InstanceGroupBasicTest\.test_create_instance_error_causes_group_error +heat_integrationtests\.functional\.test_validation\.StackValidationTest\.test_stack_validate_provider_references_parent_resource +heat_integrationtests\.functional\.test_template_validate\.StackTemplateValidateTest\.test_template_validate_nested_on_multiple +heat_integrationtests\.functional\.test_instance_group\.InstanceGroupUpdatePolicyTest\.test_instance_group_update_replace_huge_batch_size +heat_integrationtests\.functional\.test_autoscaling\.AutoscalingGroupUpdatePolicyTest\.test_instance_group_update_replace_huge_min_in_service +heat_integrationtests\.functional\.test_template_resource\.TemplateResourceUpdateTest\.test_template_resource_update_template_schema(no_changes) +heat_integrationtests\.functional\.test_autoscaling\.AutoscalingGroupUpdatePolicyTest\.test_instance_group_update_replace_with_adjusted_capacity +heat_integrationtests\.functional\.test_hooks\.HooksTest\.test_hook_pre_create_wildcard +heat_integrationtests\.functional\.test_create_update_neutron_port\.UpdatePortTest\.test_stack_update_replace_with_ip_after_failed_update +heat_integrationtests\.functional\.test_template_validate\.StackTemplateValidateTest\.test_template_validate_parameter_groups +heat_integrationtests\.functional\.test_create_update\.UpdateStackTest\.test_stack_update_replace +heat_integrationtests\.functional\.test_template_resource\.TemplateResourceUpdateTest\.test_template_resource_update_template_schema(main_tmpl_change) +heat_integrationtests\.functional\.test_swiftsignal_update\.SwiftSignalHandleUpdateTest\.test_stack_update_same_template_replace_no_url +heat_integrationtests\.functional\.test_create_update\.UpdateStackTest\.test_stack_update_with_new_env +heat_integrationtests\.functional\.test_template_resource\.TemplateResourceCheckTest\.test_check +heat_integrationtests\.functional\.test_create_update\.UpdateStackTest\.test_stack_update_with_replacing_userdata +heat_integrationtests\.functional\.test_template_validate\.StackTemplateValidateTest\.test_template_validate_override_none +heat_integrationtests\.functional\.test_template_resource\.TemplateResourceUpdateTest\.test_template_resource_update_template_schema(provider_change) +heat_integrationtests\.functional\.test_create_update_neutron_subnet\.UpdateSubnetTest\.test_update_allocation_pools +heat_integrationtests\.functional\.test_stack_tags\.StackTagTest\.test_stack_tag +heat_integrationtests\.functional\.test_template_resource\.TemplateResourceUpdateTest\.test_template_resource_update_template_schema(provider_props_change) +heat_integrationtests\.functional\.test_template_resource\.TemplateResourceTest\.test_change_in_file_path +heat_integrationtests\.functional\.test_template_resource\.TemplateResourceUpdateTest\.test_template_resource_update_template_schema(provider_props_add) +heat_integrationtests\.functional\.test_encrypted_parameter\.EncryptedParametersTest\.test_db_encryption +heat_integrationtests\.functional\.test_resource_group\.ResourceGroupTestNullParams\.test_create_pass_zero_parameter(string_empty) +heat_integrationtests\.functional\.test_template_resource\.TemplateResourceUpdateTest\.test_template_resource_update_template_schema(provider_props_remove) +heat_integrationtests\.functional\.test_resource_group\.ResourceGroupTestNullParams\.test_create_pass_zero_parameter(boolean_false) +heat_integrationtests\.functional\.test_template_resource\.TemplateResourceUpdateTest\.test_template_resource_update_template_schema(provider_attr_change) +heat_integrationtests\.functional\.test_resource_group\.ResourceGroupTestNullParams\.test_create_pass_zero_parameter(number_zero) +heat_integrationtests\.functional\.test_resource_group\.ResourceGroupTestNullParams\.test_create_pass_zero_parameter(comma_delimited_list) +heat_integrationtests\.functional\.test_resource_group\.ResourceGroupTestNullParams\.test_create_pass_zero_parameter(json_empty) 07070100000148000081A40000000000000000000000015B730C5000004008000000000000000000000000000000000000007300000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-heat-integrationtests-deploy/files/run_filters/periodic.txt# Known test failures on scenario tests # - HEAT-149 # - HEAT-160 # -heat_integrationtests\.scenario\.test_server_cfn_init\.CfnInitIntegrationTest\.test_server_cfn_init -heat_integrationtests\.scenario\.test_autoscaling_lb\.AutoscalingLoadBalancerTest\.test_autoscaling_loadbalancer_neutron -heat_integrationtests\.scenario\.test_ceilometer_alarm\.CeilometerAlarmTest\.test_alarm -heat_integrationtests\.scenario\.test_volumes\.VolumeBackupRestoreIntegrationTest\.test_cinder_volume_create_backup_restore -heat_integrationtests\.scenario\.test_server_software_config\.SoftwareConfigIntegrationTest\.test_server_software_config # List of functional tests # # stack action ABANDON & ADOPT disabled # +heat_integrationtests\.functional\.test_conditional_exposure\.RoleBasedExposureTest\.test_non_admin_forbidden_create_flavors -heat_integrationtests\.functional\.test_aws_stack\.AwsStackTest\.test_nested_stack_adopt_ok -heat_integrationtests\.functional\.test_aws_stack\.AwsStackTest\.test_nested_stack_adopt_fail -heat_integrationtests\.functional\.test_resource_group\.ResourceGroupAdoptTest\.test_adopt -heat_integrationtests\.functional\.test_template_resource\.TemplateResourceAdoptTest\.test_adopt -heat_integrationtests\.functional\.test_template_resource\.TemplateResourceAdoptTest\.test_abandon # # HEAT-159 # -heat_integrationtests\.functional\.test_notifications\.NotificationTest\.test_asg_notifications -heat_integrationtests\.functional\.test_notifications\.NotificationTest\.test_basic_notifications # # HEAT-149 # -heat_integrationtests\.functional\.test_software_config\.ParallelDeploymentsTest\.test_deployments_metadata # # failing to check heat config from the hard-coded location "/etc/heat/heat.conf" # -heat_integrationtests\.functional\.test_reload_on_sighup\.ReloadOnSighupTest\.test_api_reload_on_sighup -heat_integrationtests\.functional\.test_reload_on_sighup\.ReloadOnSighupTest\.test_api_cfn_reload_on_sighup -heat_integrationtests\.functional\.test_reload_on_sighup\.ReloadOnSighupTest\.test_api_cloudwatch_on_sighup # # failing to use the hard-coded region "RegionOne"/"DARKHOLE" # -heat_integrationtests\.functional\.test_remote_stack\.RemoteStackTest\.test_stack_create -heat_integrationtests\.functional\.test_remote_stack\.RemoteStackTest\.test_stack_resource_validation_fail -heat_integrationtests\.functional\.test_remote_stack\.RemoteStackTest\.test_stack_update -heat_integrationtests\.functional\.test_remote_stack\.RemoteStackTest\.test_stack_suspend_resume -heat_integrationtests\.functional\.test_remote_stack\.RemoteStackTest\.test_remote_stack_alone -heat_integrationtests\.functional\.test_remote_stack\.RemoteStackTest\.test_stack_create_bad_region # # HEAT-174 # -heat_integrationtests\.functional\.test_stack_tags\.StackTagTest\.test_hidden_stack # # HEAT-175 # -heat_integrationtests\.functional\.test_encryption_vol_type\.EncryptionVolTypeTest\.test_create_update +heat_integrationtests\.functional\.test_preview\.StackPreviewTest\.test_nested_pass +heat_integrationtests\.functional\.test_conditional_exposure\.ServiceBasedExposureTest\.test_unavailable_resources_not_created +heat_integrationtests\.functional\.test_conditional_exposure\.ServiceBasedExposureTest\.test_unavailable_resources_not_listed +heat_integrationtests\.functional\.test_default_parameters\.DefaultParametersTest\.test_defaults(none) +heat_integrationtests\.functional\.test_heat_autoscaling\.HeatAutoscalingTest\.test_path_attrs +heat_integrationtests\.functional\.test_resource_group\.ResourceGroupTest\.test_create +heat_integrationtests\.functional\.test_create_update\.UpdateStackTest\.test_stack_update_alias_changes +heat_integrationtests\.functional\.test_instance_group\.InstanceGroupBasicTest\.test_basic_create_works +heat_integrationtests\.functional\.test_template_resource\.NestedAttributesTest\.test_transparent_ref -heat_integrationtests\.functional\.test_aws_stack\.AwsStackTest\.test_nested_stack_create +heat_integrationtests\.functional\.test_template_resource\.ValidateFacadeTest\.test_missing_output -heat_integrationtests\.functional\.test_aws_stack\.AwsStackTest\.test_nested_stack_create_with_timeout +heat_integrationtests\.functional\.test_template_resource\.ValidateFacadeTest\.test_missing_param +heat_integrationtests\.functional\.test_heat_autoscaling\.AutoScalingGroupUpdateWithNoChanges\.test_as_group_update_without_resource_changes +heat_integrationtests\.functional\.test_create_update\.UpdateStackTest\.test_stack_update_from_failed +heat_integrationtests\.functional\.test_create_update\.UpdateStackTest\.test_stack_update_add_remove -heat_integrationtests\.functional\.test_aws_stack\.AwsStackTest\.test_nested_stack_suspend_resume +heat_integrationtests\.functional\.test_default_parameters\.DefaultParametersTest\.test_defaults(default) +heat_integrationtests\.functional\.test_hooks\.HooksTest\.test_hook_pre_create +heat_integrationtests\.functional\.test_autoscaling\.AutoscalingGroupBasicTest\.test_create_instance_error_causes_group_error +heat_integrationtests\.functional\.test_autoscaling\.AutoscalingGroupBasicTest\.test_update_group_replace +heat_integrationtests\.functional\.test_autoscaling\.AutoScalingSignalTest\.test_signal_during_suspend +heat_integrationtests\.functional\.test_autoscaling\.AutoscalingGroupBasicTest\.test_size_updates_work +heat_integrationtests\.functional\.test_hooks\.HooksTest\.test_hook_pre_update_in_place +heat_integrationtests\.functional\.test_resource_group\.ResourceGroupTest\.test_update_increase_decrease_count +heat_integrationtests\.functional\.test_autoscaling\.AutoscalingGroupBasicTest\.test_group_suspend_resume +heat_integrationtests\.functional\.test_default_parameters\.DefaultParametersTest\.test_defaults(both) +heat_integrationtests\.functional\.test_create_update_neutron_port\.UpdatePortTest\.test_stack_update_replace_with_ip -heat_integrationtests\.functional\.test_aws_stack\.AwsStackTest\.test_nested_stack_update +heat_integrationtests\.functional\.test_autoscaling\.AutoScalingSignalTest\.test_scaling_meta_update +heat_integrationtests\.functional\.test_autoscaling\.AutoscalingGroupBasicTest\.test_update_instance_error_causes_group_error +heat_integrationtests\.functional\.test_create_update\.UpdateStackTest\.test_stack_update_provider +heat_integrationtests\.functional\.test_default_parameters\.DefaultParametersTest\.test_defaults(no_temp_default) +heat_integrationtests\.functional\.test_hooks\.HooksTest\.test_hook_pre_create_nested +heat_integrationtests\.functional\.test_template_resource\.TemplateResourceTest\.test_no_infinite_recursion +heat_integrationtests\.functional\.test_autoscaling\.AutoscalingGroupBasicTest\.test_basic_create_works +heat_integrationtests\.functional\.test_create_update\.UpdateStackTest\.test_stack_in_place_update +heat_integrationtests\.functional\.test_create_update\.UpdateStackTest\.test_stack_update_alias_type +heat_integrationtests\.functional\.test_autoscaling\.AutoscalingGroupUpdatePolicyTest\.test_instance_group_update_replace_huge_batch_size +heat_integrationtests\.functional\.test_hooks\.HooksTest\.test_hook_pre_update_replace +heat_integrationtests\.functional\.test_create_update_neutron_port\.UpdatePortTest\.test_stack_update_in_place_remove_ip +heat_integrationtests\.functional\.test_template_validate\.StackTemplateValidateTest\.test_template_validate_basic +heat_integrationtests\.functional\.test_template_resource\.TemplateResourceErrorMessageTest\.test_fail +heat_integrationtests\.functional\.test_autoscaling\.AutoScalingSignalTest\.test_signal_with_policy_update +heat_integrationtests\.functional\.test_heat_autoscaling\.HeatAutoscalingTest\.test_path_attrs_nested +heat_integrationtests\.functional\.test_create_update_neutron_port\.UpdatePortTest\.test_stack_update_replace_with_ip_rollback +heat_integrationtests\.functional\.test_create_update\.UpdateStackTest\.test_stack_update_rollback +heat_integrationtests\.functional\.test_instance_group\.InstanceGroupUpdatePolicyTest\.test_instance_group_update_no_replace +heat_integrationtests\.functional\.test_create_update\.UpdateStackTest\.test_stack_update_provider_type +heat_integrationtests\.functional\.test_preview\.StackPreviewTest\.test_basic_fail +heat_integrationtests\.functional\.test_instance_group\.InstanceGroupBasicTest\.test_update_instance_error_causes_group_error +heat_integrationtests\.functional\.test_create_update_neutron_subnet\.UpdateSubnetTest\.test_update_to_no_allocation_pools +heat_integrationtests\.functional\.test_create_update\.UpdateStackTest\.test_stack_update_nochange +heat_integrationtests\.functional\.test_template_resource\.TemplateResourceUpdateFailedTest\.test_update_on_failed_create +heat_integrationtests\.functional\.test_template_validate\.StackTemplateValidateTest\.test_template_validate_override_default +heat_integrationtests\.functional\.test_autoscaling\.AutoscalingGroupUpdatePolicyTest\.test_instance_group_update_no_replace +heat_integrationtests\.functional\.test_template_resource\.TemplateResourceTest\.test_nested_env +heat_integrationtests\.functional\.test_template_validate\.StackTemplateValidateTest\.test_template_validate_fail_version +heat_integrationtests\.functional\.test_instance_group\.InstanceGroupBasicTest\.test_update_group_replace +heat_integrationtests\.functional\.test_instance_group\.InstanceGroupUpdatePolicyTest\.test_instance_group_update_replace_huge_min_in_service +heat_integrationtests\.functional\.test_resource_group\.ResourceGroupTest\.test_update_nochange +heat_integrationtests\.functional\.test_template_validate\.StackTemplateValidateTest\.test_template_validate_nested_on +heat_integrationtests\.functional\.test_hooks\.HooksTest\.test_hook_pre_update_nochange +heat_integrationtests\.functional\.test_resource_group\.ResourceGroupTest\.test_resource_group_zero_novalidate +heat_integrationtests\.functional\.test_autoscaling\.AutoscalingGroupUpdatePolicyTest\.test_instance_group_update_no_replace_with_adjusted_capacity +heat_integrationtests\.functional\.test_conditional_exposure\.RoleBasedExposureTest\.test_forbidden_resource_not_listed +heat_integrationtests\.functional\.test_create_update_neutron_subnet\.UpdateSubnetTest\.test_update_allocation_pools_to_empty +heat_integrationtests\.functional\.test_create_update_neutron_port\.UpdatePortTest\.test_stack_update_replace_no_ip +heat_integrationtests\.functional\.test_instance_group\.InstanceGroupBasicTest\.test_size_updates_work +heat_integrationtests\.functional\.test_instance_group\.InstanceGroupUpdatePolicyTest\.test_instance_group_update_replace_with_adjusted_capacity +heat_integrationtests\.functional\.test_resource_group\.ResourceGroupTest\.test_update_nochange_resource_needs_update +heat_integrationtests\.functional\.test_instance_group\.InstanceGroupUpdatePolicyTest\.test_instance_group_update_no_replace_with_adjusted_capacity +heat_integrationtests\.functional\.test_template_resource\.TemplateResourceSuspendResumeTest\.test_suspend_resume +heat_integrationtests\.functional\.test_create_update\.UpdateStackTest\.test_stack_update_provider_group +heat_integrationtests\.functional\.test_template_resource\.NestedAttributesTest\.test_nested_attributes +heat_integrationtests\.functional\.test_autoscaling\.AutoscalingGroupUpdatePolicyTest\.test_instance_group_update_replace +heat_integrationtests\.functional\.test_resource_group\.ResourceGroupTest\.test_update_removal_policies +heat_integrationtests\.functional\.test_resource_group\.ResourceGroupErrorResourceTest\.test_fail +heat_integrationtests\.functional\.test_template_validate\.StackTemplateValidateTest\.test_template_validate_basic_required_param +heat_integrationtests\.functional\.test_instance_group\.InstanceGroupUpdatePolicyTest\.test_instance_group_update_replace +heat_integrationtests\.functional\.test_template_resource\.NestedAttributesTest\.test_stack_ref +heat_integrationtests\.functional\.test_preview\.StackPreviewTest\.test_basic_pass +heat_integrationtests\.functional\.test_create_update\.CreateStackTest\.test_create_rollback +heat_integrationtests\.functional\.test_resource_group\.ResourceGroupTest\.test_props_update +heat_integrationtests\.functional\.test_template_resource\.TemplateResourceTest\.test_nested_stack_delete_then_delete_parent_stack +heat_integrationtests\.functional\.test_template_validate\.StackTemplateValidateTest\.test_template_validate_nested_off +heat_integrationtests\.functional\.test_instance_group\.InstanceGroupBasicTest\.test_create_instance_error_causes_group_error +heat_integrationtests\.functional\.test_validation\.StackValidationTest\.test_stack_validate_provider_references_parent_resource +heat_integrationtests\.functional\.test_template_validate\.StackTemplateValidateTest\.test_template_validate_nested_on_multiple +heat_integrationtests\.functional\.test_instance_group\.InstanceGroupUpdatePolicyTest\.test_instance_group_update_replace_huge_batch_size +heat_integrationtests\.functional\.test_autoscaling\.AutoscalingGroupUpdatePolicyTest\.test_instance_group_update_replace_huge_min_in_service +heat_integrationtests\.functional\.test_template_resource\.TemplateResourceUpdateTest\.test_template_resource_update_template_schema(no_changes) +heat_integrationtests\.functional\.test_autoscaling\.AutoscalingGroupUpdatePolicyTest\.test_instance_group_update_replace_with_adjusted_capacity +heat_integrationtests\.functional\.test_hooks\.HooksTest\.test_hook_pre_create_wildcard +heat_integrationtests\.functional\.test_create_update_neutron_port\.UpdatePortTest\.test_stack_update_replace_with_ip_after_failed_update +heat_integrationtests\.functional\.test_template_validate\.StackTemplateValidateTest\.test_template_validate_parameter_groups +heat_integrationtests\.functional\.test_create_update\.UpdateStackTest\.test_stack_update_replace +heat_integrationtests\.functional\.test_template_resource\.TemplateResourceUpdateTest\.test_template_resource_update_template_schema(main_tmpl_change) +heat_integrationtests\.functional\.test_swiftsignal_update\.SwiftSignalHandleUpdateTest\.test_stack_update_same_template_replace_no_url +heat_integrationtests\.functional\.test_create_update\.UpdateStackTest\.test_stack_update_with_new_env +heat_integrationtests\.functional\.test_template_resource\.TemplateResourceCheckTest\.test_check +heat_integrationtests\.functional\.test_create_update\.UpdateStackTest\.test_stack_update_with_replacing_userdata +heat_integrationtests\.functional\.test_template_validate\.StackTemplateValidateTest\.test_template_validate_override_none +heat_integrationtests\.functional\.test_template_resource\.TemplateResourceUpdateTest\.test_template_resource_update_template_schema(provider_change) +heat_integrationtests\.functional\.test_create_update_neutron_subnet\.UpdateSubnetTest\.test_update_allocation_pools +heat_integrationtests\.functional\.test_stack_tags\.StackTagTest\.test_stack_tag +heat_integrationtests\.functional\.test_template_resource\.TemplateResourceUpdateTest\.test_template_resource_update_template_schema(provider_props_change) +heat_integrationtests\.functional\.test_template_resource\.TemplateResourceTest\.test_change_in_file_path +heat_integrationtests\.functional\.test_template_resource\.TemplateResourceUpdateTest\.test_template_resource_update_template_schema(provider_props_add) +heat_integrationtests\.functional\.test_encrypted_parameter\.EncryptedParametersTest\.test_db_encryption +heat_integrationtests\.functional\.test_resource_group\.ResourceGroupTestNullParams\.test_create_pass_zero_parameter(string_empty) +heat_integrationtests\.functional\.test_template_resource\.TemplateResourceUpdateTest\.test_template_resource_update_template_schema(provider_props_remove) +heat_integrationtests\.functional\.test_resource_group\.ResourceGroupTestNullParams\.test_create_pass_zero_parameter(boolean_false) +heat_integrationtests\.functional\.test_template_resource\.TemplateResourceUpdateTest\.test_template_resource_update_template_schema(provider_attr_change) +heat_integrationtests\.functional\.test_resource_group\.ResourceGroupTestNullParams\.test_create_pass_zero_parameter(number_zero) +heat_integrationtests\.functional\.test_resource_group\.ResourceGroupTestNullParams\.test_create_pass_zero_parameter(comma_delimited_list) +heat_integrationtests\.functional\.test_resource_group\.ResourceGroupTestNullParams\.test_create_pass_zero_parameter(json_empty) 07070100000149000081A40000000000000000000000015B730C5000004008000000000000000000000000000000000000007000000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-heat-integrationtests-deploy/files/run_filters/smoke.txt# Known test failures on scenario tests # - HEAT-149 # - HEAT-160 # -heat_integrationtests\.scenario\.test_server_cfn_init\.CfnInitIntegrationTest\.test_server_cfn_init -heat_integrationtests\.scenario\.test_autoscaling_lb\.AutoscalingLoadBalancerTest\.test_autoscaling_loadbalancer_neutron -heat_integrationtests\.scenario\.test_ceilometer_alarm\.CeilometerAlarmTest\.test_alarm -heat_integrationtests\.scenario\.test_volumes\.VolumeBackupRestoreIntegrationTest\.test_cinder_volume_create_backup_restore -heat_integrationtests\.scenario\.test_server_software_config\.SoftwareConfigIntegrationTest\.test_server_software_config # List of functional tests # # stack action ABANDON & ADOPT disabled # +heat_integrationtests\.functional\.test_conditional_exposure\.RoleBasedExposureTest\.test_non_admin_forbidden_create_flavors -heat_integrationtests\.functional\.test_aws_stack\.AwsStackTest\.test_nested_stack_adopt_ok -heat_integrationtests\.functional\.test_aws_stack\.AwsStackTest\.test_nested_stack_adopt_fail -heat_integrationtests\.functional\.test_resource_group\.ResourceGroupAdoptTest\.test_adopt -heat_integrationtests\.functional\.test_template_resource\.TemplateResourceAdoptTest\.test_adopt -heat_integrationtests\.functional\.test_template_resource\.TemplateResourceAdoptTest\.test_abandon # # HEAT-159 # -heat_integrationtests\.functional\.test_notifications\.NotificationTest\.test_asg_notifications -heat_integrationtests\.functional\.test_notifications\.NotificationTest\.test_basic_notifications # # HEAT-149 # -heat_integrationtests\.functional\.test_software_config\.ParallelDeploymentsTest\.test_deployments_metadata # # failing to check heat config from the hard-coded location "/etc/heat/heat.conf" # -heat_integrationtests\.functional\.test_reload_on_sighup\.ReloadOnSighupTest\.test_api_reload_on_sighup -heat_integrationtests\.functional\.test_reload_on_sighup\.ReloadOnSighupTest\.test_api_cfn_reload_on_sighup -heat_integrationtests\.functional\.test_reload_on_sighup\.ReloadOnSighupTest\.test_api_cloudwatch_on_sighup # # failing to use the hard-coded region "RegionOne"/"DARKHOLE" # -heat_integrationtests\.functional\.test_remote_stack\.RemoteStackTest\.test_stack_create -heat_integrationtests\.functional\.test_remote_stack\.RemoteStackTest\.test_stack_resource_validation_fail -heat_integrationtests\.functional\.test_remote_stack\.RemoteStackTest\.test_stack_update -heat_integrationtests\.functional\.test_remote_stack\.RemoteStackTest\.test_stack_suspend_resume -heat_integrationtests\.functional\.test_remote_stack\.RemoteStackTest\.test_remote_stack_alone -heat_integrationtests\.functional\.test_remote_stack\.RemoteStackTest\.test_stack_create_bad_region # # HEAT-174 # -heat_integrationtests\.functional\.test_stack_tags\.StackTagTest\.test_hidden_stack # # HEAT-175 # -heat_integrationtests\.functional\.test_encryption_vol_type\.EncryptionVolTypeTest\.test_create_update +heat_integrationtests\.functional\.test_preview\.StackPreviewTest\.test_nested_pass +heat_integrationtests\.functional\.test_conditional_exposure\.ServiceBasedExposureTest\.test_unavailable_resources_not_created +heat_integrationtests\.functional\.test_conditional_exposure\.ServiceBasedExposureTest\.test_unavailable_resources_not_listed +heat_integrationtests\.functional\.test_default_parameters\.DefaultParametersTest\.test_defaults(none) +heat_integrationtests\.functional\.test_heat_autoscaling\.HeatAutoscalingTest\.test_path_attrs +heat_integrationtests\.functional\.test_resource_group\.ResourceGroupTest\.test_create +heat_integrationtests\.functional\.test_create_update\.UpdateStackTest\.test_stack_update_alias_changes +heat_integrationtests\.functional\.test_instance_group\.InstanceGroupBasicTest\.test_basic_create_works +heat_integrationtests\.functional\.test_template_resource\.NestedAttributesTest\.test_transparent_ref -heat_integrationtests\.functional\.test_aws_stack\.AwsStackTest\.test_nested_stack_create +heat_integrationtests\.functional\.test_template_resource\.ValidateFacadeTest\.test_missing_output -heat_integrationtests\.functional\.test_aws_stack\.AwsStackTest\.test_nested_stack_create_with_timeout +heat_integrationtests\.functional\.test_template_resource\.ValidateFacadeTest\.test_missing_param +heat_integrationtests\.functional\.test_heat_autoscaling\.AutoScalingGroupUpdateWithNoChanges\.test_as_group_update_without_resource_changes +heat_integrationtests\.functional\.test_create_update\.UpdateStackTest\.test_stack_update_from_failed +heat_integrationtests\.functional\.test_create_update\.UpdateStackTest\.test_stack_update_add_remove -heat_integrationtests\.functional\.test_aws_stack\.AwsStackTest\.test_nested_stack_suspend_resume +heat_integrationtests\.functional\.test_default_parameters\.DefaultParametersTest\.test_defaults(default) +heat_integrationtests\.functional\.test_hooks\.HooksTest\.test_hook_pre_create +heat_integrationtests\.functional\.test_autoscaling\.AutoscalingGroupBasicTest\.test_create_instance_error_causes_group_error +heat_integrationtests\.functional\.test_autoscaling\.AutoscalingGroupBasicTest\.test_update_group_replace +heat_integrationtests\.functional\.test_autoscaling\.AutoScalingSignalTest\.test_signal_during_suspend +heat_integrationtests\.functional\.test_autoscaling\.AutoscalingGroupBasicTest\.test_size_updates_work +heat_integrationtests\.functional\.test_hooks\.HooksTest\.test_hook_pre_update_in_place +heat_integrationtests\.functional\.test_resource_group\.ResourceGroupTest\.test_update_increase_decrease_count +heat_integrationtests\.functional\.test_autoscaling\.AutoscalingGroupBasicTest\.test_group_suspend_resume +heat_integrationtests\.functional\.test_default_parameters\.DefaultParametersTest\.test_defaults(both) +heat_integrationtests\.functional\.test_create_update_neutron_port\.UpdatePortTest\.test_stack_update_replace_with_ip -heat_integrationtests\.functional\.test_aws_stack\.AwsStackTest\.test_nested_stack_update +heat_integrationtests\.functional\.test_autoscaling\.AutoScalingSignalTest\.test_scaling_meta_update +heat_integrationtests\.functional\.test_autoscaling\.AutoscalingGroupBasicTest\.test_update_instance_error_causes_group_error +heat_integrationtests\.functional\.test_create_update\.UpdateStackTest\.test_stack_update_provider +heat_integrationtests\.functional\.test_default_parameters\.DefaultParametersTest\.test_defaults(no_temp_default) +heat_integrationtests\.functional\.test_hooks\.HooksTest\.test_hook_pre_create_nested +heat_integrationtests\.functional\.test_template_resource\.TemplateResourceTest\.test_no_infinite_recursion +heat_integrationtests\.functional\.test_autoscaling\.AutoscalingGroupBasicTest\.test_basic_create_works +heat_integrationtests\.functional\.test_create_update\.UpdateStackTest\.test_stack_in_place_update +heat_integrationtests\.functional\.test_create_update\.UpdateStackTest\.test_stack_update_alias_type +heat_integrationtests\.functional\.test_autoscaling\.AutoscalingGroupUpdatePolicyTest\.test_instance_group_update_replace_huge_batch_size +heat_integrationtests\.functional\.test_hooks\.HooksTest\.test_hook_pre_update_replace +heat_integrationtests\.functional\.test_create_update_neutron_port\.UpdatePortTest\.test_stack_update_in_place_remove_ip +heat_integrationtests\.functional\.test_template_validate\.StackTemplateValidateTest\.test_template_validate_basic +heat_integrationtests\.functional\.test_template_resource\.TemplateResourceErrorMessageTest\.test_fail +heat_integrationtests\.functional\.test_autoscaling\.AutoScalingSignalTest\.test_signal_with_policy_update +heat_integrationtests\.functional\.test_heat_autoscaling\.HeatAutoscalingTest\.test_path_attrs_nested +heat_integrationtests\.functional\.test_create_update_neutron_port\.UpdatePortTest\.test_stack_update_replace_with_ip_rollback +heat_integrationtests\.functional\.test_create_update\.UpdateStackTest\.test_stack_update_rollback +heat_integrationtests\.functional\.test_instance_group\.InstanceGroupUpdatePolicyTest\.test_instance_group_update_no_replace +heat_integrationtests\.functional\.test_create_update\.UpdateStackTest\.test_stack_update_provider_type +heat_integrationtests\.functional\.test_preview\.StackPreviewTest\.test_basic_fail +heat_integrationtests\.functional\.test_instance_group\.InstanceGroupBasicTest\.test_update_instance_error_causes_group_error +heat_integrationtests\.functional\.test_create_update_neutron_subnet\.UpdateSubnetTest\.test_update_to_no_allocation_pools +heat_integrationtests\.functional\.test_create_update\.UpdateStackTest\.test_stack_update_nochange +heat_integrationtests\.functional\.test_template_resource\.TemplateResourceUpdateFailedTest\.test_update_on_failed_create +heat_integrationtests\.functional\.test_template_validate\.StackTemplateValidateTest\.test_template_validate_override_default +heat_integrationtests\.functional\.test_autoscaling\.AutoscalingGroupUpdatePolicyTest\.test_instance_group_update_no_replace +heat_integrationtests\.functional\.test_template_resource\.TemplateResourceTest\.test_nested_env +heat_integrationtests\.functional\.test_template_validate\.StackTemplateValidateTest\.test_template_validate_fail_version +heat_integrationtests\.functional\.test_instance_group\.InstanceGroupBasicTest\.test_update_group_replace +heat_integrationtests\.functional\.test_instance_group\.InstanceGroupUpdatePolicyTest\.test_instance_group_update_replace_huge_min_in_service +heat_integrationtests\.functional\.test_resource_group\.ResourceGroupTest\.test_update_nochange +heat_integrationtests\.functional\.test_template_validate\.StackTemplateValidateTest\.test_template_validate_nested_on +heat_integrationtests\.functional\.test_hooks\.HooksTest\.test_hook_pre_update_nochange +heat_integrationtests\.functional\.test_resource_group\.ResourceGroupTest\.test_resource_group_zero_novalidate +heat_integrationtests\.functional\.test_autoscaling\.AutoscalingGroupUpdatePolicyTest\.test_instance_group_update_no_replace_with_adjusted_capacity +heat_integrationtests\.functional\.test_conditional_exposure\.RoleBasedExposureTest\.test_forbidden_resource_not_listed +heat_integrationtests\.functional\.test_create_update_neutron_subnet\.UpdateSubnetTest\.test_update_allocation_pools_to_empty +heat_integrationtests\.functional\.test_create_update_neutron_port\.UpdatePortTest\.test_stack_update_replace_no_ip +heat_integrationtests\.functional\.test_instance_group\.InstanceGroupBasicTest\.test_size_updates_work +heat_integrationtests\.functional\.test_instance_group\.InstanceGroupUpdatePolicyTest\.test_instance_group_update_replace_with_adjusted_capacity +heat_integrationtests\.functional\.test_resource_group\.ResourceGroupTest\.test_update_nochange_resource_needs_update +heat_integrationtests\.functional\.test_instance_group\.InstanceGroupUpdatePolicyTest\.test_instance_group_update_no_replace_with_adjusted_capacity +heat_integrationtests\.functional\.test_template_resource\.TemplateResourceSuspendResumeTest\.test_suspend_resume +heat_integrationtests\.functional\.test_create_update\.UpdateStackTest\.test_stack_update_provider_group +heat_integrationtests\.functional\.test_template_resource\.NestedAttributesTest\.test_nested_attributes +heat_integrationtests\.functional\.test_autoscaling\.AutoscalingGroupUpdatePolicyTest\.test_instance_group_update_replace +heat_integrationtests\.functional\.test_resource_group\.ResourceGroupTest\.test_update_removal_policies +heat_integrationtests\.functional\.test_resource_group\.ResourceGroupErrorResourceTest\.test_fail +heat_integrationtests\.functional\.test_template_validate\.StackTemplateValidateTest\.test_template_validate_basic_required_param +heat_integrationtests\.functional\.test_instance_group\.InstanceGroupUpdatePolicyTest\.test_instance_group_update_replace +heat_integrationtests\.functional\.test_template_resource\.NestedAttributesTest\.test_stack_ref +heat_integrationtests\.functional\.test_preview\.StackPreviewTest\.test_basic_pass +heat_integrationtests\.functional\.test_create_update\.CreateStackTest\.test_create_rollback +heat_integrationtests\.functional\.test_resource_group\.ResourceGroupTest\.test_props_update +heat_integrationtests\.functional\.test_template_resource\.TemplateResourceTest\.test_nested_stack_delete_then_delete_parent_stack +heat_integrationtests\.functional\.test_template_validate\.StackTemplateValidateTest\.test_template_validate_nested_off +heat_integrationtests\.functional\.test_instance_group\.InstanceGroupBasicTest\.test_create_instance_error_causes_group_error +heat_integrationtests\.functional\.test_validation\.StackValidationTest\.test_stack_validate_provider_references_parent_resource +heat_integrationtests\.functional\.test_template_validate\.StackTemplateValidateTest\.test_template_validate_nested_on_multiple +heat_integrationtests\.functional\.test_instance_group\.InstanceGroupUpdatePolicyTest\.test_instance_group_update_replace_huge_batch_size +heat_integrationtests\.functional\.test_autoscaling\.AutoscalingGroupUpdatePolicyTest\.test_instance_group_update_replace_huge_min_in_service +heat_integrationtests\.functional\.test_template_resource\.TemplateResourceUpdateTest\.test_template_resource_update_template_schema(no_changes) +heat_integrationtests\.functional\.test_autoscaling\.AutoscalingGroupUpdatePolicyTest\.test_instance_group_update_replace_with_adjusted_capacity +heat_integrationtests\.functional\.test_hooks\.HooksTest\.test_hook_pre_create_wildcard +heat_integrationtests\.functional\.test_create_update_neutron_port\.UpdatePortTest\.test_stack_update_replace_with_ip_after_failed_update +heat_integrationtests\.functional\.test_template_validate\.StackTemplateValidateTest\.test_template_validate_parameter_groups +heat_integrationtests\.functional\.test_create_update\.UpdateStackTest\.test_stack_update_replace +heat_integrationtests\.functional\.test_template_resource\.TemplateResourceUpdateTest\.test_template_resource_update_template_schema(main_tmpl_change) +heat_integrationtests\.functional\.test_swiftsignal_update\.SwiftSignalHandleUpdateTest\.test_stack_update_same_template_replace_no_url +heat_integrationtests\.functional\.test_create_update\.UpdateStackTest\.test_stack_update_with_new_env +heat_integrationtests\.functional\.test_template_resource\.TemplateResourceCheckTest\.test_check +heat_integrationtests\.functional\.test_create_update\.UpdateStackTest\.test_stack_update_with_replacing_userdata +heat_integrationtests\.functional\.test_template_validate\.StackTemplateValidateTest\.test_template_validate_override_none +heat_integrationtests\.functional\.test_template_resource\.TemplateResourceUpdateTest\.test_template_resource_update_template_schema(provider_change) +heat_integrationtests\.functional\.test_create_update_neutron_subnet\.UpdateSubnetTest\.test_update_allocation_pools +heat_integrationtests\.functional\.test_stack_tags\.StackTagTest\.test_stack_tag +heat_integrationtests\.functional\.test_template_resource\.TemplateResourceUpdateTest\.test_template_resource_update_template_schema(provider_props_change) +heat_integrationtests\.functional\.test_template_resource\.TemplateResourceTest\.test_change_in_file_path +heat_integrationtests\.functional\.test_template_resource\.TemplateResourceUpdateTest\.test_template_resource_update_template_schema(provider_props_add) +heat_integrationtests\.functional\.test_encrypted_parameter\.EncryptedParametersTest\.test_db_encryption +heat_integrationtests\.functional\.test_resource_group\.ResourceGroupTestNullParams\.test_create_pass_zero_parameter(string_empty) +heat_integrationtests\.functional\.test_template_resource\.TemplateResourceUpdateTest\.test_template_resource_update_template_schema(provider_props_remove) +heat_integrationtests\.functional\.test_resource_group\.ResourceGroupTestNullParams\.test_create_pass_zero_parameter(boolean_false) +heat_integrationtests\.functional\.test_template_resource\.TemplateResourceUpdateTest\.test_template_resource_update_template_schema(provider_attr_change) +heat_integrationtests\.functional\.test_resource_group\.ResourceGroupTestNullParams\.test_create_pass_zero_parameter(number_zero) +heat_integrationtests\.functional\.test_resource_group\.ResourceGroupTestNullParams\.test_create_pass_zero_parameter(comma_delimited_list) +heat_integrationtests\.functional\.test_resource_group\.ResourceGroupTestNullParams\.test_create_pass_zero_parameter(json_empty) 0707010000014A000081A40000000000000000000000015B730C5000001298000000000000000000000000000000000000007500000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-heat-integrationtests-deploy/files/run_filters/tests2skip.txt# Known test failures on scenario tests # HEAT-160 # -heat_integrationtests\.scenario\.test_server_cfn_init\.CfnInitIntegrationTest\.test_server_cfn_init -heat_integrationtests\.scenario\.test_autoscaling_lb\.AutoscalingLoadBalancerTest\.test_autoscaling_loadbalancer_neutron -heat_integrationtests\.scenario\.test_ceilometer_alarm\.CeilometerAlarmTest\.test_alarm # # VolumeBackupRestoreIntegrationTest skipped until failure rate can be reduced # ref bug #1382300 # -heat_integrationtests\.scenario\.test_volumes\.VolumeBackupRestoreIntegrationTest\.test_cinder_volume_create_backup_restore # # HEAT-149 # -heat_integrationtests\.scenario\.test_server_software_config\.SoftwareConfigIntegrationTest\.test_server_software_config # # List of functional test class or class.method names to skip # # 1) All tests for stack action ABANDON & ADOPT fail due to # the fact that stack action ABANDON & ADOPT are not enabled # by default in HOS. # # heat_integrationtests.conf can also add the following setting # to skip all those stack ABANDON and ADOPT tests # # 'skip_test_stack_action_list = ABANDON, ADOPT' # -heat_integrationtests\.functional\.test_aws_stack\.AwsStackTest\.test_nested_stack_adopt_ok -heat_integrationtests\.functional\.test_aws_stack\.AwsStackTest\.test_nested_stack_adopt_fail -heat_integrationtests\.functional\.test_resource_group\.ResourceGroupAdoptTest\.test_adopt -heat_integrationtests\.functional\.test_template_resource\.TemplateResourceAdoptTest\.test_adopt -heat_integrationtests\.functional\.test_template_resource\.TemplateResourceAdoptTest\.test_abandon # # 2) ReloadOnSighupTest failing due to the fact that it checks the heat config # file from the hard-coded location "/etc/heat/heat.conf": # # test_api_cloudwatch_on_sighup [9.648422s] ... FAILED # test_api_cfn_reload_on_sighup [7.341564s] ... FAILED # test_api_reload_on_sighup [3.670955s] ... FAILED # -heat_integrationtests\.functional\.test_reload_on_sighup\.ReloadOnSighupTest\.test_api_reload_on_sighup -heat_integrationtests\.functional\.test_reload_on_sighup\.ReloadOnSighupTest\.test_api_cfn_reload_on_sighup -heat_integrationtests\.functional\.test_reload_on_sighup\.ReloadOnSighupTest\.test_api_cloudwatch_on_sighup # # 3) NotificationTest failures (ref HEAT-159): # # test_asg_notifications [10.355411s] ... FAILED # test_basic_notifications [3.105386s] ... FAILED # -heat_integrationtests\.functional\.test_notifications\.NotificationTest\.test_asg_notifications -heat_integrationtests\.functional\.test_notifications\.NotificationTest\.test_basic_notifications # # 4) RemoteStackTest uses the hard-coded region "RegionOne"/"DARKHOLE" # # test_stack_update [11.778883s] ... FAILED # testt_stack_suspend_resume [8.017749s] ... FAILED # test_stack_create [9.552089s] ... FAILED # test_stack_create_bad_region [6.491339s] ... FAILED # test_stack_resource_validation_fail [4.755732s] ... FAILED # test_remote_stack_alone [34.286681s] ... ok # -heat_integrationtests\.functional\.test_remote_stack\.RemoteStackTest\.test_stack_create -heat_integrationtests\.functional\.test_remote_stack\.RemoteStackTest\.test_stack_resource_validation_fail -heat_integrationtests\.functional\.test_remote_stack\.RemoteStackTest\.test_stack_update -heat_integrationtests\.functional\.test_remote_stack\.RemoteStackTest\.test_stack_suspend_resume -heat_integrationtests\.functional\.test_remote_stack\.RemoteStackTest\.test_remote_stack_alone -heat_integrationtests\.functional\.test_remote_stack\.RemoteStackTest\.test_stack_create_bad_region # # 5) StackTagTest failing (ref HEAT-174) # # heat_integrationtests.functional.test_stack_tags.StackTagTest.test_hidden_stack [13.200199s] ... FAILED # -heat_integrationtests\.functional\.test_stack_tags\.StackTagTest\.test_hidden_stack # # 6) ParallelDeploymentsTest faling (ref HEAT-149) # # heat_integrationtests.functional.test_software_config.ParallelDeploymentsTest.test_deployments_metadata [130.187339s] ... FAILED # -heat_integrationtests\.functional\.test_software_config\.ParallelDeploymentsTest\.test_deployments_metadata # # 7) EncryptionVolTypeTest failing (ref HEAT-175) # # heat_integrationtests.functional.test_encryption_vol_type.EncryptionVolTypeTest.test_create_update [0.423449s] ... FAILED # -heat_integrationtests\.functional\.test_encryption_vol_type\.EncryptionVolTypeTest\.test_create_update # # 7) Misc -heat_integrationtests\.functional\.test_aws_stack\.AwsStackTest\.test_nested_stack_create -heat_integrationtests\.functional\.test_aws_stack\.AwsStackTest\.test_nested_stack_suspend_resume -heat_integrationtests\.functional\.test_aws_stack.AwsStackTest\.test_nested_stack_update -heat_integrationtests\.functional\.test_aws_stack\.AwsStackTest\.test_nested_stack_create_with_timeout 0707010000014B000081A40000000000000000000000015B730C500000084A000000000000000000000000000000000000006800000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-heat-integrationtests-deploy/files/tests2skip.py#!/usr/bin/env python # # Copyright 2013 Red Hat # All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # Reads in a list of exclude regular expressions from a file and outputs a # regex suitable to be passed into testr import sys """ Whitelist is applied first. The blacklist is executed against the set of tests returned by the whitelist. If whitelist is empty, all available tests are fed to blacklist. If blacklist is empty, all tests from whitelist are returned. The syntax for white-list and black-list is as follows: - lines starting with # or empty are ignored - lines starting with "+" are whitelisted - lines starting with "-" are blacklisted - lines not matching any of the above conditions are blacklisted The match for each line gets added a "^" in the beginning, so the regular expression should account for that. For example, the following scenario: run all the smoke tests and scenario tests, but exclude the api.volume tests. is implemented as: +.*smoke +tempest\.scenario -tempest\.api\.volume.* """ whitelist = [] blacklist = [] with open(sys.argv[1]) as fp: for line in fp: line = line.strip() if not line or line[0] == '#': continue if line.startswith("+"): whitelist.append(line[1:]) elif line.startswith("-"): blacklist.append(line[1:]) else: blacklist.append(line) regex = '^(?=({whitelist}))' params = dict(whitelist="|".join(whitelist)) if blacklist: regex += '(?!({blacklist}))' params['blacklist'] = "|".join(blacklist) print(regex.format(**params)) 0707010000014C000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005A00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-heat-integrationtests-deploy/tasks0707010000014D000081A40000000000000000000000015B730C5000000D67000000000000000000000000000000000000006600000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-heat-integrationtests-deploy/tasks/install.yml--- # Install heat integrationtests dependencies - name: hqe-heat-integrationtests | install | set os-specific variables include_vars: "../vars/{{ ansible_os_family.split(' ')[0] | lower | replace('open', '') }}.yml" - name: hqe-heat-integrationtests | install | Create the work folder file: path: "{{ heat_integrationtests_work_folder }}" state: directory mode: 0755 # NOTE(andreaf) In future repo cloning shall be handled by the framework. For now # we sudo to create the clone folder - name: hqe-heat-integrationtests | install | Create the clone folder become: yes become_user: root file: path: "{{ heat_integrationtests_code_folder }}" state: directory owner: "{{ hqe_user }}" group: "{{ hqe_group }}" mode: 0755 - name: hqe-heat-integrationtests | install | Pull heat integration tests from the heat repo git: repo: "{{ heat_integrationtests_repo }}" version: "{{ heat_integrationtests_branch }}" dest: "{{ heat_integrationtests_code_folder }}" force: yes - name: hqe-heat-integrationtests | install | Install binary dependencies for heat integrationtests venv become: yes become_user: root package: name={{ item }} state=present with_items: hqe_heat_integrationtests_pkgs when: build_venvs | bool - name: hqe-heat-integrationtests | install | Upgrade pip pip: name: pip extra_args: --upgrade virtualenv: "{{ heat_integrationtests_venv_folder }}" when: build_venvs | bool - name: hqe-heat-integrationtests | install | Install test-requirements pip: requirements: "{{ heat_integrationtests_code_folder }}/test-requirements.txt" virtualenv: "{{ heat_integrationtests_venv_folder }}" extra_args: '--upgrade' when: build_venvs | bool - name: hqe-heat-integrationtests | install | Install requirements pip: requirements: "{{ heat_integrationtests_code_folder }}/requirements.txt" virtualenv: "{{ heat_integrationtests_venv_folder }}" extra_args: '--upgrade' when: build_venvs | bool # NOTE(andreaf) Use heat .testr.conf - name: hqe-heat-integrationtests | install | Deploy .testr.conf copy: src: .testr.conf dest: "{{ heat_integrationtests_work_folder }}/" mode: 0644 - name: hqe-heat-integrationtests | install | Initialise the .testrepository directory if it doesn't exist shell: "{{ heat_integrationtests_venv_folder }}/bin/testr init" args: chdir: "{{ heat_integrationtests_work_folder }}" creates: "{{ heat_integrationtests_work_folder }}/.testrepository" - name: hqe-heat-integrationtests | install | Deploy run_filters copy: src: run_filters dest: "{{ heat_integrationtests_work_folder }}/" mode: 0640 - name: hqe-heat-integrationtests | install | Deploy tests2skip.py copy: src: tests2skip.py dest: "{{ heat_integrationtests_work_folder }}/tests2skip.py" mode: 0640 # NOTE(andreaf) Heat tests will look for the config file only where the code is # so deploying it there - name: hqe-heat-integrationtests | install | Deploy heat integration config template: src: heat_integrationtests.conf.j2 dest: "{{ heat_integrationtests_code_folder }}/heat_integrationtests/heat_integrationtests.conf" mode: 0644 - name: hqe-heat-integrationtests | install | Deploy heat integration run script template: src: heat-integrationtests.sh.j2 dest: "{{ heat_integrationtests_work_folder }}/heat-integrationtests.sh" mode: 0755 0707010000014E000081A40000000000000000000000015B730C500000001B000000000000000000000000000000000000006300000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-heat-integrationtests-deploy/tasks/main.yml--- - include: install.yml 0707010000014F000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005E00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-heat-integrationtests-deploy/templates07070100000150000081A40000000000000000000000015B730C5000000674000000000000000000000000000000000000007A00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-heat-integrationtests-deploy/templates/heat-integrationtests.sh.j2#!/usr/bin/env bash # # (c) Copyright 2015 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # set -eux set -o pipefail # This script runs heat integration tests against a deployed Helion OpenStack cloud # # Usage: [path]/heat-integrationtests.sh [run-filter] # Environment variable may be overridden by the caller export OS_TEST_PATH={{ heat_integrationtests_code_folder }} export TESTR_START_DIR="heat_integrationtests" PYTHON={{ heat_integrationtests_venv_folder }}/bin/python TESTS_HOME={{ heat_integrationtests_code_folder }} WORK_HOME={{ heat_integrationtests_work_folder }} TESTS_TO_SKIP_BIN=${WORK_HOME}/tests2skip.py RUN_FILTER=${WORK_HOME}/run_filters/${1:-{{ run_filter }}}.txt # Activate the virtual environment set +u source {{ heat_integrationtests_venv_folder }}/bin/activate set -u source ${WORK_HOME}/heatv2.testrc cd ${WORK_HOME} ${PYTHON} setup.py testr --slowest --testr-args="--subunit --parallel $(${PYTHON} ${TESTS_TO_SKIP_BIN} ${RUN_FILTER})" | {{ heat_integrationtests_venv_folder }}/bin/subunit-trace --no-failure-debug -f | tee {{ test_results_output }} 07070100000151000081A40000000000000000000000015B730C50000003AD000000000000000000000000000000000000007C00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-heat-integrationtests-deploy/templates/heat_integrationtests.conf.j2[heat_plugin] username = {{ osrc_vars.os_username }} password = {{ osrc_vars.os_password }} admin_username = {{ osrc_vars.os_username }} admin_password = {{ osrc_vars.os_password }} project_name = {{ osrc_vars.os_project_name }} admin_project_name = {{ osrc_vars.os_project_name }} auth_url = {{ osrc_vars.os_auth_url }} auth_version = 3 user_domain_name = Default project_domain_name = Default region = region1 instance_type = m1.tiny minimal_instance_type = m1.heat_micro image_ref = fedora-heat-test-image keypair_name = heat minimal_image_ref = cirros-0.3.4-x86_64 ca_file = {{ ca_bundle }} network_for_ssh = heat-net fixed_network_name = heat-net floating_network_name = {{ hqe_group_vars.test_region_ext_net }} fixed_subnet_name = heat-subnet endpoint_type = internal convergence_engine_enabled = False boot_config_env = heat_integrationtests/scenario/templates/boot_config_none_env.yaml build_timeout = 3000 connectivity_timeout = 30007070100000152000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005900000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-heat-integrationtests-deploy/vars07070100000153000081A40000000000000000000000015B730C5000000046000000000000000000000000000000000000006400000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-heat-integrationtests-deploy/vars/debian.yml--- hqe_heat_integrationtests_pkgs: - libxml2-dev - libxslt1-dev 07070100000154000081A40000000000000000000000015B730C50000003AB000000000000000000000000000000000000006200000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-heat-integrationtests-deploy/vars/main.yml--- heat_integrationtests_service_name: "{{ hqe_heat_integrationtests.deploy.service_name }}" heat_integrationtests_venv_folder: "{{ common_venv_root }}/{{ hqe_heat_integrationtests.deploy.venv_folder }}" heat_integrationtests_test_suite: "{{ hqe_heat_integrationtests.deploy.test_suite }}" # NOTE(andreaf) Heat has an own repo for tests, so the path where the git # repo is cloned is in tests_folder, and the path to the tests within the folder # is hardcoded in the run script heat_integrationtests_code_folder: "{{ work_folder }}/{{ hqe_heat_integrationtests.deploy.test_suite }}" heat_integrationtests_work_folder: "{{ work_folder }}/{{ hqe_heat_integrationtests.deploy.test_suite }}" #heat_integrationtests_repo: "http://git.suse.provo.cloud/openstack/heat.git" #heat_integrationtests_branch: "hp/prerelease/mitaka" heat_integrationtests_repo: "http://git.suse.provo.cloud/openstack/heat.git" heat_integrationtests_branch: "master" 07070100000155000081A40000000000000000000000015B730C500000003D000000000000000000000000000000000000006200000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-heat-integrationtests-deploy/vars/suse.yml--- hqe_heat_integrationtests_pkgs: - libxml2 - libxslt1 07070100000156000041ED0000000000000000000000055B730C5000000000000000000000000000000000000000000000005100000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-heat-integrationtests-run07070100000157000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005700000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-heat-integrationtests-run/tasks07070100000158000081A40000000000000000000000015B730C5000001528000000000000000000000000000000000000006300000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-heat-integrationtests-run/tasks/cleanup.yml--- # Cleanup the account used for heat integration testing - name: hqe-heat-integrationtests | cleanup test resources | delete any created heat stacks ignore_errors: true environment: OS_USERNAME: "{{ demo_test_user }}" OS_TENANT_NAME: "{{ demo_test_project }}" OS_PASSWORD: "{{ demo_test_password }}" OS_CACERT: "{{ ca_bundle }}" OS_AUTH_URL: "{{ os_auth_url }}" shell: | for sid in $({{ common_venv_bin }}/heat stack-list | grep -e CREATE -e DELETE -e MODIFY -e UPDATE | awk '{print $2'}); do heat stack-delete $sid; done - name: hqe-heat-integrationtests | cleanup test resources | wait to ensure heat stacks gone ignore_errors: true shell: sleep "{{ heat_wait_time }}" - name: hqe-heat-integrationtests | cleanup test resources | delete flavor m1.heat_int ignore_errors: true args: executable: /bin/bash shell: | source "{{ service_osrc }}" {{ common_venv_bin }}/openstack flavor delete {{ demo_test_flavor_int }} - name: hqe-heat-integrationtests | cleanup test resources | delete flavor m1.heat_micro ignore_errors: true args: executable: /bin/bash shell: | source "{{ service_osrc }}" {{ common_venv_bin }}/openstack flavor delete {{ demo_test_flavor_micro }} - name: hqe-heat-integrationtests | cleanup test resources | delete image ignore_errors: true args: executable: /bin/bash shell: | source "{{ service_osrc }}" {{ common_venv_bin }}/openstack image delete {{ heat_test_image_id.stdout }} register: result until: result.rc == 0 retries: 5 delay: 10 - name: hqe-heat-integrationtests | cleanup test resources | delete heat test keypair ignore_errors: true environment: OS_USERNAME: "{{ demo_test_user }}" OS_TENANT_NAME: "{{ demo_test_project }}" OS_PASSWORD: "{{ demo_test_password }}" OS_CACERT: "{{ ca_bundle }}" OS_AUTH_URL: "{{ os_auth_url }}" shell: | {{ common_venv_bin }}/openstack keypair delete {{ demo_test_keyname }} - name: hqe-heat-integrationtests | cleanup test resources | delete router interface ignore_errors: true environment: OS_USERNAME: "{{ demo_test_user }}" OS_TENANT_NAME: "{{ demo_test_project }}" OS_PASSWORD: "{{ demo_test_password }}" OS_CACERT: "{{ ca_bundle }}" OS_AUTH_URL: "{{ os_auth_url }}" shell: | {{ common_venv_bin }}/neutron router-interface-delete {{ heat_test_router_id.stdout }} subnet={{ demo_test_subnet }} register: result until: result.rc == 0 retries: 5 delay: 10 - name: hqe-heat-integrationtests | cleanup test resources | delete heat test private subnet ignore_errors: true environment: OS_USERNAME: "{{ demo_test_user }}" OS_TENANT_NAME: "{{ demo_test_project }}" OS_PASSWORD: "{{ demo_test_password }}" OS_CACERT: "{{ ca_bundle }}" OS_AUTH_URL: "{{ os_auth_url }}" shell: | {{ common_venv_bin }}/neutron subnet-delete {{ demo_test_subnet }} register: result until: result.rc == 0 retries: 5 delay: 10 - name: hqe-heat-integrationtests | cleanup test resources | delete heat test private network ignore_errors: true environment: OS_USERNAME: "{{ demo_test_user }}" OS_TENANT_NAME: "{{ demo_test_project }}" OS_PASSWORD: "{{ demo_test_password }}" OS_CACERT: "{{ ca_bundle }}" OS_AUTH_URL: "{{ os_auth_url }}" shell: | {{ common_venv_bin }}/openstack network delete {{ demo_test_network }} register: result until: result.rc == 0 retries: 5 delay: 10 - name: hqe-heat-integrationtests | cleanup test resources | delete router to ext-net gateway ignore_errors: true environment: OS_USERNAME: "{{ demo_test_user }}" OS_TENANT_NAME: "{{ demo_test_project }}" OS_PASSWORD: "{{ demo_test_password }}" OS_CACERT: "{{ ca_bundle }}" OS_AUTH_URL: "{{ os_auth_url }}" shell: | {{ common_venv_bin }}/neutron router-gateway-clear {{ demo_test_router }} register: result until: result.rc == 0 retries: 5 delay: 10 - name: hqe-heat-integrationtests | cleanup test resources | delete router ignore_errors: true environment: OS_USERNAME: "{{ demo_test_user }}" OS_TENANT_NAME: "{{ demo_test_project }}" OS_PASSWORD: "{{ demo_test_password }}" OS_CACERT: "{{ ca_bundle }}" OS_AUTH_URL: "{{ os_auth_url }}" shell: | {{ common_venv_bin }}/neutron router-delete {{ demo_test_router }} register: result until: result.rc == 0 retries: 5 delay: 10 - name: hqe-heat-integrationtests | cleanup test resources | delete roles ignore_errors: true args: executable: /bin/bash shell: | source "{{ keystone_osrc }}" {{ common_venv_bin }}/openstack role remove --project "{{ demo_test_project }}" --user "{{ demo_test_user }}" _member_ {{ common_venv_bin }}/openstack role remove --project "{{ demo_test_project }}" --user "{{ os_admin_username }}" admin - name: hqe-heat-integrationtests | cleanup test resources | delete test user ignore_errors: true args: executable: /bin/bash shell: | source "{{ keystone_osrc }}" {{ common_venv_bin }}/openstack user delete {{ demo_test_user }} - name: hqe-heat-integrationtests | cleanup test resources | delete test project ignore_errors: true args: executable: /bin/bash shell: | source "{{ keystone_osrc }}" {{ common_venv_bin }}/openstack project delete {{ demo_test_project }} 07070100000159000081A40000000000000000000000015B730C500000025B000000000000000000000000000000000000006000000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-heat-integrationtests-run/tasks/main.yml--- - set_fact: heat_integrationtests_venv_bin: "{{ heat_integrationtests_venv_folder }}/bin" heat_integrationtests_venv_python: "{{ heat_integrationtests_venv_folder }}/bin/python" - include: test-resources.yml vars: ansible_python_interpreter: "{{ heat_integrationtests_venv_python | quote }}" - include: ../../hqe-common/tasks/common-run.yml vars: caller_role_path: "{{ role_path }}" ansible_python_interpreter: "{{ heat_integrationtests_venv_python | quote }}" - include: cleanup.yml vars: ansible_python_interpreter: "{{ heat_integrationtests_venv_python | quote }}" 0707010000015A000081A40000000000000000000000015B730C50000002B4000000000000000000000000000000000000005F00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-heat-integrationtests-run/tasks/run.yml--- # Run the heat integration test script # # The test log shall be placed in a folder where it's picked up by the CI jobs # # Ignore errors is require to make sure the following tasks are executed # We may need to store the exit code somewhere for Jenkins to pick it up - name: hqe-heat-integrationtests | run | Run heat integration tests command: "{{ heat_integrationtests_work_folder }}/heat-integrationtests.sh {{ run_filter }}" register: test_output ignore_errors: True - name: hqe-heat-integrationtests | run | Show test output debug: var=test_output - name: hqe-heat-integrationtests | run | Set test status set_fact: test_status: false when: test_output.rc != 0 0707010000015B000081A40000000000000000000000015B730C5000002699000000000000000000000000000000000000006A00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-heat-integrationtests-run/tasks/test-resources.yml--- # Setup the test account used for heat integration testing - name: hqe-heat-integrationtests | test-resources | get os_auth_url_public args: executable: /bin/bash shell: | source "{{ service_osrc }}" {{ common_venv_bin }}/openstack catalog show keystone | awk '/public/ {print $4}' register: os_auth_url_public_raw - name: hqe-heat-integrationtests | test-resources | set os_auth_url set_fact: os_auth_url: "{{ os_auth_url_public_raw.stdout }}" - name: hqe-heat-integrationtests | test-resources | check if ext-net exists args: executable: /bin/bash shell: | source "{{ service_osrc }}" {{ common_venv_bin }}/openstack network list | awk '/ {{ demo_test_ext_net }} / {print $2}' register: public_network_id_result - name: hqe-heat-integrationtests | test-resources | check and fail if there is no external network fail: msg="No ext-net found. Please create one." when: public_network_id_result.stdout == "" - name: hqe-heat-integrationtests | test-resources | create heat integration test project args: executable: /bin/bash shell: | source "{{ keystone_osrc }}" {{ common_venv_bin }}/openstack project create "{{ demo_test_project }}" register: project_create_output - name: hqe-heat-integrationtests | test-resources | create heat integration test project debug debug: var=project_create_output - name: hqe-heat-integrationtests | test-resources | create heat integration test user args: executable: /bin/bash shell: | source "{{ keystone_osrc }}" {{ common_venv_bin }}/openstack user create --password "{{ demo_test_password }}" --project "{{ demo_test_project }}" "{{ demo_test_user }}" register: user_create_output - name: hqe-heat-integrationtests | test-resources | create heat integration test user debug debug: var=user_create_output - name: hqe-heat-integrationtests | test-resources | show heat integration test project exists args: executable: /bin/bash shell: | source "{{ keystone_osrc }}" {{ common_venv_bin }}/openstack project list | grep "{{ demo_test_project }}" register: project_list_output - name: hqe-heat-integrationtests | test-resources | show heat integration test project exists debug debug: var=project_list_output - name: hqe-heat-integrationtests | test-resources | add roles args: executable: /bin/bash shell: | source "{{ keystone_osrc }}" {{ common_venv_bin }}/openstack role add --project "{{ demo_test_project }}" --user "{{ demo_test_user }}" Member {{ common_venv_bin }}/openstack role add --project "{{ demo_test_project }}" --user "{{ demo_test_user }}" _member_ {{ common_venv_bin }}/openstack role add --project "{{ demo_test_project }}" --user "{{ os_admin_username }}" admin register: role_add_output - name: hqe-heat-integrationtests | test-resources | show heat integration add role debug debug: var=role_add_output - name: hqe-heat-integrationtests | test-resources | deploy heat integration test creds file template: src: testrc.j2 dest: "{{ heat_osrc }}" mode: 0600 - name: hqe-heat-integrationtests | test-resources | capture heat integration test creds shell: cat {{ heat_osrc }} register: heat_test_creds_output - name: hqe-heat-integrationtests | test-resources | show heat integration test creds - debug debug: var=heat_test_creds_output # test requires the following items - name: hqe-heat-integrationtests | test-resources | create flavor m1.heat_int ignore_errors: true args: executable: /bin/bash shell: | source "{{ service_osrc }}" {{ common_venv_bin }}/openstack flavor create {{ demo_test_flavor_int }} --id 452 --ram 512 --disk 0 --vcpus 1 register: heat_flavor_int_create - name: hqe-heat-integrationtests | test-resources | create flavor m1.heat_int - debug debug: var=heat_flavor_int_create - name: hqe-heat-integrationtests | test-resources | create flavor m1.heat_micro ignore_errors: true args: executable: /bin/bash shell: | source "{{ service_osrc }}" {{ common_venv_bin }}/openstack flavor create {{ demo_test_flavor_micro }} --id 453 --ram 128 --disk 0 --vcpus 1 register: heat_flavor_micro_create - name: hqe-heat-integrationtests | test-resources | create flavor m1.heat_micro - debug debug: var=heat_flavor_micro_create - name: hqe-heat-integrationtests | test-resources | get heat test image file name ignore_errors: true shell: basename {{ demo_test_heat_integrationtests_image_url }} register: image_file_name - name: hqe-heat-integrationtests | test-resources | get heat test image file name - debug debug: var=image_file_name - name: hqe-heat-integrationtests | test-resources | get image file shell: | echo "`date` : `env | grep proxy`" if [ -e "{{ heat_integrationtests_work_folder }}/{{ image_file_name.stdout }}" ]; then echo "Re-using existing heat test image file" else wget -O "{{ heat_integrationtests_work_folder }}/{{ image_file_name.stdout }}" "{{ demo_test_heat_integrationtests_image_url }}" fi # just check it is there ls "{{ heat_integrationtests_work_folder }}/{{ image_file_name.stdout }}" register: get_image_file_log - name: hqe-heat-integrationtests | test-resources | show heat test image file get - debug debug: var=get_image_file_log - name: hqe-heat-integrationtests | test-resources | get heat test image name ignore_errors: true shell: basename {{ demo_test_heat_integrationtests_image_url }} '.qcow2' register: heat_test_image_name - name: hqe-heat-integrationtests | test-resources | get heat test image name - debug debug: var=heat_test_image_name - name: hqe-heat-integrationtests | test-resources | upload heat test image to glance ignore_errors: true args: executable: /bin/bash shell: | source "{{ service_osrc }}" {{ common_venv_bin }}/openstack image create {{ heat_test_image_name.stdout }} --container-format bare --disk-format qcow2 --public --file {{ heat_integrationtests_work_folder }}/{{ image_file_name.stdout }} | awk '/ id / {print $4}' register: heat_test_image_id - name: hqe-heat-integrationtests | test-resources | check on heat_test_image_id - debug debug: var=heat_test_image_id - name: hqe-heat-integrationtests | test-resources | create heat test keypair ignore_errors: true environment: OS_USERNAME: "{{ demo_test_user }}" OS_TENANT_NAME: "{{ demo_test_project }}" OS_PASSWORD: "{{ demo_test_password }}" OS_CACERT: "{{ ca_bundle }}" OS_AUTH_URL: "{{ os_auth_url }}" shell: | {{ common_venv_bin }}/openstack keypair create {{ demo_test_keyname }} - name: hqe-heat-integrationtests | test-resources | create heat test router ignore_errors: true environment: OS_USERNAME: "{{ demo_test_user }}" OS_TENANT_NAME: "{{ demo_test_project }}" OS_PASSWORD: "{{ demo_test_password }}" OS_CACERT: "{{ ca_bundle }}" OS_AUTH_URL: "{{ os_auth_url }}" shell: | {{ common_venv_bin }}/neutron router-create {{ demo_test_router }} - name: hqe-heat-integrationtests | test-resources | connect router to ext-net ignore_errors: true environment: OS_USERNAME: "{{ demo_test_user }}" OS_TENANT_NAME: "{{ demo_test_project }}" OS_PASSWORD: "{{ demo_test_password }}" OS_CACERT: "{{ ca_bundle }}" OS_AUTH_URL: "{{ os_auth_url }}" shell: | {{ common_venv_bin }}/neutron router-gateway-set {{ demo_test_router }} {{ demo_test_ext_net }} - name: hqe-heat-integrationtests | test-resources | verify heat test router ignore_errors: true environment: OS_USERNAME: "{{ demo_test_user }}" OS_TENANT_NAME: "{{ demo_test_project }}" OS_PASSWORD: "{{ demo_test_password }}" OS_CACERT: "{{ ca_bundle }}" OS_AUTH_URL: "{{ os_auth_url }}" shell: | {{ common_venv_bin }}/neutron router-list | grep {{ demo_test_router }} | awk '{print $2}' register: heat_test_router_id - name: hqe-heat-integrationtests | test-resources | verify heat test router - debug debug: var=heat_test_router_id - name: hqe-heat-integrationtests | test-resources | create heat test private network ignore_errors: true environment: OS_USERNAME: "{{ demo_test_user }}" OS_TENANT_NAME: "{{ demo_test_project }}" OS_PASSWORD: "{{ demo_test_password }}" OS_CACERT: "{{ ca_bundle }}" OS_AUTH_URL: "{{ os_auth_url }}" shell: | {{ common_venv_bin }}/openstack network create {{ demo_test_network }} register: heat_private_net - name: hqe-heat-integrationtests | test-resources | heat test private network - debug debug: var=heat_private_net - name: hqe-heat-integrationtests | test-resources | create heat test private subnet ignore_errors: true environment: OS_USERNAME: "{{ demo_test_user }}" OS_TENANT_NAME: "{{ demo_test_project }}" OS_PASSWORD: "{{ demo_test_password }}" OS_CACERT: "{{ ca_bundle }}" OS_AUTH_URL: "{{ os_auth_url }}" shell: | {{ common_venv_bin }}/neutron subnet-create --name {{ demo_test_subnet }} --dns-nameserver {{ tsr_dns_server_ip }} {{ demo_test_network }} {{ demo_test_cidr }} register: heat_private_subnet - name: hqe-heat-integrationtests | test-resources | heat test private subnet - debug debug: var=heat_private_subnet - name: hqe-heat-integrationtests | test-resources | add router interface ignore_errors: true environment: OS_USERNAME: "{{ demo_test_user }}" OS_TENANT_NAME: "{{ demo_test_project }}" OS_PASSWORD: "{{ demo_test_password }}" OS_CACERT: "{{ ca_bundle }}" OS_AUTH_URL: "{{ os_auth_url }}" shell: | {{ common_venv_bin }}/neutron router-interface-add {{ heat_test_router_id.stdout }} subnet={{ demo_test_subnet }} register: router_inteface - name: hqe-heat-integrationtests | test-resources | add router interface - debug debug: var=router_inteface 0707010000015C000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005B00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-heat-integrationtests-run/templates0707010000015D000081A40000000000000000000000015B730C500000016E000000000000000000000000000000000000006500000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-heat-integrationtests-run/templates/testrc.j2export OS_USERNAME={{ demo_test_user }} export OS_PASSWORD={{ demo_test_password }} export OS_TENANT_NAME={{ demo_test_project }} export OS_CACERT={{ osrc_vars.os_ca_cert }} export OS_IDENTITY_API_VERSION="2.0" export OS_NO_CACHE=True export OS_AUTH_URL={{ os_auth_url }} export OS_ADMIN_NAME={{ os_admin_username }} export OS_ADMIN_PASSWORD={{ os_admin_password }} 0707010000015E000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005600000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-heat-integrationtests-run/vars0707010000015F000081A40000000000000000000000015B730C50000007FE000000000000000000000000000000000000005F00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-heat-integrationtests-run/vars/main.yml--- # NOTE(andreaf) Heat has an own repo for tests, so the path where the git # repo is cloned is in tests_folder, and the path to the tests within the folder # is hardcoded in the run script heat_integrationtests_code_folder: "{{ work_folder }}/{{ hqe_heat_integrationtests.deploy.test_suite }}" heat_integrationtests_work_folder: "{{ work_folder }}/{{ hqe_heat_integrationtests.deploy.test_suite }}" heat_integrationtests_venv_folder: "{{ common_venv_root }}/{{ hqe_heat_integrationtests.deploy.venv_folder }}" system_python: "{{ ansible_python_interpreter }}" run_filter: smoke run_concurrency: 0 os_auth_url: "{{ osrc_vars.os_auth_url}}" os_endpoint_type: "internalURL" os_interface: "{{ osrc_vars.os_interface }}" os_admin_username: "{{ osrc_vars.os_username }}" os_admin_password: "{{ osrc_vars.os_password }}" # Test account setup for testing, and clean-ed up afterwards demo_random_uuid: "{{ ansible_date_time.epoch | to_uuid }}" demo_random_id: "{{ ['hqe_heat_integrationtests', demo_random_uuid] | join('-') }}" demo_test_user: "{{ demo_random_id }}" demo_test_project: "{{ demo_random_id }}" demo_test_password: "{{ demo_random_id }}" heat_wait_time: 60 heat_osrc: "{{ heat_integrationtests_work_folder }}/heatv2.testrc" heat_integrationtests_conf: "{{ heat_integrationtests_code_folder }}/heat_integrationtests.conf" # test resources demo_test_router: "{{ demo_random_id }}" demo_test_network: "heat-net" demo_test_subnet: "heat-subnet" demo_test_cidr: "192.168.1.0/24" demo_test_keyname: "heat" demo_test_key_file: "{{ [demo_test_keyname, 'pem'] | join('.') }}" # test suite parameters demo_test_flavor_int: "m1.heat_int" demo_test_flavor_micro: "m1.heat_micro" demo_test_ext_net: "{{ hqe_group_vars.test_region_ext_net }}" demo_test_heat_integrationtests_image_url: "http://tarballs.openstack.org/heat-test-image/fedora-heat-test-image.qcow2" tsr_dns_server_ip: "10.1.64.20" # General keystone settings auth_tail: "v2.0" service_osrc: "{{ osrc_vars.service_osrc_path }}" keystone_osrc: "{{ osrc_vars.keystone_osrc_path }}" 07070100000160000041ED0000000000000000000000065B730C5000000000000000000000000000000000000000000000004F00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-heat-sampletests-deploy07070100000161000041ED0000000000000000000000035B730C5000000000000000000000000000000000000000000000005500000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-heat-sampletests-deploy/files07070100000162000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000006100000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-heat-sampletests-deploy/files/run_filters07070100000163000081A40000000000000000000000015B730C50000003E3000000000000000000000000000000000000006800000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-heat-sampletests-deploy/files/run_filters/ci.txt# # The syntax for test list below as follows: #- lines starting with # or empty are ignored #- lines starting with "+" are run #- lines starting with "-" are skipped #- lines not matching any of the above conditions are ignored # +t1-servers-to-existing-network-with-vol-on-server-1.yaml +t2-create-network-router-2-servers-floating-ip.yaml # JAH-2741 -t3-autoscaling-without-load-balancing.yaml +t4-bootable-vol-existing-network.yaml +t5-deploy-server-bootable-volume-new-network.yaml +t6-deploy-server-from-volume-snapshot-new-network.yaml +t7-deploy-server-from-volume-snapshot-existing-network.yaml +t8-us-all-nova-resource-types.yaml +t9-create-container.yaml +t10-create-glance-image-from-swift-container-file.yaml +t11-use-resource-group-create-3-servers.yaml # JAH-2741 -t12-use-instance-group-deploy-2-servers-existing-network-add-floating-ip.yaml +t13-demo-different-configurations-for-boot-time.yaml +t14-create-25-servers.yaml +t15-create-network-router-25-servers-floating-ip.yaml 07070100000164000081A40000000000000000000000015B730C50000003E3000000000000000000000000000000000000006E00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-heat-sampletests-deploy/files/run_filters/parallel.txt# # The syntax for test list below as follows: #- lines starting with # or empty are ignored #- lines starting with "+" are run #- lines starting with "-" are skipped #- lines not matching any of the above conditions are ignored # +t1-servers-to-existing-network-with-vol-on-server-1.yaml +t2-create-network-router-2-servers-floating-ip.yaml # JAH-2741 -t3-autoscaling-without-load-balancing.yaml +t4-bootable-vol-existing-network.yaml +t5-deploy-server-bootable-volume-new-network.yaml +t6-deploy-server-from-volume-snapshot-new-network.yaml +t7-deploy-server-from-volume-snapshot-existing-network.yaml +t8-us-all-nova-resource-types.yaml +t9-create-container.yaml +t10-create-glance-image-from-swift-container-file.yaml +t11-use-resource-group-create-3-servers.yaml # JAH-2741 -t12-use-instance-group-deploy-2-servers-existing-network-add-floating-ip.yaml +t13-demo-different-configurations-for-boot-time.yaml +t14-create-25-servers.yaml +t15-create-network-router-25-servers-floating-ip.yaml 07070100000165000081A40000000000000000000000015B730C50000003E3000000000000000000000000000000000000006B00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-heat-sampletests-deploy/files/run_filters/smoke.txt# # The syntax for test list below as follows: #- lines starting with # or empty are ignored #- lines starting with "+" are run #- lines starting with "-" are skipped #- lines not matching any of the above conditions are ignored # +t1-servers-to-existing-network-with-vol-on-server-1.yaml +t2-create-network-router-2-servers-floating-ip.yaml # JAH-2741 -t3-autoscaling-without-load-balancing.yaml +t4-bootable-vol-existing-network.yaml +t5-deploy-server-bootable-volume-new-network.yaml +t6-deploy-server-from-volume-snapshot-new-network.yaml +t7-deploy-server-from-volume-snapshot-existing-network.yaml +t8-us-all-nova-resource-types.yaml +t9-create-container.yaml +t10-create-glance-image-from-swift-container-file.yaml +t11-use-resource-group-create-3-servers.yaml # JAH-2741 -t12-use-instance-group-deploy-2-servers-existing-network-add-floating-ip.yaml +t13-demo-different-configurations-for-boot-time.yaml +t14-create-25-servers.yaml +t15-create-network-router-25-servers-floating-ip.yaml 07070100000166000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005500000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-heat-sampletests-deploy/tasks07070100000167000081A40000000000000000000000015B730C5000000332000000000000000000000000000000000000006100000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-heat-sampletests-deploy/tasks/install.yml--- # Install heat sampletests dependencies - name: hqe-heat-sampletests | install | Create the work folder become: yes become_user: root file: path: "{{ heat_sampletests_work_folder }}" state: directory owner: "{{ hqe_user }}" group: "{{ hqe_group }}" mode: 0755 - name: hqe-heat-sampletests | install | Install dependent packages pip: name={{ item }} virtualenv={{ heat_sampletests_venv_folder }} with_items: - python-subunit - name: hqe-heat-sampletests | install | Deploy run_filters copy: src: run_filters dest: "{{ heat_sampletests_work_folder }}/" mode: 0640 - name: hqe-heat-sampletests | install | Deploy heat sample test run script template: src: heat-sampletests.sh.j2 dest: "{{ heat_sampletests_work_folder }}/heat-sampletests.sh" mode: 0755 07070100000168000081A40000000000000000000000015B730C500000001B000000000000000000000000000000000000005E00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-heat-sampletests-deploy/tasks/main.yml--- - include: install.yml 07070100000169000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005900000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-heat-sampletests-deploy/templates0707010000016A000081A40000000000000000000000015B730C5000000DEB000000000000000000000000000000000000007000000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-heat-sampletests-deploy/templates/heat-sampletests.sh.j2#!/usr/bin/env bash # # (c) Copyright 2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # set -eux set -o pipefail # This script runs heat sample template tests against a deployed Helion OpenStack cloud # # Usage: [path]/heat-sampletests.sh [run-filter] # Environment variable may be overridden by the caller TESTS_HOME={{ heat_sampletests_code_folder }} WORK_HOME={{ heat_sampletests_work_folder }} HEAT_VENV={{ heat_sampletests_venv_folder }} RUN_FILTER=${WORK_HOME}/run_filters/${1:-{{ run_filter }}}.txt HEAT_OSRC=${WORK_HOME}/heat_samples.testrc SAMPLE_ENV_FILE="sampletests_env.yaml" SUBUNIT_BIN=${HEAT_VENV}/bin SUBUNIT_OUTPUT=${WORK_HOME}/subunit_output SAMPLE_TEST="Heat Sample Template Tests: " # ensure have the environment set up as needed (proxies, no_proxy in particular) # if you forget, CLI commands will fail with a 404 error. source /etc/environment # Activate the virtual environment set +u source ${HEAT_VENV}/bin/activate set -u source ${HEAT_OSRC} rm -f $SUBUNIT_OUTPUT cd ${WORK_HOME} skipped_count=0 failure_count=0 success_count=0 while read sample; do if [ ${sample:0:1} = "-" ] then echo "Sample test skipped !" skipped_count=$(expr $skipped_count + 1) elif [ ${sample:0:1} = "+" ] then echo "Sample test executed !" test=${sample:1} stack_name=$( echo $test | cut -d "-" -f 1 ) status="--inprogress" test_id=${SAMPLE_TEST}$test ${SUBUNIT_BIN}/subunit-output $status $test_id >> $SUBUNIT_OUTPUT heat stack-create -e ${SAMPLE_ENV_FILE} -f ${TESTS_HOME}/$test $stack_name # wait for heat stack create completes LOOP=30 while (( $LOOP >= 1 )); do LOOP=$(expr ${LOOP} - 1) stackstatus=$(heat stack-list | grep -w ${stack_name} | awk '{print $6}') if [[ ${stackstatus} == "CREATE_COMPLETE" ]]; then status="--success" success_count=$(expr $success_count + 1) ${SUBUNIT_BIN}/subunit-output $status $test_id >> $SUBUNIT_OUTPUT LOOP=0 elif [[ ${stackstatus} == "CREATE_FAILED" ]]; then status="--fail" failure_count=$(expr $failure_count + 1) ${SUBUNIT_BIN}/subunit-output $status $test_id >> $SUBUNIT_OUTPUT LOOP=0 else if (( ${LOOP} <= 0 )); then status="--fail" failure_count=$(expr $failure_count + 1) ${SUBUNIT_BIN}/subunit-output $status $test_id >> $SUBUNIT_OUTPUT fi echo "Still creating ..." sleep 10 fi done heat stack-list heat event-list $stack_name heat stack-delete -y $stack_name sleep 20 else echo "Comment line ignored !" fi done < ${RUN_FILTER} echo " ============" echo " Run finished" echo " ============" echo " - Passed: $success_count" echo " - Skipped: $skipped_count" echo " - Failed: $failure_count" ${SUBUNIT_BIN}/subunit2pyunit $SUBUNIT_OUTPUT exit $failure_count 0707010000016B000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005400000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-heat-sampletests-deploy/vars0707010000016C000081A40000000000000000000000015B730C50000003BC000000000000000000000000000000000000005D00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-heat-sampletests-deploy/vars/main.yml--- # Filter variable must be defined in all roles to allow for # test filtering. The test filter file contains the data to # be able to filter which tests to be executed out of role, # stored in the format which is more suitable for the specific role. # Test filter files are expected under a run_filters folder. # The file name must match the tags, for it to be selected properly # when a specific test run is requested in ardana-qa-run.yml run_filter: smoke # Settings from deploy heat_sampletests_service_name: "{{ hqe_heat_sampletests.deploy.service_name }}" heat_sampletests_venv_folder: "{{ common_venv_root }}/{{ hqe_heat_sampletests.deploy.venv_folder }}" heat_sampletests_test_suite: "{{ hqe_heat_sampletests.deploy.test_suite }}" heat_sampletests_code_folder: "{{ code_folder }}/{{ tests_git_repo }}/{{ hqe_heat_sampletests.deploy.tests_folder }}" heat_sampletests_work_folder: "{{ work_folder}}/{{ hqe_heat_sampletests.deploy.test_suite }}" 0707010000016D000041ED0000000000000000000000055B730C5000000000000000000000000000000000000000000000004C00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-heat-sampletests-run0707010000016E000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005200000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-heat-sampletests-run/tasks0707010000016F000081A40000000000000000000000015B730C5000001A6E000000000000000000000000000000000000005E00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-heat-sampletests-run/tasks/cleanup.yml--- # Cleanup the account used for heat integration testing - name: hqe-heat-sampletests | cleanup test resources | delete any created heat stacks ignore_errors: true environment: OS_USERNAME: "{{ sample_test_user }}" OS_TENANT_NAME: "{{ sample_test_project }}" OS_PASSWORD: "{{ sample_test_password }}" OS_CACERT: "{{ ca_bundle }}" OS_AUTH_URL: "{{ os_auth_url }}" shell: | for sid in $({{ common_venv_bin }}/openstack stack list | grep -e CREATE -e DELETE -e MODIFY -e UPDATE | awk '{print $2'}); do {{ common_venv_bin }}/openstack stack delete $sid; done - name: hqe-heat-sampletests | cleanup test resources | wait to ensure heat stacks gone ignore_errors: true shell: sleep "{{ heat_wait_time }}" - name: hqe-heat-sampletests | cleanup test resources | delete heat sample test object from container ignore_errors: true environment: OS_USERNAME: "{{ sample_test_user }}" OS_TENANT_NAME: "{{ sample_test_project }}" OS_PASSWORD: "{{ sample_test_password }}" OS_CACERT: "{{ ca_bundle }}" OS_AUTH_URL: "{{ os_auth_url }}" shell: | {{ common_venv_bin }}/openstack object delete {{ sample_test_container }} {{ sample_test_image_local }} register: result until: result.rc == 0 retries: 5 delay: 10 - name: hqe-heat-sampletests | cleanup test resources | delete heat sample test container ignore_errors: true environment: OS_USERNAME: "{{ sample_test_user }}" OS_TENANT_NAME: "{{ sample_test_project }}" OS_PASSWORD: "{{ sample_test_password }}" OS_CACERT: "{{ ca_bundle }}" OS_AUTH_URL: "{{ os_auth_url }}" shell: | {{ common_venv_bin }}/openstack container delete {{ sample_test_container }} register: result until: result.rc == 0 retries: 5 delay: 10 - name: hqe-heat-sampletests | cleanup test resources | delete heat sample test keypair ignore_errors: true environment: OS_USERNAME: "{{ sample_test_user }}" OS_TENANT_NAME: "{{ sample_test_project }}" OS_PASSWORD: "{{ sample_test_password }}" OS_CACERT: "{{ ca_bundle }}" OS_AUTH_URL: "{{ os_auth_url }}" shell: | {{ common_venv_bin }}/openstack keypair delete {{ sample_test_keyname }} - name: hqe-heat-sampletests | cleanup test resources | delete volume snapshots ignore_errors: true environment: OS_USERNAME: "{{ sample_test_user }}" OS_TENANT_NAME: "{{ sample_test_project }}" OS_PASSWORD: "{{ sample_test_password }}" OS_CACERT: "{{ ca_bundle }}" OS_AUTH_URL: "{{ os_auth_url }}" shell: | {{ common_venv_bin }}/openstack snapshot delete {{ snapshot_volume_id.stdout }} register: result until: result.rc == 0 retries: 5 delay: 10 - name: hqe-heat-sampletests | cleanup test resources | delete volumes ignore_errors: true environment: OS_USERNAME: "{{ sample_test_user }}" OS_TENANT_NAME: "{{ sample_test_project }}" OS_PASSWORD: "{{ sample_test_password }}" OS_CACERT: "{{ ca_bundle }}" OS_AUTH_URL: "{{ os_auth_url }}" shell: | {{ common_venv_bin }}/openstack volume delete {{ bootable_volume_id.stdout }} register: result until: result.rc == 0 retries: 5 delay: 10 - name: hqe-heat-sampletests | cleanup test resources | delete router interface ignore_errors: true environment: OS_USERNAME: "{{ sample_test_user }}" OS_TENANT_NAME: "{{ sample_test_project }}" OS_PASSWORD: "{{ sample_test_password }}" OS_CACERT: "{{ ca_bundle }}" OS_AUTH_URL: "{{ os_auth_url }}" shell: | {{ common_venv_bin }}/neutron router-interface-delete {{ sample_test_router_id.stdout }} subnet={{ sample_test_subnet }} register: result until: result.rc == 0 retries: 5 delay: 10 - name: hqe-heat-sampletests | cleanup test resources | delete heat test private subnet ignore_errors: true environment: OS_USERNAME: "{{ sample_test_user }}" OS_TENANT_NAME: "{{ sample_test_project }}" OS_PASSWORD: "{{ sample_test_password }}" OS_CACERT: "{{ ca_bundle }}" OS_AUTH_URL: "{{ os_auth_url }}" shell: | {{ common_venv_bin }}/neutron subnet-delete {{ sample_test_subnet }} register: result until: result.rc == 0 retries: 5 delay: 10 - name: hqe-heat-sampletests | cleanup test resources | delete heat test private network ignore_errors: true environment: OS_USERNAME: "{{ sample_test_user }}" OS_TENANT_NAME: "{{ sample_test_project }}" OS_PASSWORD: "{{ sample_test_password }}" OS_CACERT: "{{ ca_bundle }}" OS_AUTH_URL: "{{ os_auth_url }}" shell: | {{ common_venv_bin }}/openstack network delete {{ sample_test_network }} register: result until: result.rc == 0 retries: 5 delay: 10 - name: hqe-heat-sampletests | cleanup test resources | delete router to ext-net gateway ignore_errors: true environment: OS_USERNAME: "{{ sample_test_user }}" OS_TENANT_NAME: "{{ sample_test_project }}" OS_PASSWORD: "{{ sample_test_password }}" OS_CACERT: "{{ ca_bundle }}" OS_AUTH_URL: "{{ os_auth_url }}" shell: | {{ common_venv_bin }}/neutron router-gateway-clear {{ sample_test_router }} register: result until: result.rc == 0 retries: 5 delay: 10 - name: hqe-heat-sampletests | cleanup test resources | delete router ignore_errors: true environment: OS_USERNAME: "{{ sample_test_user }}" OS_TENANT_NAME: "{{ sample_test_project }}" OS_PASSWORD: "{{ sample_test_password }}" OS_CACERT: "{{ ca_bundle }}" OS_AUTH_URL: "{{ os_auth_url }}" shell: | {{ common_venv_bin }}/neutron router-delete {{ sample_test_router }} register: result until: result.rc == 0 retries: 5 delay: 10 - name: hqe-heat-sampletests | cleanup test resources | delete roles ignore_errors: true args: executable: /bin/bash shell: | source "{{ keystone_osrc }}" {{ common_venv_bin }}/openstack role remove --project "{{ sample_test_project }}" --user "{{ sample_test_user }}" _member_ {{ common_venv_bin }}/openstack role remove --project "{{ sample_test_project }}" --user "{{ sample_test_user }}" admin_ {{ common_venv_bin }}/openstack role remove --project "{{ sample_test_project }}" --user "{{ os_admin_username }}" admin - name: hqe-heat-sampletests | cleanup test resources | delete test user ignore_errors: true args: executable: /bin/bash shell: | source "{{ keystone_osrc }}" {{ common_venv_bin }}/openstack user delete {{ sample_test_user }} - name: hqe-heat-sampletests | cleanup test resources | delete test project ignore_errors: true args: executable: /bin/bash shell: | source "{{ keystone_osrc }}" {{ common_venv_bin }}/openstack project delete {{ sample_test_project }} 07070100000170000081A40000000000000000000000015B730C500000023A000000000000000000000000000000000000005B00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-heat-sampletests-run/tasks/main.yml--- - set_fact: heat_sampletests_venv_bin: "{{ heat_sampletests_venv_folder }}/bin" heat_sampletests_venv_python: "{{ heat_sampletests_venv_folder }}/bin/python" - include: test-resources.yml vars: ansible_python_interpreter: "{{ heat_sampletests_venv_python | quote }}" - include: ../../hqe-common/tasks/common-run.yml vars: caller_role_path: "{{ role_path }}" ansible_python_interpreter: "{{ heat_sampletests_venv_python | quote }}" - include: cleanup.yml vars: ansible_python_interpreter: "{{ heat_sampletests_venv_python | quote }}" 07070100000171000081A40000000000000000000000015B730C50000002B8000000000000000000000000000000000000005A00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-heat-sampletests-run/tasks/run.yml--- # Run the heat sample test script # # The test log shall be placed in a folder where it's picked up by the CI jobs # # Ignore errors is require to make sure the following tasks are executed # We will need to store the exit code somewhere for Jenkins to pick it up - name: hqe-heat-sampletests | run | Run the tests become: yes become_user: "{{ hqe_user }}" command: "{{ heat_sampletests_work_folder }}/heat-sampletests.sh {{ run_filter }}" register: test_output ignore_errors: True - name: hqe-heat-sampletests | run | Show test output debug: var=test_output - name: hqe-heat-sampletests | run | Set test status set_fact: test_status: false when: test_output.rc != 0 07070100000172000081A40000000000000000000000015B730C5000003A09000000000000000000000000000000000000006500000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-heat-sampletests-run/tasks/test-resources.yml--- # Setup the test accounts and resource used for heat sample testing - name: hqe-heat-sampletests | test-resources | get os_auth_url_public args: executable: /bin/bash shell: | source "{{ service_osrc }}" {{ common_venv_bin }}/openstack catalog show keystone | awk '/public/ {print $4}' register: os_auth_url_public_raw - name: hqe-heat-sampletests | test-resources | set os_auth_url set_fact: os_auth_url: "{{ os_auth_url_public_raw.stdout }}" - name: hqe-heat-sampletests | test-resources | check if ext-net exists args: executable: /bin/bash shell: | source "{{ service_osrc }}" {{ common_venv_bin }}/openstack network list | awk '/ {{ sample_test_ext_net }} / {print $2}' register: sample_public_net_id - name: hqe-heat-sampletests | test-resources | check and fail if there is no external network fail: msg="No ext-net found. Please create one." when: sample_public_net_id.stdout == "" - name: hqe-heat-sampletests | test-resources | create heat sample test project args: executable: /bin/bash shell: | source "{{ keystone_osrc }}" {{ common_venv_bin }}/openstack project create "{{ sample_test_project }}" register: project_create_output - name: hqe-heat-sampletests | test-resources | create heat sample test project debug debug: var=project_create_output - name: hqe-heat-sampletests | test-resources | create heat sample test user args: executable: /bin/bash shell: | source "{{ keystone_osrc }}" {{ common_venv_bin }}/openstack user create --password "{{ sample_test_password }}" --project "{{ sample_test_project }}" "{{ sample_test_user }}" register: user_create_output - name: hqe-heat-sampletests | test-resources | create heat sample test user debug debug: var=user_create_output - name: hqe-heat-sampletests | test-resources | show heat sample test project exists args: executable: /bin/bash shell: | source "{{ keystone_osrc }}" {{ common_venv_bin }}/openstack project list | grep "{{ sample_test_project }}" | awk '{print $2}' register: test_project_id - name: hqe-heat-sampletests | test-resources | show heat sample test project exist debug debug: var=test_project_id - name: hqe-heat-sampletests | test-resources | add roles args: executable: /bin/bash shell: | source "{{ keystone_osrc }}" {{ common_venv_bin }}/openstack role add --project "{{ sample_test_project }}" --user "{{ sample_test_user }}" Member {{ common_venv_bin }}/openstack role add --project "{{ sample_test_project }}" --user "{{ sample_test_user }}" _member_ {{ common_venv_bin }}/openstack role add --project "{{ sample_test_project }}" --user "{{ sample_test_user }}" admin {{ common_venv_bin }}/openstack role add --project "{{ sample_test_project }}" --user "{{ os_admin_username }}" admin register: role_add_output - name: hqe-heat-sampletests | test-resources | show heat sample add role debug debug: var=role_add_output - name: hqe-heat-sampletests | test-resources | set quota args: executable: /bin/bash shell: | source "{{ service_osrc }}" {{ common_venv_bin }}/openstack quota set --ram -1 --instances 1000 {{ test_project_id.stdout }} register: quota_set_output - name: hqe-heat-sampletests | test-resources | set quota debug debug: var=quota_set_output - name: hqe-heat-sampletests | test-resources | check quota args: executable: /bin/bash shell: | source "{{ service_osrc }}" {{ common_venv_bin }}/openstack quota show {{ test_project_id.stdout }} register: quota_show_output - name: hqe-heat-sampletests | test-resources | check quota debug debug: var=quota_show_output - name: hqe-heat-sampletests | test-resources | deploy heat sample test creds file template: src: testrc.j2 dest: "{{ heat_osrc }}" mode: 0600 - name: hqe-heat-sampletests | test-resources | capture heat sample test creds shell: cat {{ heat_osrc }} register: heat_test_creds_output - name: hqe-heat-sampletests | test-resources | show heat sample test creds debug debug: var=heat_test_creds_output # test requires the following items - name: hqe-heat-sampletests | test-resources | create heat test keypair ignore_errors: true environment: OS_USERNAME: "{{ sample_test_user }}" OS_TENANT_NAME: "{{ sample_test_project }}" OS_PASSWORD: "{{ sample_test_password }}" OS_CACERT: "{{ ca_bundle }}" OS_AUTH_URL: "{{ os_auth_url }}" shell: | {{ common_venv_bin }}/openstack keypair create {{ sample_test_keyname }} - name: hqe-heat-sampletests | test-resources | create heat test router ignore_errors: true environment: OS_USERNAME: "{{ sample_test_user }}" OS_TENANT_NAME: "{{ sample_test_project }}" OS_PASSWORD: "{{ sample_test_password }}" OS_CACERT: "{{ ca_bundle }}" OS_AUTH_URL: "{{ os_auth_url }}" shell: | {{ common_venv_bin }}/neutron router-create {{ sample_test_router }} - name: hqe-heat-sampletests | test-resources | connect router to external network ignore_errors: true environment: OS_USERNAME: "{{ sample_test_user }}" OS_TENANT_NAME: "{{ sample_test_project }}" OS_PASSWORD: "{{ sample_test_password }}" OS_CACERT: "{{ ca_bundle }}" OS_AUTH_URL: "{{ os_auth_url }}" shell: | {{ common_venv_bin }}/neutron router-gateway-set {{ sample_test_router }} {{ sample_test_ext_net }} - name: hqe-heat-sampletests | test-resources | verify heat test router ignore_errors: true environment: OS_USERNAME: "{{ sample_test_user }}" OS_TENANT_NAME: "{{ sample_test_project }}" OS_PASSWORD: "{{ sample_test_password }}" OS_CACERT: "{{ ca_bundle }}" OS_AUTH_URL: "{{ os_auth_url }}" shell: | {{ common_venv_bin }}/neutron router-list | grep {{ sample_test_router }} | awk '{print $2}' register: sample_test_router_id - name: hqe-heat-sampletests | test-resources | verify heat test router debug debug: var=sample_test_router_id - name: hqe-heat-sampletests | test-resources | create heat test private network ignore_errors: true environment: OS_USERNAME: "{{ sample_test_user }}" OS_TENANT_NAME: "{{ sample_test_project }}" OS_PASSWORD: "{{ sample_test_password }}" OS_CACERT: "{{ ca_bundle }}" OS_AUTH_URL: "{{ os_auth_url }}" shell: | {{ common_venv_bin }}/openstack network create {{ sample_test_network }} register: sample_private_net - name: hqe-heat-sampletests | test-resources | heat test private network debug debug: var=sample_private_net - name: hqe-heat-sampletests | test-resources | check sample private net id args: executable: /bin/bash shell: | source "{{ service_osrc }}" {{ common_venv_bin }}/openstack network list | awk '/ {{ sample_test_network }} / {print $2}' register: sample_private_net_id - name: hqe-heat-sampletests | test-resources | create heat test private subnet ignore_errors: true environment: OS_USERNAME: "{{ sample_test_user }}" OS_TENANT_NAME: "{{ sample_test_project }}" OS_PASSWORD: "{{ sample_test_password }}" OS_CACERT: "{{ ca_bundle }}" OS_AUTH_URL: "{{ os_auth_url }}" shell: | {{ common_venv_bin }}/neutron subnet-create --name {{ sample_test_subnet }} --dns-nameserver {{ tsr_dns_server_ip }} {{ sample_test_network }} {{ sample_test_cidr }} register: sample_private_subnet - name: hqe-heat-sampletests | test-resources | heat test private subnet debug debug: var=sample_private_subnet - name: hqe-heat-sampletests | test-resources | check sample private subnet id args: executable: /bin/bash shell: | source "{{ service_osrc }}" {{ common_venv_bin }}/neutron subnet-list | awk '/ {{ sample_test_subnet }} / {print $2}' register: sample_private_subnet_id - name: hqe-heat-sampletests | test-resources | add router interface ignore_errors: true environment: OS_USERNAME: "{{ sample_test_user }}" OS_TENANT_NAME: "{{ sample_test_project }}" OS_PASSWORD: "{{ sample_test_password }}" OS_CACERT: "{{ ca_bundle }}" OS_AUTH_URL: "{{ os_auth_url }}" shell: | {{ common_venv_bin }}/neutron router-interface-add {{ sample_test_router_id.stdout }} subnet={{ sample_test_subnet }} register: router_inteface - name: hqe-heat-sampletests | test-resources | add router interface debug debug: var=router_inteface - name: hqe-heat-sampletests | test-resources | check base image id ignore_errors: true environment: OS_USERNAME: "{{ sample_test_user }}" OS_TENANT_NAME: "{{ sample_test_project }}" OS_PASSWORD: "{{ sample_test_password }}" OS_CACERT: "{{ ca_bundle }}" OS_AUTH_URL: "{{ os_auth_url }}" shell: | {{ common_venv_bin }}/openstack image list | awk '/ {{ sample_test_base_image }} / {print $2}' register: base_image_id - name: hqe-heat-sampletests | test-resources | create a bootable testing volume ignore_errors: true environment: OS_USERNAME: "{{ sample_test_user }}" OS_TENANT_NAME: "{{ sample_test_project }}" OS_PASSWORD: "{{ sample_test_password }}" OS_CACERT: "{{ ca_bundle }}" OS_AUTH_URL: "{{ os_auth_url }}" shell: | {{ common_venv_bin }}/openstack volume create --image {{ sample_test_base_image }} --size {{ sample_test_vol_size }} {{ sample_test_vol_name }} - name: hqe-heat-sampletests | test-resources | wait to ensure bootable volume is available ignore_errors: true shell: sleep "{{ heat_wait_time }}" - name: hqe-heat-sampletests | test-resources | check bootable volume ignore_errors: true environment: OS_USERNAME: "{{ sample_test_user }}" OS_TENANT_NAME: "{{ sample_test_project }}" OS_PASSWORD: "{{ sample_test_password }}" OS_CACERT: "{{ ca_bundle }}" OS_AUTH_URL: "{{ os_auth_url }}" shell: | {{ common_venv_bin }}/openstack volume list | awk '/ {{ sample_test_vol_name }} / {print $2}' register: bootable_volume_id - name: hqe-heat-sampletests | test-resources | check bootable volume debug debug: var=bootable_volume_id - name: hqe-heat-sampletests | test-resources | create a volume snapshot ignore_errors: true environment: OS_USERNAME: "{{ sample_test_user }}" OS_TENANT_NAME: "{{ sample_test_project }}" OS_PASSWORD: "{{ sample_test_password }}" OS_CACERT: "{{ ca_bundle }}" OS_AUTH_URL: "{{ os_auth_url }}" shell: | {{ common_venv_bin }}/openstack snapshot create --name {{ sample_test_vol_snapshot_name }} {{ sample_test_vol_name }} - name: hqe-heat-sampletests | test-resources | wait to ensure volume snapshot is available ignore_errors: true shell: sleep "{{ heat_wait_time }}" - name: hqe-heat-sampletests | test-resources | check volume snapshot ignore_errors: true environment: OS_USERNAME: "{{ sample_test_user }}" OS_TENANT_NAME: "{{ sample_test_project }}" OS_PASSWORD: "{{ sample_test_password }}" OS_CACERT: "{{ ca_bundle }}" OS_AUTH_URL: "{{ os_auth_url }}" shell: | {{ common_venv_bin }}/openstack snapshot list | awk '/ {{ sample_test_vol_snapshot_name }} / {print $2}' register: snapshot_volume_id - name: hqe-heat-sampletests | test-resources | check volume snapshot debug debug: var=snapshot_volume_id - name: hqe-heat-sampletests | test-resources | get image file shell: | echo "`date` : `env | grep proxy`" if [ -e "{{ heat_sampletests_work_folder }}/{{ sample_test_image_local }}" ]; then echo "Re-using existing heat test image file" else wget -O "{{ heat_sampletests_work_folder }}/{{ sample_test_image_local }}" "{{ sample_test_image_url }}" fi # just check it is there ls "{{ heat_sampletests_work_folder }}/{{ sample_test_image_local }}" register: get_image_file_log - name: hqe-heat-sampletests | test-resources | show heat test image file get debug debug: var=get_image_file_log - name: hqe-heat-sampletests | test-resources | create a sample test container ignore_errors: true environment: OS_USERNAME: "{{ sample_test_user }}" OS_TENANT_NAME: "{{ sample_test_project }}" OS_PASSWORD: "{{ sample_test_password }}" OS_CACERT: "{{ ca_bundle }}" OS_AUTH_URL: "{{ os_auth_url }}" shell: | {{ common_venv_bin }}/openstack container create {{ sample_test_container }} - name: hqe-heat-sampletests | test-resources | get the sample test container ignore_errors: true environment: OS_USERNAME: "{{ sample_test_user }}" OS_TENANT_NAME: "{{ sample_test_project }}" OS_PASSWORD: "{{ sample_test_password }}" OS_CACERT: "{{ ca_bundle }}" OS_AUTH_URL: "{{ os_auth_url }}" shell: | {{ common_venv_bin }}/openstack container list | grep {{ sample_test_container }} register: get_sample_test_container - name: hqe-heat-sampletests | test-resources | show the sample test container debug debug: var=get_sample_test_container - name: hqe-heat-sampletests | test-resources | upload sample test image to container ignore_errors: true environment: OS_USERNAME: "{{ sample_test_user }}" OS_TENANT_NAME: "{{ sample_test_project }}" OS_PASSWORD: "{{ sample_test_password }}" OS_CACERT: "{{ ca_bundle }}" OS_AUTH_URL: "{{ os_auth_url }}" shell: | cd {{ heat_sampletests_work_folder }} {{ common_venv_bin }}/openstack object create {{ sample_test_container }} {{ sample_test_image_local }} - name: hqe-heat-sampletests | test-resources | get the sample test container object ignore_errors: true environment: OS_USERNAME: "{{ sample_test_user }}" OS_TENANT_NAME: "{{ sample_test_project }}" OS_PASSWORD: "{{ sample_test_password }}" OS_CACERT: "{{ ca_bundle }}" OS_AUTH_URL: "{{ os_auth_url }}" shell: | {{ common_venv_bin }}/openstack object list {{ sample_test_container }} | grep {{ sample_test_image_local }} register: get_sample_test_container_object - name: hqe-heat-sampletests | test-resources | show the sample test container object debug debug: var=get_sample_test_container_object - name: hqe-heat-sampletests | test-resources | deploy heat sample env file template: src: sampletests_env.yaml dest: "{{ sample_test_env_file }}" mode: 0644 - name: hqe-heat-sampletests | test-resources | set sample test env file shell: | SWIFT_IMG_URL_NO_CREDS="$(echo {{ os_auth_url }} | sed -e 's/^https/swift/g' -e 's/^http/swift/g')/{{ sample_test_container }}/{{ sample_test_image_local }}" SWIFT_IMG_URL=$(echo $SWIFT_IMG_URL_NO_CREDS | sed -e "s/\/\//\/\/{{ sample_test_project }}%3A{{ sample_test_user }}:{{ sample_test_password }}@/") echo " swift_img_url: $SWIFT_IMG_URL" >>{{ sample_test_env_file }} register: sample_test_env_log - name: hqe-heat-sampletests | test-resources | show sample test env file debug debug: var=sample_test_env_log 07070100000173000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005600000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-heat-sampletests-run/templates07070100000174000081ED0000000000000000000000015B730C50000003A0000000000000000000000000000000000000006B00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-heat-sampletests-run/templates/sampletests_env.yamlparameters: key_name: {{ sample_test_keyname }} image: {{ base_image_id.stdout }} flavor: {{ sample_test_flavor }} public_net: {{ sample_test_ext_net }} public_net_id: {{ sample_public_net_id.stdout }} private_net_name: {{ sample_test_network }} private_net_cidr: {{ sample_test_cidr }} private_net_gateway: {{ sample_test_gateway }} private_net_pool_start: {{ sample_test_pool_start }} private_net_pool_end: {{ sample_test_pool_end }} private_net_id: {{ sample_private_net_id.stdout }} private_subnet_id: {{ sample_private_subnet_id.stdout }} volume_size: {{ sample_test_vol_size }} database_name: {{ sample_test_db_name }} database_user: {{ sample_test_db_user }} availability_zone: {{ sample_test_availability_zone }} bvol: {{ bootable_volume_id.stdout }} volume_snapshot_id: {{ snapshot_volume_id.stdout }} new_key_name: {{ sample_test_new_key }} 07070100000175000081A40000000000000000000000015B730C5000000174000000000000000000000000000000000000006000000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-heat-sampletests-run/templates/testrc.j2export OS_USERNAME={{ sample_test_user }} export OS_PASSWORD={{ sample_test_password }} export OS_TENANT_NAME={{ sample_test_project }} export OS_CACERT={{ osrc_vars.os_ca_cert }} export OS_IDENTITY_API_VERSION="2.0" export OS_NO_CACHE=True export OS_AUTH_URL={{ os_auth_url }} export OS_ADMIN_NAME={{ os_admin_username }} export OS_ADMIN_PASSWORD={{ os_admin_password }} 07070100000176000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005100000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-heat-sampletests-run/vars07070100000177000081A40000000000000000000000015B730C5000000988000000000000000000000000000000000000005A00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-heat-sampletests-run/vars/main.yml--- heat_sampletests_code_folder: "{{ code_folder }}/{{ tests_git_repo }}/{{ hqe_heat_sampletests.deploy.tests_folder }}" heat_sampletests_work_folder: "{{ work_folder }}/{{ hqe_heat_sampletests.deploy.test_suite }}" heat_sampletests_venv_folder: "{{ common_venv_root }}/{{ hqe_heat_sampletests.deploy.venv_folder }}" system_python: "{{ ansible_python_interpreter }}" run_filter: smoke run_concurrency: 0 os_auth_url: "{{ osrc_vars.os_auth_url}}" os_admin_username: "{{ osrc_vars.os_username }}" os_admin_password: "{{ osrc_vars.os_password }}" # test account setup for testing, and clean-ed up afterwards sample_random_uuid: "{{ ansible_date_time.epoch | to_uuid }}" sample_random_id: "{{ ['hqe_heat_sampletests', sample_random_uuid] | join('-') }}" sample_test_user: "{{ sample_random_id }}" sample_test_project: "{{ sample_random_id }}" sample_test_password: "{{ sample_random_id }}" heat_wait_time: 60 heat_osrc: "{{ heat_sampletests_work_folder }}/heat_samples.testrc" sample_test_env_file: "{{ heat_sampletests_work_folder }}/sampletests_env.yaml" # test resources sample_test_router: "{{ ['heat-router', sample_random_uuid] | join('-') }}" sample_test_network: "{{ ['heat-net', sample_random_uuid] | join('-') }}" sample_test_subnet: "{{ ['heat-subnet', sample_random_uuid] | join('-') }}" sample_test_cidr: "192.168.1.0/24" sample_test_gateway: "192.168.1.1" sample_test_pool_start: "192.168.1.2" sample_test_pool_end: "192.168.1.233" sample_test_db_name: "heatdb" sample_test_db_user: "heatdbuser" sample_test_vol_name: "{{ ['heatbtvol', sample_random_uuid] | join('-') }}" sample_test_vol_size: 1 sample_test_vol_snapshot_name: "{{ ['heatvolsnapshot', sample_random_uuid] | join('-') }}" sample_test_keyname: "{{ ['heat', sample_random_uuid] | join('-') }}" sample_test_key_file: "{{ [sample_test_keyname, 'pem'] | join('.') }}" sample_test_new_key: "new_heat_key" tsr_dns_server_ip: "10.1.64.20" # test suite parameters sample_test_availability_zone: "nova" sample_test_flavor: "m1.small" sample_test_ext_net: "{{ hqe_group_vars.test_region_ext_net }}" sample_test_base_image: "cirros-0.3.4-x86_64" sample_test_image_url: "http://download.cirros-cloud.net/0.3.3/cirros-0.3.3-x86_64-disk.img" sample_test_image_local: "heat_cirros.img" sample_test_container: "heat_cirros" # general keystone settings auth_tail: "v2.0" service_osrc: "{{ osrc_vars.service_osrc_path }}" keystone_osrc: "{{ osrc_vars.keystone_osrc_path }}" 07070100000178000041ED0000000000000000000000065B730C5000000000000000000000000000000000000000000000004600000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-iverify-deploy07070100000179000041ED0000000000000000000000035B730C5000000000000000000000000000000000000000000000004C00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-iverify-deploy/files0707010000017A000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005800000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-iverify-deploy/files/run_filters0707010000017B000081A40000000000000000000000015B730C50000000DE000000000000000000000000000000000000006500000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-iverify-deploy/files/run_filters/parallel.txt# XXXXX includes the role name for single tests. If your test suite # contains more than one test and you would like to make a selection # Please include the list in a format understandable by the your test # tool iverify 0707010000017C000081A40000000000000000000000015B730C50000000DE000000000000000000000000000000000000006200000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-iverify-deploy/files/run_filters/smoke.txt# XXXXX includes the role name for single tests. If your test suite # contains more than one test and you would like to make a selection # Please include the list in a format understandable by the your test # tool iverify 0707010000017D000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000004C00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-iverify-deploy/tasks0707010000017E000081A40000000000000000000000015B730C5000000017000000000000000000000000000000000000005A00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-iverify-deploy/tasks/configure.yml--- # Configure iverify0707010000017F000081A40000000000000000000000015B730C5000000185000000000000000000000000000000000000005800000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-iverify-deploy/tasks/install.yml--- - name: hqe-iverify | install | Deploy run_filters copy: > src=run_filters dest="{{ iverify_work_folder }}/" owner={{ hqe_user }} group={{ hqe_group }} mode=0640 - name: hqe-iverify | install | Deploy run script template: > src=hqe-iverify.j2 dest={{ iverify_work_folder }}/hqe-iverify owner={{ hqe_user }} group={{ hqe_group }} mode=0755 07070100000180000081A40000000000000000000000015B730C5000000034000000000000000000000000000000000000005500000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-iverify-deploy/tasks/main.yml--- - include: install.yml - include: configure.yml 07070100000181000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005000000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-iverify-deploy/templates07070100000182000081A40000000000000000000000015B730C5000000402000000000000000000000000000000000000005F00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-iverify-deploy/templates/hqe-iverify.j2#!/bin/bash # Wrapper script to execute iverify # within the venv, with the right parameters # # Usage: hqe-iverify run_filter_filename set -o pipefail # XXXXX any run parameter that should be configurable post-deploy # time should be set here LOADVMS=${1} RUN_FILTER=${2:-parallel.txt} TEST_HOME={{ iverify_code_folder }} WORK_HOME={{ iverify_work_folder }} VENV={{ common_venv_folder }} # Activate the virtual environment source ${VENV}/bin/activate AUTO_ID="AUTO`date +'%y%m%d%H%M%S'`" # remember the last run id for cleanup # NOTE(andreaf) this is running as ardanauser so it does not have access to the # work folder sudo -E bash -c "echo $AUTO_ID > $WORK_HOME/hqe-iverify-auto-id" sudo -E chown {{ hqe_user }}:{{ hqe_group }} $WORK_HOME/hqe-iverify-auto-id # Run the test cmd="$TEST_HOME/iverify.sh -n $AUTO_ID | tee $HOME/iverify$AUTO_ID.log" echo $cmd $cmd res=$? (sudo cp $HOME/iverify_test$AUTO_ID/subunit_output {{ iverify_work_folder }}/iverify.subunit) echo "Run completed with status $res" exit $res 07070100000183000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000004B00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-iverify-deploy/vars07070100000184000081A40000000000000000000000015B730C50000002A4000000000000000000000000000000000000005400000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-iverify-deploy/vars/main.yml--- # Filter variable must be defined in all roles to allow for # test filtering. The test filter file contains the data to # be able to filter which tests to be executed out of role, # stored in the format which is more suitable for the specific role. # Test filter files are expected under a run_filters folder. # The file name must match the tags, for it to be selected properly # when a specific test run is requested in ardana-qa-run.yml run_filter_file: parallel.txt # Settings from deploy iverify_code_folder: "{{ work_folder }}/{{ tests_git_repo }}/{{ hqe_iverify.deploy.tests_folder }}" iverify_work_folder: "{{ work_folder}}/{{ hqe_iverify.deploy.test_suite }}" 07070100000185000041ED0000000000000000000000045B730C5000000000000000000000000000000000000000000000004300000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-iverify-run07070100000186000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000004900000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-iverify-run/tasks07070100000187000081A40000000000000000000000015B730C50000000DC000000000000000000000000000000000000005500000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-iverify-run/tasks/cleanup.yml--- # Cleanup the account used for testing - name: hqe-iverify | test-resources | Cleanup ignore_errors: true shell: "{{ iverify_code_folder }}/iverify.sh -n $(cat {{ iverify_work_folder }}/hqe-iverify-auto-id) -d" 07070100000188000081A40000000000000000000000015B730C500000015D000000000000000000000000000000000000005200000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-iverify-run/tasks/main.yml--- - include: test-resources.yml vars: ansible_python_interpreter: "{{ common_venv_python }}" - include: ../../hqe-common/tasks/common-run.yml vars: caller_role_path: "{{ role_path }}" ansible_python_interpreter: "{{ common_venv_python }}" - include: cleanup.yml vars: ansible_python_interpreter: "{{ common_venv_python }}" 07070100000189000081A40000000000000000000000015B730C500000020B000000000000000000000000000000000000005100000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-iverify-run/tasks/run.yml--- # Run the test script # # The test log shall be placed in a folder where it's picked up by the CI jobs # # Ignore errors is require to make sure the following tasks are executed # We will need to store the exit code somewhere for Jenkins to pick it up (TBD) - name: hqe-iverify | run | Run the tests become: yes become_user: "{{ ardana_user }}" command: "{{ iverify_work_folder }}/hqe-iverify" register: test_output ignore_errors: True - name: hqe-iverify | run | Show test output debug: var=test_output 0707010000018A000081A40000000000000000000000015B730C500000002E000000000000000000000000000000000000005C00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-iverify-run/tasks/test-resources.yml--- # Setup the test account used for testing 0707010000018B000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000004800000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-iverify-run/vars0707010000018C000081A40000000000000000000000015B730C500000028B000000000000000000000000000000000000005100000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-iverify-run/vars/main.yml--- # Filter variable must be defined in all roles to allow for # test filtering. The test filter file contains the data to # be able to filter which tests to be executed out of role, # stored in the format which is more suitable for the specific role. # Test filter files are expected under a run_filters folder. # The file name must match the tags, for it to be selected properly # when a specific test run is requested in ardana-qa-run.yml run_filter_file: parallel.txt iverify_code_folder: "{{ work_folder }}/{{ tests_git_repo }}/{{ hqe_iverify.deploy.tests_folder }}" iverify_work_folder: "{{ work_folder}}/{{ hqe_iverify.deploy.test_suite }}" 0707010000018D000041ED0000000000000000000000065B730C5000000000000000000000000000000000000000000000004F00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-keystone-ansible-deploy0707010000018E000041ED0000000000000000000000035B730C5000000000000000000000000000000000000000000000005500000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-keystone-ansible-deploy/files0707010000018F000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000006100000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-keystone-ansible-deploy/files/run_filters07070100000190000081A40000000000000000000000015B730C50000000E7000000000000000000000000000000000000007600000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-keystone-ansible-deploy/files/run_filters/keystone-ansible.txt# FIXME includes the role name for single tests. If your test suite # contains more than one test and you would like to make a selection # Please include the list in a format understandable by the your test # tool keystone-ansible 07070100000191000081A40000000000000000000000015B730C50000000E7000000000000000000000000000000000000006E00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-keystone-ansible-deploy/files/run_filters/parallel.txt# FIXME includes the role name for single tests. If your test suite # contains more than one test and you would like to make a selection # Please include the list in a format understandable by the your test # tool keystone-ansible 07070100000192000081A40000000000000000000000015B730C50000000E7000000000000000000000000000000000000006E00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-keystone-ansible-deploy/files/run_filters/periodic.txt# FIXME includes the role name for single tests. If your test suite # contains more than one test and you would like to make a selection # Please include the list in a format understandable by the your test # tool keystone-ansible 07070100000193000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005500000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-keystone-ansible-deploy/tasks07070100000194000081A40000000000000000000000015B730C50000000F4000000000000000000000000000000000000006100000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-keystone-ansible-deploy/tasks/install.yml--- - name: hqe-keystone-ansible-run | install | Deploy config file template: src: test_resources.j2 dest: "{{ keystone_ansible_code_folder }}/test_resources.sh" owner: "{{ hqe_user }}" group: "{{ hqe_group }}" mode: 0644 07070100000195000081A40000000000000000000000015B730C500000001C000000000000000000000000000000000000005E00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-keystone-ansible-deploy/tasks/main.yml--- - include: install.yml 07070100000196000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005900000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-keystone-ansible-deploy/templates07070100000197000081A40000000000000000000000015B730C50000008A8000000000000000000000000000000000000006B00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-keystone-ansible-deploy/templates/test_resources.j2# NOTE(andreaf) Changes: # install_folder -> work_folder # SoapuiSettings -> removed # install_folder={{ keystone_ansible_work_folder }} test_folder={{ keystone_ansible_code_folder }} ks_endpoint={{ hqe_group_vars.keystone_endpoint }} ks_endpoint_port={{ hqe_group_vars.keystone_endpoint_port }} ks_admin_endpoint={{ hqe_group_vars.keystone_admin_endpoint }} ks_admin_endpoint_port={{ hqe_group_vars.keystone_admin_endpoint_port }} ks_observer_host1={{ hqe_group_vars.keystone_observer_host1 }} ks_observer_host2={{ hqe_group_vars.keystone_observer_host2 }} ks_observer_host3={{ hqe_group_vars.keystone_observer_host3 }} ks_noauth_admin_token={{ hqe_token_vars.keystone_admin_token }} ks_admin_password={{ hqe_group_vars.keystone_admin_password }} mon_endpoint={{ hqe_group_vars.monasca_endpoint }} mon_endpoint_port={{ hqe_group_vars.monasca_port }} mon_user={{ hqe_group_vars.monasca_user }} mon_password={{ hqe_group_vars.monasca_password }} mon_cluster1={{ hqe_group_vars.monasca_cluster1 }} mon_cluster2={{ hqe_group_vars.monasca_cluster2 }} mon_cluster3={{ hqe_group_vars.monasca_cluster3 }} ceilometer_user={{ hqe_group_vars.keystone_ceilometer_user }} ceilometer_password={{ hqe_group_vars.keystone_ceilometer_password }} ceilometer_mysql_admin_user={{ hqe_group_vars.ceilometer_mysql_admin_user }} ceilometer_mysql_admin_password={{ hqe_group_vars.ceilometer_mysql_admin_password }} hostname_stopstart_apache={{ hqe_group_vars.keystone_observer_host1 }} keystone_admin_url={{ hqe_group_vars.keystone_admin_url }} keystone_private_url={{ hqe_group_vars.keystone_private_url }} keystone_public_url={{ hqe_group_vars.keystone_public_url }} nova_admin_url={{ hqe_group_vars.nova_admin_url }} nova_private_url={{ hqe_group_vars.nova_private_url }} nova_public_url={{ hqe_group_vars.nova_public_url }} glance_admin_url={{ hqe_group_vars.glance_admin_url }} glance_private_url={{ hqe_group_vars.glance_private_url }} glance_public_url={{ hqe_group_vars.glance_public_url }} config_file={{ hqe_group_vars.config_file }} keystone_ccn_node2={{ hqe_group_vars.keystone_ccn_node2 }} ks_private_vip_host={{ hqe_group_vars.keystone_private_vip_host }} controller_network_type={{ hqe_group_vars.controller_network_type }} 07070100000198000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005400000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-keystone-ansible-deploy/vars07070100000199000081A40000000000000000000000015B730C50000000DA000000000000000000000000000000000000005D00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-keystone-ansible-deploy/vars/main.yml--- keystone_ansible_code_folder: "{{ work_folder }}/{{ tests_git_repo }}/{{ hqe_keystone_ansible.deploy.tests_folder }}" keystone_ansible_work_folder: "{{ work_folder }}/{{ hqe_keystone_ansible.deploy.test_suite }}" 0707010000019A000041ED0000000000000000000000045B730C5000000000000000000000000000000000000000000000004C00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-keystone-ansible-run0707010000019B000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005200000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-keystone-ansible-run/tasks0707010000019C000081A40000000000000000000000015B730C50000000A0000000000000000000000000000000000000005B00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-keystone-ansible-run/tasks/main.yml--- - include: ../../hqe-common/tasks/common-run.yml vars: caller_role_path: "{{ role_path }}" ansible_python_interpreter: "{{ common_venv_python }}" 0707010000019D000081A40000000000000000000000015B730C500000041C000000000000000000000000000000000000005A00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-keystone-ansible-run/tasks/run.yml--- # NOTE(andreaf) This is only mean to run on the deployer. We should restrict # its execution on the deployer node, however the framework does not fully # support that yet, so leaving the restriction implicit for now. # Reports are written to the code folder as this is executed with {{ ardana_user }} - name: hqe-keystone-ansible | run | Ensure ks-test-reports folder file: path: "{{ keystone_ansible_code_folder }}/ks-test-reports" state: directory mode: 0777 owner: "{{ hqe_user }}" group: "{{ hqe_group }}" - name: hqe-keystone-ansible | run | Run the tests become: yes become_user: "{{ test_driver_login }}" command: "./Keystone-Ansible-Automation.sh {{ keystone_ansible_code_folder }}/ks-test-reports" register: test_output ignore_errors: True args: chdir: "{{ keystone_ansible_code_folder }}" - name: hqe-keystone-ansible | run | set test report shell: "cat {{ keystone_ansible_code_folder }}/ks-test-reports/Keystone-Ansible-Automation_report" register: report - debug: var=report.stdout_lines 0707010000019E000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005100000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-keystone-ansible-run/vars0707010000019F000081A40000000000000000000000015B730C5000000137000000000000000000000000000000000000005A00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-keystone-ansible-run/vars/main.yml--- test_driver_login: "{{ hqe_common.deploy.test_driver_login }}" run_filter_file: parallel.txt keystone_ansible_code_folder: "{{ work_folder }}/{{ tests_git_repo }}/{{ hqe_keystone_ansible.deploy.tests_folder }}" keystone_ansible_work_folder: "{{ work_folder }}/{{ hqe_keystone_ansible.deploy.test_suite }}" 070701000001A0000041ED0000000000000000000000055B730C5000000000000000000000000000000000000000000000004C00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-keystone-ldap-deploy070701000001A1000041ED0000000000000000000000035B730C5000000000000000000000000000000000000000000000005200000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-keystone-ldap-deploy/files070701000001A2000081A40000000000000000000000015B730C5000000015000000000000000000000000000000000000006300000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-keystone-ldap-deploy/files/requirements.txtpython_keystoneclient070701000001A3000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005E00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-keystone-ldap-deploy/files/run_filters070701000001A4000081A40000000000000000000000015B730C5000000012000000000000000000000000000000000000007000000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-keystone-ldap-deploy/files/run_filters/keystone-ldap.txthqe-keystone-ldap 070701000001A5000081A40000000000000000000000015B730C5000000012000000000000000000000000000000000000006B00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-keystone-ldap-deploy/files/run_filters/parallel.txthqe-keystone-ldap 070701000001A6000081A40000000000000000000000015B730C5000000012000000000000000000000000000000000000006B00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-keystone-ldap-deploy/files/run_filters/periodic.txthqe-keystone-ldap 070701000001A7000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005200000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-keystone-ldap-deploy/tasks070701000001A8000081A40000000000000000000000015B730C5000000022000000000000000000000000000000000000006000000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-keystone-ldap-deploy/tasks/configure.yml--- # Configure hqe-keystone-ldap 070701000001A9000081A40000000000000000000000015B730C5000000535000000000000000000000000000000000000005E00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-keystone-ldap-deploy/tasks/install.yml--- - name: hqe-keystone-ldap | install | set os-specific variables include_vars: "../vars/{{ ansible_os_family.split(' ')[0] | lower | replace('open', '') }}.yml" - name: hqe-keystone-ldap | install | Create work folder {{ keystone_ldap_work_folder }} file: path: "{{ keystone_ldap_work_folder }}" owner: "{{ hqe_user }}" group: "{{ hqe_group }}" state: directory recurse: yes - name: hqe-keystone-ldap | install | Install Java dependencies for SoapUI cli tests become: yes become_user: root package: name={{ item }} state=present with_items: hqe_keystone_ldap_pkgs # NOTE(andreaf) Certs validation: https://github.com/ansible/ansible/issues/12549 - name: hqe-keystone-ldap | install | Install SoapUI get_url: force: no url: "{{ soapui_download_url }}" dest: "{{ keystone_ldap_work_folder }}/{{ soapui_download_url | basename }}" validate_certs: no timeout: 120 - name: hqe-keystone-ldap | install | Unarchive SoapUI unarchive: creates: "{{ keystone_ldap_work_folder }}/{{ soapui_install_folder }}" copy: no src: "{{ keystone_ldap_work_folder }}/{{ soapui_download_url | basename }}" dest: "{{ keystone_ldap_work_folder }}" - name: hqe-keystone-ldap | install | Deploy run_filters copy: > src=run_filters dest="{{ keystone_ldap_work_folder }}/" 070701000001AA000081A40000000000000000000000015B730C5000000034000000000000000000000000000000000000005B00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-keystone-ldap-deploy/tasks/main.yml--- - include: install.yml - include: configure.yml 070701000001AB000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005100000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-keystone-ldap-deploy/vars070701000001AC000081A40000000000000000000000015B730C500000002F000000000000000000000000000000000000005C00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-keystone-ldap-deploy/vars/debian.yml--- hqe_keystone_ldap_pkgs: - openjdk-8-jre 070701000001AD000081A40000000000000000000000015B730C50000000CD000000000000000000000000000000000000005A00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-keystone-ldap-deploy/vars/main.yml--- keystone_ldap_code_folder: "{{ work_folder }}/{{ tests_git_repo }}/{{ hqe_keystone_ldap.deploy.tests_folder }}" keystone_ldap_work_folder: "{{ work_folder }}/{{ hqe_keystone_ldap.deploy.test_suite }}" 070701000001AE000081A40000000000000000000000015B730C500000003D000000000000000000000000000000000000005A00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-keystone-ldap-deploy/vars/suse.yml--- hqe_keystone_ldap_pkgs: - java-1_8_0-openjdk-headless 070701000001AF000041ED0000000000000000000000055B730C5000000000000000000000000000000000000000000000004900000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-keystone-ldap-run070701000001B0000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000004F00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-keystone-ldap-run/tasks070701000001B1000081A40000000000000000000000015B730C5000000003000000000000000000000000000000000000005B00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-keystone-ldap-run/tasks/cleanup.yml---070701000001B2000081A40000000000000000000000015B730C500000015A000000000000000000000000000000000000005800000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-keystone-ldap-run/tasks/main.yml--- - include: test-resources.yml vars: ansible_python_interpreter: "{{ common_venv_python }}" - include: ../../hqe-common/tasks/common-run.yml vars: caller_role_path: "{{ role_path }}" ansible_python_interpreter: "{{ common_venv_python }}" - include: cleanup.yml vars: ansible_python_interpreter: "{{ common_venv_python }}"070701000001B3000081A40000000000000000000000015B730C50000004BE000000000000000000000000000000000000005700000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-keystone-ldap-run/tasks/run.yml--- - debug: var=keystone_ldap_code_folder - name: hqe-keystone-ldap | run | Configure ldap domains in keystone become: yes become_user: "{{ ardana_user }}" command: > ./TestSuite_configure_ldap.sh register: test_output ignore_errors: True args: chdir: "{{ keystone_ldap_code_folder }}/" - name: hqe-keystone-ldap | run | Set test status set_fact: test_status: false when: test_output.rc != 0 - name: hqe-keystone-ldap | run | Run the SoapUI tests for Active Directory domain become: yes command: ./TestSuite_ldap_ad.sh register: test_output ignore_errors: True args: chdir: "{{ keystone_ldap_code_folder }}/" - name: hqe-keystone-ldap | run | Run the SoapUI tests for OpenLDAP domain become: yes command: ./TestSuite_ldap_openldap.sh register: test_output ignore_errors: True args: chdir: "{{ keystone_ldap_code_folder }}/" - name: hqe-keystone-ldap | run | Set test status set_fact: test_status: false when: test_output.rc != 0 # If the last test failed, RC is not 0. If a previous test failed, we set it 1 - name: hqe-keystone-ldap | run | Set overall RC for subunit set_fact: test_output.rc = 1 when: not(test_status | bool) 070701000001B4000081A40000000000000000000000015B730C5000000468000000000000000000000000000000000000006200000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-keystone-ldap-run/tasks/test-resources.yml--- # Get the admin token for testing - name: hqe-keystone-ldap | test-resources | Get a domain scoped token keystone_v3: endpoint: "{{ hqe_group_vars.keystone_admin_endpoint }}:{{ hqe_group_vars.keystone_admin_endpoint_port }}/v3" login_username: "{{ hqe_group_vars.keystone_admin_user }}" login_password: "{{ hqe_group_vars.keystone_admin_password }}" login_user_domain_name: "{{ hqe_group_vars.keystone_default_domain }}" login_domain_name: "{{ hqe_group_vars.keystone_default_domain }}" action: "token_get" run_once: true register: domain_scoped_token # NOTE(andreaf) Tests expect a configuration file (test_resources.sh) to live # along with the code. As the code folder is read-only, we copy the code to the # work folder and re-set the code folder to the new location. #- set_fact: # keystone_ldap_code_folder: "{{ keystone_ldap_work_folder }}/{{ keystone_ldap_code_folder | basename }}" # Deploy test configuration - name: hqe-keystone-ldap | test-resources | Deploy test_resources.sh template: src: test_resources.j2 dest: "{{ keystone_ldap_code_folder }}/test_resources.sh"070701000001B5000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005300000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-keystone-ldap-run/templates070701000001B6000081A40000000000000000000000015B730C5000000451000000000000000000000000000000000000006500000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-keystone-ldap-run/templates/test_resources.j2InstallFolder={{ keystone_ldap_work_folder }} KSENDPOINT={{ hqe_group_vars.keystone_endpoint }} KSADMINENDPOINT={{ hqe_group_vars.keystone_admin_endpoint }} MONENDPOINT={{ hqe_group_vars.monasca_endpoint }} TestFolder={{ keystone_ldap_code_folder }} HostNameForStopStartApache={{ hqe_group_vars.keystone_observer_host1 }} observer_host1={{ hqe_group_vars.keystone_observer_host1 }} observer_host2={{ hqe_group_vars.keystone_observer_host2 }} observer_host3={{ hqe_group_vars.keystone_observer_host3 }} NOAUTH_KSADMINTOKEN={{ hqe_token_vars.keystone_admin_token }} ADMINPASSWORD={{ hqe_group_vars.keystone_admin_password }} SoapuiSettings={{ SoapuiSettings }} monasca_user={{ hqe_group_vars.monasca_user }} monasca_password={{ hqe_group_vars.monasca_password }} mrtmon_cluster1={{ hqe_group_vars.monasca_cluster1 }} mrtmon_cluster2={{ hqe_group_vars.monasca_cluster2 }} mrtmon_cluster3={{ hqe_group_vars.monasca_cluster3 }} KSENDPOINTPORT={{ hqe_group_vars.keystone_endpoint_port }} KSADMINENDPOINTPORT={{ hqe_group_vars.keystone_admin_endpoint_port }} MONENDPOINTPORT={{ hqe_group_vars.monasca_port }} 070701000001B7000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000004E00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-keystone-ldap-run/vars070701000001B8000081A40000000000000000000000015B730C50000002E7000000000000000000000000000000000000005700000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-keystone-ldap-run/vars/main.yml--- # Filter variable must be defined in all roles to allow for # test filtering. The test filter file contains the data to # be able to filter which tests to be executed out of role, # stored in the format which is more suitable for the specific role. # Test filter files are expected under a run_filters folder. # The file name must match the tags, for it to be selected properly # when a specific test run is requested in ardana-qa-run.yml run_filter_file: parallel.txt # Setting for Keystone-soapui SoapuiSettings: soapui-settings.xml keystone_ldap_code_folder: "{{ work_folder }}/{{ tests_git_repo }}/{{ hqe_keystone_ldap.deploy.tests_folder }}" keystone_ldap_work_folder: "{{ work_folder }}/{{ hqe_keystone_ldap.deploy.test_suite }}" 070701000001B9000041ED0000000000000000000000055B730C5000000000000000000000000000000000000000000000004E00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-keystone-soapui-deploy070701000001BA000041ED0000000000000000000000035B730C5000000000000000000000000000000000000000000000005400000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-keystone-soapui-deploy/files070701000001BB000081A40000000000000000000000015B730C5000000015000000000000000000000000000000000000006500000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-keystone-soapui-deploy/files/requirements.txtpython_keystoneclient070701000001BC000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000006000000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-keystone-soapui-deploy/files/run_filters070701000001BD000081A40000000000000000000000015B730C5000000010000000000000000000000000000000000000007400000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-keystone-soapui-deploy/files/run_filters/keystone-soapui.txtkeystone-soapui 070701000001BE000081A40000000000000000000000015B730C5000000010000000000000000000000000000000000000006D00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-keystone-soapui-deploy/files/run_filters/parallel.txtkeystone-soapui 070701000001BF000081A40000000000000000000000015B730C5000000010000000000000000000000000000000000000006D00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-keystone-soapui-deploy/files/run_filters/periodic.txtkeystone-soapui 070701000001C0000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005400000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-keystone-soapui-deploy/tasks070701000001C1000081A40000000000000000000000015B730C5000000551000000000000000000000000000000000000006000000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-keystone-soapui-deploy/tasks/install.yml--- - name: hqe-keystone-soapui | install | set os-specific variables include_vars: "../vars/{{ ansible_os_family.split(' ')[0] | lower | replace('open', '') }}.yml" - name: hqe-keystone-soapui | install | Create work folder {{ keystone_soapui_work_folder }} file: path: "{{ keystone_soapui_work_folder }}" owner: "{{ hqe_user }}" group: "{{ hqe_group }}" state: directory recurse: yes - name: hqe-keystone-soapui | install | Install Java dependencies for SoapUI cli tests become: yes become_user: root package: name={{ item }} state=present with_items: hqe_keystone_soapui_pkgs # NOTE(andreaf) Certs validation: https://github.com/ansible/ansible/issues/12549 - name: hqe-keystone-soapui | install | Install SoapUI get_url: force: no url: "{{ soapui_download_url }}" dest: "{{ keystone_soapui_work_folder }}/{{ soapui_download_url | basename }}" validate_certs: no timeout: 120 - name: hqe-keystone-soapui | install | Unarchive SoapUI unarchive: creates: "{{ keystone_soapui_work_folder }}/{{ soapui_install_folder }}" copy: no src: "{{ keystone_soapui_work_folder }}/{{ soapui_download_url | basename }}" dest: "{{ keystone_soapui_work_folder }}" - name: hqe-keystone-soapui | install | Deploy run_filters copy: > src=run_filters dest="{{ keystone_soapui_work_folder }}/" 070701000001C2000081A40000000000000000000000015B730C500000001B000000000000000000000000000000000000005D00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-keystone-soapui-deploy/tasks/main.yml--- - include: install.yml 070701000001C3000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005300000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-keystone-soapui-deploy/vars070701000001C4000081A40000000000000000000000015B730C5000000031000000000000000000000000000000000000005E00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-keystone-soapui-deploy/vars/debian.yml--- hqe_keystone_soapui_pkgs: - openjdk-8-jre 070701000001C5000081A40000000000000000000000015B730C50000000D6000000000000000000000000000000000000005C00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-keystone-soapui-deploy/vars/main.yml--- keystone_soapui_code_folder: "{{ work_folder }}/{{ tests_git_repo }}/{{ hqe_keystone_soapui.deploy.tests_folder }}" keystone_soapui_work_folder: "{{ work_folder }}/{{ hqe_keystone_soapui.deploy.test_suite }}" 070701000001C6000081A40000000000000000000000015B730C500000003F000000000000000000000000000000000000005C00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-keystone-soapui-deploy/vars/suse.yml--- hqe_keystone_soapui_pkgs: - java-1_8_0-openjdk-headless 070701000001C7000041ED0000000000000000000000055B730C5000000000000000000000000000000000000000000000004B00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-keystone-soapui-run070701000001C8000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005100000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-keystone-soapui-run/tasks070701000001C9000081A40000000000000000000000015B730C5000000003000000000000000000000000000000000000005D00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-keystone-soapui-run/tasks/cleanup.yml---070701000001CA000081A40000000000000000000000015B730C500000015A000000000000000000000000000000000000005A00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-keystone-soapui-run/tasks/main.yml--- - include: test-resources.yml vars: ansible_python_interpreter: "{{ common_venv_python }}" - include: ../../hqe-common/tasks/common-run.yml vars: caller_role_path: "{{ role_path }}" ansible_python_interpreter: "{{ common_venv_python }}" - include: cleanup.yml vars: ansible_python_interpreter: "{{ common_venv_python }}"070701000001CB000081A40000000000000000000000015B730C50000010BC000000000000000000000000000000000000005900000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-keystone-soapui-run/tasks/run.yml--- - name: hqe-keystone-soapui-run | run | Run TestSuite_Smoke.sh become: yes command: ./TestSuite_Smoke.sh register: test_output ignore_errors: True args: chdir: "{{ keystone_soapui_code_folder }}/" when: run_filter == "periodic" #- name: hqe-template | run | Show test output - TestSuite_Smoke # debug: var=test_output # when: run_filter == "periodic" - name: hqe-keystone-soapui-run | run | Set test status set_fact: test_status: false when: run_filter == "periodic" and test_output.rc != 0 - name: hqe-keystone-soapui-run | run | Run TestSuite_MonitorWithMonasca.sh become: yes command: ./TestSuite_MonitorWithMonasca.sh register: test_output ignore_errors: True args: chdir: "{{ keystone_soapui_code_folder }}/" when: run_filter == "parallel" #- name: hqe-template | run | Show test output - TestSuite_MonitorWithMonasca.sh # debug: var=test_output # when: run_filter == "parallel" - name: hqe-keystone-soapui-run | run | Set test status set_fact: test_status: false when: run_filter == "parallel" and test_output.rc != 0 - name: hqe-keystone-soapui-run | run | Run TestSuite_V2.sh become: yes command: ./TestSuite_V2.sh register: test_output ignore_errors: True args: chdir: "{{ keystone_soapui_code_folder }}/" when: run_filter == "parallel" #- name: hqe-template | run | Show test output - TestSuite_V2.sh # debug: var=test_output # when: run_filter == "parallel" - name: hqe-keystone-soapui-run | run | Set test status set_fact: test_status: false when: run_filter == "parallel" and test_output.rc != 0 - name: hqe-keysto soapui-run | run | Run TestSuite_v3IdentityServiceAPI-Helion-DTUG.sh become: yes command: ./TestSuite_v3IdentityServiceAPI-Helion-DTUG.sh register: test_output ignore_errors: True args: chdir: "{{ keystone_soapui_code_folder }}/" when: run_filter == "parallel" #- name: hqe-template | run | Show test output - TestSuite_v3IdentityServiceAPI-Helion-DTUG.sh # debug: var=test_output # when: run_filter == "parallel" - name: hqe-keystone-soapui-run | run | Set test status set_fact: test_status: false when: run_filter == "parallel" and test_output.rc != 0 - name: hqe-keystone-soapui-run | run | Run TestSuite_v3IdentityServiceAPI-Helion-OtherObjects.sh become: yes command: ./TestSuite_v3IdentityServiceAPI-Helion-OtherObjects.sh register: test_output ignore_errors: True args: chdir: "{{ keystone_soapui_code_folder }}/" when: run_filter == "parallel" #- name: hqe-template | run | Show test output - TestSuite_v3IdentityServiceAPI-Helion-OtherObjects.sh # debug: var=test_output # when: run_filter == "parallel" - name: hqe-keystone-soapui-run | run | Set test status set_fact: test_status: false when: run_filter == "parallel" and test_output.rc != 0 - name: hqe-keystone-soapui-run | run | Run TestSuite_v3IdentityServiceAPI-Helion-Privilege.sh become: yes command: ./TestSuite_v3IdentityServiceAPI-Helion-Privilege.sh register: test_output ignore_errors: True args: chdir: "{{ keystone_soapui_code_folder }}/" when: run_filter == "parallel" #- name: hqe-template | run | Show test output - TestSuite_v3IdentityServiceAPI-Helion-Privilege.sh # debug: var=test_output # when: run_filter == "parallel" - name: hqe-keystone-soapui-run | run | Set test status set_fact: test_status: false when: run_filter == "parallel" and test_output.rc != 0 - name: hqe-keystone-soapui-run | run | Run TestSuite_v3IdentityServiceAPI-Helion-Token.sh become: yes command: ./TestSuite_v3IdentityServiceAPI-Helion-Token.sh register: test_output ignore_errors: True args: chdir: "{{ keystone_soapui_code_folder }}/" when: run_filter == "parallel" #- name: hqe-template | run | Show test output - TestSuite_v3IdentityServiceAPI-Helion-Token.sh # debug: var=test_output # when: run_filter == "parallel" - name: hqe-keystone-soapui-run | run | Set test status set_fact: test_status: false when: run_filter == "parallel" and test_output.rc != 0 # If the last test failed, RC is not 0. If a previous test failed, we set it 1 - name: hqe-keystone-soapui-run | run | Set overall RC for subunit set_fact: test_output.rc = 1 when: not(test_status | bool)070701000001CC000081A40000000000000000000000015B730C500000047C000000000000000000000000000000000000006400000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-keystone-soapui-run/tasks/test-resources.yml--- # Get the admin token for testing - name: hqe-keystone-soapui-run | test-resources | Get a domain scoped token keystone_v3: endpoint: "{{ hqe_group_vars.keystone_admin_endpoint }}:{{ hqe_group_vars.keystone_admin_endpoint_port }}/v3" login_username: "{{ hqe_group_vars.keystone_admin_user }}" login_password: "{{ hqe_group_vars.keystone_admin_password }}" login_user_domain_name: "{{ hqe_group_vars.keystone_default_domain }}" login_domain_name: "{{ hqe_group_vars.keystone_default_domain }}" action: "token_get" run_once: true register: domain_scoped_token # NOTE(andreaf) Tests expect a configuration file (test_resources.sh) to live # along with the code. As the code folder is read-only, we copy the code to the # work folder and re-set the code folder to the new location. #- set_fact: # keystone_soapui_code_folder: "{{ keystone_soapui_work_folder }}/{{ keystone_soapui_code_folder | basename }}" # Deploy test configuration - name: hqe-keystone-soapui-run | test-resources | Deploy test_resources.sh template: src: test_resources.j2 dest: "{{ keystone_soapui_code_folder }}/test_resources.sh"070701000001CD000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005500000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-keystone-soapui-run/templates070701000001CE000081A40000000000000000000000015B730C5000000455000000000000000000000000000000000000006700000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-keystone-soapui-run/templates/test_resources.j2InstallFolder={{ keystone_soapui_work_folder }} KSENDPOINT={{ hqe_group_vars.keystone_endpoint }} KSADMINENDPOINT={{ hqe_group_vars.keystone_admin_endpoint }} MONENDPOINT={{ hqe_group_vars.monasca_endpoint }} TestFolder={{ keystone_soapui_code_folder }} HostNameForStopStartApache={{ hqe_group_vars.keystone_observer_host1 }} observer_host1={{ hqe_group_vars.keystone_observer_host1 }} observer_host2={{ hqe_group_vars.keystone_observer_host2 }} observer_host3={{ hqe_group_vars.keystone_observer_host3 }} NOAUTH_KSADMINTOKEN={{ hqe_token_vars.keystone_admin_token }} ADMINPASSWORD={{ hqe_group_vars.keystone_admin_password }} SoapuiSettings={{ SoapuiSettings }} monasca_user={{ hqe_group_vars.monasca_user }} monasca_password={{ hqe_group_vars.monasca_password }} mrtmon_cluster1={{ hqe_group_vars.monasca_cluster1 }} mrtmon_cluster2={{ hqe_group_vars.monasca_cluster2 }} mrtmon_cluster3={{ hqe_group_vars.monasca_cluster3 }} KSENDPOINTPORT={{ hqe_group_vars.keystone_endpoint_port }} KSADMINENDPOINTPORT={{ hqe_group_vars.keystone_admin_endpoint_port }} MONENDPOINTPORT={{ hqe_group_vars.monasca_port }} 070701000001CF000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005000000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-keystone-soapui-run/vars070701000001D0000081A40000000000000000000000015B730C50000002EE000000000000000000000000000000000000005900000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-keystone-soapui-run/vars/main.yml--- # Filter variable must be defined in all roles to allow for # test filtering. The test filter file contains the data to # be able to filter which tests to be executed out of role, # stored in the format which is more suitable for the specific role. # Test filter files are expected under a run_filters folder. # The file name must match the tags, for it to be selected properly # when a specific test run is requested in ardana-qa-run.yml run_filter_file: parallel.txt # Setting for Keystone-soapui SoapuiSettings: soapui-settings.xml keystone_soapui_code_folder: "{{ work_folder }}/{{ tests_git_repo }}/{{ hqe_keystone_soapui.deploy.tests_folder }}" keystone_soapui_work_folder: "{{ work_folder }}/{{ hqe_keystone_soapui.deploy.test_suite }}" 070701000001D1000041ED0000000000000000000000075B730C5000000000000000000000000000000000000000000000004600000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-logging-deploy070701000001D2000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000004F00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-logging-deploy/defaults070701000001D3000081A40000000000000000000000015B730C5000000086000000000000000000000000000000000000005800000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-logging-deploy/defaults/main.yml# (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC --- logging_service_name: 'logging' 070701000001D4000041ED0000000000000000000000035B730C5000000000000000000000000000000000000000000000004C00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-logging-deploy/files070701000001D5000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005800000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-logging-deploy/files/run_filters070701000001D6000081A40000000000000000000000015B730C5000000105000000000000000000000000000000000000005F00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-logging-deploy/files/run_filters/ci.txt# (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC +kronos\.centralized\.test_basic_vip.* +kronos\.local\.test_logrotate_coverage.* +kronos\.centralized\.test_monasca_status.* -kronos\.centralized\.test_auditing.* 070701000001D7000081A40000000000000000000000015B730C50000001D4000000000000000000000000000000000000006D00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-logging-deploy/files/run_filters/logging-parallel.txt# (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC +kronos\.centralized\.test_basic_vip.* +kronos\.local\.test_logrotate_coverage.* +kronos\.centralized\.test_monasca_status.* +kronos\.centralized\.test_heap.* +kronos\.centralized\.test_transaction_records.* +kronos\.centralized\.test_monasca_log.* +kronos\.local\.test_file_permissions.* +kronos\.centralized\.test_mvp_validator.* -kronos\.centralized\.test_auditing.* 070701000001D8000081A40000000000000000000000015B730C5000000085000000000000000000000000000000000000006D00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-logging-deploy/files/run_filters/periodic-virtual.txt# (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # For now all tests should pass CI 070701000001D9000081A40000000000000000000000015B730C5000000085000000000000000000000000000000000000006500000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-logging-deploy/files/run_filters/periodic.txt# (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # For now all tests should pass CI 070701000001DA000081A40000000000000000000000015B730C50000000B3000000000000000000000000000000000000006200000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-logging-deploy/files/run_filters/smoke.txt# (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC +kronos\.centralized\.test_basic_vip.* +kronos\.local\.test_logrotate_coverage.* 070701000001DB000081A40000000000000000000000015B730C5000000085000000000000000000000000000000000000006500000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-logging-deploy/files/run_filters/tests-ci.txt# (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # For now all tests should pass CI 070701000001DC000081A40000000000000000000000015B730C50000000DF000000000000000000000000000000000000006400000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-logging-deploy/files/run_filters/upgrade.txt# (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC +kronos\.centralized\.test_basic_vip.* +kronos\.local\.test_logrotate_coverage.* +kronos\.centralized\.test_monasca_status.* 070701000001DD000081A40000000000000000000000015B730C500000084A000000000000000000000000000000000000005A00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-logging-deploy/files/tests2skip.py#!/usr/bin/env python # # Copyright 2013 Red Hat # All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # Reads in a list of exclude regular expressions from a file and outputs a # regex suitable to be passed into testr import sys """ Whitelist is applied first. The blacklist is executed against the set of tests returned by the whitelist. If whitelist is empty, all available tests are fed to blacklist. If blacklist is empty, all tests from whitelist are returned. The syntax for white-list and black-list is as follows: - lines starting with # or empty are ignored - lines starting with "+" are whitelisted - lines starting with "-" are blacklisted - lines not matching any of the above conditions are blacklisted The match for each line gets added a "^" in the beginning, so the regular expression should account for that. For example, the following scenario: run all the smoke tests and scenario tests, but exclude the api.volume tests. is implemented as: +.*smoke +tempest\.scenario -tempest\.api\.volume.* """ whitelist = [] blacklist = [] with open(sys.argv[1]) as fp: for line in fp: line = line.strip() if not line or line[0] == '#': continue if line.startswith("+"): whitelist.append(line[1:]) elif line.startswith("-"): blacklist.append(line[1:]) else: blacklist.append(line) regex = '^(?=({whitelist}))' params = dict(whitelist="|".join(whitelist)) if blacklist: regex += '(?!({blacklist}))' params['blacklist'] = "|".join(blacklist) print(regex.format(**params)) 070701000001DE000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000004C00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-logging-deploy/tasks070701000001DF000081A40000000000000000000000015B730C50000001C5000000000000000000000000000000000000005A00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-logging-deploy/tasks/configure.yml# (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC --- # Configure the demo test # The only configuration required here is the RC file with the # credentials but that can only be created after test-resources - name: hqe-template | configure | Set ownership of {{ logging_work_folder }} folder file: path={{ logging_work_folder }} owner={{ hqe_user }} group={{ hqe_group }} state=directory recurse=yes 070701000001E0000081A40000000000000000000000015B730C5000000C36000000000000000000000000000000000000005800000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-logging-deploy/tasks/install.yml# (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017-2018 SUSE LLC --- - set_fact: logging_venv_folder: "{{ common_venv_root }}/{{ hqe_logging.deploy.venv_folder }}" tempest_code_folder: "{{ code_folder }}/tempest/" when: build_venvs | bool - set_fact: logging_venv_folder: "{{ logging_service_name | bin_dir }}/../" tempest_code_folder: "{{ code_folder }}/tempest/" when: not (build_venvs | bool) # Install demo test dependencies - name: hqe-logging | install | Update package cache install_package: cache: update when: not (build_venvs | bool) - name: hqe-logging | install | Install the prebuilt env become: yes become_user: root install_package: name: "{{ logging_service_name }}" service: "{{ logging_service_name }}" state: present when: not (build_venvs | bool) - name: hqe-logging | install | Upgrade pip pip: name: pip extra_args: --upgrade virtualenv: "{{ logging_venv_folder }}" when: build_venvs | bool - name: hqe-logging | install | Install CLS requirements pip: requirements={{ logging_code_folder }}/requirements.txt virtualenv={{ logging_venv_folder }} when: build_venvs | bool # Installing from source requires write access to the source folder - name: hqe-logging | install | {{ hqe_group }} owns hosqatesthelper source become: yes become_user: root file: path: "{{ testhelper_code_folder }}" owner: "{{ hqe_user }}" group: "{{ hqe_group }}" recurse: yes - name: hqe-logging | install | Install hosqatesthelper package pip: name={{ testhelper_code_folder }} extra_args='-e' virtualenv={{ logging_venv_folder }} when: build_venvs | bool - name: hqe-logging | install | Pull upstream Tempest from the Gozer become: yes become_user: root git: repo=http://git.suse.provo.cloud/openstack/tempest dest={{ tempest_code_folder }} version=hp/master update=no when: build_venvs | bool - name: hqe-logging | install | Install tempest become: yes become_user: root pip: name={{ tempest_code_folder }} extra_args='-e' virtualenv={{ logging_venv_folder }} when: build_venvs | bool - name: hqe-logging | install | Deploy run_filters copy: > src=run_filters dest="{{ logging_work_folder }}/" owner={{ hqe_user }} group={{ hqe_group }} mode=0640 - name: hqe-logging | install | Deploy tests2skip.py copy: src: tests2skip.py dest: "{{ logging_work_folder }}/logging-tests2skip.py" owner: "{{ hqe_user }}" group: "{{ hqe_group }}" mode: 0755 - name: hqe-logging | install | Deploy run script template: > src=hqe-logging.j2 dest="{{ logging_work_folder }}/hqe-logging" owner={{ hqe_user }} group={{ hqe_group }} mode=0755 - name: hqe-logging | install | Deploy testr configuration shell: cp "{{ logging_code_folder}}/.testr.conf" "{{ logging_work_folder }}" - name: hqe-logging | install | Fix testr configuration ownership file: path: "{{ logging_work_folder }}/.testr.conf" owner: "{{ hqe_user }}" group: "{{ hqe_group }}" mode: 0755 070701000001E1000081A40000000000000000000000015B730C50000000EB000000000000000000000000000000000000005500000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-logging-deploy/tasks/main.yml# (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC --- - include_vars: cls.yml when: hqe_group_vars.centralized_logging_available | bool - include: install.yml - include: configure.yml 070701000001E2000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005000000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-logging-deploy/templates070701000001E3000081A40000000000000000000000015B730C50000006B8000000000000000000000000000000000000005F00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-logging-deploy/templates/hqe-logging.j2#!/bin/bash # (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # Wrapper script to execute the example test # within the venv, with the right parameters # # Usage: hqe-template run_filter_filename set -o pipefail RUN_FILTER={{ logging_work_folder }}/run_filters/${1:-ci.txt} TEST_HOME={{ logging_code_folder }} WORK_HOME={{ logging_work_folder }} VENV={{ logging_venv_folder }} {% if hqe_group_vars.centralized_logging_available | bool %} export ES_NODE_COUNT={{ es_servers| count }} export ES_URL={{ es_url }} export ES_USERNAME='kibana' export ES_PASSWORD={{ kibana_password }} export REGIONS={{ hqe_group_vars.hlm_regions|join(',') }} {% endif %} # Temporal solution, until ansible module for that is created. TESTS_TO_SKIP_BIN="{{ logging_work_folder }}/logging-tests2skip.py" export ANSIBLE_LOCATION={{ hlm_ansible_dir }} export HLM_USER={{ ardana_user }} export INVENTORY_LOCATION={{ inventory_location }} echo TEST_HOME ${TEST_HOME} echo WORK_HOME ${WORK_HOME} echo VENV ${VENV} # Activate the virtual environment source ${VENV}/bin/activate pip freeze source ${WORK_HOME}/testrc echo --- TESTRC --- cat ${WORK_HOME}/testrc echo --- TESTRC --- echo ES Servers count $ES_NODE_COUNT # HQA-1346 premake dir to allow for ansible parallel execution if [ ! -d ~/.ansible/cp ]; then mkdir -p ~/.ansible/cp fi # Run the test cd ${WORK_HOME} echo Initializing testrepository testr init echo Running tests # Logging tests create very small loads but have a lot of waits hence high # concurrency would ensure fast executions in CI/CD testr run --subunit --parallel --concurrency 20 $(python ${TESTS_TO_SKIP_BIN} ${RUN_FILTER}) | subunit-trace --no-failure-debug -f 070701000001E4000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000004B00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-logging-deploy/vars070701000001E5000081A40000000000000000000000015B730C5000000099000000000000000000000000000000000000005300000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-logging-deploy/vars/cls.yml--- kibana_password: "{{ hqe_group_vars.logging_kibana_password }}" es_servers: "{{ hqe_group_vars.es_servers }}" es_url: "{{ hqe_group_vars.es_url }}" 070701000001E6000081A40000000000000000000000015B730C50000001AE000000000000000000000000000000000000005400000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-logging-deploy/vars/main.yml# (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC --- logging_service_name: "{{ hqe_logging.deploy.service_name }}" logging_code_folder: "{{ work_folder }}/{{ tests_git_repo }}/{{ hqe_logging.deploy.tests_folder }}" logging_work_folder: "{{ work_folder }}/{{ hqe_logging.deploy.test_suite }}" logging_subunit_output: "{{ work_folder }}{{ hqe_logging.deploy.test_suite }}.subunit" 070701000001E7000041ED0000000000000000000000055B730C5000000000000000000000000000000000000000000000004300000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-logging-run070701000001E8000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000004900000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-logging-run/tasks070701000001E9000081A40000000000000000000000015B730C50000002B4000000000000000000000000000000000000005500000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-logging-run/tasks/cleanup.yml# (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC --- - name: hqe-logging | test-resources | Delete test user keystone_v3: login_token: "{{ keystone_admin_token }}" endpoint: "{{ keystone_admin_endpoint }}/v3" action: "delete_user" user_name: "{{ qalogging_test_user }}" user_domain_name: "{{ qalogging_test_domain }}" - name: hqe-logging | test-resources | Delete test project keystone_v3: login_token: "{{ keystone_admin_token }}" endpoint: "{{ keystone_admin_endpoint }}/v3" action: "delete_project" project_name: "{{ qalogging_test_project }}" project_domain_name: "{{ qalogging_test_domain }}" 070701000001EA000081A40000000000000000000000015B730C50000001BD000000000000000000000000000000000000005200000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-logging-run/tasks/main.yml# (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC --- - include: test-resources.yml vars: ansible_python_interpreter: "{{ common_venv_python }}" - include: ../../hqe-common/tasks/common-run.yml vars: caller_role_path: "{{ role_path }}" ansible_python_interpreter: "{{ common_venv_python }}" - include: cleanup.yml vars: ansible_python_interpreter: "{{ common_venv_python }}" 070701000001EB000081A40000000000000000000000015B730C50000002C0000000000000000000000000000000000000005100000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-logging-run/tasks/run.yml# (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017-2018 SUSE LLC --- # Run the test script # # The test log shall be placed in a folder where it's picked up by the CI jobs # # Ignore erros is require to make sure the following tasks are executed # We will need to store the exit code somewhere for Jenkins to pick it up (TBD) - name: hqe-logging | run | Run the tests become: yes become_user: "{{ hqe_user }}" shell: "OS_TEST_PATH={{ logging_code_folder }} ./hqe-logging {{ run_filter_file }}" args: chdir: "{{ logging_work_folder }}" register: test_output ignore_errors: True - name: hqe-logging | run | Show test output debug: var=test_output 070701000001EC000081A40000000000000000000000015B730C5000000BD6000000000000000000000000000000000000005C00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-logging-run/tasks/test-resources.yml# (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC --- - name: hqe-logging | test-resources | Create logging project keystone_v3: login_token: "{{ keystone_admin_token }}" endpoint: "{{ keystone_admin_endpoint }}/v3" action: "create_project" project_name: "{{ qalogging_test_project }}" project_domain_name: "{{ qalogging_test_domain }}" description: "Ephemeral test account for logging" - name: hqe-logging | test-resources | Create logging user keystone_v3: login_token: "{{ keystone_admin_token }}" endpoint: "{{ keystone_admin_endpoint }}/v3" action: "create_user" user_name: "{{ qalogging_test_user }}" user_password: "{{ qalogging_test_password }}" description: "Swift account for QA" user_domain_name: "{{ qalogging_test_domain }}" - name: hqe-logging | test-resources | Grant member role to logging user keystone_v3: login_token: "{{ keystone_admin_token }}" endpoint: "{{ keystone_admin_endpoint }}/v3" action: "grant_project_role" user_name: "{{ qalogging_test_user }}" project_name: "{{ qalogging_test_project }}" role_name: "{{ qalogging_test_role }}" user_domain_name: "{{ qalogging_test_domain }}" project_domain_name: "{{ qalogging_test_domain }}" - name: hqe-logging | test-resources | Grant swiftoperator role to logging user keystone_v3: login_token: "{{ keystone_admin_token }}" endpoint: "{{ keystone_admin_endpoint }}/v3" action: "grant_project_role" user_name: "{{ qalogging_test_user }}" project_name: "{{ qalogging_test_project }}" role_name: "swiftoperator" user_domain_name: "{{ qalogging_test_domain }}" project_domain_name: "{{ qalogging_test_domain }}" when: hqe_group_vars.swift_available | bool - name: hqe-logging | test-resources | Grant monasca-user role to logging user keystone_v3: login_token: "{{ keystone_admin_token }}" endpoint: "{{ keystone_admin_endpoint }}/v3" action: "grant_project_role" user_name: "{{ qalogging_test_user }}" project_name: "{{ qalogging_test_project }}" role_name: "monasca-user" user_domain_name: "{{ qalogging_test_domain }}" project_domain_name: "{{ qalogging_test_domain }}" when: hqe_group_vars.monasca_available | bool - name: hqe-logging | test-resources | Grant key-manager:observer role to logging user keystone_v3: login_token: "{{ keystone_admin_token }}" endpoint: "{{ keystone_admin_endpoint }}/v3" action: "grant_project_role" user_name: "{{ qalogging_test_user }}" project_name: "{{ qalogging_test_project }}" role_name: "key-manager:observer" user_domain_name: "{{ qalogging_test_domain }}" project_domain_name: "{{ qalogging_test_domain }}" when: hqe_group_vars.barbican_available | bool - name: hqe-logging | test-resources | Deploy the configuration file template: > src=testrc.j2 dest="{{ logging_work_folder }}/testrc" owner={{ hqe_user }} group={{ hqe_group }} mode=0600 070701000001ED000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000004D00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-logging-run/templates070701000001EE000081A40000000000000000000000015B730C5000000271000000000000000000000000000000000000005700000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-logging-run/templates/testrc.j2# (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC export OS_IDENTITY_API_VERSION=3 export OS_AUTH_VERION=3 export OS_BASE_AUTH_URL={{ keystone_admin_endpoint }}/v3 export OS_AUTH_URL={{ keystone_admin_endpoint }}/v3 export OS_USERNAME={{ qalogging_test_user }} export OS_PASSWORD={{ qalogging_test_password }} export OS_PROJECT_NAME={{ qalogging_test_project }} export OS_CACERT={{ ca_bundle }} export OS_ENDPOINT_TYPE=internalURL export OS_USER_DOMAIN_NAME={{ qalogging_test_domain }} export OS_PROJECT_DOMAIN_NAME={{ qalogging_test_domain }} export OS_CACERT={{ ca_bundle }} 070701000001EF000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000004800000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-logging-run/vars070701000001F0000081A40000000000000000000000015B730C5000000579000000000000000000000000000000000000005100000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-logging-run/vars/main.yml# (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC --- # Filter variable must be defined in all roles to allow for # test filtering. The test filter file contains the data to # be able to filter which tests to be executed out of role, # stored in the format which is more suitable for the specific role. # Test filter files are expected under a run_filters folder. # The file name must match the tags, for it to be selected properly # when a specific test run is requested in ardana-qa-run.yml run_filter_file: ci.txt # Settings from deploy # Test account setup for testing, and clean-ed up afterwards qalogging_random_uuid: "{{ ansible_date_time.epoch | to_uuid }}" qalogging_test_user: "{{ ['qalogging_user', demo_random_uuid] | join('-') }}" qalogging_test_project: "{{ ['qalogging_project', demo_random_uuid] | join('-') }}" qalogging_test_password: "{{ ['qalogging_password', demo_random_uuid] | join('-') }}" qalogging_test_domain: Default qalogging_test_role: "{{ hqe_group_vars.keystone_member_role }}" # General keystone settings keystone_admin_token: "{{ hqe_token_vars.keystone_admin_token }}" keystone_admin_endpoint: "{{ osrc_vars.os_unversioned_auth_url }}" logging_code_folder: "{{ work_folder }}/{{ tests_git_repo }}/{{ hqe_logging.deploy.tests_folder }}" logging_work_folder: "{{ work_folder }}/{{ hqe_logging.deploy.test_suite }}" 070701000001F1000041ED0000000000000000000000065B730C5000000000000000000000000000000000000000000000005000000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-monasca-cli-tests-deploy070701000001F2000041ED0000000000000000000000035B730C5000000000000000000000000000000000000000000000005600000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-monasca-cli-tests-deploy/files070701000001F3000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000006200000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-monasca-cli-tests-deploy/files/run_filters070701000001F4000081A40000000000000000000000015B730C5000000012000000000000000000000000000000000000007800000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-monasca-cli-tests-deploy/files/run_filters/monasca-cli-tests.txtmonasca-cli-tests 070701000001F5000081A40000000000000000000000015B730C5000000012000000000000000000000000000000000000006F00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-monasca-cli-tests-deploy/files/run_filters/parallel.txtmonasca-cli-tests 070701000001F6000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005600000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-monasca-cli-tests-deploy/tasks070701000001F7000081A40000000000000000000000015B730C50000002B1000000000000000000000000000000000000006200000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-monasca-cli-tests-deploy/tasks/install.yml--- - name: hqe-monasca-cli-tests | install | Create work folder {{ monasca_cli_tests_work_folder }} file: path: "{{ monasca_cli_tests_work_folder }}" owner: "{{ hqe_user }}" group: "{{ hqe_group }}" state: directory recurse: yes - name: hqe-monasca-cli-tests | install | Deploy run_filters copy: > src=run_filters dest="{{ monasca_cli_tests_work_folder }}/" owner={{ hqe_user }} group={{ hqe_group }} mode=0640 - name: hqe-monasca-cli-tests | install | Deploy run script template: > src=hqe-monasca-cli-tests.j2 dest={{ monasca_cli_tests_work_folder }}/hqe-monasca-cli-tests owner={{ hqe_user }} group={{ hqe_group }} mode=0755 070701000001F8000081A40000000000000000000000015B730C500000001B000000000000000000000000000000000000005F00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-monasca-cli-tests-deploy/tasks/main.yml--- - include: install.yml 070701000001F9000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005A00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-monasca-cli-tests-deploy/templates070701000001FA000081A40000000000000000000000015B730C5000000274000000000000000000000000000000000000007300000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-monasca-cli-tests-deploy/templates/hqe-monasca-cli-tests.j2#!/bin/bash # Wrapper script to execute monasca-cli-tests # within the venv, with the right parameters # # Usage: hqe-monasca-cli-tests run_filter_filename set -o pipefail IMAGE_ID=$1 KEYNAME=$2 FLAVOR=$3 AZ=$4 NVMS=$5 RUN_FILTER=${6:-parallel.txt} TEST_HOME={{ monasca_cli_tests_code_folder }} WORK_HOME={{ monasca_cli_tests_work_folder }} VENV={{ common_venv_folder }} # Activate the virtual environment source ${VENV}/bin/activate # activate the credentials source {{ monasca_cli_tests_work_folder}}/hqe-monasca-cli-tests.testrc # Run the test cmd="python ${TEST_HOME}/test_monasca_client_details.py" echo $cmd $cmd 070701000001FB000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005500000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-monasca-cli-tests-deploy/vars070701000001FC000081A40000000000000000000000015B730C50000000DD000000000000000000000000000000000000005E00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-monasca-cli-tests-deploy/vars/main.yml--- monasca_cli_tests_code_folder: "{{ work_folder }}/{{ tests_git_repo }}/{{ hqe_monasca_cli_tests.deploy.tests_folder }}" monasca_cli_tests_work_folder: "{{ work_folder }}/{{ hqe_monasca_cli_tests.deploy.test_suite }}" 070701000001FD000041ED0000000000000000000000055B730C5000000000000000000000000000000000000000000000004D00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-monasca-cli-tests-run070701000001FE000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005300000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-monasca-cli-tests-run/tasks070701000001FF000081A40000000000000000000000015B730C5000000003000000000000000000000000000000000000005F00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-monasca-cli-tests-run/tasks/cleanup.yml---07070100000200000081A40000000000000000000000015B730C500000015A000000000000000000000000000000000000005C00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-monasca-cli-tests-run/tasks/main.yml--- - include: test-resources.yml vars: ansible_python_interpreter: "{{ common_venv_python }}" - include: ../../hqe-common/tasks/common-run.yml vars: caller_role_path: "{{ role_path }}" ansible_python_interpreter: "{{ common_venv_python }}" - include: cleanup.yml vars: ansible_python_interpreter: "{{ common_venv_python }}"07070100000201000081A40000000000000000000000015B730C50000003CC000000000000000000000000000000000000005B00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-monasca-cli-tests-run/tasks/run.yml--- # Run the test script # # The test log shall be placed in a folder where it's picked up by the CI jobs # # Ignore errors is require to make sure the following tasks are executed #We will need to store the exit code somewhere for Jenkins to pick it up (TBD) - set_fact: test_status: true - name: hqe-monasca-cli-tests | run | Run the tests command: "{{ monasca_cli_tests_work_folder }}/hqe-monasca-cli-tests {{ run_filter_file }}" register: test_output ignore_errors: True - name: hqe-monasca-cli-tests | run | Show test output debug: var=test_output # The run task should also include steps required to collect the test results # for injection into the test tracker DB. # This simple example does not use a test runner - so the rest results are # only produced in a log file for now. # The hqa-common-run role will contain in future the ansible code to handle # test result in different format, and produce subunit ready for injecttion # into the DB. 07070100000202000081A40000000000000000000000015B730C50000000FF000000000000000000000000000000000000006600000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-monasca-cli-tests-run/tasks/test-resources.yml--- - name: hqe-monasca-cli-tests | test-resources | Deploy the configuration file template: > src=testrc.j2 dest="{{ monasca_cli_tests_work_folder }}/hqe-monasca-cli-tests.testrc" owner={{ hqe_user }} group={{ hqe_group }} mode=060007070100000203000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005700000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-monasca-cli-tests-run/templates07070100000204000081A40000000000000000000000015B730C5000000146000000000000000000000000000000000000006100000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-monasca-cli-tests-run/templates/testrc.j2export OS_AUTH_URL={{ os_auth_url }} export OS_USERNAME={{ keystone_monasca_user }} export OS_PASSWORD={{ keystone_monasca_password }} export OS_PROJECT_NAME={{ keystone_admin_tenant }} export OS_CACERT={{ ca_bundle }} # export OS_USER_DOMAIN_NAME={{ demo_test_domain }} # export OS_PROJECT_DOMAIN_NAME={{ demo_test_domain }} 07070100000205000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005200000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-monasca-cli-tests-run/vars07070100000206000081A40000000000000000000000015B730C5000000446000000000000000000000000000000000000005B00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-monasca-cli-tests-run/vars/main.yml--- # Add or remove the variables that are needed for your test suite and # remove this line # Filter variable must be defined in all roles to allow for # test filtering. The test filter file contains the data to # be able to filter which tests to be executed out of role, # stored in the format which is more suitable for the specific role. # Test filter files are expected under a run_filters folder. # The file name must match the tags, for it to be selected properly # when a specific test run is requested in ardana-qa-run.yml run_filter_file: parallel.txt # General keystone settings keystone_version: "v3" keystone_admin_tenant: "{{ osrc_vars.os_project_name }}" # os_auth_url os_auth_url: "{{ osrc_vars.os_auth_url }}" # Monasca settings keystone_monasca_user: "{{ hqe_group_vars.monasca_user }}" keystone_monasca_password: "{{ hqe_group_vars.monasca_password}}" monasca_cli_tests_code_folder: "{{ work_folder }}/{{ tests_git_repo }}/{{ hqe_monasca_cli_tests.deploy.tests_folder }}" monasca_cli_tests_work_folder: "{{ work_folder }}/{{ hqe_monasca_cli_tests.deploy.test_suite }}" 07070100000207000041ED0000000000000000000000055B730C5000000000000000000000000000000000000000000000004D00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-monasca-soapui-deploy07070100000208000041ED0000000000000000000000035B730C5000000000000000000000000000000000000000000000005300000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-monasca-soapui-deploy/files07070100000209000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005F00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-monasca-soapui-deploy/files/run_filters0707010000020A000081A40000000000000000000000015B730C500000000F000000000000000000000000000000000000007200000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-monasca-soapui-deploy/files/run_filters/monasca-soapui.txtmonasca-soapui 0707010000020B000081A40000000000000000000000015B730C500000000F000000000000000000000000000000000000006C00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-monasca-soapui-deploy/files/run_filters/parallel.txtmonasca-soapui 0707010000020C000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005300000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-monasca-soapui-deploy/tasks0707010000020D000081A40000000000000000000000015B730C500000081F000000000000000000000000000000000000005F00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-monasca-soapui-deploy/tasks/install.yml--- - name: hqe-monasca-soapui | install | set os-specific variables include_vars: "../vars/{{ ansible_os_family.split(' ')[0] | lower | replace('open', '') }}.yml" - name: hqe-monasca-soapui | install | Create work folder {{ monasca_soapui_work_folder }} file: path: "{{ monasca_soapui_work_folder }}" owner: "{{ hqe_user }}" group: "{{ hqe_group }}" state: directory recurse: yes - name: hqe-monasca-soapui | install | Copy code into work folder copy: src: "{{ item }}" dest: "{{ monasca_soapui_work_folder }}/{{ monasca_soapui_code_folder | basename }}/" owner: "{{ hqe_user }}" group: "{{ hqe_group }}" mode: 0755 with_fileglob: - "{{ monasca_soapui_code_folder }}/*.sh" - name: hqe-monasca-soapui | install | Copy code into work folder copy: src: "{{ item }}" dest: "{{ monasca_soapui_work_folder }}/{{ monasca_soapui_code_folder | basename }}/" owner: "{{ hqe_user }}" group: "{{ hqe_group }}" with_fileglob: - "{{ monasca_soapui_code_folder }}/*" when: not(item | match('.*\.sh')) - name: hqe-monasca-soapui | install | Install Java dependencies for SoapUI cli tests become: yes become_user: root package: name={{ item }} state=present with_items: hqe_monasca_soapui_pkgs # NOTE(andreaf) Certs validation: https://github.com/ansible/ansible/issues/12549 - name: hqe-monasca-soapui | install | Install SoapUI get_url: force: no url: "{{ soapui_download_url }}" dest: "{{ monasca_soapui_work_folder }}/{{ soapui_download_url | basename }}" validate_certs: no timeout: 120 - name: hqe-monasca-soapui | install | Unarchive SoapUI unarchive: creates: "{{ monasca_soapui_work_folder }}/{{ soapui_install_folder }}" copy: no src: "{{ monasca_soapui_work_folder }}/{{ soapui_download_url | basename }}" dest: "{{ monasca_soapui_work_folder }}" - name: hqe-monasca-soapui | install | change log level command: sed -i 's/level value="DEBUG"/level value="INFO"/g' "{{ monasca_soapui_work_folder }}/{{ soapui_install_folder }}/bin/soapui-log4j.xml" 0707010000020E000081A40000000000000000000000015B730C500000001B000000000000000000000000000000000000005C00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-monasca-soapui-deploy/tasks/main.yml--- - include: install.yml 0707010000020F000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005200000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-monasca-soapui-deploy/vars07070100000210000081A40000000000000000000000015B730C500000002F000000000000000000000000000000000000005D00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-monasca-soapui-deploy/vars/debian.yml--- hqe_monasca_soapui_pkgs: - openjdk-8-jre 07070100000211000081A40000000000000000000000015B730C50000000D2000000000000000000000000000000000000005B00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-monasca-soapui-deploy/vars/main.yml--- monasca_soapui_code_folder: "{{ work_folder }}/{{ tests_git_repo }}/{{ hqe_monasca_soapui.deploy.tests_folder }}" monasca_soapui_work_folder: "{{ work_folder }}/{{ hqe_monasca_soapui.deploy.test_suite }}" 07070100000212000081A40000000000000000000000015B730C500000003D000000000000000000000000000000000000005B00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-monasca-soapui-deploy/vars/suse.yml--- hqe_monasca_soapui_pkgs: - java-1_8_0-openjdk-headless 07070100000213000041ED0000000000000000000000055B730C5000000000000000000000000000000000000000000000004A00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-monasca-soapui-run07070100000214000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005000000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-monasca-soapui-run/tasks07070100000215000081A40000000000000000000000015B730C5000000101000000000000000000000000000000000000005900000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-monasca-soapui-run/tasks/main.yml--- - include: test-resources.yml vars: ansible_python_interpreter: "{{ common_venv_python }}" - include: ../../hqe-common/tasks/common-run.yml vars: caller_role_path: "{{ role_path }}" ansible_python_interpreter: "{{ common_venv_python }}" 07070100000216000081A40000000000000000000000015B730C500000016F000000000000000000000000000000000000005800000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-monasca-soapui-run/tasks/run.yml--- - name: hqe-monasca-soapui-run | run | Test_MonascaRegression_Suite.sh become: yes command: ./Test_MonascaRegression_Suite.sh register: test_output ignore_errors: True args: chdir: "{{ monasca_soapui_code_folder }}/" #- name: hqe-template | run | Show test output - TestSuite_Regression # debug: var=test_output # when: run_filter == "periodic" 07070100000217000081A40000000000000000000000015B730C500000025D000000000000000000000000000000000000006300000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-monasca-soapui-run/tasks/test-resources.yml--- # NOTE(andreaf) Tests expect a configuration file (test_resources.sh) to live # along with the code. As the code folder is read-only, we copy the code to the # work folder and re-set the code folder to the new location. - set_fact: monasca_soapui_code_folder: "{{ monasca_soapui_work_folder }}/{{ monasca_soapui_code_folder | basename }}" # Deploy test configuration, replace any existing test resources - name: hqe-keystone-soapui-run | test-resources | Deploy test_resources.sh template: src: test_resources.j2 dest: "{{ monasca_soapui_code_folder }}/test_resources.sh" force: yes07070100000218000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005400000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-monasca-soapui-run/templates07070100000219000081A40000000000000000000000015B730C500000019C000000000000000000000000000000000000006600000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-monasca-soapui-run/templates/test_resources.j2InstallFolder={{ monasca_soapui_work_folder }} KSENDPOINT={{ os_auth_url }} MONENDPOINT={{ monasca_endpoint }} TestFolder={{ monasca_soapui_code_folder }} monasca_user={{ keystone_monasca_user }} monasca_password={{ keystone_monasca_password }} monasca_version={{ monasca_api_version }} monasca_tenant={{ keystone_admin_tenant }} SoapuiSettings={{ SoapuiSettings }} KSADMINENDPOINTPORT=5000 MONENDPOINTPORT=80700707010000021A000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000004F00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-monasca-soapui-run/vars0707010000021B000081A40000000000000000000000015B730C50000004E2000000000000000000000000000000000000005800000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-monasca-soapui-run/vars/main.yml--- # Add or remove the variables that are needed for your test suite and # remove this line # Filter variable must be defined in all roles to allow for # test filtering. The test filter file contains the data to # be able to filter which tests to be executed out of role, # stored in the format which is more suitable for the specific role. # Test filter files are expected under a run_filters folder. # The file name must match the tags, for it to be selected properly # when a specific test run is requested in ardana-qa-run.yml. run_filter_file: parallel.txt # General keystone settings keystone_version: "v3" keystone_admin_tenant: "{{ osrc_vars.os_project_name }}" os_auth_url: "{{ hqe_group_vars.keystone_endpoint }}" # Monasca settings monasca_endpoint: "{{ hqe_group_vars.monasca_endpoint }}" keystone_monasca_user: "{{ hqe_group_vars.monasca_user }}" keystone_monasca_password: "{{ hqe_group_vars.monasca_password }}" monasca_port: "{{ hqe_group_vars.monasca_port }}" monasca_api_version: "v2.0" SoapuiSettings: soapui_settings.xml monasca_soapui_code_folder: "{{ work_folder }}/{{ tests_git_repo }}/{{ hqe_monasca_soapui.deploy.tests_folder }}" monasca_soapui_work_folder: "{{ work_folder }}/{{ hqe_monasca_soapui.deploy.test_suite }}" 0707010000021C000041ED0000000000000000000000065B730C5000000000000000000000000000000000000000000000004D00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-monascatempest-deploy0707010000021D000041ED0000000000000000000000035B730C5000000000000000000000000000000000000000000000005300000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-monascatempest-deploy/files0707010000021E000081A40000000000000000000000015B730C50000001D9000000000000000000000000000000000000005F00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-monascatempest-deploy/files/.testr.conf[DEFAULT] test_command=OS_STDOUT_CAPTURE=${OS_STDOUT_CAPTURE:-1} \ OS_STDERR_CAPTURE=${OS_STDERR_CAPTURE:-1} \ OS_TEST_TIMEOUT=${OS_TEST_TIMEOUT:-500} \ OS_TEST_LOCK_PATH=${OS_TEST_LOCK_PATH:-${TMPDIR:-'/tmp'}} \ ${PYTHON:-python} -m subunit.run discover -t ${OS_TOP_LEVEL:-./} ${OS_TEST_PATH:-./tempest/test_discover} $LISTOPT $IDOPTION test_id_option=--load-list $IDFILE test_list_option=--list group_regex=([^\.]*\.)* 0707010000021F000081A40000000000000000000000015B730C5000000845000000000000000000000000000000000000006100000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-monascatempest-deploy/files/monasca_testsrunning=OS_STDOUT_CAPTURE=${OS_STDOUT_CAPTURE:-1} \ OS_STDERR_CAPTURE=${OS_STDERR_CAPTURE:-1} \ OS_TEST_TIMEOUT=${OS_TEST_TIMEOUT:-500} \ OS_TEST_LOCK_PATH=${OS_TEST_LOCK_PATH:-${TMPDIR:-'/tmp'}} \ ${PYTHON:-python} -m subunit.run discover -t ${OS_TOP_LEVEL:-./} ${OS_TEST_PATH:-./tempest/test_discover} --list monasca_tempest_tests.tests.api.test_alarm_definitions.TestAlarmDefinitions.test_list_alarm_definitions[gate] monasca_tempest_tests.tests.api.test_alarm_definitions.TestAlarmDefinitions.test_list_alarm_definitions_with_dimensions[gate] monasca_tempest_tests.tests.api.test_alarm_definitions.TestAlarmDefinitions.test_list_alarm_definitions_with_name[gate] monasca_tempest_tests.tests.api.test_alarm_definitions.TestAlarmDefinitions.test_list_alarm_definitions_with_offset_limit[gate] monasca_tempest_tests.tests.api.test_alarms.TestAlarms.test_list_alarms[gate] monasca_tempest_tests.tests.api.test_alarms.TestAlarms.test_list_alarms_by_alarm_definition_id[gate] monasca_tempest_tests.tests.api.test_alarms.TestAlarms.test_list_alarms_by_lifecycle_state[gate] monasca_tempest_tests.tests.api.test_alarms.TestAlarms.test_list_alarms_by_link[gate] monasca_tempest_tests.tests.api.test_alarms.TestAlarms.test_list_alarms_by_metric_dimensions[gate] monasca_tempest_tests.tests.api.test_alarms.TestAlarms.test_list_alarms_by_metric_name[gate] monasca_tempest_tests.tests.api.test_alarms.TestAlarms.test_list_alarms_by_offset_limit[gate] monasca_tempest_tests.tests.api.test_alarms.TestAlarms.test_list_alarms_by_state[gate] monasca_tempest_tests.tests.api.test_measurements.TestMeasurements.test_list_measurements[gate] monasca_tempest_tests.tests.api.test_measurements.TestMeasurements.test_list_measurements_with_dimensions[gate] monasca_tempest_tests.tests.api.test_metrics.TestMetrics.test_list_metrics[gate] monasca_tempest_tests.tests.api.test_metrics.TestMetrics.test_list_metrics_with_dimensions[gate] monasca_tempest_tests.tests.api.test_notification_methods.TestNotificationMethods.test_list_notification_methods[gate] monasca_tempest_tests.tests.api.test_versions.TestVersions.test_get_version[gate] 07070100000220000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005F00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-monascatempest-deploy/files/run_filters07070100000221000081A40000000000000000000000015B730C500000000F000000000000000000000000000000000000007200000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-monascatempest-deploy/files/run_filters/monascatempest.txtmonascatempest 07070100000222000081A40000000000000000000000015B730C500000000F000000000000000000000000000000000000006C00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-monascatempest-deploy/files/run_filters/parallel.txtmonascatempest 07070100000223000081A40000000000000000000000015B730C500000000F000000000000000000000000000000000000006C00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-monascatempest-deploy/files/run_filters/periodic.txtmonascatempest 07070100000224000081A40000000000000000000000015B730C500000084A000000000000000000000000000000000000006100000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-monascatempest-deploy/files/tests2skip.py#!/usr/bin/env python # # Copyright 2013 Red Hat # All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # Reads in a list of exclude regular expressions from a file and outputs a # regex suitable to be passed into testr import sys """ Whitelist is applied first. The blacklist is executed against the set of tests returned by the whitelist. If whitelist is empty, all available tests are fed to blacklist. If blacklist is empty, all tests from whitelist are returned. The syntax for white-list and black-list is as follows: - lines starting with # or empty are ignored - lines starting with "+" are whitelisted - lines starting with "-" are blacklisted - lines not matching any of the above conditions are blacklisted The match for each line gets added a "^" in the beginning, so the regular expression should account for that. For example, the following scenario: run all the smoke tests and scenario tests, but exclude the api.volume tests. is implemented as: +.*smoke +tempest\.scenario -tempest\.api\.volume.* """ whitelist = [] blacklist = [] with open(sys.argv[1]) as fp: for line in fp: line = line.strip() if not line or line[0] == '#': continue if line.startswith("+"): whitelist.append(line[1:]) elif line.startswith("-"): blacklist.append(line[1:]) else: blacklist.append(line) regex = '^(?=({whitelist}))' params = dict(whitelist="|".join(whitelist)) if blacklist: regex += '(?!({blacklist}))' params['blacklist'] = "|".join(blacklist) print(regex.format(**params)) 07070100000225000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005300000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-monascatempest-deploy/tasks07070100000226000081A40000000000000000000000015B730C5000000B1F000000000000000000000000000000000000006100000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-monascatempest-deploy/tasks/configure.yml# # (c) Copyright 2015 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # --- - name: hqe-monascatempest | configure | Create the work folder {{ monascatempest_work_folder }} file: path: "{{ monascatempest_work_folder }}" owner: "{{ hqe_user }}" group: "{{ hqe_group }}" mode: 0755 state: directory - name: hqe-monascatempest | configure | Initialise tempest work folder shell: ". {{ monascatempest_venv_folder }}/bin/activate; tempest init" args: chdir: "{{ monascatempest_work_folder }}" creates: "{{ monascatempest_work_folder }}/.testrepository" - name: hqe-monascatempest | configure | Create the bin folder {{ monascatempest_conf_folder }}/bin file: path: "{{ monascatempest_work_folder }}/bin" owner: "{{ hqe_user }}" group: "{{ hqe_group }}" mode: 0755 state: directory # FIXME(andreaf) this is what run_filters are for, the list of tests to be executed # should be included in there because this way run filters are not honoured - name: hqe-monascatempest | configure | Create list of monasca tests to be executed copy: src: monasca_tests dest: "{{ monascatempest_work_folder }}/monasca_tests" mode: 0640 - name: hqe-monascatempest | configure | Tempest {{ monascatempest_conf_folder }}/tempest.conf template: src: "tempest.conf.j2" dest: "{{ monascatempest_conf_folder }}/tempest.conf" mode: 0644 force: yes - name: hqe-monascatempest | configure | Deploy tests2skip.py copy: src: tests2skip.py dest: "{{ monascatempest_work_folder }}/tests2skip.py" mode: 0640 - name: hqe-monascatempest | configure | Deploy run_filters copy: src: run_filters dest: "{{ monascatempest_work_folder }}" mode: 0640 - name: hqe-monascatempest | configure | Deploy ardana-tempest script to run tests template: > src=ardana-tempest.sh.j2 dest="{{ monascatempest_work_folder }}/bin/ardana-tempest.sh" mode=0700 ### FIXME (nicolasbock) Create rebranding compatibility link - name: hqe-monascatempest | configure | Deploy compat link to ardana-tempest script to run tests file: src: "{{ monascatempest_work_folder }}/bin/ardana-tempest.sh" dest: "helion-tempest.sh" state: link ### FIXME (nicolasbock) Create rebranding compatibility link 07070100000227000081A40000000000000000000000015B730C5000000A85000000000000000000000000000000000000005F00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-monascatempest-deploy/tasks/install.yml# # (c) Copyright 2015 Hewlett Packard Enterprise Development LP # (c) Copyright 2017-2018 SUSE LLC # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # --- - name: hqe-monascatempest | install | set os-specific variables include_vars: "../vars/{{ ansible_os_family.split(' ')[0] | lower | replace('open', '') }}.yml" - name: hqe-monascatempest | install | Install binary dependencies for Tempest become: yes become_user: root package: name={{ item }} state=present with_items: hqe_monascatempest_pkgs # FIXME(andreaf) This should not clone from an hardcoded repo/branch - name: hqe-monascatempest | install | Pull upstream Tempest from the Gozer become: yes become_user: root git: repo=http://git.suse.provo.cloud/openstack/tempest dest={{ tempest_code_folder }} version=hp/master update=no - name: hqe-monascatempest | install | Tempest code owned by {{ hqe_user }} become: yes become_user: root file: path: "{{ tempest_code_folder }}" owner: "{{ hqe_user }}" group: "{{ hqe_group }}" # FIXME(andreaf) This should not clone from an hardcoded repo/branch - name: hqe-monascatempest | install | clone monasca-api become: yes become_user: root git: repo=https://github.com/openstack/monasca-api dest={{ monascatempest_code_folder }} version=master update=yes - name: hqe-monascatempest | install | Monasca Tempest code owned by {{ hqe_user }} become: yes become_user: root file: path: "{{ monascatempest_code_folder }}" owner: "{{ hqe_user }}" group: "{{ hqe_group }}" # FIXME(andreaf) Is this really needed? - name: hqe-monascatempest | install | Install cffi - need to be installed separately pip: name=cffi virtualenv={{ monascatempest_venv_folder }} extra_args='--upgrade' # Plugin needs to be installed first for tempest to discover - name: hqe-monascatempest | install | Install monascaapi in venv pip: name: "{{ monascatempest_code_folder }}/" virtualenv: "{{ monascatempest_venv_folder }}" extra_args: "--pre" - name: hqe-monascatempest | install | Install tempest pip: name: "{{ tempest_code_folder }}" virtualenv: "{{ monascatempest_venv_folder }}" 07070100000228000081A40000000000000000000000015B730C5000000034000000000000000000000000000000000000005C00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-monascatempest-deploy/tasks/main.yml--- - include: install.yml - include: configure.yml 07070100000229000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005700000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-monascatempest-deploy/templates0707010000022A000081A40000000000000000000000015B730C50000004C4000000000000000000000000000000000000006C00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-monascatempest-deploy/templates/ardana-tempest.sh.j2#!/usr/bin/env bash # # (c) Copyright 2015 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # set -eux set -o pipefail # This script runs tempest against a deployed Helion OpenStack cloud # # Usage: [path]/ardana-tempest.sh [run-filter] # Environment variable may be overridden by the caller export TESTR="{{ monascatempest_venv_folder }}/bin/testr" export PYTHON="{{ monascatempest_venv_folder }}/bin/python" export TESTS_TO_SKIP_BIN="{{ monascatempest_work_folder }}/tests2skip.py" export RUN_FILTER="{{ monascatempest_work_folder }}/run_filters/${1:-{{ run_filter }}}.txt" cd {{ monascatempest_work_folder }} ${TESTR} run --load-list=monasca_tests 0707010000022B0000A1FF0000000000000000000000016421F27200000014000000000000000000000000000000000000006C00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-monascatempest-deploy/templates/helion-tempest.sh.j2ardana-tempest.sh.j20707010000022C000081A40000000000000000000000015B730C500000068F000000000000000000000000000000000000006700000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-monascatempest-deploy/templates/tempest.conf.j2# # (c) Copyright 2015 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # # Basic configuration file # The keystone credentials and host need to be referenced here explicitly # because of https://github.com/ansible/ansible/issues/9008 [DEFAULT] #debug = true log_dir = {{ monascatempest_work_folder }}/logs log_file = tempest.log [identity] username = monasca tenant_name = admin password = {{ keystone_monasca_pwd }} alt_username = monasca alt_tenant_name = admin alt_password = {{ keystone_monasca_pwd }} admin_username = {{ osrc_vars.os_username }} admin_tenant_name = {{ osrc_vars.os_project_name }} admin_password = {{ osrc_vars.os_password }} admin_domain_name = Default disable_ssl_certificate_validation = true uri = {{ osrc_vars.os_unversioned_auth_url | regex_replace(':5000', ":35357") }}/v2.0 uri_v3 = {{ osrc_vars.os_unversioned_auth_url | regex_replace(':5000', ":35357") }}/v3 ca_certificates_file = {{ ca_bundle }} region = region-ccp v2_public_endpoint_type = internalURL #use_ssl = False #auth_version = v3 #[identity-feature-enabled] #api_v3 = true [monitoring] endpoint_type = internalURL 0707010000022D000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005200000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-monascatempest-deploy/vars0707010000022E000081A40000000000000000000000015B730C5000000035000000000000000000000000000000000000005D00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-monascatempest-deploy/vars/debian.yml--- hqe_monascatempest_pkgs: - libmysqlclient-dev 0707010000022F000081A40000000000000000000000015B730C5000000F14000000000000000000000000000000000000005B00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-monascatempest-deploy/vars/main.yml# # (c) Copyright 2015 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # --- tempest_auth_url: "{{ hostvars[groups['KEY-API'][0]].KEY_API.advertises.vips.admin[0].url }}" keystone_admin_user: "{{ hostvars[groups['KEY-API'][0]].KEY_API.vars.keystone_admin_user }}" keystone_admin_tenant: "{{ hostvars[groups['KEY-API'][0]].KEY_API.vars.keystone_admin_tenant }}" keystone_admin_pwd: "{{ hostvars[groups['KEY-API'][0]].KEY_API.vars.keystone_admin_pwd }}" keystone_demo_user: "{{ hostvars[groups['KEY-API'][0]].KEY_API.vars.keystone_demo_user }}" keystone_demo_tenant: "{{ hostvars[groups['KEY-API'][0]].KEY_API.vars.keystone_demo_tenant }}" keystone_demo_pwd: "{{ hostvars[groups['KEY-API'][0]].KEY_API.vars.keystone_demo_pwd }}" #keystone_monasca_user: "{{ hostvars[groups['MON_API'][0]].KEY_API.vars.keystone_monasca_user }}" #keystone_monasca_pwd: "{{ hostvars[groups['MON-API'][0]].KEY_API.vars.keystone_monasca_password }}" keystone_monasca_user: "{{ MON_API.consumes_KEY_API.vars.keystone_monasca_user }}" keystone_monasca_pwd: "{{ MON_API.consumes_KEY_API.vars.keystone_monasca_password }}" # The installation directory is where the configuration files are deployed, # e.g. .testr.conf, etc/tempest.conf tempest_code_folder: "{{ code_folder }}/tempest" monascatempest_code_folder: "{{ code_folder }}/{{ hqe_monascatempest.deploy.tests_folder }}" monascatempest_work_folder: "{{ work_folder }}/{{ hqe_monascatempest.deploy.test_suite }}" monascatempest_conf_folder: "{{ monascatempest_work_folder }}/etc" monascatempest_venv_folder: "{{ common_venv_root }}/{{ hqe_monascatempest.deploy.venv_folder }}" # The default run concurrency is determined by the number of the CPU cores on # the test driver run_concurrency: 0 # This is the file that includes the regex to filter the tests to be executed run_filter: full # tempest tests timeout in seconds tempest_timeout_secs: 32400 tempest_poll_secs: 60 # Services available for test cinder_available: true neutron_available: true glance_available: true swift_available: true nova_available: true heat_available: true ceilometer_available: false horizon_available: true sahara_available: false ironic_available: false trove_available: false zaqar_available: false # Defaults for test resources username: helion_tempest alt_username: helion_tempest_alt password: helion ext_net_cidr: "172.31.0.0/16" # TLS vars # Service endpoints to use tempest_service_endpoints: - { section: "identity", option: "v2_public_endpoint_type", value: "internalURL" } - { section: "compute", option: "endpoint_type", value: "internalURL" } - { section: "volume", option: "endpoint_type", value: "internalURL" } - { section: "network", option: "endpoint_type", value: "internalURL" } - { section: "image", option: "endpoint_type", value: "internalURL" } - { section: "object-storage", option: "endpoint_type", value: "internalURL" } - { section: "orchestration", option: "endpoint_type", value: "internalURL" } - { section: "telemetry", option: "endpoint_type", value: "internalURL" } - { section: "data_processing", option: "endpoint_type", value: "internalURL" } - { section: "baremetal", option: "endpoint_type", value: "internalURL" } - { section: "monitoring", option: "endpoint_type", value: "internalURL" } 07070100000230000081A40000000000000000000000015B730C5000000033000000000000000000000000000000000000005B00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-monascatempest-deploy/vars/suse.yml--- hqe_monascatempest_pkgs: - libmysqlclient18 07070100000231000041ED0000000000000000000000045B730C5000000000000000000000000000000000000000000000004A00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-monascatempest-run07070100000232000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005000000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-monascatempest-run/tasks07070100000233000081A40000000000000000000000015B730C5000000100000000000000000000000000000000000000005900000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-monascatempest-run/tasks/main.yml--- - include: test-resources.yml vars: ansible_python_interpreter: "{{ common_venv_python }}" - include: ../../hqe-common/tasks/common-run.yml vars: caller_role_path: "{{ role_path }}" ansible_python_interpreter: "{{ common_venv_python }}"07070100000234000081A40000000000000000000000015B730C5000000348000000000000000000000000000000000000005800000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-monascatempest-run/tasks/run.yml# # (c) Copyright 2015 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # --- - name: hqe-monascatempest | run | Trigger ardana-tempest.sh command: "{{ monascatempest_work_folder }}/bin/ardana-tempest.sh {{ run_filter }}" register: tempest_result ignore_errors: True 07070100000235000081A40000000000000000000000015B730C500000065E000000000000000000000000000000000000006300000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-monascatempest-run/tasks/test-resources.yml# # (c) Copyright 2015 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # --- # Monasca tempest plugins relies on an hard-coded role called "anotherrole" # NOTE(andreaf) This role becomes visible to all users in the default domain, so # it may affect other tests. However to my knowledge monasca-plugin is the only # set of tests that relies on it. To avoid issues we do not clean-up the role # at the end of the test run. - name: hqe-monascatempest | test-resources | Create role "anotherrole" if it doesn't exist keystone_v3: action: create_role role_name: "{{ monascatempest_role_name }}" description: "Role used by tempest monasca plugin dynamic credentials" login_username: "{{ osrc_vars.os_username }}" login_password: "{{ osrc_vars.os_password }}" login_user_domain_name: "{{ osrc_vars.os_user_domain_name }}" login_username: "{{ osrc_vars.os_project_name }}" login_project_domain_name: "{{ osrc_vars.os_project_domain_name }}" login_domain_name: "{{ osrc_vars.os_domain_name }}" endpoint: "{{ osrc_vars.os_url }}" 07070100000236000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000004F00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-monascatempest-run/vars07070100000237000081A40000000000000000000000015B730C5000000BF1000000000000000000000000000000000000005800000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-monascatempest-run/vars/main.yml# # (c) Copyright 2015 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # --- tempest_auth_url: "{{ hqe_monascatempest.deploy.tempest_auth_url }}" keystone_admin_user: admin keystone_admin_tenant: admin #keystone_admin_pwd: "{{ hqe_monascatempest.deploy.keystone_admin_pwd }}" keystone_demo_user: demo keystone_demo_tenant: demo keystone_demo_pwd: demo # The installation_directory is where the configuration files are deployed, # e.g. .testr.conf, etc/tempest.conf monascatempest_code_folder: "{{ code_folder }}/{{ hqe_monascatempest.deploy.tests_folder }}" monascatempest_work_folder: "{{ work_folder }}/{{ hqe_monascatempest.deploy.test_suite }}" monascatempest_conf_folder: "{{ code_folder }}/{{ hqe_monascatempest.deploy.tests_folder }}/etc" monascatempest_venv_folder: "{{ common_venv_root }}/{{ hqe_monascatempest.deploy.venv_folder }}" # The default run concurrency is determined by the number of the CPU cores on # the test driver run_concurrency: 0 # This is the file that includes the regex to filter the tests to be executed run_filter: full # tempest tests timeout in seconds tempest_timeout_secs: 32400 tempest_poll_secs: 60 # Services available for test cinder_available: true neutron_available: true glance_available: true swift_available: true nova_available: true heat_available: true ceilometer_available: false horizon_available: true sahara_available: false ironic_available: false trove_available: false zaqar_available: false # Defaults for test resources username: helion_tempest alt_username: helion_tempest_alt password: helion ext_net_cidr: "172.31.0.0/16" # TLS vars # Service endpoints to use tempest_service_endpoints: - { section: "identity", option: "v2_public_endpoint_type", value: "internalURL" } - { section: "compute", option: "endpoint_type", value: "internalURL" } - { section: "volume", option: "endpoint_type", value: "internalURL" } - { section: "network", option: "endpoint_type", value: "internalURL" } - { section: "image", option: "endpoint_type", value: "internalURL" } - { section: "object-storage", option: "endpoint_type", value: "internalURL" } - { section: "orchestration", option: "endpoint_type", value: "internalURL" } - { section: "telemetry", option: "endpoint_type", value: "internalURL" } - { section: "data_processing", option: "endpoint_type", value: "internalURL" } - { section: "baremetal", option: "endpoint_type", value: "internalURL" } monascatempest_role_name: anotherrole 07070100000238000041ED0000000000000000000000065B730C5000000000000000000000000000000000000000000000004800000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-dsnat-deploy07070100000239000041ED0000000000000000000000035B730C5000000000000000000000000000000000000000000000004E00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-dsnat-deploy/files0707010000023A000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005A00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-dsnat-deploy/files/run_filters0707010000023B000081A40000000000000000000000015B730C5000000004000000000000000000000000000000000000006200000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-dsnat-deploy/files/run_filters/ftc.txtftc 0707010000023C000081A40000000000000000000000015B730C5000000004000000000000000000000000000000000000006800000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-dsnat-deploy/files/run_filters/net-dsnat.txtftc 0707010000023D000081A40000000000000000000000015B730C5000000007000000000000000000000000000000000000006500000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-dsnat-deploy/files/run_filters/public.txtpublic 0707010000023E000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000004E00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-dsnat-deploy/tasks0707010000023F000081A40000000000000000000000015B730C50000002EE000000000000000000000000000000000000005700000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-dsnat-deploy/tasks/main.yml--- - name: hqe-net-dsnat | install | Create the work folder on the test driver file: > path="{{ net_dsnat_work_folder }}" state=directory - name: hqe-net-dsnat | install | Deploy run_filters copy: > src=run_filters dest="{{ net_dsnat_work_folder }}/" owner={{ hqe_user }} group={{ hqe_group }} mode=0640 - name: hqe-net-dsnat | install | Deploy the dsnat test script template: > src=dsnat-deploy.j2 dest={{ net_dsnat_work_folder }}/dsnat.sh owner={{ hqe_user }} group={{ hqe_group }} mode=0755 - name: hqe-net-dsnat | install | Deploy cleanup script template: > src=cleanup-deploy.j2 dest={{ net_dsnat_work_folder }}/cleanup.sh owner={{ hqe_user }} group={{ hqe_group }} mode=0755 07070100000240000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005200000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-dsnat-deploy/templates07070100000241000081A40000000000000000000000015B730C500000018B000000000000000000000000000000000000006400000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-dsnat-deploy/templates/cleanup-deploy.j2#!/bin/bash # Wrapper script to execute the network cleaner # within the venv, with the right parameters # # Usage: cleaner.sh set -o pipefail # Activate the virtual environment source {{ common_venv_folder }}/bin/activate cd {{ net_dsnat_work_folder }} # OS credentials . ./net-dsnat.osrc # Run the test cmd="python {{ net_dsnat_code_folder }}/api_scripts/cleaner.py --all" echo $cmd $cmd 07070100000242000081A40000000000000000000000015B730C5000000430000000000000000000000000000000000000006200000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-dsnat-deploy/templates/dsnat-deploy.j2#!/bin/bash # Wrapper script to execute the network dsnat.py script # within the venv, with the right parameters # set -o pipefail RUN_FILTER=${1:-ftc.txt} RUN_FILTER_DIR={{ net_dsnat_work_folder }}/run_filters profile=$(cat $RUN_FILTER_DIR/${RUN_FILTER}) case $profile in ftc) TARGET_IP="10.1.24.18" TARGET_FQDN="fdc.cdl.local" DNS_SERVER="10.1.65.20" ;; public) TARGET_IP="212.27.48.10" TARGET_FQDN="www.free.fr" DNS_SERVER="8.8.8.8" ;; default) TARGET_IP="212.27.48.10" TARGET_FQDN="www.free.fr" DNS_SERVER="8.8.8.8" ;; esac # Activate the virtual environment . {{ common_venv_folder }}/bin/activate # Run the test cd {{ net_dsnat_work_folder }} . ./net-dsnat.osrc CIRROS_IMAGE_ID=$(openstack image list | awk '/cirros-0.3/ {print $2}' | head -n 1) if [[ -z $CIRROS_IMAGE_ID ]] then echo "No valid Cirros image" exit 1 fi cmd="python {{ net_dsnat_code_folder }}/cli_scripts/dsnat.py $CIRROS_IMAGE_ID 1 --ssh_user cirros --target_ip $TARGET_IP --dns $DNS_SERVER --target_fqdn $TARGET_FQDN" echo $cmd $cmd 07070100000243000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000004D00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-dsnat-deploy/vars07070100000244000081A40000000000000000000000015B730C50000000BD000000000000000000000000000000000000005600000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-dsnat-deploy/vars/main.yml--- net_dsnat_code_folder: "{{ work_folder }}/{{ tests_git_repo }}/{{ hqe_net_dsnat.deploy.tests_folder }}" net_dsnat_work_folder: "{{ work_folder }}/{{ hqe_net_dsnat.deploy.test_suite }}" 07070100000245000041ED0000000000000000000000055B730C5000000000000000000000000000000000000000000000004500000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-dsnat-run07070100000246000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000004B00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-dsnat-run/tasks07070100000247000081A40000000000000000000000015B730C5000000593000000000000000000000000000000000000005700000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-dsnat-run/tasks/cleanup.yml--- # The command module calls the script that has been created within the configure.yml # playbook in the hqe-net-dsnat-deploy role. # The script will then call the actual test script. This test script is set in the # templates sub-directory of the hqe-net-dsnat-deploy role. - name: hqe-net-dsnat | cleanup | Cleanup all VMs and network objects command: "{{ net_dsnat_work_folder }}/cleanup.sh" register: cleanup_result until: cleanup_result.rc == 0 ignore_errors: True retries: 5 delay: 10 - name: hqe-net-dsnat | cleanup | Show the cleanup result debug: var=cleanup_result - name : hqe-net-snat | cleanup | Delete the logs shell: /bin/rm -f {{ net_dsnat_work_folder }}/*.log - name: hqe-net-dsnat | cleanup | Delete test user ignore_errors: true keystone_v3: login_token: "{{ keystone_admin_token }}" endpoint: "{{ keystone_admin_endpoint }}/v3" action: "delete_user" user_name: "{{ demo_test_user }}" user_domain_name: "{{ demo_test_domain }}" - name: hqe-net-dsnat | cleanup | Delete test project ignore_errors: true keystone_v3: login_token: "{{ keystone_admin_token }}" endpoint: "{{ keystone_admin_endpoint }}/v3" action: "delete_project" project_name: "{{ demo_test_project }}" project_domain_name: "{{ demo_test_domain }}" - name : hqe-net-snat | cleanup | Delete the OS credentials shell: /bin/rm -f {{ net_dsnat_work_folder }}/net-dsnat.osrc 07070100000248000081A40000000000000000000000015B730C500000015D000000000000000000000000000000000000005400000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-dsnat-run/tasks/main.yml--- - include: test-resources.yml vars: ansible_python_interpreter: "{{ common_venv_python }}" - include: ../../hqe-common/tasks/common-run.yml vars: caller_role_path: "{{ role_path }}" ansible_python_interpreter: "{{ common_venv_python }}" - include: cleanup.yml vars: ansible_python_interpreter: "{{ common_venv_python }}" 07070100000249000081A40000000000000000000000015B730C5000000383000000000000000000000000000000000000005300000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-dsnat-run/tasks/run.yml--- # Run the test script # # The test log shall be placed in a folder where it's picked up by the CI jobs # # Ignore errors is require to make sure the following tasks are executed # We will need to store the exit code somewhere for Jenkins to pick it up (TBD) # The command module calls the script that has been created within the configure.yml # playbook in the hqe-net-dsnat-deploy role. # The script will then call the actual test script. This test script is set in the # templates sub-directory of the hqe-net-dsnat-deploy role. - name: hqe-net-dsnat | run | test of the dsnat feature command: "{{ net_dsnat_work_folder }}/dsnat.sh {{ run_filter_file }}" register: test_output ignore_errors: True - name: hqe-net-dsnat | run | Show the test output debug: var=test_output - name: hqe-net-dsnat | run | Set test status set_fact: test_status: false when: test_output.rc != 0 0707010000024A000081A40000000000000000000000015B730C5000000586000000000000000000000000000000000000005E00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-dsnat-run/tasks/test-resources.yml--- # Setup the test account used for testing - name: hqe-net-dsnat | test-resources | Create test project keystone_v3: login_token: "{{ keystone_admin_token }}" endpoint: "{{ keystone_admin_endpoint }}/v3" action: "create_project" project_name: "{{ demo_test_project }}" project_domain_name: "{{ demo_test_domain }}" description: "Ephemeral test account" - name: hqe-net-dsnat | test-resources | Create test user keystone_v3: login_token: "{{ keystone_admin_token }}" endpoint: "{{ keystone_admin_endpoint }}/v3" action: "create_user" user_name: "{{ demo_test_user }}" user_password: "{{ demo_test_password}}" description: "Ephemeral test account" user_domain_name: "{{ demo_test_domain }}" - name: hqe-net-dsnat | test-resources | Grant member role to Test User on Test Project keystone_v3: login_token: "{{ keystone_admin_token }}" endpoint: "{{ keystone_admin_endpoint }}/v3" action: "grant_project_role" user_name: "{{ demo_test_user }}" project_name: "{{ demo_test_project }}" role_name: "{{ demo_test_role }}" user_domain_name: "{{ demo_test_domain }}" project_domain_name: "{{ demo_test_domain }}" - name: hqe-net-dsnat | test-resources | Build a credential file template: > src=osrc.j2 dest="{{ net_dsnat_work_folder }}/net-dsnat.osrc" owner={{ hqe_user }} group={{ hqe_group }} mode=0600 0707010000024B000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000004F00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-dsnat-run/templates0707010000024C000081A40000000000000000000000015B730C50000002EF000000000000000000000000000000000000005700000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-dsnat-run/templates/osrc.j2unset $(env | awk 'BEGIN { FS="=" } /OS_/ { print $1 } ' | xargs) export OS_USERNAME={{ demo_test_user }} export OS_PASSWORD={{ demo_test_password }} export OS_TENANT_NAME={{ demo_test_project }} export OS_CACERT={{ ca_bundle }} export OS_ENDPOINT_TYPE=$(cat {{ service_osrc }} | awk 'BEGIN { FS="=" } /OS_ENDPOINT_TYPE/ {print $2}') export OS_AUTH_URL=$(grep OS_AUTH_URL {{ service_osrc }} | cut -d '/' --complement -f 4 | cut -d '=' -f 2)/v2.0 export OS_ADMIN_NAME=$(cat {{ service_osrc }} | awk 'BEGIN { FS="=" } /OS_USERNAME/ {print $2}') export OS_ADMIN_TENANT=$(cat {{ service_osrc }} | awk 'BEGIN { FS="=" } /OS_PROJECT_NAME/ {print $2}') export OS_ADMIN_PASSWORD=$(cat {{ service_osrc }} | awk 'BEGIN { FS="=" } /OS_PASSWORD/ {print $2}') 0707010000024D000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000004A00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-dsnat-run/vars0707010000024E000081A40000000000000000000000015B730C50000001F9000000000000000000000000000000000000005300000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-dsnat-run/vars/main.yml--- # Settings from deploy # Test account setup for testing, and clean-ed up afterwards demo_random_uuid: "{{ ansible_date_time.epoch | to_uuid }}" demo_random_id: "{{ ['hqe_net_dsnat', demo_random_uuid] | join('-') }}" demo_test_user: "{{ demo_random_id }}" demo_test_project: "{{ demo_random_id }}" demo_test_password: "{{ demo_random_id }}" # General keystone settings service_osrc: "{{ osrc_vars.service_osrc_path }}" net_dsnat_work_folder: "{{ work_folder}}/{{ hqe_net_dsnat.deploy.test_suite }}" 0707010000024F000041ED0000000000000000000000065B730C5000000000000000000000000000000000000000000000004C00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-endurance-deploy07070100000250000041ED0000000000000000000000035B730C5000000000000000000000000000000000000000000000005200000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-endurance-deploy/files07070100000251000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005E00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-endurance-deploy/files/run_filters07070100000252000081A40000000000000000000000015B730C5000000009000000000000000000000000000000000000007000000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-endurance-deploy/files/run_filters/net-endurance.txtparallel 07070100000253000081A40000000000000000000000015B730C5000000009000000000000000000000000000000000000006B00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-endurance-deploy/files/run_filters/parallel.txtparallel 07070100000254000081A40000000000000000000000015B730C5000000009000000000000000000000000000000000000006B00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-endurance-deploy/files/run_filters/periodic.txtperiodic 07070100000255000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005200000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-endurance-deploy/tasks07070100000256000081A40000000000000000000000015B730C500000046B000000000000000000000000000000000000005B00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-endurance-deploy/tasks/main.yml--- # Install net-endurance test dependencies - name: hqe-net-endurance | install | Deploy run_filters copy: > src=run_filters dest="{{ net_endurance_work_folder }}/" owner={{ hqe_user }} group={{ hqe_group }} mode=0640 - name: hqe-net-endurance | install | Deploy the user creation script template: > src=user_creation.j2 dest={{ net_endurance_work_folder }}/user_creation.sh owner={{ hqe_user }} group={{ hqe_group }} mode=0755 - name: hqe-net-endurance | install | Deploy endurance script template: > src=endurance-deploy.j2 dest={{ net_endurance_work_folder }}/endurance.sh owner={{ hqe_user }} group={{ hqe_group }} mode=0755 - name: hqe-net-endurance | install | Deploy cleanup script template: > src=cleanup-deploy.j2 dest={{ net_endurance_work_folder }}/cleanup.sh owner={{ hqe_user }} group={{ hqe_group }} mode=0755 - name: hqe-net-endurance | install | Deploy the user deletion script template: > src=user_deletion.j2 dest={{ net_endurance_work_folder }}/user_deletion.sh owner={{ hqe_user }} group={{ hqe_group }} mode=0755 07070100000257000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005600000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-endurance-deploy/templates07070100000258000081A40000000000000000000000015B730C50000001EA000000000000000000000000000000000000006800000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-endurance-deploy/templates/cleanup-deploy.j2#!/bin/bash # Wrapper script to execute the network cleaner # within the venv, with the right parameters # # Usage: cleaner.sh set -o pipefail TEST_HOME={{ net_endurance_code_folder }}/api_scripts WORK_HOME={{ net_endurance_work_folder }} VENV={{ common_venv_folder }} # Activate the virtual environment source ${VENV}/bin/activate # activate the credentials source $WORK_HOME/net-endurance.osrc # Run the test cd $WORK_HOME cmd="python ${TEST_HOME}/cleaner.py --all" echo $cmd $cmd 07070100000259000081A40000000000000000000000015B730C500000048B000000000000000000000000000000000000006A00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-endurance-deploy/templates/endurance-deploy.j2#!/bin/bash # Wrapper script to execute the network endurance test # within the venv, with the right parameters # # Usage: endurance.sh image_id flavor vm_user ping_timeout run_filter_filename set -o pipefail set -x FLAVOR=$1 VM_USER=$2 PING_TIMEOUT=$3 RUN_FILTER=${4:-periodic.txt} RUN_FILTER_DIR={{ net_endurance_work_folder }}/run_filters profile=$(cat $RUN_FILTER_DIR/$RUN_FILTER) case $profile in periodic) VM_NUMBER=10 LOOP_NUMBER=10 ;; parallel) VM_NUMBER=20 LOOP_NUMBER=20 ;; *) VM_NUMBER=1 LOOP_NUMBER=1 ;; esac TEST_HOME={{ net_endurance_code_folder }}/api_scripts WORK_HOME={{ net_endurance_work_folder }} VENV={{ common_venv_folder }} # Activate the virtual environment source ${VENV}/bin/activate # activate the credentials source $WORK_HOME/net-endurance.osrc CIRROS_IMAGE_ID=$(openstack image list | awk '/cirros-0.3/ {print $2}' | head -n 1) if [[ -z $CIRROS_IMAGE_ID ]] then echo "No valid Cirros image" exit 1 fi # Run the test cd $WORK_HOME cmd="python ${TEST_HOME}/endurance.py $CIRROS_IMAGE_ID $FLAVOR -v $VM_NUMBER -l $LOOP_NUMBER -u $VM_USER --ping-timeout $PING_TIMEOUT" echo $cmd $cmd 0707010000025A000081A40000000000000000000000015B730C500000024C000000000000000000000000000000000000006700000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-endurance-deploy/templates/user_creation.j2#!/bin/bash # Wrapper script to create the net-endurance user and tenant # # Usage: user_creation.sh set -o pipefail tenant_name=$1 username=$2 password=$3 WORK_HOME={{ net_endurance_work_folder }} VENV={{ common_venv_folder }} # Activate the virtual environment source ${VENV}/bin/activate # Activate the V2 credentials source $WORK_HOME/net-endurance-admin.osrc keystone tenant-create --name $tenant_name --description "net-endurance user" --enabled true keystone user-create --name $username --tenant $tenant_name --pass $password --email $username@myhelion.test --enabled true 0707010000025B000081A40000000000000000000000015B730C50000001AC000000000000000000000000000000000000006700000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-endurance-deploy/templates/user_deletion.j2#!/bin/bash # Wrapper script to delete the net-endurance user and tenant # # Usage: use_deletion.sh set -o pipefail tenant_name=$1 username=$2 WORK_HOME={{ net_endurance_work_folder }} VENV={{ common_venv_folder }} # Activate the virtual environment source ${VENV}/bin/activate # Activate the V2 credentials source $WORK_HOME/net-endurance-admin.osrc keystone user-delete $tenant_name keystone tenant-delete $tenant_name 0707010000025C000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005100000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-endurance-deploy/vars0707010000025D000081A40000000000000000000000015B730C5000000116000000000000000000000000000000000000005A00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-endurance-deploy/vars/main.yml--- net_endurance_service_name: "{{ hqe_net_endurance.deploy.service_name }}" net_endurance_code_folder: "{{ work_folder }}/{{ tests_git_repo }}/{{ hqe_net_endurance.deploy.tests_folder }}" net_endurance_work_folder: "{{ work_folder}}/{{ hqe_net_endurance.deploy.test_suite }}" 0707010000025E000041ED0000000000000000000000055B730C5000000000000000000000000000000000000000000000004900000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-endurance-run0707010000025F000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000004F00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-endurance-run/tasks07070100000260000081A40000000000000000000000015B730C5000000451000000000000000000000000000000000000005B00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-endurance-run/tasks/cleanup.yml--- # The command module calls the script that has been created within the configure.yml # playbook in the hqe-net-endurance-deploy role. # The script will then call the actual test script. This test script is set in the # templates sub-directory of the hqe-net-endurance-deploy role. - name: hqe-net-endurance | cleanup | Cleanup all VMs and network objects command: "{{ net_endurance_work_folder }}/cleanup.sh" register: cleanup_result until: cleanup_result.rc == 0 ignore_errors: True retries: 5 delay: 10 - name: hqe-net-endurance | run | Show the cleanup result debug: var=cleanup_result - name: hqe-net-endurance | cleanup | remove the endurance log file shell: /bin/rm -f {{ net_endurance_work_folder }}/endurance_*.log - name: hqe-net-endurance | cleanup | remove the cleaner log file shell: /bin/rm -f {{ net_endurance_work_folder }}/cleaner_*.log - name: hqe-net-endurance | run | deletion of the test tenant and user command: "{{ net_endurance_work_folder }}/user_deletion.sh {{ demo_test_project }} {{ demo_test_user }}" register: test_output ignore_errors: True 07070100000261000081A40000000000000000000000015B730C500000015A000000000000000000000000000000000000005800000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-endurance-run/tasks/main.yml--- - include: test-resources.yml vars: ansible_python_interpreter: "{{ common_venv_python }}" - include: ../../hqe-common/tasks/common-run.yml vars: caller_role_path: "{{ role_path }}" ansible_python_interpreter: "{{ common_venv_python }}" - include: cleanup.yml vars: ansible_python_interpreter: "{{ common_venv_python }}"07070100000262000081A40000000000000000000000015B730C5000000340000000000000000000000000000000000000005700000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-endurance-run/tasks/run.yml--- # Run the test script # # The test log shall be placed in a folder where it's picked up by the CI jobs # # Ignore errors is require to make sure the following tasks are executed # We will need to store the exit code somewhere for Jenkins to pick it up (TBD) # The command module calls the script that has been created within the configure.yml # playbook in the hqe-net-endurance-deploy role. # The script will then call the actual test script. This test script is set in the # templates sub-directory of the hqe-net-endurance-deploy role. - name: hqe-net-endurance | run | run the endurance test command: "{{ net_endurance_work_folder }}/endurance.sh 1 cirros 150 {{ run_filter_file }}" register: test_output ignore_errors: True - name: hqe-net-endurance | run | Show the endurance test output debug: var=test_output 07070100000263000081A40000000000000000000000015B730C5000000374000000000000000000000000000000000000006200000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-endurance-run/tasks/test-resources.yml--- # Setup the test account used for testing - name: hqe-net-endurance | test-resources | Build the user credential file template: > src=testrc.j2 dest="{{ net_endurance_work_folder }}/net-endurance.osrc" owner={{ hqe_user }} group={{ hqe_group }} mode=0600 - name: hqe-net-endurance | test-resources | Build the admin credential file template: > src=admin-testrc.j2 dest="{{ net_endurance_work_folder }}/net-endurance-admin.osrc" owner={{ hqe_user }} group={{ hqe_group }} mode=0600 - name: hqe-net-endurance | run | creation of the test tenant and user command: "{{ net_endurance_work_folder }}/user_creation.sh {{ demo_test_project }} {{ demo_test_user }} {{ demo_test_password }}" register: test_output ignore_errors: True - name: hqe-net-endurance | run | Show the user creation result debug: var=test_output.stdout_lines 07070100000264000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005300000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-endurance-run/templates07070100000265000081A40000000000000000000000015B730C50000002A1000000000000000000000000000000000000006300000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-endurance-run/templates/admin-testrc.j2unset $(env | awk 'BEGIN { FS="=" } /OS_/ { print $1 } ' | xargs) export OS_PASSWORD=$(cat {{ service_osrc }} | awk 'BEGIN { FS="=" } /OS_PASSWORD/ {print $2}') export OS_USERNAME=$(cat {{ service_osrc }} | awk 'BEGIN { FS="=" } /OS_USERNAME/ {print $2}') export OS_TENANT_NAME=$(cat {{ service_osrc }} | awk 'BEGIN { FS="=" } /OS_PROJECT_NAME/ {print $2}') export OS_ENDPOINT_TYPE=$(cat {{ service_osrc }} | awk 'BEGIN { FS="=" } /OS_ENDPOINT_TYPE/ {print $2}') export OS_CACERT=$(cat {{ service_osrc }} | awk 'BEGIN { FS="=" } /OS_CACERT/ {print $2}') export OS_AUTH_URL=$(grep OS_AUTH_URL {{ service_osrc }} | cut -d '/' --complement -f 4 | cut -d '=' -f 2)/v2.0 07070100000266000081A40000000000000000000000015B730C50000002EF000000000000000000000000000000000000005D00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-endurance-run/templates/testrc.j2unset $(env | awk 'BEGIN { FS="=" } /OS_/ { print $1 } ' | xargs) export OS_USERNAME={{ demo_test_user }} export OS_PASSWORD={{ demo_test_password }} export OS_TENANT_NAME={{ demo_test_project }} export OS_CACERT={{ ca_bundle }} export OS_ENDPOINT_TYPE=$(cat {{ service_osrc }} | awk 'BEGIN { FS="=" } /OS_ENDPOINT_TYPE/ {print $2}') export OS_AUTH_URL=$(grep OS_AUTH_URL {{ service_osrc }} | cut -d '/' --complement -f 4 | cut -d '=' -f 2)/v2.0 export OS_ADMIN_NAME=$(cat {{ service_osrc }} | awk 'BEGIN { FS="=" } /OS_USERNAME/ {print $2}') export OS_ADMIN_TENANT=$(cat {{ service_osrc }} | awk 'BEGIN { FS="=" } /OS_PROJECT_NAME/ {print $2}') export OS_ADMIN_PASSWORD=$(cat {{ service_osrc }} | awk 'BEGIN { FS="=" } /OS_PASSWORD/ {print $2}') 07070100000267000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000004E00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-endurance-run/vars07070100000268000081A40000000000000000000000015B730C50000003DA000000000000000000000000000000000000005700000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-endurance-run/vars/main.yml--- # Filter variable must be defined in all roles to allow for # test filtering. The test filter file contains the data to # be able to filter which tests to be executed out of role, # stored in the format which is more suitable for the specific role. # Test filter files are expected under a run_filters folder. # The file name must match the tags, for it to be selected properly # when a specific test run is requested in ardana-qa-run.yml run_filter_file: parallel.txt # Settings from deploy # Test account setup for testing, and clean-ed up afterwards demo_random_uuid: "{{ ansible_date_time.epoch | to_uuid }}" demo_random_id: "{{ ['hqe_net_endurance', demo_random_uuid] | join('-') }}" demo_test_user: "{{ demo_random_id }}" demo_test_project: "{{ demo_random_id }}" demo_test_password: "{{ demo_random_id }}" # General keystone settings service_osrc: "{{ osrc_vars.service_osrc_path }}" net_endurance_work_folder: "{{ work_folder}}/{{ hqe_net_endurance.deploy.test_suite }}" 07070100000269000041ED0000000000000000000000065B730C5000000000000000000000000000000000000000000000004B00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-fragping-deploy0707010000026A000041ED0000000000000000000000035B730C5000000000000000000000000000000000000000000000005100000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-fragping-deploy/files0707010000026B000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005D00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-fragping-deploy/files/run_filters0707010000026C000081A40000000000000000000000015B730C5000000009000000000000000000000000000000000000006E00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-fragping-deploy/files/run_filters/net-fragping.txtparallel 0707010000026D000081A40000000000000000000000015B730C5000000009000000000000000000000000000000000000006A00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-fragping-deploy/files/run_filters/parallel.txtparallel 0707010000026E000081A40000000000000000000000015B730C5000000009000000000000000000000000000000000000006A00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-fragping-deploy/files/run_filters/periodic.txtperiodic 0707010000026F000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005100000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-fragping-deploy/tasks07070100000270000081A40000000000000000000000015B730C500000029E000000000000000000000000000000000000005A00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-fragping-deploy/tasks/main.yml--- # Install net-fragping test dependencies - name: hqe-net-fragping | install | Deploy run_filters copy: > src=run_filters dest="{{ net_fragping_work_folder }}/" owner={{ hqe_user }} group={{ hqe_group }} mode=0640 - name: hqe-net-fragping | install | Deploy fragmented ping script template: > src=fragping-deploy.j2 dest={{ net_fragping_work_folder }}/fragping.sh owner={{ hqe_user }} group={{ hqe_group }} mode=0755 - name: hqe-net-fragping | install | Deploy cleanup script template: > src=cleanup-deploy.j2 dest={{ net_fragping_work_folder }}/cleanup.sh owner={{ hqe_user }} group={{ hqe_group }} mode=0755 07070100000271000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005500000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-fragping-deploy/templates07070100000272000081A40000000000000000000000015B730C50000001E7000000000000000000000000000000000000006700000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-fragping-deploy/templates/cleanup-deploy.j2#!/bin/bash # Wrapper script to execute the network cleaner # within the venv, with the right parameters # # Usage: cleaner.sh set -o pipefail TEST_HOME={{ net_fragping_code_folder }}/api_scripts WORK_HOME={{ net_fragping_work_folder }} VENV={{ common_venv_folder }} # Activate the virtual environment source ${VENV}/bin/activate # activate the credentials source $WORK_HOME/net-fragping.osrc # Run the test cd $WORK_HOME cmd="python ${TEST_HOME}/cleaner.py --all" echo $cmd $cmd 07070100000273000081A40000000000000000000000015B730C50000003FC000000000000000000000000000000000000006800000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-fragping-deploy/templates/fragping-deploy.j2#!/bin/bash # Wrapper script to execute the network fragping # within the venv, with the right parameters # # Usage: fragping.sh image_id flavor ping_timeout run_filter_filename set -o pipefail FLAVOR=$1 PING_TIMEOUT=$2 RUN_FILTER=${3:-periodic.txt} RUN_FILTER_DIR={{ net_fragping_work_folder }}/run_filters profile=$(cat $RUN_FILTER_DIR/${RUN_FILTER}) case $profile in periodic) DURATION=1200 ;; parallel) DURATION=3600 ;; *) DURATION=60 ;; esac # Activate the virtual environment . {{ common_venv_folder }}/bin/activate # activate the credentials . {{ net_fragping_work_folder }}/net-fragping.osrc CIRROS_IMAGE_ID=$(openstack image list | awk '/cirros-0.3/ {print $2}' | head -n 1) if [[ -z $CIRROS_IMAGE_ID ]] then echo "No valid Cirros image" exit 1 fi # Run the test cd {{ net_fragping_work_folder }} cmd="python {{ net_fragping_code_folder }}/cli_scripts/fragm_ping.py $CIRROS_IMAGE_ID $FLAVOR --ping_sequence_duration $DURATION --ping_timeout $PING_TIMEOUT" echo $cmd $cmd 07070100000274000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005000000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-fragping-deploy/vars07070100000275000081A40000000000000000000000015B730C5000000110000000000000000000000000000000000000005900000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-fragping-deploy/vars/main.yml--- net_fragping_service_name: "{{ hqe_net_fragping.deploy.service_name }}" net_fragping_code_folder: "{{ work_folder }}/{{ tests_git_repo }}/{{ hqe_net_fragping.deploy.tests_folder }}" net_fragping_work_folder: "{{ work_folder}}/{{ hqe_net_fragping.deploy.test_suite }}" 07070100000276000041ED0000000000000000000000055B730C5000000000000000000000000000000000000000000000004800000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-fragping-run07070100000277000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000004E00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-fragping-run/tasks07070100000278000081A40000000000000000000000015B730C50000004CD000000000000000000000000000000000000005A00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-fragping-run/tasks/cleanup.yml--- # The command module calls the script that has been created within the configure.yml # playbook in the hqe-net-fragping-deploy role. # The script will then call the actual test script. This test script is set in the # templates sub-directory of the hqe-net-fragping-deploy role. - name: hqe-net-fragping | cleanup | Cleanup all VMs and network objects command: "{{ net_fragping_work_folder }}/cleanup.sh" register: cleanup_result until: cleanup_result.rc == 0 ignore_errors: True retries: 5 delay: 10 - name: hqe-net-fragping | run | Show the cleanup result debug: var=cleanup_result - name: hqe-net-fragping | test-resources | Delete test user ignore_errors: true keystone_v3: login_token: "{{ keystone_admin_token }}" endpoint: "{{ keystone_admin_endpoint }}/v3" action: "delete_user" user_name: "{{ demo_test_user }}" user_domain_name: "{{ demo_test_domain }}" - name: hqe-net-fragping | test-resources | Delete test project ignore_errors: true keystone_v3: login_token: "{{ keystone_admin_token }}" endpoint: "{{ keystone_admin_endpoint }}/v3" action: "delete_project" project_name: "{{ demo_test_project }}" project_domain_name: "{{ demo_test_domain }}" 07070100000279000081A40000000000000000000000015B730C500000015A000000000000000000000000000000000000005700000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-fragping-run/tasks/main.yml--- - include: test-resources.yml vars: ansible_python_interpreter: "{{ common_venv_python }}" - include: ../../hqe-common/tasks/common-run.yml vars: caller_role_path: "{{ role_path }}" ansible_python_interpreter: "{{ common_venv_python }}" - include: cleanup.yml vars: ansible_python_interpreter: "{{ common_venv_python }}"0707010000027A000081A40000000000000000000000015B730C500000032F000000000000000000000000000000000000005600000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-fragping-run/tasks/run.yml--- # Run the test script # # The test log shall be placed in a folder where it's picked up by the CI jobs # # Ignore errors is require to make sure the following tasks are executed # We will need to store the exit code somewhere for Jenkins to pick it up (TBD) # The command module calls the script that has been created within the configure.yml # playbook in the hqe-net-fragping-deploy role. # The script will then call the actual test script. This test script is set in the # templates sub-directory of the hqe-net-fragping-deploy role. - name: hqe-net-fragping | run | check ICMP packets fragmentation command: "{{ net_fragping_work_folder }}/fragping.sh 1 900 {{ run_filter_file }}" register: test_output ignore_errors: True - name: hqe-net-fragping | run | Show test result debug: var=test_output 0707010000027B000081A40000000000000000000000015B730C500000059C000000000000000000000000000000000000006100000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-fragping-run/tasks/test-resources.yml--- # Setup the test account used for testing - name: hqe-net-fragping | test-resources | Create test project keystone_v3: login_token: "{{ keystone_admin_token }}" endpoint: "{{ keystone_admin_endpoint }}/v3" action: "create_project" project_name: "{{ demo_test_project }}" project_domain_name: "{{ demo_test_domain }}" description: "Ephemeral test account" - name: hqe-net-fragping | test-resources | Create test user keystone_v3: login_token: "{{ keystone_admin_token }}" endpoint: "{{ keystone_admin_endpoint }}/v3" action: "create_user" user_name: "{{ demo_test_user }}" user_password: "{{ demo_test_password}}" description: "Ephemeral test account" user_domain_name: "{{ demo_test_domain }}" - name: hqe-net-fragping | test-resources | Grant member role to Test User on Test Project keystone_v3: login_token: "{{ keystone_admin_token }}" endpoint: "{{ keystone_admin_endpoint }}/v3" action: "grant_project_role" user_name: "{{ demo_test_user }}" project_name: "{{ demo_test_project }}" role_name: "{{ demo_test_role }}" user_domain_name: "{{ demo_test_domain }}" project_domain_name: "{{ demo_test_domain }}" - name: hqe-net-fragping | test-resources | Build the credential file template: > src=testrc.j2 dest="{{ net_fragping_work_folder }}/net-fragping.osrc" owner={{ hqe_user }} group={{ hqe_group }} mode=0600 0707010000027C000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005200000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-fragping-run/templates0707010000027D000081A40000000000000000000000015B730C5000000190000000000000000000000000000000000000005C00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-fragping-run/templates/testrc.j2export OS_USERNAME={{ demo_test_user }} export OS_PASSWORD={{ demo_test_password }} export OS_TENANT_NAME={{ demo_test_project }} export OS_CACERT={{ ca_bundle }} AUTH_URL=$(grep OS_AUTH_URL {{ service_osrc }} | cut -d '/' --complement -f 4 | cut -d '=' -f 2) export OS_AUTH_URL=$AUTH_URL/v2.0 export OS_ENDPOINT_TYPE=$(cat {{ service_osrc }} | awk 'BEGIN { FS="=" } /OS_ENDPOINT_TYPE/ {print $2}') 0707010000027E000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000004D00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-fragping-run/vars0707010000027F000081A40000000000000000000000015B730C50000004B2000000000000000000000000000000000000005600000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-fragping-run/vars/main.yml--- # Filter variable must be defined in all roles to allow for # test filtering. The test filter file contains the data to # be able to filter which tests to be executed out of role, # stored in the format which is more suitable for the specific role. # Test filter files are expected under a run_filters folder. # The file name must match the tags, for it to be selected properly # when a specific test run is requested in ardana-qa-run.yml run_filter_file: parallel.txt # Settings from deploy # Test account setup for testing, and clean-ed up afterwards demo_random_uuid: "{{ ansible_date_time.epoch | to_uuid }}" demo_random_id: "{{ ['hqe_net_fragping', demo_random_uuid] | join('-') }}" demo_test_user: "{{ demo_random_id }}" demo_test_project: "{{ demo_random_id }}" demo_test_password: "{{ demo_random_id }}" demo_test_domain: Default demo_test_role: "{{ hqe_group_vars.keystone_member_role }}" # General keystone settings service_osrc: "{{ osrc_vars.service_osrc_path }}" keystone_admin_token: "{{ hqe_token_vars.keystone_admin_token }}" keystone_admin_endpoint: "{{ osrc_vars.os_unversioned_auth_url }}" net_fragping_work_folder: "{{ work_folder}}/{{ hqe_net_fragping.deploy.test_suite }}" 07070100000280000041ED0000000000000000000000055B730C5000000000000000000000000000000000000000000000004700000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-rbac-deploy07070100000281000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000004D00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-rbac-deploy/tasks07070100000282000081A40000000000000000000000015B730C5000000160000000000000000000000000000000000000005600000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-rbac-deploy/tasks/main.yml--- - name: hqe-net-rbac | install | Create the work folder on the test driver file: > path="{{ net_rbac_work_folder }}" state=directory - name: hqe-net-rbac | install | Deploy the rbac test script template: > src=rbac-deploy.j2 dest={{ net_rbac_work_folder }}/rbac.sh owner={{ hqe_user }} group={{ hqe_group }} mode=0755 07070100000283000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005100000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-rbac-deploy/templates07070100000284000081A40000000000000000000000015B730C500000015A000000000000000000000000000000000000006000000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-rbac-deploy/templates/rbac-deploy.j2#!/bin/bash # Wrapper script to execute the network rbac.py script # within the venv, with the right parameters # set -o pipefail # Activate the virtual environment . {{ common_venv_folder }}/bin/activate # Run the test cd {{ net_rbac_work_folder }} . ./net-rbac.osrc cmd="python {{ net_rbac_code_folder }}/cli_scripts/rbac.py" echo $cmd $cmd 07070100000285000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000004C00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-rbac-deploy/vars07070100000286000081A40000000000000000000000015B730C50000000B9000000000000000000000000000000000000005500000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-rbac-deploy/vars/main.yml--- net_rbac_code_folder: "{{ work_folder }}/{{ tests_git_repo }}/{{ hqe_net_rbac.deploy.tests_folder }}" net_rbac_work_folder: "{{ work_folder }}/{{ hqe_net_rbac.deploy.test_suite }}" 07070100000287000041ED0000000000000000000000055B730C5000000000000000000000000000000000000000000000004400000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-rbac-run07070100000288000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000004A00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-rbac-run/tasks07070100000289000081A40000000000000000000000015B730C5000000102000000000000000000000000000000000000005300000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-rbac-run/tasks/main.yml--- - include: test-resources.yml vars: ansible_python_interpreter: "{{ common_venv_python }}" - include: ../../hqe-common/tasks/common-run.yml vars: caller_role_path: "{{ role_path }}" ansible_python_interpreter: "{{ common_venv_python }}" 0707010000028A000081A40000000000000000000000015B730C5000000372000000000000000000000000000000000000005200000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-rbac-run/tasks/run.yml--- # Run the test script # # The test log shall be placed in a folder where it's picked up by the CI jobs # # Ignore errors is require to make sure the following tasks are executed # We will need to store the exit code somewhere for Jenkins to pick it up (TBD) # The command module calls the script that has been created within the configure.yml # playbook in the hqe-net-rbac-deploy role. # The script will then call the actual test script. This test script is set in the # templates sub-directory of the hqe-net-rbac-deploy role. - name: hqe-net-rbac | run | test of the RBAC feature command: "{{ net_rbac_work_folder }}/rbac.sh" register: test_output ignore_errors: True - name: hqe-net-rbac | run | Show the test output debug: var=test_output.stdout_lines - name: hqe-net-rbac | run | Set test status set_fact: test_status: false when: test_output.rc != 0 0707010000028B000081A40000000000000000000000015B730C5000000102000000000000000000000000000000000000005D00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-rbac-run/tasks/test-resources.yml--- # Setup the test account used for testing - name: hqe-net-rbac | test-resources | Build a credential file template: > src=osrc.j2 dest="{{ net_rbac_work_folder }}/net-rbac.osrc" owner={{ hqe_user }} group={{ hqe_group }} mode=0600 0707010000028C000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000004E00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-rbac-run/templates0707010000028D000081A40000000000000000000000015B730C50000002EF000000000000000000000000000000000000005600000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-rbac-run/templates/osrc.j2unset $(env | awk 'BEGIN { FS="=" } /OS_/ { print $1 } ' | xargs) export OS_USERNAME={{ demo_test_user }} export OS_PASSWORD={{ demo_test_password }} export OS_TENANT_NAME={{ demo_test_project }} export OS_CACERT={{ ca_bundle }} export OS_ENDPOINT_TYPE=$(cat {{ service_osrc }} | awk 'BEGIN { FS="=" } /OS_ENDPOINT_TYPE/ {print $2}') export OS_AUTH_URL=$(grep OS_AUTH_URL {{ service_osrc }} | cut -d '/' --complement -f 4 | cut -d '=' -f 2)/v2.0 export OS_ADMIN_NAME=$(cat {{ service_osrc }} | awk 'BEGIN { FS="=" } /OS_USERNAME/ {print $2}') export OS_ADMIN_TENANT=$(cat {{ service_osrc }} | awk 'BEGIN { FS="=" } /OS_PROJECT_NAME/ {print $2}') export OS_ADMIN_PASSWORD=$(cat {{ service_osrc }} | awk 'BEGIN { FS="=" } /OS_PASSWORD/ {print $2}') 0707010000028E000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000004900000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-rbac-run/vars0707010000028F000081A40000000000000000000000015B730C50000001F6000000000000000000000000000000000000005200000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-rbac-run/vars/main.yml--- # Settings from deploy # Test account setup for testing, and clean-ed up afterwards demo_random_uuid: "{{ ansible_date_time.epoch | to_uuid }}" demo_random_id: "{{ ['hqe_net_rbac', demo_random_uuid] | join('-') }}" demo_test_user: "{{ demo_random_id }}" demo_test_project: "{{ demo_random_id }}" demo_test_password: "{{ demo_random_id }}" # General keystone settings service_osrc: "{{ osrc_vars.service_osrc_path }}" net_rbac_work_folder: "{{ work_folder}}/{{ hqe_net_rbac.deploy.test_suite }}" 07070100000290000041ED0000000000000000000000065B730C5000000000000000000000000000000000000000000000004800000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-smoke-deploy07070100000291000041ED0000000000000000000000035B730C5000000000000000000000000000000000000000000000004E00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-smoke-deploy/files07070100000292000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005A00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-smoke-deploy/files/run_filters07070100000293000081A40000000000000000000000015B730C5000000006000000000000000000000000000000000000006400000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-smoke-deploy/files/run_filters/light.txtlight 07070100000294000081A40000000000000000000000015B730C5000000008000000000000000000000000000000000000006800000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-smoke-deploy/files/run_filters/net-smoke.txtdefault 07070100000295000081A40000000000000000000000015B730C5000000009000000000000000000000000000000000000006700000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-smoke-deploy/files/run_filters/parallel.txtparallel 07070100000296000081A40000000000000000000000015B730C5000000009000000000000000000000000000000000000006700000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-smoke-deploy/files/run_filters/periodic.txtperiodic 07070100000297000081A40000000000000000000000015B730C5000000006000000000000000000000000000000000000006600000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-smoke-deploy/files/run_filters/upgrade.txtlight 07070100000298000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000004E00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-smoke-deploy/tasks07070100000299000081A40000000000000000000000015B730C5000000330000000000000000000000000000000000000005700000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-smoke-deploy/tasks/main.yml--- - name: hqe-net-smoke | install | Deploy run_filters copy: > src=run_filters dest="{{ net_smoke_work_folder }}/" owner={{ hqe_user }} group={{ hqe_group }} mode=0640 - name: hqe-net-smoke | install | Deploy the quota script template: > src=quota-deploy.j2 dest={{ net_smoke_work_folder }}/quotas.sh owner={{ hqe_user }} group={{ hqe_group }} mode=0755 - name: hqe-net-smoke | install | Deploy the smoketest script template: > src=smoketest-deploy.j2 dest={{ net_smoke_work_folder }}/smoketest.sh owner={{ hqe_user }} group={{ hqe_group }} mode=0755 - name: hqe-net-smoke | install | Deploy cleanup script template: > src=cleanup-deploy.j2 dest={{ net_smoke_work_folder }}/cleanup.sh owner={{ hqe_user }} group={{ hqe_group }} mode=0755 0707010000029A000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005200000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-smoke-deploy/templates0707010000029B000081A40000000000000000000000015B730C5000000196000000000000000000000000000000000000006400000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-smoke-deploy/templates/cleanup-deploy.j2#!/bin/bash # Wrapper script to execute cleanup after network smoke # within the venv, with the right parameters # # Usage: hqe-net-cleaner.sh set -o pipefail # Activate the virtual environment . {{ common_venv_folder }}/bin/activate cd {{ net_smoke_work_folder }} # OS credentials . ./net-smoke.osrc # Run the test cmd="python {{ net_smoke_code_folder }}/api_scripts/cleaner.py --all" echo $cmd $cmd 0707010000029C000081A40000000000000000000000015B730C5000000467000000000000000000000000000000000000006200000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-smoke-deploy/templates/quota-deploy.j2#!/bin/bash # Wrapper script to set quotas for the net-smoke user # # Usage: quota.sh run_filter_filename set -o pipefail RUN_FILTER=${1:-default.txt} RUN_FILTER_DIR={{ net_smoke_work_folder }}/run_filters profile=$(cat $RUN_FILTER_DIR/${RUN_FILTER}) case $profile in light) SET_QUOTA=false ;; periodic) SET_QUOTA=true ;; parallel) SET_QUOTA=true ;; *) SET_QUOTA=true ;; esac if [ $SET_QUOTA == "false" ] then echo "No need to set some quotas in profile $profile" exit 0 fi # Activate the virtual environment . {{ common_venv_folder }}/bin/activate # Activate the V2 credentials . {{ net_smoke_work_folder }}/net-smoke-admin.osrc # Retrieve the tenant name and id of tenant demo_test_user tenant_name=$(awk 'BEGIN { FS="=" } /OS_TENANT_NAME/ {print $2}' {{ net_smoke_work_folder }}/net-smoke.osrc) tenant_id=$(keystone tenant-get $tenant_name | awk '/id/ {print $4}') # Set the quotas for the tenant demo_test_user neutron quota-update --tenant-id $tenant_id --floatingip 100 --network 20 --port 150 --router 10 --subnet 30 nova quota-update $tenant_id --ram -1 --instances 100 0707010000029D000081A40000000000000000000000015B730C50000005E3000000000000000000000000000000000000006600000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-smoke-deploy/templates/smoketest-deploy.j2#!/bin/bash # Wrapper script to execute the network smoketest # within the venv, with the right parameters # # Usage: smoketest.sh image_id flavor vm_user ping_timeout run_filter_filename set -o pipefail FLAVOR=$1 VM_USER=$2 PING_TIMEOUT=$3 RUN_FILTER=${4:-default.txt} RUN_FILTER_DIR={{ net_smoke_work_folder }}/run_filters profile=$(cat $RUN_FILTER_DIR/${RUN_FILTER}) case $profile in light) ROUTER_NUMBER=1 NETWORK_NUMBER=1 SUBNET_NUMBER=1 VM_NUMBER=2 TESTERS=1 ;; periodic) ROUTER_NUMBER=2 NETWORK_NUMBER=2 SUBNET_NUMBER=2 VM_NUMBER=2 TESTERS=8 ;; parallel) ROUTER_NUMBER=3 NETWORK_NUMBER=3 SUBNET_NUMBER=2 VM_NUMBER=2 TESTERS=18 ;; *) ROUTER_NUMBER=2 NETWORK_NUMBER=2 SUBNET_NUMBER=1 VM_NUMBER=2 TESTERS=4 ;; esac # Activate the virtual environment . {{ common_venv_folder }}/bin/activate cd {{ net_smoke_work_folder }} # OS credentials . ./net-smoke.osrc CIRROS_IMAGE_ID=$(openstack image list | awk '/cirros-0.3/ {print $2}' | head -n 1) if [[ -z $CIRROS_IMAGE_ID ]] then echo "No valid Cirros image" exit 1 fi # Run the test cmd="python {{ net_smoke_code_folder }}/api_scripts/smoketest.py $CIRROS_IMAGE_ID $FLAVOR -r $ROUTER_NUMBER -n $NETWORK_NUMBER -s $SUBNET_NUMBER -v $VM_NUMBER -u $VM_USER --ping-timeout $PING_TIMEOUT" echo $cmd $cmd if $? then exit 1 fi cmd="python {{ net_smoke_code_folder }}/api_scripts/intercomm.py --cirros --no-ssh --testers $TESTERS" echo $cmd $cmd 0707010000029E000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000004D00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-smoke-deploy/vars0707010000029F000081A40000000000000000000000015B730C50000000FE000000000000000000000000000000000000005600000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-smoke-deploy/vars/main.yml--- net_smoke_service_name: "{{ hqe_net_smoke.deploy.service_name }}" net_smoke_code_folder: "{{ work_folder }}/{{ tests_git_repo }}/{{ hqe_net_smoke.deploy.tests_folder }}" net_smoke_work_folder: "{{ work_folder}}/{{ hqe_net_smoke.deploy.test_suite }}" 070701000002A0000041ED0000000000000000000000055B730C5000000000000000000000000000000000000000000000004500000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-smoke-run070701000002A1000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000004B00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-smoke-run/tasks070701000002A2000081A40000000000000000000000015B730C5000000586000000000000000000000000000000000000005700000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-smoke-run/tasks/cleanup.yml--- # The command module calls the script that has been created within the configure.yml # playbook in the hqe-net-smoke-deploy role. # The script will then call the actual test script. This test script is set in the # templates sub-directory of the hqe-net-smoke-deploy role. - name: hqe-net-smoke | cleanup | Cleanup all VMs and network objects command: "{{ net_smoke_work_folder }}/cleanup.sh" register: cleanup_result until: cleanup_result.rc == 0 ignore_errors: True retries: 5 delay: 10 - name: hqe-net-smoke | run | Show the cleanup result debug: var=cleanup_result - name: hqe-net-smoke | cleanup | remove the log files shell: /bin/rm -f {{ net_smoke_work_folder}}/*.log - name: hqe-net-smoke | cleanup | Delete test user ignore_errors: true keystone_v3: login_token: "{{ keystone_admin_token }}" endpoint: "{{ keystone_admin_endpoint }}/v3" action: "delete_user" user_name: "{{ demo_test_user }}" user_domain_name: "{{ demo_test_domain }}" - name: hqe-net-smoke | cleanup | Delete test project ignore_errors: true keystone_v3: login_token: "{{ keystone_admin_token }}" endpoint: "{{ keystone_admin_endpoint }}/v3" action: "delete_project" project_name: "{{ demo_test_project }}" project_domain_name: "{{ demo_test_domain }}" - name: hqe-net-smoke | cleanup | remove the osrc files shell: /bin/rm -f {{ net_smoke_work_folder}}/*.osrc 070701000002A3000081A40000000000000000000000015B730C500000015A000000000000000000000000000000000000005400000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-smoke-run/tasks/main.yml--- - include: test-resources.yml vars: ansible_python_interpreter: "{{ common_venv_python }}" - include: ../../hqe-common/tasks/common-run.yml vars: caller_role_path: "{{ role_path }}" ansible_python_interpreter: "{{ common_venv_python }}" - include: cleanup.yml vars: ansible_python_interpreter: "{{ common_venv_python }}"070701000002A4000081A40000000000000000000000015B730C5000000471000000000000000000000000000000000000005300000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-smoke-run/tasks/run.yml--- # Run the test script # # The test log shall be placed in a folder where it's picked up by the CI jobs # # Ignore errors is require to make sure the following tasks are executed # We will need to store the exit code somewhere for Jenkins to pick it up (TBD) # The command module calls the script that has been created within the configure.yml # playbook in the hqe-net-smoke-deploy role. # The script will then call the actual test script. This test script is set in the # templates sub-directory of the hqe-net-smoke-deploy role. - name: hqe-net-smoke | run | increase some quotas for the test user command: "{{ net_smoke_work_folder }}/quotas.sh {{ run_filter_file }}" register: test_output ignore_errors: True - name: hqe-net-smoke | run | Show the quota increase result debug: var=test_output.stdout_lines - name: hqe-net-smoke | run | set-up and check external connectivity command: "{{ net_smoke_work_folder }}/smoketest.sh 1 cirros 150 {{ run_filter_file }}" register: test_output ignore_errors: True - name: hqe-net-smoke | run | Show the external connectivity output debug: var=test_output.stdout_lines 070701000002A5000081A40000000000000000000000015B730C5000000678000000000000000000000000000000000000005E00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-smoke-run/tasks/test-resources.yml--- # Setup the test account used for testing - name: hqe-net-smoke | test-resources | Create test project keystone_v3: login_token: "{{ keystone_admin_token }}" endpoint: "{{ keystone_admin_endpoint }}/v3" action: "create_project" project_name: "{{ demo_test_project }}" project_domain_name: "{{ demo_test_domain }}" description: "Ephemeral test account" - name: hqe-net-smoke | test-resources | Create test user keystone_v3: login_token: "{{ keystone_admin_token }}" endpoint: "{{ keystone_admin_endpoint }}/v3" action: "create_user" user_name: "{{ demo_test_user }}" user_password: "{{ demo_test_password}}" description: "Ephemeral test account" user_domain_name: "{{ demo_test_domain }}" - name: hqe-net-smoke | test-resources | Grant member role to Test User on Test Project keystone_v3: login_token: "{{ keystone_admin_token }}" endpoint: "{{ keystone_admin_endpoint }}/v3" action: "grant_project_role" user_name: "{{ demo_test_user }}" project_name: "{{ demo_test_project }}" role_name: "{{ demo_test_role }}" user_domain_name: "{{ demo_test_domain }}" project_domain_name: "{{ demo_test_domain }}" - name: hqe-net-smoke | test-resources | Build the user credential file template: > src=osrc.j2 dest="{{ net_smoke_work_folder }}/net-smoke.osrc" owner={{ hqe_user }} group={{ hqe_group }} mode=0600 - name: hqe-net-smoke | test-resources | Build the admin credential file template: > src=admin-osrc.j2 dest="{{ net_smoke_work_folder }}/net-smoke-admin.osrc" owner={{ hqe_user }} group={{ hqe_group }} mode=0600 070701000002A6000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000004F00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-smoke-run/templates070701000002A7000081A40000000000000000000000015B730C500000029F000000000000000000000000000000000000005D00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-smoke-run/templates/admin-osrc.j2unset $(env | awk 'BEGIN { FS="=" } /OS_/ { print $1 } ' | xargs) export OS_PASSWORD=$(cat {{ service_osrc }} | awk 'BEGIN { FS="=" } /OS_PASSWORD/ {print $2}') export OS_USERNAME=$(cat {{ service_osrc }} | awk 'BEGIN { FS="=" } /OS_USERNAME/ {print $2}') export OS_TENANT_NAME=$(cat {{ service_osrc }} | awk 'BEGIN { FS="=" } /OS_PROJECT_NAME/ {print $2}') export OS_ENDPOINT_TYPE=$(cat {{ service_osrc }} | awk 'BEGIN { FS="=" } /OS_ENDPOINT_TYPE/ {print $2}') export OS_CACERT=$(cat {{ service_osrc }} | awk 'BEGIN { FS="=" } /OS_CACERT/ {print $2}') export OS_AUTH_URL=$(grep OS_AUTH_URL {{ service_osrc }} | cut -d '/' --complement -f 4 | cut -d '=' -f 2)/v2.0 070701000002A8000081A40000000000000000000000015B730C50000001CB000000000000000000000000000000000000005700000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-smoke-run/templates/osrc.j2unset $(env | awk 'BEGIN { FS="=" } /OS_/ { print $1 } ' | xargs) export OS_USERNAME={{ demo_test_user }} export OS_PASSWORD={{ demo_test_password }} export OS_TENANT_NAME={{ demo_test_project }} export OS_CACERT={{ ca_bundle }} AUTH_URL=$(grep OS_AUTH_URL {{ service_osrc }} | cut -d '/' --complement -f 4 | cut -d '=' -f 2) export OS_AUTH_URL=$AUTH_URL/v2.0 export OS_ENDPOINT_TYPE=$(awk 'BEGIN { FS="=" } /OS_ENDPOINT_TYPE/ {print $2}' {{ service_osrc }}) 070701000002A9000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000004A00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-smoke-run/vars070701000002AA000081A40000000000000000000000015B730C50000003D0000000000000000000000000000000000000005300000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-smoke-run/vars/main.yml--- # Filter variable must be defined in all roles to allow for # test filtering. The test filter file contains the data to # be able to filter which tests to be executed out of role, # stored in the format which is more suitable for the specific role. # Test filter files are expected under a run_filters folder. # The file name must match the tags, for it to be selected properly # when a specific test run is requested in ardana-qa-run.yml run_filter_file: parallel.txt # Settings from deploy # Test account setup for testing, and clean-ed up afterwards demo_random_uuid: "{{ ansible_date_time.epoch | to_uuid }}" demo_random_id: "{{ ['hqe_net_smoke', demo_random_uuid] | join('-') }}" demo_test_user: "{{ demo_random_id }}" demo_test_project: "{{ demo_random_id }}" demo_test_password: "{{ demo_random_id }}" # General keystone settings service_osrc: "{{ osrc_vars.service_osrc_path }}" net_smoke_work_folder: "{{ work_folder}}/{{ hqe_net_smoke.deploy.test_suite }}" 070701000002AB000041ED0000000000000000000000065B730C5000000000000000000000000000000000000000000000004D00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-transpvlan-deploy070701000002AC000041ED0000000000000000000000035B730C5000000000000000000000000000000000000000000000005300000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-transpvlan-deploy/files070701000002AD000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005F00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-transpvlan-deploy/files/run_filters070701000002AE000081A40000000000000000000000015B730C500000000D000000000000000000000000000000000000006E00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-transpvlan-deploy/files/run_filters/transpvlan.txt# dummy file 070701000002AF000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005300000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-transpvlan-deploy/tasks070701000002B0000081A40000000000000000000000015B730C500000044A000000000000000000000000000000000000005C00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-transpvlan-deploy/tasks/main.yml--- - name: hqe-net-transpvlan-deploy | main | Create the work folder on the test driver file: > path="{{ net_transpvlan_work_folder }}" state=directory - name: hqe-net-transpvlan-deploy | main | deploy the user creation script template: > src=user_creation.j2 dest={{ net_transpvlan_work_folder }}/user_creation.sh owner={{ hqe_user }} group={{ hqe_group }} mode=0755 - name: hqe-net-transpvlan-deploy | main | deploy the Transparent VLAN test script template: > src=transpvlan-deploy.j2 dest={{ net_transpvlan_work_folder }}/transpvlan.sh owner={{ hqe_user }} group={{ hqe_group }} mode=0755 - name: hqe-net-transpvlan-deploy | main | deploy cleanup script template: > src=cleanup-deploy.j2 dest={{ net_transpvlan_work_folder }}/cleanup.sh owner={{ hqe_user }} group={{ hqe_group }} mode=0755 - name: hqe-net-transpvlan-deploy | main | deploy the user deletion script template: > src=user_deletion.j2 dest={{ net_transpvlan_work_folder }}/user_deletion.sh owner={{ hqe_user }} group={{ hqe_group }} mode=0755 070701000002B1000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005700000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-transpvlan-deploy/templates070701000002B2000081A40000000000000000000000015B730C50000001E6000000000000000000000000000000000000006900000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-transpvlan-deploy/templates/cleanup-deploy.j2#!/bin/bash # Wrapper script to execute cleanup after network smoke # within the venv, with the right parameters # # Usage: hqe-net-cleaner.sh set -o pipefail TEST_HOME={{ net_transpvlan_code_folder }}/api_scripts # Activate the virtual environment . {{ common_venv_folder }}/bin/activate # Activate the credentials . {{ net_transpvlan_work_folder }}/net-transpvlan.osrc # Run the test cd {{ net_transpvlan_work_folder }} cmd="python ${TEST_HOME}/cleaner.py --all" echo $cmd $cmd 070701000002B3000081A40000000000000000000000015B730C500000027B000000000000000000000000000000000000006C00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-transpvlan-deploy/templates/transpvlan-deploy.j2#!/bin/bash # Wrapper script to execute the network transpvlan.py script # # Usage: transpvlan.sh set -o pipefail TEST_HOME={{ net_transpvlan_code_folder }}/cli_scripts # Activate the virtual environment . {{ common_venv_folder }}/bin/activate # activate the credentials . {{ net_transpvlan_work_folder }}/net-transpvlan.osrc DEBIAN_IMAGE_ID=$(glance image-list | awk '/debian/ {print $2}' | head -n 1) if [[ -z $DEBIAN_IMAGE_ID ]] then echo "No valid Debian image" exit 1 fi # Run the test cd {{ net_transpvlan_work_folder }} cmd="python ${TEST_HOME}/transpvlan.py $DEBIAN_IMAGE_ID 1 --ssh_user debian" echo $cmd $cmd 070701000002B4000081A40000000000000000000000015B730C500000026B000000000000000000000000000000000000006800000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-transpvlan-deploy/templates/user_creation.j2#!/bin/bash # Wrapper script to create the test user, tenant and role # # Usage: user_creation.sh tenant_name username password # The role name is similar to the tenant_name set -o pipefail tenant_name=$1 username=$2 password=$3 role_name=$tenant_name # Activate the virtual environment . {{ common_venv_folder }}/bin/activate # Use the admin credentials . {{ keystone_osrc }} openstack role create $role_name openstack project create --enable $tenant_name openstack user create --project $tenant_name --enable --password $password $username openstack role add --project $tenant_name --user $username $role_name 070701000002B5000081A40000000000000000000000015B730C500000016F000000000000000000000000000000000000006800000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-transpvlan-deploy/templates/user_deletion.j2#!/bin/bash # Wrapper script to delete the user and tenant # # Usage: use_deletion.sh set -o pipefail tenant_name=$1 username=$2 # Activate the virtual environment . {{ common_venv_folder }}/bin/activate # Activate the V2 credentials . {{ keystone_osrc }} openstack user delete $username openstack project delete $tenant_name openstack role delete $tenant_name 070701000002B6000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005200000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-transpvlan-deploy/vars070701000002B7000081A40000000000000000000000015B730C5000000133000000000000000000000000000000000000005B00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-transpvlan-deploy/vars/main.ymlnet_transpvlan_code_folder: "{{ code_folder }}/{{ tests_git_repo }}/{{ hqe_net_transpvlan.deploy.tests_folder }}" net_transpvlan_work_folder: "{{ work_folder}}/{{ hqe_net_transpvlan.deploy.test_suite }}" service_osrc: "{{ osrc_vars.service_osrc_path }}" keystone_osrc: "{{ osrc_vars.keystone_osrc_path }}" 070701000002B8000041ED0000000000000000000000055B730C5000000000000000000000000000000000000000000000004A00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-transpvlan-run070701000002B9000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005000000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-transpvlan-run/tasks070701000002BA000081A40000000000000000000000015B730C500000047C000000000000000000000000000000000000005C00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-transpvlan-run/tasks/cleanup.yml--- # The command module calls the script that has been created within the install.yml # playbook in the hqe-net-transpvlan-deploy role. # The script will then call the actual test script. This test script is set in the # templates sub-directory of the hqe-net-transpvlan-deploy role. - name: hqe-net-transpvlan-run | cleanup | cleanup all VMs and network objects command: "{{ net_transpvlan_work_folder }}/cleanup.sh" register: cleanup_result until: cleanup_result.rc == 0 ignore_errors: True retries: 5 delay: 10 - name: hqe-net-transpvlan-run | cleanup | show the cleanup result debug: var=cleanup_result - name: hqe-net-transpvlan-run | cleanup | remove the transpvlan log file shell: /bin/rm -f {{ net_transpvlan_work_folder}}/transpvlan_*.log - name: hqe-net-transpvlan-run | cleanup | remove the cleaner log file shell: /bin/rm -f {{ net_transpvlan_work_folder }}/cleaner_*.log - name: hqe-net-transpvlan-run | cleanup | deletion of the test tenant, user and role command: "{{ net_transpvlan_work_folder }}/user_deletion.sh {{ demo_test_project }} {{ demo_test_user }}" register: test_output ignore_errors: True 070701000002BB000081A40000000000000000000000015B730C5000000128000000000000000000000000000000000000005900000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-transpvlan-run/tasks/main.yml--- - include: user_creation.yml vars: ansible_python_interpreter: "{{ common_venv_python }}" - include: transparent_vlan_test.yml vars: ansible_python_interpreter: "{{ common_venv_python }}" - include: cleanup.yml vars: ansible_python_interpreter: "{{ common_venv_python }}" 070701000002BC000081A40000000000000000000000015B730C50000003D2000000000000000000000000000000000000006A00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-transpvlan-run/tasks/transparent_vlan_test.yml--- # Run the test script # # The test log shall be placed in a folder where it's picked up by the CI jobs # # Ignore errors is require to make sure the following tasks are executed # We will need to store the exit code somewhere for Jenkins to pick it up (TBD) # The command module calls the script that has been created within the main.yml # playbook in the hqe-net-transpvlan-deploy role. # The script will then call the actual test script. This test script is set in the # templates sub-directory of the hqe-net-transpvlan-deploy role. - name: hqe-net-transpvlan-run | transparent_vlan_test | run the VLAN Transparency test command: "{{ net_transpvlan_work_folder }}/transpvlan.sh" register: test_output ignore_errors: True - name: hqe-net-transpvlan-run | transparent_vlan_test | show the test output debug: var=test_output - name: hqe-net-transpvlan-run | transparent-vlan-test | Set test status set_fact: test_status: false when: test_output.rc != 0 070701000002BD000081A40000000000000000000000015B730C50000002A0000000000000000000000000000000000000006200000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-transpvlan-run/tasks/user_creation.yml--- # Setup the test account used for testing - name: hqe-net-transpvlan-run | user_creation | build the user credential file template: > src=testrc.j2 dest="{{ net_transpvlan_work_folder }}/net-transpvlan.osrc" owner={{ hqe_user }} group={{ hqe_group }} mode=0600 - name: hqe-net-transpvlan-run | user_creation | creation of the test tenant and user command: "{{ net_transpvlan_work_folder }}/user_creation.sh {{ demo_test_project }} {{ demo_test_user }} {{ demo_test_password }}" register: test_output ignore_errors: True - name: hqe-net-transpvlan-run | user_creation | show the user creation result debug: var=test_output.stdout_lines 070701000002BE000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005400000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-transpvlan-run/templates070701000002BF000081A40000000000000000000000015B730C50000002FB000000000000000000000000000000000000005E00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-transpvlan-run/templates/testrc.j2unset $(env | awk 'BEGIN { FS="=" } /OS_/ { print $1 } ' | xargs) export OS_USERNAME={{ demo_test_user }} export OS_PASSWORD={{ demo_test_password }} export OS_TENANT_NAME={{ demo_test_project }} export OS_CACERT={{ ca_bundle }} AUTH_URL=$(grep OS_AUTH_URL {{ service_osrc }} | cut -d '/' --complement -f 4 | cut -d '=' -f 2) export OS_AUTH_URL=$AUTH_URL/v2.0 export OS_ENDPOINT_TYPE=$(awk 'BEGIN { FS="=" } /OS_ENDPOINT_TYPE/ {print $2}' {{ service_osrc }}) export OS_ADMIN_NAME=$(cat {{ service_osrc }} | awk 'BEGIN { FS="=" } /OS_USERNAME/ {print $2}') export OS_ADMIN_TENANT=$(cat {{ service_osrc }} | awk 'BEGIN { FS="=" } /OS_PROJECT_NAME/ {print $2}') export OS_ADMIN_PASSWORD=$(cat {{ service_osrc }} | awk 'BEGIN { FS="=" } /OS_PASSWORD/ {print $2}') 070701000002C0000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000004F00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-transpvlan-run/vars070701000002C1000081A40000000000000000000000015B730C5000000414000000000000000000000000000000000000005800000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-transpvlan-run/vars/main.yml--- # Filter variable must be defined in all roles to allow for # test filtering. The test filter file contains the data to # be able to filter which tests to be executed out of role, # stored in the format which is more suitable for the specific role. # Test filter files are expected under a run_filters folder. # The file name must match the tags, for it to be selected properly # when a specific test run is requested in ardana-qa-run.yml run_filter_file: transpvlan.txt # Settings from deploy # Test account setup for testing, and clean-ed up afterwards demo_random_uuid: "{{ ansible_date_time.epoch | to_uuid }}" demo_random_id: "{{ ['hqe_net_transpvlan', demo_random_uuid] | join('-') }}" demo_test_user: "{{ demo_random_id }}" demo_test_project: "{{ demo_random_id }}" demo_test_password: "{{ demo_random_id }}" # General playbook shortcuts service_osrc: "{{ osrc_vars.service_osrc_path }}" keystone_osrc: "{{ osrc_vars.keystone_osrc_path }}" net_transpvlan_work_folder: "{{ work_folder}}/{{ hqe_net_transpvlan.deploy.test_suite }}" 070701000002C2000041ED0000000000000000000000055B730C5000000000000000000000000000000000000000000000004700000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-vrrp-deploy070701000002C3000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000004D00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-vrrp-deploy/tasks070701000002C4000081A40000000000000000000000015B730C5000000227000000000000000000000000000000000000005600000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-vrrp-deploy/tasks/main.yml--- - name: hqe-net-vrrp | install | Create the work folder on the test driver file: > path="{{ net_vrrp_work_folder }}" state=directory - name: hqe-net-vrrp | install | Deploy the vrrp script template: > src=vrrp-deploy.j2 dest={{ net_vrrp_work_folder }}/vrrp.sh owner={{ hqe_user }} group={{ hqe_group }} mode=0755 - name: hqe-net-vrrp | install | Deploy cleanup script template: > src=cleanup-deploy.j2 dest={{ net_vrrp_work_folder }}/cleanup.sh owner={{ hqe_user }} group={{ hqe_group }} mode=0755 070701000002C5000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005100000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-vrrp-deploy/templates070701000002C6000081A40000000000000000000000015B730C500000016E000000000000000000000000000000000000006300000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-vrrp-deploy/templates/cleanup-deploy.j2#!/bin/bash # Wrapper script to execute cleanup after vrrp # within the venv, with the right parameters # set -o pipefail # Activate the virtual environment . {{ common_venv_folder }}/bin/activate cd {{ net_vrrp_work_folder }} # OS credentials . ./net-vrrp.osrc # Run the test cmd="python {{ net_vrrp_code_folder }}/api_scripts/cleaner.py --all" echo $cmd $cmd 070701000002C7000081A40000000000000000000000015B730C5000000177000000000000000000000000000000000000006000000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-vrrp-deploy/templates/vrrp-deploy.j2#!/bin/bash # Wrapper script to execute the network vrrp test # within the venv, with the right parameters # # Usage: vrrp.sh set -o pipefail # Activate the virtual environment . {{ common_venv_folder }}/bin/activate cd {{ net_vrrp_work_folder }} # OS credentials . ./net-vrrp.osrc # Run the test cmd="bash {{ net_vrrp_code_folder }}/cli_scripts/vrrp.sh" echo $cmd $cmd 070701000002C8000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000004C00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-vrrp-deploy/vars070701000002C9000081A40000000000000000000000015B730C50000000F8000000000000000000000000000000000000005500000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-vrrp-deploy/vars/main.yml--- net_vrrp_service_name: "{{ hqe_net_vrrp.deploy.service_name }}" net_vrrp_code_folder: "{{ work_folder }}/{{ tests_git_repo }}/{{ hqe_net_vrrp.deploy.tests_folder }}" net_vrrp_work_folder: "{{ work_folder}}/{{ hqe_net_vrrp.deploy.test_suite }}" 070701000002CA000041ED0000000000000000000000055B730C5000000000000000000000000000000000000000000000004400000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-vrrp-run070701000002CB000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000004A00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-vrrp-run/tasks070701000002CC000081A40000000000000000000000015B730C50000004FE000000000000000000000000000000000000005600000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-vrrp-run/tasks/cleanup.yml--- # The script will then call the actual test script. This test script is set in the # templates sub-directory of the hqe-net-vrrp-deploy role. - name: hqe-net-vrrp | cleanup | Cleanup all VMs and network objects command: "{{ net_vrrp_work_folder }}/cleanup.sh" register: cleanup_result until: cleanup_result.rc == 0 ignore_errors: True retries: 5 delay: 10 - name: hqe-net-vrrp | cleanup | Show the cleanup result debug: var=cleanup_result - name: hqe-net-vrrp | cleanup | remove the log files shell: /bin/rm -f {{ net_vrrp_work_folder}}/*.log - name: hqe-net-vrrp | cleanup | Delete test user ignore_errors: true keystone_v3: login_token: "{{ keystone_admin_token }}" endpoint: "{{ keystone_admin_endpoint }}/v3" action: "delete_user" user_name: "{{ demo_test_user }}" user_domain_name: "{{ demo_test_domain }}" - name: hqe-net-vrrp | cleanup | Delete test project ignore_errors: true keystone_v3: login_token: "{{ keystone_admin_token }}" endpoint: "{{ keystone_admin_endpoint }}/v3" action: "delete_project" project_name: "{{ demo_test_project }}" project_domain_name: "{{ demo_test_domain }}" - name: hqe-net-vrrp | cleanup | remove the osrc files shell: /bin/rm -f {{ net_vrrp_work_folder}}/*.osrc 070701000002CD000081A40000000000000000000000015B730C500000015B000000000000000000000000000000000000005300000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-vrrp-run/tasks/main.yml--- - include: test-resources.yml vars: ansible_python_interpreter: "{{ common_venv_python }}" - include: ../../hqe-common/tasks/common-run.yml vars: caller_role_path: "{{ role_path }}" ansible_python_interpreter: "{{ common_venv_python }}" - include: cleanup.yml vars: ansible_python_interpreter: "{{ common_venv_python }}" 070701000002CE000081A40000000000000000000000015B730C5000000246000000000000000000000000000000000000005200000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-vrrp-run/tasks/run.yml--- # Run the test script # # Ignore errors is require to make sure the following tasks are executed # We will need to store the exit code somewhere for Jenkins to pick it up (TBD) # The script will then call the actual test script. This test script is set in the # templates sub-directory of the hqe-net-vrrp-deploy role. - name: hqe-net-vrrp | run | check the VRRP functionnality command: "{{ net_vrrp_work_folder }}/vrrp.sh" register: test_output ignore_errors: True - name: hqe-net-vrrp | run | Show the external connectivity output debug: var=test_output.stdout_lines 070701000002CF000081A40000000000000000000000015B730C5000000582000000000000000000000000000000000000005D00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-vrrp-run/tasks/test-resources.yml--- # Setup the test account used for testing - name: hqe-net-vrrp | test-resources | Create test project keystone_v3: login_token: "{{ keystone_admin_token }}" endpoint: "{{ keystone_admin_endpoint }}/v3" action: "create_project" project_name: "{{ demo_test_project }}" project_domain_name: "{{ demo_test_domain }}" description: "Ephemeral test account" - name: hqe-net-vrrp | test-resources | Create test user keystone_v3: login_token: "{{ keystone_admin_token }}" endpoint: "{{ keystone_admin_endpoint }}/v3" action: "create_user" user_name: "{{ demo_test_user }}" user_password: "{{ demo_test_password}}" description: "Ephemeral test account" user_domain_name: "{{ demo_test_domain }}" - name: hqe-net-vrrp | test-resources | Grant member role to Test User on Test Project keystone_v3: login_token: "{{ keystone_admin_token }}" endpoint: "{{ keystone_admin_endpoint }}/v3" action: "grant_project_role" user_name: "{{ demo_test_user }}" project_name: "{{ demo_test_project }}" role_name: "{{ demo_test_role }}" user_domain_name: "{{ demo_test_domain }}" project_domain_name: "{{ demo_test_domain }}" - name: hqe-net-vrrp | test-resources | Build the credential file template: > src=osrc.j2 dest="{{ net_vrrp_work_folder }}/net-vrrp.osrc" owner={{ hqe_user }} group={{ hqe_group }} mode=0600 070701000002D0000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000004E00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-vrrp-run/templates070701000002D1000081A40000000000000000000000015B730C50000001CB000000000000000000000000000000000000005600000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-vrrp-run/templates/osrc.j2unset $(env | awk 'BEGIN { FS="=" } /OS_/ { print $1 } ' | xargs) export OS_USERNAME={{ demo_test_user }} export OS_PASSWORD={{ demo_test_password }} export OS_TENANT_NAME={{ demo_test_project }} export OS_CACERT={{ ca_bundle }} AUTH_URL=$(grep OS_AUTH_URL {{ service_osrc }} | cut -d '/' --complement -f 4 | cut -d '=' -f 2) export OS_AUTH_URL=$AUTH_URL/v2.0 export OS_ENDPOINT_TYPE=$(awk 'BEGIN { FS="=" } /OS_ENDPOINT_TYPE/ {print $2}' {{ service_osrc }}) 070701000002D2000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000004900000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-vrrp-run/vars070701000002D3000081A40000000000000000000000015B730C50000003CC000000000000000000000000000000000000005200000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-net-vrrp-run/vars/main.yml--- # Filter variable must be defined in all roles to allow for # test filtering. The test filter file contains the data to # be able to filter which tests to be executed out of role, # stored in the format which is more suitable for the specific role. # Test filter files are expected under a run_filters folder. # The file name must match the tags, for it to be selected properly # when a specific test run is requested in ardana-qa-run.yml run_filter_file: parallel.txt # Settings from deploy # Test account setup for testing, and clean-ed up afterwards demo_random_uuid: "{{ ansible_date_time.epoch | to_uuid }}" demo_random_id: "{{ ['hqe_net_vrrp', demo_random_uuid] | join('-') }}" demo_test_user: "{{ demo_random_id }}" demo_test_project: "{{ demo_random_id }}" demo_test_password: "{{ demo_random_id }}" # General keystone settings service_osrc: "{{ osrc_vars.service_osrc_path }}" net_vrrp_work_folder: "{{ work_folder}}/{{ hqe_net_vrrp.deploy.test_suite }}" 070701000002D4000041ED0000000000000000000000055B730C5000000000000000000000000000000000000000000000004500000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-playbooktests070701000002D5000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000004E00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-playbooktests/defaults070701000002D6000081A40000000000000000000000015B730C5000000058000000000000000000000000000000000000005700000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-playbooktests/defaults/main.yml--- scratch_dir: /var/lib/ardana/scratch/ansible/next/ardana/ansible ardana_user: ardana070701000002D7000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000004B00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-playbooktests/tasks070701000002D8000081A40000000000000000000000015B730C50000000D2000000000000000000000000000000000000005400000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-playbooktests/tasks/main.yml--- - include: test-deploy.yml when: include_deploy - include: test-stop.yml when: include_stop - include: test-start.yml when: include_start - include: test-reconfigure.yml when: include_reconfigure 070701000002D9000081A40000000000000000000000015B730C50000004FD000000000000000000000000000000000000005B00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-playbooktests/tasks/test-deploy.yml########## DEPLOY ########## - name: hqe-playbooks | Test deploy debug: var: "{{ test_service }}" msg: "Test deploy playbooks for {{ test_service }} " - name: hqe-playbooks | Test deploy | deploy become_user: "{{ ardana_user }}" command: "ansible-playbook -i hosts/verb_hosts {{ test_service }}-deploy.yml" args: chdir: "{{ scratch_dir }}" register: deploy_test_result - name: hqe-playbooks | Test deploy | validate shell: | echo "Validation after {{ test_service }}-deploy sucess" when: deploy_test_result.rc == 0 - name: hqe-playbooks | Test deploy | validate fail: msg="Validation after {{ test_service }}-deploy failed" when: deploy_test_result.rc != 0 ###### VALIDATE DEPLOY BY RUNNING STATUS ##### - name: hqe-playbooks | Test deploy | status play become_user: "{{ ardana_user }}" command: "ansible-playbook -i hosts/verb_hosts {{ test_service }}-status.yml" args: chdir: "{{ scratch_dir }}" register: status_test_result - name: hqe-playbooks | Test deploy | status validate fail: msg="Status Validation after {{ test_service }}-deploy failed" when: status_test_result.rc != 0 ###### VALIDATE DEPLOY BY RUNNING SPECIFIC SERVICE VALIDATION ##### - name: hqe-playbooks | Test deploy | validate include: validate.yml070701000002DA000081A40000000000000000000000015B730C500000060B000000000000000000000000000000000000006000000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-playbooktests/tasks/test-reconfigure.yml########## reconfigure ########## - name: hqe-playbooks | Test reconfigure debug: var: "{{ test_service }}" msg: "Test reconfigure playbooks for {{ test_service }} " - name: hqe-playbooks | Test reconfigure | update configuration include: update_config.yml - name: hqe-playbooks | Test reconfigure | reconfigure become_user: "{{ ardana_user }}" command: "ansible-playbook -i hosts/verb_hosts {{ test_service }}-reconfigure.yml" args: chdir: "{{ scratch_dir }}" register: reconfigure_test_result - name: hqe-playbooks | Test reconfigure | validate shell: | echo "Validation after {{ test_service }}-reconfigure sucess" when: reconfigure_test_result.rc == 0 - name: hqe-playbooks | Test reconfigure | validate fail: msg="Validation after {{ test_service }}-reconfigure failed" when: reconfigure_test_result.rc != 0 ###### VALIDATE reconfigure BY RUNNING STATUS ##### - name: hqe-playbooks | Test reconfigure | status play become_user: "{{ ardana_user }}" command: "ansible-playbook -i hosts/verb_hosts {{ test_service }}-status.yml" args: chdir: "{{ scratch_dir }}" register: status_test_result - name: hqe-playbooks | Test reconfigure | status validate fail: msg="Status Validation after {{ test_service }}-reconfigure failed" when: status_test_result.rc != 0 ###### VALIDATE reconfigure BY RUNNING SPECIFIC SERVICE VALIDATION ##### - name: hqe-playbooks | Test reconfigure | validate include: validate.yml ###### ADD ADDITIONAL VALIDATION TO CHECK THE CONFIG CHANGE TOOK EFFECT #######070701000002DB000081A40000000000000000000000015B730C50000004E6000000000000000000000000000000000000005A00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-playbooktests/tasks/test-start.yml########## START ########## - name: hqe-playbooks | Test start debug: var: "{{ test_service }}" msg: "Test start playbooks for {{ test_service }} " - name: hqe-playbooks | Test start | start become_user: "{{ ardana_user }}" command: "ansible-playbook -i hosts/verb_hosts {{ test_service }}-start.yml" args: chdir: "{{ scratch_dir }}" register: start_test_result - name: hqe-playbooks | Test start | validate shell: | echo "Validation after {{ test_service }}-start sucess" when: start_test_result.rc == 0 - name: hqe-playbooks | Test start | validate fail: msg="Validation after {{ test_service }}-start failed" when: start_test_result.rc != 0 ##### VALIDATE START BY RUNNING STATUS##### - name: hqe-playbooks | Test start | status become_user: "{{ ardana_user }}" command: "ansible-playbook -i hosts/verb_hosts {{ test_service }}-status.yml" args: chdir: "{{ scratch_dir }}" register: status_test_result - name: hqe-playbooks | Test start | status validate fail: msg="Status Validation after {{ test_service }}-start failed" when: status_test_result.rc != 0 ##### VALIDATE START BY RUNNING SPECIFIC SERVICE VALIDATION ##### - name: hqe-playbooks | Test start | validate include: validate.yml 070701000002DC000081A40000000000000000000000015B730C5000000461000000000000000000000000000000000000005900000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-playbooktests/tasks/test-stop.yml########## STOP ########## - name: hqe-playbooks | Test stop debug: var: "{{ test_service }}" msg: "Test stop playbooks for {{ test_service }} " - name: hqe-playbooks | Test stop | stop become_user: "{{ ardana_user }}" command: "ansible-playbook -i hosts/verb_hosts {{ test_service }}-stop.yml" args: chdir: "{{ scratch_dir }}" register: stop_test_result - name: hqe-playbooks | Test stop | validate shell: | echo "Validation after {{ test_service }}-stop sucess" when: stop_test_result.rc == 0 - name: hqe-playbooks | Test stop | validate fail: msg="Validation after {{ test_service }}-stop failed" when: stop_test_result.rc != 0 ##### VALIDATE STOP BY RUNNING STATUS##### - name: hqe-playbooks | Test stop | status become_user: "{{ ardana_user }}" command: "ansible-playbook -i hosts/verb_hosts {{ test_service }}-status.yml" args: chdir: "{{ scratch_dir }}" ignore_errors: true register: status_test_result - name: hqe-playbooks | Test stop | status validate fail: msg="Status Validation after {{ test_service }}-stop failed" when: status_test_result.rc == 0 070701000002DD000081A40000000000000000000000015B730C5000000118000000000000000000000000000000000000005D00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-playbooktests/tasks/update_config.yml- name: hqe-playbooks | Update keystone configuration debug: msg: "Update configuration - TO DO " when: test_service == "keystone" - name: hqe-playbooks | Update barbican configuration debug: msg: "Update configuration - TO DO " when: test_service == "barbican" 070701000002DE000081A40000000000000000000000015B730C5000000934000000000000000000000000000000000000005800000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-playbooktests/tasks/validate.yml- name: hqe-playbooks | Validate Keystone args: executable: /bin/bash shell: | source "{{ osrc_vars.service_osrc_path }}" openstack token issue | grep "| id" | awk '{print $4}' register: project_scoped_token ignore_errors: false when: test_service == "keystone" - name: hqe-playbooks | Validate barbican args: executable: /bin/bash shell: > source "{{ osrc_vars.service_osrc_path }}" openstack secret store --name test_bin_secret --payload 'gF6+lLoF3ohA9aPRpt+6bQ==' --algorithm 'aes' --bit-length 256 register: barbican_secret_store ignore_errors: false when: test_service == "barbican" - name: hqe-playbooks | Validate cinder args: executable: /bin/bash shell: > source "{{ osrc_vars.service_osrc_path }}" openstack volume list register: cinder_volume_list ignore_errors: false when: test_service == "cinder" - name: hqe-playbooks | Validate glance args: executable: /bin/bash shell: > source "{{ osrc_vars.service_osrc_path }}" openstack image list register: glance_image_list ignore_errors: false when: test_service == "glance" - name: hqe-playbooks | Validate neutron args: executable: /bin/bash shell: > source "{{ osrc_vars.service_osrc_path }}" openstack network list register: neutron_net_list ignore_errors: false when: test_service == "neutron" - name: hqe-playbooks | Validate nova args: executable: /bin/bash shell: > source "{{ osrc_vars.service_osrc_path }}" openstack server list register: nova_server_list ignore_errors: false when: test_service == "nova" - name: hqe-playbooks | Validate swift args: executable: /bin/bash shell: > source "{{ osrc_vars.service_osrc_path }}" openstack container list register: swift_container_list ignore_errors: false when: test_service == "swift" - name: hqe-playbooks | Validate heat args: executable: /bin/bash shell: > source "{{ osrc_vars.service_osrc_path }}" openstack stack list register: heat_stack_list ignore_errors: false when: test_service == "heat" - name: hqe-playbooks | Validate designate args: executable: /bin/bash shell: > source "{{ osrc_vars.service_osrc_path }}" openstack zone list register: designate_zone_list ignore_errors: false when: test_service == "designate" 070701000002DF000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000004A00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-playbooktests/vars070701000002E0000081A40000000000000000000000015B730C50000000A7000000000000000000000000000000000000005300000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-playbooktests/vars/main.yml--- test_service: "{{ run_filter }}" include_deploy: True include_stop: True include_start: True include_reconfigure: True include_upgrade: True include_restart: True 070701000002E1000041ED0000000000000000000000075B730C5000000000000000000000000000000000000000000000004800000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-role-scaffolding070701000002E2000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005100000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-role-scaffolding/defaults070701000002E3000081A40000000000000000000000015B730C500000012A000000000000000000000000000000000000005A00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-role-scaffolding/defaults/main.yml--- # Destination directory where the role will get generated role_dest: roles # Default role name is defined here. It can be changed # by passing role_name as an extra arg to playbook role_name: "default_role" # force_role when set to true overrides the current role # if present force_role: True 070701000002E4000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000004E00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-role-scaffolding/files070701000002E5000081A40000000000000000000000015B730C5000000004000000000000000000000000000000000000006900000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-role-scaffolding/files/deploy_tasks_configure.yml--- 070701000002E6000081A40000000000000000000000015B730C5000000034000000000000000000000000000000000000006400000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-role-scaffolding/files/deploy_tasks_main.yml--- - include: install.yml - include: configure.yml 070701000002E7000081A40000000000000000000000015B730C5000000074000000000000000000000000000000000000006400000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-role-scaffolding/files/run_tasks_cleanup.yml--- # FIXME: Accounts will be soon setup by the framework. Cleanup here extra test # resources required for testing.070701000002E8000081A40000000000000000000000015B730C500000015D000000000000000000000000000000000000006100000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-role-scaffolding/files/run_tasks_main.yml--- - include: test-resources.yml vars: ansible_python_interpreter: "{{ common_venv_python }}" - include: ../../hqe-common/tasks/common-run.yml vars: caller_role_path: "{{ role_path }}" ansible_python_interpreter: "{{ common_venv_python }}" - include: cleanup.yml vars: ansible_python_interpreter: "{{ common_venv_python }}" 070701000002E9000081A40000000000000000000000015B730C5000000070000000000000000000000000000000000000006B00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-role-scaffolding/files/run_tasks_test-resources.yml--- # FIXME: Accounts will be soon setup by the framework. Add here extra test # resources required for testing.070701000002EA000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000004E00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-role-scaffolding/tasks070701000002EB000081A40000000000000000000000015B730C5000000891000000000000000000000000000000000000006600000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-role-scaffolding/tasks/hqe-scaffold-deploy.yml--- - name: hqe-scaffold-deploy | check if destination already exists stat: path={{ role_dest }}/hqe-{{ role_name }}-deploy register: deploy_dir_present changed_when: false - name: hqe-scaffold-deploy | fail - destination already exists!! fail: msg: "{{ role_dest }}/hqe-{{ role_name }}-deploy exists. Failing to prevent overwrite" when: deploy_dir_present.stat.exists and not force_role # run_filters file for new role - name: hqe-scaffold-deploy | run_filters file: state=directory path={{ role_dest }}/hqe-{{ role_name }}-deploy/files/run_filters - name: hqe-scaffold-deploy | run_filters template: src=files_run_filter_parallel.j2 dest={{ role_dest }}/hqe-{{ role_name }}-deploy/files/run_filters/{{ role_name }}.txt # task files for new role - name: hqe-scaffold-deploy | tasks/main.yml copy: src=deploy_tasks_{{ item }}.yml dest={{ role_dest }}/hqe-{{ role_name }}-deploy/tasks/{{ item }}.yml with_items: - main - configure - name: hqe-scaffold-deploy | create configure.yml and install.yml template: src=deploy_tasks_{{item}}.j2 dest={{ role_dest }}/hqe-{{ role_name }}-deploy/tasks/{{ item }}.yml with_items: - install # var file for new role - name: hqe-scaffold-deploy | create vars/main.yml template: src=deploy_vars_main.j2 dest={{ role_dest }}/hqe-{{ role_name }}-deploy/vars/main.yml # script template for new role - name: hqe-scaffold-deploy | create {{ role_name }}.j2 template: src=script_template.j2 dest={{ role_dest }}/hqe-{{ role_name }}-deploy/templates/hqe-{{ role_name }}.j2 - name: hqe-scaffold-deploy | create group_vars/all/<file> file: state=touch path=group_vars/all/hqe_{{ role_name}}_deploy - name: hqe-scaffold-deploy | add an entry in ardana-qa-deploy.yml lineinfile: "insertbefore=EOF dest=group_vars/all/hqe_{{ role_name}}_deploy line='#FIXME- Please define host_var entries for the new role using the one of the above roles as an example'" - name: hqe-scaffold-deploy | add an entry in ardana-qa-deploy.yml lineinfile: "insertbefore=EOF dest=ardana-qa-deploy.yml line=' - { role: hqe-{{ role_name }}-deploy, tags: [\"{{ role_name }}\"] }'" 070701000002EC000081A40000000000000000000000015B730C5000000689000000000000000000000000000000000000006300000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-role-scaffolding/tasks/hqe-scaffold-run.yml--- - name: hqe-scaffold-run | check if destination already exists stat: path={{ role_dest }}/hqe-{{ role_name }}-deploy register: deploy_dir_present changed_when: false - name: hqe-scaffold-run | fail - destination already exists!! fail: msg: "{{ role_dest }}/hqe-{{ role_name }}-deploy exists. Failing to prevent overwrite" when: deploy_dir_present.stat.exists and not force_role # task files for new role - name: hqe-scaffold-run | create run.yaml template: src: "run_tasks_{{ item }}.j2" dest: "{{ role_dest }}/hqe-{{ role_name }}-run/tasks/{{ item }}.yml" with_items: - run - name: hqe-scaffold-run | create test-resources.yml and cleanup.yml copy: src: "run_tasks_{{ item }}.yml" dest: "{{ role_dest }}/hqe-{{ role_name }}-run/tasks/{{ item }}.yml" with_items: - test-resources - cleanup - main # var file for new role - name: hqe-scaffold-run | create vars/main.yml template: src=run_vars_main.j2 dest={{ role_dest }}/hqe-{{ role_name }}-run/vars/main.yml # testrc for new_role - name: hqe-scaffold-run | create testrc template template: src: testrc.j2 dest: "{{ role_dest }}/hqe-{{ role_name }}-run/templates/testrc.j2" # v2 testrc for new_role - name: hqe-scaffold-run | create testrc_v2 template template: src: testrc_v2.j2 dest: "{{ role_dest }}/hqe-{{ role_name }}-run/templates/testrc_v2.j2" - name: hqe-scaffold-run | add an entry in ardana-qa-run.yml lineinfile: "insertafter=.*hqe-common-run.* dest=ardana-qa-run.yml line=' - { role: hqe-{{ role_name }}-run, run_filter_file: {% raw %} \"{{ run_filter }}.txt\" {% endraw %}, tags: [\"{{ role_name }}\"] }'" 070701000002ED000081A40000000000000000000000015B730C5000000047000000000000000000000000000000000000005700000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-role-scaffolding/tasks/main.yml--- - include: hqe-scaffold-deploy.yml - include: hqe-scaffold-run.yml 070701000002EE000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005200000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-role-scaffolding/templates070701000002EF000081A40000000000000000000000015B730C5000000369000000000000000000000000000000000000006A00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-role-scaffolding/templates/deploy_tasks_install.j2--- # Install {{ role_name }} test dependencies - name: hqe-{{ role_name }} | install | Create work folder {{ '{{' }} {{ role_name }}_work_folder {{ '}}' }} file: path: "{{ '{{' }} {{ role_name }}_work_folder {{ '}}' }}" {% raw %} owner: "{{ hqe_user }}" group: "{{ hqe_group }}" state: directory recurse: yes {% endraw %} - name: hqe-{{ role_name }} | install | Deploy run_filters copy: src: run_filters dest: "{{ '{{' }} {{ role_name }}_work_folder {{ '}}' }}/" {% raw %} owner: "{{ hqe_user }}" group: "{{ hqe_group }}" mode: 0640 {% endraw %} - name: hqe-{{ role_name }} | install | Deploy run script template: src: hqe-{{ role_name }}.j2 dest: "{{ '{{' }} {{ role_name }}_work_folder {{ '}}' }}/hqe-{{ role_name }}" {% raw %} owner: "{{ hqe_user }}" group: "{{ hqe_group }}" mode: 0755 {% endraw %} 070701000002F0000081A40000000000000000000000015B730C5000000363000000000000000000000000000000000000006600000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-role-scaffolding/templates/deploy_vars_main.j2--- # FIXME - Add or remove the variables that are needed for your test suite and # remove this line # Filter variable must be defined in all roles to allow for # test filtering. The test filter file contains the data to # be able to filter which tests to be executed out of role, # stored in the format which is more suitable for the specific role. # Test filter files are expected under a run_filters folder. # The file name must match the tags, for it to be selected properly # when a specific test run is requested in ardana-qa-run.yml run_filter_file: {{ role_name }}.txt {{ role_name }}_work_folder: "{{ '{{' }} work_folder {{ '}}' }}/{{ '{{' }} hqe_{{ role_name }}.deploy.test_suite {{ '}}' }}" {{ role_name }}_code_folder: "{{ '{{' }} work_folder {{ '}}' }}/{{ '{{' }} tests_git_repo {{ '}}' }}/{{ '{{' }} hqe_{{ role_name }}.deploy.tests_folder {{ '}}' }}" 070701000002F1000081A40000000000000000000000015B730C50000000E6000000000000000000000000000000000000006F00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-role-scaffolding/templates/files_run_filter_parallel.j2# FIXME includes the role name for single tests. If your test suite # contains more than one test and you would like to make a selection # Please include the list in a format understandable by the your test # tool {{ role_name }} 070701000002F2000081A40000000000000000000000015B730C5000000236000000000000000000000000000000000000006300000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-role-scaffolding/templates/run_tasks_run.j2--- # Run the test script # # The test log shall be placed in a folder where it's picked up by the CI jobs # # Ignore errors is require to make sure the following tasks are executed # We will need to store the exit code somewhere for Jenkins to pick it up (TBD) - name: hqe-{{ role_name }} | run | Run the tests sudo: yes {% raw %} become_user: "{{ hqe_user }}" command: FIXME - include the command to run the test register: test_output ignore_errors: True {% endraw %} - name: hqe-{{ role_name }} | run | Show test output debug: var=test_output 070701000002F3000081A40000000000000000000000015B730C50000005DF000000000000000000000000000000000000006300000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-role-scaffolding/templates/run_vars_main.j2--- # FIXME - Add or remove the variables that are needed for your test suite and # remove this line # Filter variable must be defined in all roles to allow for # test filtering. The test filter file contains the data to # be able to filter which tests to be executed out of role, # stored in the format which is more suitable for the specific role. # Test filter files are expected under a run_filters folder. # The file name must match the tags, for it to be selected properly # when a specific test run is requested in ardana-qa-run.yml run_filter_file: parallel.txt {{ role_name }}_work_folder: "{{ '{{' }} work_folder {{ '}}' }}/{{ '{{' }} hqe_{{ role_name }}.deploy.test_suite {{ '}}' }}" {{ role_name }}_code_folder: "{{ '{{' }} work_folder {{ '}}' }}/{{ '{{' }} tests_git_repo {{ '}}' }}/{{ '{{' }} hqe_{{ role_name }}.deploy.tests_folder {{ '}}' }}" # Test account setup for testing, and clean-ed up afterwards {{ role_name }}_random_uuid: "{{ '{{' }} ansible_date_time.epoch | to_uuid {{ '}}' }}" {{ role_name }}_random_id: "{{ '{{' }} ['hqe_{{ role_name }}', {{ role_name }}_random_uuid] | join('-') {{ '}}' }}" {{ role_name }}_user: "{{ '{{' }} {{ role_name }}_random_id {{ '}}' }}" {{ role_name }}_project: "{{ '{{' }} {{ role_name }}_random_id {{ '}}' }}" {{ role_name }}_password: "{{ '{{' }} {{ role_name }}_random_id {{ '}}' }}" {{ role_name }}_domain: "{{ '{{' }} osrc_vars.os_domain_name {{ '}}' }}" {{ role_name }}_role: "{{ '{{' }} hqe_group_vars.keystone_member_role {{ '}}' }}" 070701000002F4000081A40000000000000000000000015B730C50000002A8000000000000000000000000000000000000006500000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-role-scaffolding/templates/script_template.j2#!/bin/bash # Wrapper script to execute {{ role_name }} # within the venv, with the right parameters # # Usage: hqe-{{ role_name }} run_filter_filename set -o pipefail # FIXME any run parameter that should be configurable post-deploy # time should be set here RUN_FILTER=${6:-parallel.txt} TEST_HOME={{ '{{' }} {{ role_name }}_code_folder {{ '}}' }} WORK_HOME={{ '{{' }} {{ role_name }}_work_folder {{ '}}' }} {% raw %} VENV={{ common_venv_folder }} {% endraw %} # Activate the virtual environment source ${VENV}/bin/activate # activate the credentials source $WORK_HOME/{{ role_name }}.testrc # Run the test cmd="FIXME" echo $cmd $cmd 2>&1 > $WORK_HOME/{{ role_name }}.log 070701000002F5000081A40000000000000000000000015B730C500000025D000000000000000000000000000000000000005C00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-role-scaffolding/templates/testrc.j2# FIXME: You may want to set or unset values as per test needs export OS_BASE_AUTH_URL={{ '{{' }} osrc_vars.os_unversioned_auth_url {{ '}}' }} export OS_AUTH_URL={{ '{{' }} osrc_vars.os_url {{ '}}' }} export OS_USERNAME={{ '{{' }} {{ role_name }}_user {{ '}}' }} export OS_PASSWORD={{ '{{' }} {{ role_name }}_password {{ '}}' }} export OS_PROJECT_NAME={{ '{{' }} {{ role_name }}_project {{ '}}' }} export OS_CACERT={{ '{{' }} osrc_vars.os_ca_cert {{ '}}' }} export OS_USER_DOMAIN_NAME={{ '{{' }} {{ role_name }}_domain {{ '}}' }} export OS_PROJECT_DOMAIN_NAME={{ '{{' }} {{ role_name }}_domain {{ '}}' }} 070701000002F6000081A40000000000000000000000015B730C50000001B7000000000000000000000000000000000000005F00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-role-scaffolding/templates/testrc_v2.j2# FIXME: You may want to set or unset values as per test needs export OS_BASE_AUTH_URL={{ '{{' }} osrc.os_unversioned_auth_url {{ '}}' }} export OS_AUTH_URL=${OS_BASE_AUTH_URL}/v2.0 export OS_USERNAME={{ '{{' }} {{ role_name }}_user {{ '}}' }} export OS_PASSWORD={{ '{{' }} {{ role_name }}_password {{ '}}' }} export OS_PROJECT_NAME={{ '{{' }} {{ role_name }}_project {{ '}}' }} export OS_CACERT={{ '{{' }} osrc_vars.os_ca_cert {{ '}}' }} 070701000002F7000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000004D00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-role-scaffolding/vars070701000002F8000081A40000000000000000000000015B730C5000000003000000000000000000000000000000000000005600000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-role-scaffolding/vars/main.yml---070701000002F9000041ED0000000000000000000000065B730C5000000000000000000000000000000000000000000000004400000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-swift-deploy070701000002FA000041ED0000000000000000000000035B730C5000000000000000000000000000000000000000000000004A00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-swift-deploy/files070701000002FB000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005600000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-swift-deploy/files/run_filters070701000002FC000081A40000000000000000000000015B730C50000000C5000000000000000000000000000000000000005D00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-swift-deploy/files/run_filters/ci.txt# (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # Empty as all tests would run in CI currently # Swift sync too slow for CI/CD -swift\.test_sync.* 070701000002FD000081A40000000000000000000000015B730C5000000112000000000000000000000000000000000000006000000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-swift-deploy/files/run_filters/smoke.txt# (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # EC rings do not exist in canary jobs, before logic is implemented # to skip those they will be disabled permanently. -swift\.test_storage_policies\.SwiftErasurePolicyTest.* 070701000002FE000081A40000000000000000000000015B730C5000000091000000000000000000000000000000000000006300000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-swift-deploy/files/run_filters/tests-ci.txt# (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # Empty as all tests would run in CI currently 070701000002FF000081A40000000000000000000000015B730C50000000E0000000000000000000000000000000000000006200000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-swift-deploy/files/run_filters/upgrade.txt# (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # EC rings do not exist in liberty, so those test fail after upgrade -swift\.test_storage_policies\.SwiftErasurePolicyTest.* 07070100000300000081A40000000000000000000000015B730C500000084A000000000000000000000000000000000000005800000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-swift-deploy/files/tests2skip.py#!/usr/bin/env python # # Copyright 2013 Red Hat # All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # Reads in a list of exclude regular expressions from a file and outputs a # regex suitable to be passed into testr import sys """ Whitelist is applied first. The blacklist is executed against the set of tests returned by the whitelist. If whitelist is empty, all available tests are fed to blacklist. If blacklist is empty, all tests from whitelist are returned. The syntax for white-list and black-list is as follows: - lines starting with # or empty are ignored - lines starting with "+" are whitelisted - lines starting with "-" are blacklisted - lines not matching any of the above conditions are blacklisted The match for each line gets added a "^" in the beginning, so the regular expression should account for that. For example, the following scenario: run all the smoke tests and scenario tests, but exclude the api.volume tests. is implemented as: +.*smoke +tempest\.scenario -tempest\.api\.volume.* """ whitelist = [] blacklist = [] with open(sys.argv[1]) as fp: for line in fp: line = line.strip() if not line or line[0] == '#': continue if line.startswith("+"): whitelist.append(line[1:]) elif line.startswith("-"): blacklist.append(line[1:]) else: blacklist.append(line) regex = '^(?=({whitelist}))' params = dict(whitelist="|".join(whitelist)) if blacklist: regex += '(?!({blacklist}))' params['blacklist'] = "|".join(blacklist) print(regex.format(**params)) 07070100000301000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000004A00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-swift-deploy/tasks07070100000302000081A40000000000000000000000015B730C50000001BB000000000000000000000000000000000000005800000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-swift-deploy/tasks/configure.yml# (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC --- # Configure the demo test # The only configuration required here is the RC file with the # credentials but that can only be created after test-resources - name: hqe-swift | configure | Set ownership of {{ swift_work_folder}} folder file: path={{ swift_work_folder}} owner={{ hqe_user }} group={{ hqe_group }} state=directory recurse=yes 07070100000303000081A40000000000000000000000015B730C5000000E44000000000000000000000000000000000000005600000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-swift-deploy/tasks/install.yml# (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017-2018 SUSE LLC --- - name: hqe-swift | install | set os-specific variables include_vars: "../vars/{{ ansible_os_family.split(' ')[0] | lower | replace('open', '') }}.yml" - set_fact: swift_venv_folder: "{{ common_venv_root }}/{{ hqe_swift.deploy.venv_folder }}" tempest_code_folder: "{{ code_folder }}/tempest/" when: build_venvs | bool - set_fact: swift_venv_folder: "{{ swift_service_name | bin_dir }}/../" tempest_code_folder: "{{ code_folder }}/tempest/" when: not (build_venvs | bool) # Install Swift test dependencies - name: hqe-swift | install | Update package cache install_package: cache: update when: not (build_venvs | bool) - name: hqe-swift | install | Install erasure code libraries become: yes become_user: root package: name: "{{ item }}" state: present with_items: hqe_swift_pkgs - name: hqe-swift | install | Install the prebuilt env become: yes become_user: root install_package: name: "{{ swift_service_name }}" service: "{{ swift_service_name }}" state: present when: not (build_venvs | bool) - name: hqe-swift | install | Upgrade pip pip: name: pip extra_args: --upgrade virtualenv: "{{ swift_venv_folder }}" when: build_venvs | bool - name: hqe-swift | install | Install requirements pip: requirements: "{{ swift_code_folder }}/requirements.txt" virtualenv: "{{ swift_venv_folder }}" when: build_venvs | bool # Installing from source requires write access to the source folder - name: hqe-swift | install | {{ hqe_group }} owns hosqatesthelper source become: yes become_user: root file: path: "{{ testhelper_code_folder }}" owner: "{{ hqe_user }}" group: "{{ hqe_group }}" recurse: yes - name: hqe-swift | install | Install hosqatesthelper package pip: name: "{{ testhelper_code_folder }}" extra_args: '-e' virtualenv: "{{ swift_venv_folder }}" when: build_venvs | bool - name: hqe-swift | install | Pull upstream Tempest from the git become: yes become_user: root git: repo: "http://git.suse.provo.cloud/openstack/tempest" dest: "{{ tempest_code_folder }}" version: "hp/master" update: no when: build_venvs | bool - name: hqe-swift | install | Install tempest become: yes become_user: root pip: name: "{{ tempest_code_folder }}" extra_args: '-e' virtualenv: "{{ swift_venv_folder }}" when: build_venvs | bool - name: hqe-swift | install | Deploy run_filters copy: src: run_filters dest: "{{ swift_work_folder }}/" owner: "{{ hqe_user }}" group: "{{ hqe_group }}" mode: 0640 - name: hqe-swift | install | Deploy tests2skip.py copy: src: tests2skip.py dest: "{{ swift_work_folder }}/swift-tests2skip.py" owner: "{{ hqe_user }}" group: "{{ hqe_group }}" mode: 0755 - name: hqe-swift | install | Deploy run script template: src: hqe-swift.j2 dest: "{{ swift_work_folder }}/hqe-swift" owner: "{{ hqe_user }}" group: "{{ hqe_group }}" mode: 0755 - name: hqe-swift | install | Deploy ring spec file template: src: ring_specs.json.j2 dest: "{{ swift_work_folder }}/ring_specs.json" owner: "{{ hqe_user }}" group: "{{ hqe_group }}" mode: 0755 - name: hqe-swift | install | Deploy testr configuration shell: cp "{{ swift_code_folder}}/.testr.conf" "{{ swift_work_folder }}" - name: hqe-swift | install | Fix testr configuration ownership file: path: "{{ swift_work_folder }}/.testr.conf" owner: "{{ hqe_user }}" group: "{{ hqe_group }}" mode: 0755 07070100000304000081A40000000000000000000000015B730C50000000F2000000000000000000000000000000000000005300000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-swift-deploy/tasks/main.yml# (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC --- - include: install.yml when: hqe_group_vars.swift_available | bool - include: configure.yml when: hqe_group_vars.swift_available | bool 07070100000305000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000004E00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-swift-deploy/templates07070100000306000081A40000000000000000000000015B730C5000000444000000000000000000000000000000000000005B00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-swift-deploy/templates/hqe-swift.j2#!/bin/bash # (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # Wrapper script to execute the example test # within the venv, with the right parameters # # Usage: hqe-template run_filter_filename set -o pipefail RUN_FILTER={{ swift_work_folder }}/run_filters/${1:-ci.txt} TEST_HOME={{ swift_work_folder }} export WORK_HOME={{ swift_work_folder }} VENV={{ swift_venv_folder }} TESTS_TO_SKIP_BIN="{{ swift_work_folder }}/swift-tests2skip.py" export HLM_USER={{ ardana_user }} export INVENTORY_LOCATION={{ inventory_location }} # Activate the virtual environment source ${VENV}/bin/activate pip freeze # HQA-1346 premake dir to allow for ansible parallel execution if [ ! -d ~/.ansible/cp ]; then mkdir -p ~/.ansible/cp fi # Run the test source ${WORK_HOME}/testrc echo --- TESTRC --- cat ${WORK_HOME}/testrc echo --- TESTRC --- cd $WORK_HOME echo Initializing testrepository testr init echo Running tests testr run --subunit --parallel --concurrency 0 $(python ${TESTS_TO_SKIP_BIN} ${RUN_FILTER}) | subunit-trace --no-failure-debug -f 07070100000307000081A40000000000000000000000015B730C5000000020000000000000000000000000000000000000006100000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-swift-deploy/templates/ring_specs.json.j2{{ ring_specs | to_nice_json }} 07070100000308000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000004900000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-swift-deploy/vars07070100000309000081A40000000000000000000000015B730C500000003F000000000000000000000000000000000000005400000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-swift-deploy/vars/debian.yml--- hqe_swift_pkgs: - liberasurecode-dev - liberasurecode1 0707010000030A000081A40000000000000000000000015B730C50000001CE000000000000000000000000000000000000005200000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-swift-deploy/vars/main.yml# (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC --- swift_service_name: "{{ hqe_swift.deploy.service_name }}" swift_code_folder: "{{ work_folder }}/{{ tests_git_repo }}/{{ hqe_swift.deploy.tests_folder }}" swift_work_folder: "{{ work_folder }}/{{ hqe_swift.deploy.test_suite }}" swift_subunit_output: "{{ work_folder }}/{{ hqe_swift.deploy.test_suite }}.subunit" ring_specs: "{{ hqe_group_vars.rings_specs }}" 0707010000030B000081A40000000000000000000000015B730C5000000028000000000000000000000000000000000000005200000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-swift-deploy/vars/suse.yml--- hqe_swift_pkgs: - liberasurecode1 0707010000030C000041ED0000000000000000000000055B730C5000000000000000000000000000000000000000000000004100000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-swift-run0707010000030D000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000004700000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-swift-run/tasks0707010000030E000081A40000000000000000000000015B730C50000002C4000000000000000000000000000000000000005300000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-swift-run/tasks/cleanup.yml# (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC --- # Cleanup the account used for testing - name: hqe-swift | test-resources | Delete test user keystone_v3: login_token: "{{ keystone_admin_token }}" endpoint: "{{ keystone_admin_endpoint }}/v3" action: "delete_user" user_name: "{{ demo_test_user }}" user_domain_name: "{{ demo_test_domain }}" - name: hqe-swift | test-resources | Delete test project keystone_v3: login_token: "{{ keystone_admin_token }}" endpoint: "{{ keystone_admin_endpoint }}/v3" action: "delete_project" project_name: "{{ demo_test_project }}" project_domain_name: "{{ demo_test_domain }}" 0707010000030F000081A40000000000000000000000015B730C5000000247000000000000000000000000000000000000005000000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-swift-run/tasks/main.yml# (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC --- - include: test-resources.yml vars: ansible_python_interpreter: "{{ common_venv_python }}" when: hqe_group_vars.swift_available | bool - include: ../../hqe-common/tasks/common-run.yml vars: caller_role_path: "{{ role_path }}" ansible_python_interpreter: "{{ common_venv_python }}" when: hqe_group_vars.swift_available | bool - include: cleanup.yml vars: ansible_python_interpreter: "{{ common_venv_python }}" when: hqe_group_vars.swift_available | bool 07070100000310000081A40000000000000000000000015B730C50000002B6000000000000000000000000000000000000004F00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-swift-run/tasks/run.yml# (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017-2018 SUSE LLC --- # Run the test script # # The test log shall be placed in a folder where it's picked up by the CI jobs # # Ignore erros is require to make sure the following tasks are executed # We will need to store the exit code somewhere for Jenkins to pick it up (TBD) - name: hqe-swift | run | Run the tests become: yes become_user: "{{ hqe_user }}" shell: "OS_TEST_PATH={{ swift_code_folder }} ./hqe-swift {{ run_filter_file }}" args: chdir: "{{ swift_work_folder }}" register: test_output ignore_errors: True - name: hqe-swift | run | Show test output debug: var=test_output 07070100000311000081A40000000000000000000000015B730C5000000994000000000000000000000000000000000000005A00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-swift-run/tasks/test-resources.yml# (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017-2018 SUSE LLC --- # Setup the test account used for testing - name: hqe-swift | test-resources | Create swift project keystone_v3: login_token: "{{ keystone_admin_token }}" endpoint: "{{ keystone_admin_endpoint }}/v3" action: "create_project" project_name: "{{ qaswift_test_project }}" project_domain_name: "{{ qaswift_test_domain }}" description: "Ephemeral test account" - name: hqe-swift | test-resources | Create swift user keystone_v3: login_token: "{{ keystone_admin_token }}" endpoint: "{{ keystone_admin_endpoint }}/v3" action: "create_user" user_name: "{{ qaswift_test_user }}" user_password: "{{ qaswift_test_password}}" description: "Swift account for QA" user_domain_name: "{{ qaswift_test_domain }}" - name: hqe-swift | test-resources | Grant memmber role to Swift User keystone_v3: login_token: "{{ keystone_admin_token }}" endpoint: "{{ keystone_admin_endpoint }}/v3" action: "grant_project_role" user_name: "{{ qaswift_test_user }}" project_name: "{{ qaswift_test_project }}" role_name: "{{ qaswift_test_role }}" user_domain_name: "{{ qaswift_test_domain }}" project_domain_name: "{{ qaswift_test_domain }}" - name: hqe-swift | test-resources | Grant swiftoperator role to Swift User keystone_v3: login_token: "{{ keystone_admin_token }}" endpoint: "{{ keystone_admin_endpoint }}/v3" action: "grant_project_role" user_name: "{{ qaswift_test_user }}" project_name: "{{ qaswift_test_project }}" role_name: "{{ qaswift_swift_role }}" user_domain_name: "{{ qaswift_test_domain }}" project_domain_name: "{{ qaswift_test_domain }}" - name: hqe-swift | test-resources | Grant monasca-user role to Swift user keystone_v3: login_token: "{{ keystone_admin_token }}" endpoint: "{{ keystone_admin_endpoint }}/v3" action: "grant_project_role" user_name: "{{ qaswift_test_user }}" project_name: "{{ qaswift_test_project }}" role_name: "monasca-user" user_domain_name: "{{ qaswift_test_domain }}" project_domain_name: "{{ qaswift_test_domain }}" when: hos_services.monasca_available | bool - name: hqe-swift | test-resources | Deploy the configuration file template: > src=testrc.j2 dest="{{ swift_work_folder }}/testrc" owner={{ hqe_user }} group={{ hqe_group }} mode=0600 07070100000312000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000004B00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-swift-run/templates07070100000313000081A40000000000000000000000015B730C5000000246000000000000000000000000000000000000005500000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-swift-run/templates/testrc.j2# (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC export OS_IDENTITY_API_VERSION=3 export OS_AUTH_VERION=3 export OS_BASE_AUTH_URL={{ keystone_admin_endpoint }}/v3 export OS_AUTH_URL={{ keystone_admin_endpoint }}/v3 export OS_USERNAME={{ qaswift_test_user }} export OS_PASSWORD={{ qaswift_test_password }} export OS_PROJECT_NAME={{ qaswift_test_project }} export OS_CACERT={{ ca_bundle }} export OS_ENDPOINT_TYPE=internalURL export OS_USER_DOMAIN_NAME={{ qaswift_test_domain }} export OS_PROJECT_DOMAIN_NAME={{ qaswift_test_domain }} 07070100000314000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000004600000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-swift-run/vars07070100000315000081A40000000000000000000000015B730C500000059A000000000000000000000000000000000000004F00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-swift-run/vars/main.yml# (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC --- # Filter variable must be defined in all roles to allow for # test filtering. The test filter file contains the data to # be able to filter which tests to be executed out of role, # stored in the format which is more suitable for the specific role. # Test filter files are expected under a run_filters folder. # The file name must match the tags, for it to be selected properly # when a specific test run is requested in ardana-qa-run.yml run_filter_file: ci.txt # Settings from deploy # Test account setup for testing, and clean-ed up afterwards qaswift_random_uuid: "{{ ansible_date_time.epoch | to_uuid }}" qaswift_test_user: "{{ ['hqe_swift', qaswift_random_uuid] | join('-') }}" qaswift_test_project: "{{ ['hqe_swift', qaswift_random_uuid] | join('-') }}" qaswift_test_password: "{{ ['hqe_swift', qaswift_random_uuid] | join('-') }}" qaswft_test_domain: Default qaswift_test_role: "{{ hqe_group_vars.keystone_member_role }}" qaswift_swift_role: "swiftoperator" qaswift_test_domain: "Default" # General keystone settings keystone_admin_token: "{{ hqe_token_vars.keystone_admin_token }}" keystone_admin_endpoint: "{{ osrc_vars.os_unversioned_auth_url }}" swift_code_folder: "{{ work_folder }}/{{ tests_git_repo }}/{{ hqe_swift.deploy.tests_folder }}" swift_work_folder: "{{ work_folder }}/{{ hqe_swift.deploy.test_suite }}" 07070100000316000041ED0000000000000000000000055B730C5000000000000000000000000000000000000000000000004D00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-tempest-plugin-deploy07070100000317000041ED0000000000000000000000035B730C5000000000000000000000000000000000000000000000005300000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-tempest-plugin-deploy/files07070100000318000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005F00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-tempest-plugin-deploy/files/run_filters07070100000319000081A40000000000000000000000015B730C5000000553000000000000000000000000000000000000007400000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-tempest-plugin-deploy/files/run_filters/add_plugin_tests.txt# Run all the compute tests +tempest\.api\.compute\.* # Skip the tests checking features not supported in HOS -tempest\.api\.compute\.test_networks* -tempest\.api\.compute\.test_tenant_networks* -tempest\.api\.compute\.test_versions\.TestVersions\.test_get_version_details -tempest\.api\.compute\.admin\.test_agents* -tempest\.api\.compute\.admin\.test_floating_ips_bulk* -tempest\.api\.compute\.admin\.test_networks* -tempest\.api\.compute\.admin\.test_servers_negative\.ServersAdminNegativeTestJSON\.test_migrate_non_existent_server -tempest\.api\.compute\.certificates\.test_certificates\.* -tempest\.api\.compute\.floating_ips\.test_list_floating_ips\.FloatingIPDetailsTestJSON\.test_list_floating_ip_pools -tempest\.api\.compute\.servers\.test_servers_negative\.ServersNegativeTestJSON\.test_force_delete_nonexistent_server_id -tempest\.api\.compute\.servers\.test_servers_negative\.ServersNegativeTestJSON\.test_restore_nonexistent_server_id -tempest\.api\.compute\.servers\.test_servers_negative\.ServersNegativeTestJSON\.test_restore_server_invalid_state # Run all scenario tests (skipped for now the time to debug their failures) #+tempest.scenario\.* # Add tempest plugin tests for config drive and lifecycle. +tempest_plugins\.tests\.api\.test_config_drive\.TestConfigDrive +tempest_plugins.tests.scenario.test_server_lifecycle.TestServerLifecycle 0707010000031A000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005300000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-tempest-plugin-deploy/tasks0707010000031B000081A40000000000000000000000015B730C50000003D3000000000000000000000000000000000000006100000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-tempest-plugin-deploy/tasks/configure.yml# # (c) Copyright 2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017-2018 SUSE LLC # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # --- # Configure Tempest Plugins on the target node - name: hqe-tempest-plugins | configure | Deploy run_filters become: yes become_user: root copy: src: "run_filters/add_plugin_tests.txt" dest: "{{ tempest_run_filter_folder }}/compute.txt" owner: "{{ tempest_user }}" group: "{{ tempest_group }}" mode: 0640 0707010000031C000081A40000000000000000000000015B730C5000000395000000000000000000000000000000000000005F00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-tempest-plugin-deploy/tasks/install.yml# # (c) Copyright 2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017-2018 SUSE LLC # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # --- # Install Tempest Plugins - name: hqe-tempest-plugins | install | Install tempest plugin become: yes become_user: root pip: name: "{{ work_folder }}/{{ tests_git_repo }}/{{ tempest_plugins }}" virtualenv: "{{ tempest_venv_folder }}" extra_args: '-e' 0707010000031D000081A40000000000000000000000015B730C5000000034000000000000000000000000000000000000005C00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-tempest-plugin-deploy/tasks/main.yml--- - include: install.yml - include: configure.yml 0707010000031E000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005200000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-tempest-plugin-deploy/vars0707010000031F000081A40000000000000000000000015B730C500000034C000000000000000000000000000000000000005B00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-tempest-plugin-deploy/vars/main.yml# # (c) Copyright 2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # --- tempest_run_filter_folder: "/opt/stack/tempest/run_filters" tempest_venv_folder: "/opt/stack/tempest/venv" tempest_user: tempest tempest_group: tempest tempest_plugins: ardana-qa-tests/tempest-plugins07070100000320000041ED0000000000000000000000065B730C5000000000000000000000000000000000000000000000004700000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-template-deploy07070100000321000041ED0000000000000000000000035B730C5000000000000000000000000000000000000000000000004D00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-template-deploy/files07070100000322000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005900000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-template-deploy/files/run_filters07070100000323000081A40000000000000000000000015B730C500000000C000000000000000000000000000000000000006000000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-template-deploy/files/run_filters/ci.txtget_token_v307070100000324000081A40000000000000000000000015B730C500000000C000000000000000000000000000000000000006300000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-template-deploy/files/run_filters/smoke.txtget_token_v307070100000325000081A40000000000000000000000015B730C500000000C000000000000000000000000000000000000006600000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-template-deploy/files/run_filters/tests-ci.txtget_token_v307070100000326000081A40000000000000000000000015B730C500000000C000000000000000000000000000000000000006500000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-template-deploy/files/run_filters/upgrade.txtget_token_v307070100000327000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000004D00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-template-deploy/tasks07070100000328000081A40000000000000000000000015B730C5000000183000000000000000000000000000000000000005B00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-template-deploy/tasks/configure.yml--- # Configure the demo test # The only configuration required here is the RC file with the # credentials but that can only be created after test-resources - name: hqe-template | configure | Set ownership of {{ template_work_folder}} folder file: path: "{{ template_work_folder }}" owner: "{{ hqe_user }}" group: "{{ hqe_group }}" state: directory recurse: yes 07070100000329000081A40000000000000000000000015B730C5000000185000000000000000000000000000000000000005900000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-template-deploy/tasks/install.yml--- - name: hqe-template | install | Deploy run_filters copy: > src=run_filters dest="{{ template_work_folder }}/" owner={{ hqe_user }} group={{ hqe_group }} mode=0640 - name: hqe-template | install | Deploy run script template: > src=hqe-template.j2 dest="{{ template_work_folder }}/hqe-template" owner={{ hqe_user }} group={{ hqe_group }} mode=0755 0707010000032A000081A40000000000000000000000015B730C5000000033000000000000000000000000000000000000005600000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-template-deploy/tasks/main.yml--- - include: install.yml - include: configure.yml0707010000032B000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005100000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-template-deploy/templates0707010000032C000081A40000000000000000000000015B730C50000001FD000000000000000000000000000000000000006100000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-template-deploy/templates/hqe-template.j2#!/bin/bash # Wrapper script to execute the example test # within the venv, with the right parameters # # Usage: hqe-template run_filter_filename set -o pipefail RUN_FILTER=${1:-ci.txt} TEST_HOME={{ template_code_folder }} WORK_HOME={{ template_work_folder }} VENV={{ common_venv_folder }} # Activate the virtual environment source ${VENV}/bin/activate # Run the test ${TEST_HOME}/test_get_token.bash ${WORK_HOME}/testrc $(cat ${WORK_HOME}/run_filters/${RUN_FILTER}) | tee ${WORK_HOME}/test_get_token.log0707010000032D000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000004C00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-template-deploy/vars0707010000032E000081A40000000000000000000000015B730C50000000B9000000000000000000000000000000000000005500000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-template-deploy/vars/main.yml--- template_code_folder: "{{ work_folder }}/{{ tests_git_repo }}/{{ hqe_template.deploy.tests_folder }}" template_work_folder: "{{ work_folder }}/{{ hqe_template.deploy.test_suite }}" 0707010000032F000041ED0000000000000000000000065B730C5000000000000000000000000000000000000000000000004400000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-template-run07070100000330000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000004D00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-template-run/defaults07070100000331000081A40000000000000000000000015B730C5000000004000000000000000000000000000000000000005600000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-template-run/defaults/main.yml--- 07070100000332000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000004A00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-template-run/tasks07070100000333000081A40000000000000000000000015B730C5000000267000000000000000000000000000000000000005600000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-template-run/tasks/cleanup.yml--- # Cleanup the account used for testing - name: hqe-template | test-resources | Delete test user keystone_v3: login_token: "{{ keystone_admin_token }}" endpoint: "{{ keystone_admin_endpoint }}/v3" action: "delete_user" user_name: "{{ demo_test_user }}" user_domain_name: "{{ demo_test_domain }}" - name: hqe-template | test-resources | Delete test project keystone_v3: login_token: "{{ keystone_admin_token }}" endpoint: "{{ keystone_admin_endpoint }}/v3" action: "delete_project" project_name: "{{ demo_test_project }}" project_domain_name: "{{ demo_test_domain }}"07070100000334000081A40000000000000000000000015B730C500000015B000000000000000000000000000000000000005300000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-template-run/tasks/main.yml--- - include: test-resources.yml vars: ansible_python_interpreter: "{{ common_venv_python }}" - include: ../../hqe-common/tasks/common-run.yml vars: caller_role_path: "{{ role_path }}" ansible_python_interpreter: "{{ common_venv_python }}" - include: cleanup.yml vars: ansible_python_interpreter: "{{ common_venv_python }}" 07070100000335000081A40000000000000000000000015B730C5000000221000000000000000000000000000000000000005200000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-template-run/tasks/run.yml--- # Run the test script # # The test log shall be placed in a folder where it's picked up by the CI jobs # # Ignore erros is require to make sure the following tasks are executed # We will need to store the exit code somewhere for Jenkins to pick it up (TBD) - name: hqe-template | run | Run the tests become: yes become_user: "{{ hqe_user }}" command: "{{ template_work_folder }}/hqe-template {{ run_filter_file }}" register: test_output ignore_errors: True - name: hqe-template | run | Show test output debug: var=test_output 07070100000336000081A40000000000000000000000015B730C5000000581000000000000000000000000000000000000005D00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-template-run/tasks/test-resources.yml--- # Setup the test account used for testing - name: hqe-template | test-resources | Create test project keystone_v3: login_token: "{{ keystone_admin_token }}" endpoint: "{{ keystone_admin_endpoint }}/v3" action: "create_project" project_name: "{{ demo_test_project }}" project_domain_name: "{{ demo_test_domain }}" description: "Ephemeral test account" - name: hqe-template | test-resources | Create test user keystone_v3: login_token: "{{ keystone_admin_token }}" endpoint: "{{ keystone_admin_endpoint }}/v3" action: "create_user" user_name: "{{ demo_test_user }}" user_password: "{{ demo_test_password}}" description: "Ephemeral test account" user_domain_name: "{{ demo_test_domain }}" - name: hqe-template | test-resources | Grant memmber role to Test User on Test Project keystone_v3: login_token: "{{ keystone_admin_token }}" endpoint: "{{ keystone_admin_endpoint }}/v3" action: "grant_project_role" user_name: "{{ demo_test_user }}" project_name: "{{ demo_test_project }}" role_name: "{{ demo_test_role }}" user_domain_name: "{{ demo_test_domain }}" project_domain_name: "{{ demo_test_domain }}" - name: hqe-template | test-resources | Deploy the configuration file template: > src=testrc.j2 dest="{{ template_work_folder }}/testrc" owner={{ hqe_user }} group={{ hqe_group }} mode=060007070100000337000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000004E00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-template-run/templates07070100000338000081A40000000000000000000000015B730C5000000140000000000000000000000000000000000000005800000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-template-run/templates/testrc.j2export OS_BASE_AUTH_URL={{ keystone_admin_endpoint }} export OS_USERNAME={{ demo_test_user }} export OS_PASSWORD={{ demo_test_password }} export OS_PROJECT_NAME={{ demo_test_project }} export OS_CACERT={{ ca_bundle }} export OS_USER_DOMAIN_NAME={{ demo_test_domain }} export OS_PROJECT_DOMAIN_NAME={{ demo_test_domain }}07070100000339000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000004900000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-template-run/vars0707010000033A000081A40000000000000000000000015B730C50000004F4000000000000000000000000000000000000005200000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-template-run/vars/main.yml--- # Filter variable must be defined in all roles to allow for # test filtering. The test filter file contains the data to # be able to filter which tests to be executed out of role, # stored in the format which is more suitable for the specific role. # Test filter files are expected under a run_filters folder. # The file name must match the tags, for it to be selected properly # when a specific test run is requested in ardana-qa-run.yml run_filter_file: ci.txt # Settings from deploy # Test account setup for testing, and clean-ed up afterwards demo_random_uuid: "{{ ansible_date_time.epoch | to_uuid }}" demo_test_user: "{{ ['hqe_demo', demo_random_uuid] | join('-') }}" demo_test_project: "{{ ['hqe_demo', demo_random_uuid] | join('-') }}" demo_test_password: "{{ ['hqe_demo', demo_random_uuid] | join('-') }}" demo_test_domain: Default demo_test_role: "{{ hqe_group_vars.keystone_member_role }}" # General keystone settings keystone_admin_token: "{{ hqe_token_vars.keystone_admin_token }}" keystone_admin_endpoint: "{{ osrc_vars.os_unversioned_auth_url }}" # Local Folders template_code_folder: "{{ work_folder }}/{{ tests_git_repo }}/{{ hqe_template.deploy.tests_folder }}" template_work_folder: "{{ work_folder }}/{{ hqe_template.deploy.test_suite }}" 0707010000033B000041ED0000000000000000000000065B730C5000000000000000000000000000000000000000000000004E00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-test-stress-run-deploy0707010000033C000041ED0000000000000000000000035B730C5000000000000000000000000000000000000000000000005400000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-test-stress-run-deploy/files0707010000033D000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000006000000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-test-stress-run-deploy/files/run_filters0707010000033E000081A40000000000000000000000015B730C5000000005000000000000000000000000000000000000006D00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-test-stress-run-deploy/files/run_filters/parallel.txtsmoke0707010000033F000081A40000000000000000000000015B730C5000000005000000000000000000000000000000000000007400000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-test-stress-run-deploy/files/run_filters/test-stress-run.txtsmoke07070100000340000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005400000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-test-stress-run-deploy/tasks07070100000341000081A40000000000000000000000015B730C50000000A0000000000000000000000000000000000000006200000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-test-stress-run-deploy/tasks/configure.yml--- # Configure test-stress-run # The only configuration required here is the RC file with the # credentials but that can only be created after test-resources 07070100000342000081A40000000000000000000000015B730C50000001AC000000000000000000000000000000000000006000000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-test-stress-run-deploy/tasks/install.yml--- - name: hqe-test-stress-run | install | Deploy run_filters copy: > src=run_filters dest="{{ test_stress_run_work_folder }}/" owner={{ hqe_user }} group={{ hqe_group }} mode=0640 - name: hqe-test-stress-run | install | Deploy run script template: > src=hqe-test-stress-run.j2 dest={{ test_stress_run_work_folder }}/hqe-test-stress-run owner={{ hqe_user }} group={{ hqe_group }} mode=0755 07070100000343000081A40000000000000000000000015B730C5000000033000000000000000000000000000000000000005D00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-test-stress-run-deploy/tasks/main.yml--- - include: install.yml - include: configure.yml07070100000344000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005800000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-test-stress-run-deploy/templates07070100000345000081A40000000000000000000000015B730C5000001898000000000000000000000000000000000000006F00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-test-stress-run-deploy/templates/hqe-test-stress-run.j2#!/bin/bash # Wrapper script to execute test-stress-run # within the venv, with the right parameters # # Usage: hqe-test-stress-run run_filter_filename set -o pipefail IMAGE_ID=$1 FLAVOR=$2 AZ=$3 VMUSER=$4 HTTP_PROXY=$5 LONGPING=$6 NVMS=$7 RUN_FILTER={{ test_stress_run_work_folder }}/run_filters/${8:-parallel.txt} DNSSERVER=${9:-10.1.64.20} TEST_HOME={{ test_stress_run_code_folder }} WORK_HOME={{ test_stress_run_work_folder }} VENV={{ common_venv_folder }} # Activate the virtual environment source ${VENV}/bin/activate # activate the credentials source $WORK_HOME/test_stress_run.testrc #ip2ping=$(hostname -I | awk '{print $1}') ip2ping=$DNSSERVER # Run the test KNOWN_TESTS="smoke snapshots bonnie vol_smoke vol_verif" FILTERS=$(cat $RUN_FILTER) echo "Filters = $FILTERS" echo "but over-riding ..." FILTERS=$KNOWN_TESTS failures=0 for test in $KNOWN_TESTS; do if [[ $test =~ $FILTER ]]; then if [[ $test == "smoke" ]]; then ${TEST_HOME}/test_stress_run.py NOTIME NOLOAD ONESHOT JENKINS\ BASEIMGID=$IMAGE_ID\ AZ=$AZ\ FLAVOR=$FLAVOR\ IP2PING=$ip2ping\ VMUSER=$VMUSER\ DNS=$DNSSERVER\ GUEST_HTTP_PROXY=$HTTP_PROXY\ GUEST_HTTPS_PROXY=$HTTP_PROXY\ LONGPING=$LONGPING\ NVMS=$NVMS | tee ${WORK_HOME}/test_stress_run.log failed=$? [[ $failed > 0 ]] && echo "Smoke test failed !" || echo "Smoke test passed." failures=$( expr $failures + $failed ) fi if [[ $test == "bonnie" ]]; then ${TEST_HOME}/test_stress_run.py NOTIME ONESHOT JENKINS\ TEST_CHOSEN=Bonnie\ BASEIMGID=$IMAGE_ID\ AZ=$AZ\ FLAVOR=$FLAVOR\ IP2PING=$ip2ping\ VMUSER=$VMUSER\ DNS=$DNSSERVER\ GUEST_HTTP_PROXY=$HTTP_PROXY\ GUEST_HTTPS_PROXY=$HTTP_PROXY\ LONGPING=$LONGPING\ NVMS=$NVMS | tee ${WORK_HOME}/test_stress_run.log failed=$? [[ $failed > 0 ]] && echo "Bonnie test failed !" || echo "Bonnie test passed." failures=$( expr $failures + $failed ) fi if [[ $test == "vol_smoke" ]]; then ${TEST_HOME}/test_stress_run.py NOTIME NOLOAD ONESHOT JENKINS CINDER\ DEVNAME_EXPECT=vdb\ BASEIMGID=$IMAGE_ID\ AZ=$AZ\ FLAVOR=$FLAVOR\ IP2PING=$ip2ping\ VMUSER=$VMUSER\ DNS=$DNSSERVER\ GUEST_HTTP_PROXY=$HTTP_PROXY\ GUEST_HTTPS_PROXY=$HTTP_PROXY\ LONGPING=$LONGPING\ NVMS=$NVMS | tee ${WORK_HOME}/test_stress_run.log failed=$? [[ $failed > 0 ]] && echo "vol_smoke test failed !" || echo "vol_smoke test passed." failures=$( expr $failures + $failed ) fi if [[ $test == "vol_verif" ]]; then ${TEST_HOME}/test_stress_run.py NOTIME ONESHOT JENKINS CINDER\ TEST_CHOSEN=Iozone\ DEVNAME_EXPECT=vdb\ BASEIMGID=$IMAGE_ID\ AZ=$AZ\ FLAVOR=$FLAVOR\ IP2PING=$ip2ping\ VMUSER=$VMUSER\ DNS=$DNSSERVER\ GUEST_HTTP_PROXY=$HTTP_PROXY\ GUEST_HTTPS_PROXY=$HTTP_PROXY\ LONGPING=$LONGPING\ NVMS=$NVMS | tee ${WORK_HOME}/test_stress_run.log failed=$? [[ $failed > 0 ]] && echo "vol_verif test failed !" || echo "vol_verif test passed." failures=$( expr $failures + $failed ) fi if [[ $test == "snapshots" ]]; then ${TEST_HOME}/test_stress_run.py NOTIME NOLOAD ONESHOT JENKINS SNAPSHOT FILLSNAP\ SNAPSHOT_FLAVOR=m1.small\ SNAP_AZ=$AZ\ PATIENCE=600\ BASEIMGID=$IMAGE_ID\ AZ=$AZ\ FLAVOR=$FLAVOR\ IP2PING=$ip2ping\ VMUSER=$VMUSER\ DNS=$DNSSERVER\ GUEST_HTTP_PROXY=$HTTP_PROXY\ GUEST_HTTPS_PROXY=$HTTP_PROXY\ LONGPING=$LONGPING\ NVMS=$NVMS | tee ${WORK_HOME}/test_stress_run.log failed=$? [[ $failed > 0 ]] && echo "Snapshots test failed !" || echo "Snapshots test passed." failures=$( expr $failures + $failed ) fi fi done # Make sure the return code matches the overall test result [[ $failures > 0 ]] && exit 1 || exit 0 07070100000346000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005300000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-test-stress-run-deploy/vars07070100000347000081A40000000000000000000000015B730C50000000D5000000000000000000000000000000000000005C00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-test-stress-run-deploy/vars/main.yml--- test_stress_run_code_folder: "{{ work_folder }}/{{ tests_git_repo }}/{{ hqe_test_stress_run.deploy.tests_folder }}" test_stress_run_work_folder: "{{ work_folder }}/{{ hqe_test_stress_run.deploy.test_suite }}" 07070100000348000041ED0000000000000000000000055B730C5000000000000000000000000000000000000000000000004B00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-test-stress-run-run07070100000349000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005100000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-test-stress-run-run/tasks0707010000034A000081A40000000000000000000000015B730C5000000B34000000000000000000000000000000000000005D00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-test-stress-run-run/tasks/cleanup.yml--- # Cleanup the account used for testing - name: hqe-test-stress-run | cleanup test resources | Delete any VMs ignore_errors: true environment: OS_USERNAME: "{{ test_stress_test_user }}" OS_TENANT_NAME: "{{ test_stress_test_project }}" OS_PASSWORD: "{{ test_stress_test_password }}" OS_CACERT: "{{ ca_bundle }}" OS_AUTH_URL: "{{ os_auth_url }}" shell: | "for vmid in $({{ common_venv_bin }}/nova list | grep -e ACTIVE -e ERROR -e BUILD | awk '{print $2'}); do {{ common_venv_bin }}/nova delete $vmid; done" - name: hqe-test-stress-run | cleanup test resources | wait to ensure VMs gone ignore_errors: true shell: sleep 120 - name: hqe-test-stress-run | cleanup test resources | Delete image kernel ignore_errors: true environment: OS_USERNAME: "{{ test_stress_test_user }}" OS_TENANT_NAME: "{{ test_stress_test_project }}" OS_PASSWORD: "{{ test_stress_test_password }}" OS_CACERT: "{{ ca_bundle }}" OS_AUTH_URL: "{{ os_auth_url }}" shell: "{{ common_venv_bin }}/glance image-delete {{ test_stress_test_image_kernel_id.stdout }}" register: result until: result.rc == 0 retries: 5 delay: 10 - name: hqe-test-stress-run | cleanup test resources | Delete image ignore_errors: true environment: OS_USERNAME: "{{ test_stress_test_user }}" OS_TENANT_NAME: "{{ test_stress_test_project }}" OS_PASSWORD: "{{ test_stress_test_password }}" OS_CACERT: "{{ ca_bundle }}" OS_AUTH_URL: "{{ os_auth_url }}" shell: "{{ common_venv_bin }}/glance image-delete {{ test_stress_test_image_id.stdout }}" register: result until: result.rc == 0 retries: 5 delay: 10 - name: hqe-test-stress-run | cleanup test resources | Delete router ignore_errors: true environment: OS_USERNAME: "{{ test_stress_test_user }}" OS_TENANT_NAME: "{{ test_stress_test_project }}" OS_PASSWORD: "{{ test_stress_test_password }}" OS_CACERT: "{{ ca_bundle }}" OS_AUTH_URL: "{{ os_auth_url }}" shell: "{{ common_venv_bin }}/neutron router-delete {{ test_stress_test_router }}" register: result until: result.rc == 0 retries: 5 delay: 10 - name: hqe-test_stress_run | cleanup test resources | delete test user environment: OS_USERNAME: admin OS_TENANT_NAME: admin OS_PASSWORD: "{{ os_admin_password }}" OS_CACERT: "{{ ca_bundle }}" OS_AUTH_URL: "{{ os_auth_url }}" shell: "{{ common_venv_bin }}/openstack user delete {{ test_stress_test_user }}" - name: hqe-test_stress_run | cleanup test resources | delete test project environment: OS_USERNAME: admin OS_TENANT_NAME: admin OS_PASSWORD: "{{ os_admin_password }}" OS_CACERT: "{{ ca_bundle }}" OS_AUTH_URL: "{{ os_auth_url }}" shell: "{{ common_venv_bin }}/openstack project delete {{ test_stress_test_project }}" 0707010000034B000081A40000000000000000000000015B730C500000015B000000000000000000000000000000000000005A00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-test-stress-run-run/tasks/main.yml--- - include: test-resources.yml vars: ansible_python_interpreter: "{{ common_venv_python }}" - include: ../../hqe-common/tasks/common-run.yml vars: caller_role_path: "{{ role_path }}" ansible_python_interpreter: "{{ common_venv_python }}" - include: cleanup.yml vars: ansible_python_interpreter: "{{ common_venv_python }}" 0707010000034C000081A40000000000000000000000015B730C5000000330000000000000000000000000000000000000005900000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-test-stress-run-run/tasks/run.yml--- # Run the test script # # The test log shall be placed in a folder where it's picked up by the CI jobs # # Ignore errors is require to make sure the following tasks are executed # We will need to store the exit code somewhere for Jenkins to pick it up (TBD) - name: hqe-test-stress-run | run | Run the tests become: yes become_user: "{{ hqe_user }}" command: "{{ test_stress_run_work_folder }}/hqe-test-stress-run {{ test_stress_test_image_id.stdout }} {{ test_stress_test_flavor }} {{ test_stress_test_az }} {{ test_stress_test_vmuser}} {{ test_stress_test_http_proxy }} {{ test_stress_test_longping }} {{ test_stress_test_nvms }} {{ run_filter_file }} {{ tsr_dns_server_ip }}" register: test_output ignore_errors: True - name: hqe-test-stress-run | run | Show test output debug: var=test_output 0707010000034D000081A40000000000000000000000015B730C5000001E85000000000000000000000000000000000000006400000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-test-stress-run-run/tasks/test-resources.yml--- # Setup the test account used for testing - name: hqe-test_stress_run | test-resources | get auth_url args: executable: /bin/bash shell: | source "{{ osrc_vars.service_osrc_path }}" "{{ common_venv_bin }}/openstack" catalog show keystone | awk '/public/ {print $4}' register: os_auth_url_raw - name: hqe-test_stress_run | test-resources | set os_auth_url set_fact: os_auth_url: "{{ os_auth_url_raw.stdout }}" - name: hqe-test_stress_run | test-resources | get admin password shell: | awk -F '=' '/OS_PASSWORD/ {print $2}' < "{{ osrc_vars.service_osrc_path }}" register: os_admin_password_raw - name: hqe-test_stress_run | test-resources | set os_password value set_fact: os_admin_password: "{{ os_admin_password_raw.stdout }}" - name: hqe-test_stress_run | test-resources | create test project args: executable: /bin/bash shell: | source "{{ osrc_vars.keystone_osrc_path }}" "{{ common_venv_bin }}/openstack" project create "{{ test_stress_test_project }}" register: project_create_output ignore_errors: true - name: hqe-test_stress_run | test-resources | create test project debug debug: var=project_create_output - name: hqe-test_stress_run | test-resources | create test user args: executable: /bin/bash shell: | source "{{ osrc_vars.keystone_osrc_path }}" "{{ common_venv_bin }}/openstack" user create --password "{{ test_stress_test_password }}" --project "{{ test_stress_test_project }}" "{{ test_stress_test_user }}" register: user_create_output ignore_errors: true - name: hqe-test_stress_run | test-resources | create user debug debug: var=user_create_output - name: hqe-test_stress_run | test-resources | show project exists args: executable: /bin/bash shell: | source "{{ osrc_vars.keystone_osrc_path }}" "{{ common_venv_bin }}/openstack" project list | grep test_stress_run register: project_list_output - name: hqe-test_stress_run | test-resources | show project exists debug debug: var=project_list_output - name: hqe-test_stress_run | test-resources | add roles args: executable: /bin/bash shell: | source "{{ osrc_vars.keystone_osrc_path }}" "{{ common_venv_bin }}/openstack" role add --project "{{ test_stress_test_project }}" --user "{{ test_stress_test_user }}" Member "{{ common_venv_bin }}/openstack" role add --project "{{ test_stress_test_project }}" --user "{{ test_stress_test_user }}" _member_ "{{ common_venv_bin }}/openstack" role add --project "{{ test_stress_test_project }}" --user "{{ test_stress_test_user }}" swiftoperator register: role_add_output ignore_errors: true - name: hqe-test_stress_run | test-resources | add role output debug: var=role_add_output - name: hqe-test_stress_run | test-resources | Deploy the creds file template: > src=testrc.j2 dest="{{ test_stress_run_work_folder }}/test_stress_run.testrc" owner={{ hqe_user }} group={{ hqe_group }} mode=0600 - name: hqe-test_stress_run | test-resources | capture creds shell: cat "{{ test_stress_run_work_folder }}/test_stress_run.testrc" register: test_stress_creds_output - name: hqe-test_stress_run | test-resources | show creds debug: var=test_stress_creds_output # test requires the following items - name: hqe-test_stress_run | test-resources | Create router ignore_errors: true environment: OS_USERNAME: "{{ test_stress_test_user }}" OS_TENANT_NAME: "{{ test_stress_test_project }}" OS_PASSWORD: "{{ test_stress_test_password }}" OS_CACERT: "{{ ca_bundle }}" OS_AUTH_URL: "{{ os_auth_url }}" shell: "{{ common_venv_bin }}/neutron router-create {{ test_stress_test_router }}" - name: hqe-test_stress_run | test-resources | Connect router to ext-net ignore_errors: true environment: OS_USERNAME: "{{ test_stress_test_user }}" OS_TENANT_NAME: "{{ test_stress_test_project }}" OS_PASSWORD: "{{ test_stress_test_password }}" OS_CACERT: "{{ ca_bundle }}" OS_AUTH_URL: "{{ os_auth_url }}" shell: "{{ common_venv_bin }}/neutron router-gateway-set {{ test_stress_test_router }} {{ test_stress_test_ext_net }}" - name: hqe-test_stress_run | test-resources | Get tarball name ignore_errors: true shell: basename {{ test_stress_test_test_stress_run_image_url }} register: image_tarball_name - name: hqe-test_stress_run | test-resources | Get tarball name - debug debug: var=image_tarball_name # NOTE(andreaf) Certs validation: https://github.com/ansible/ansible/issues/12549 - name: hqe-test_stress_run | test-resources | Get image tarball environment: http_proxy: "{{ test_stress_test_http_proxy }}" get_url: url: "{{ test_stress_test_test_stress_run_image_url }}" dest: "{{ test_stress_run_work_folder }}/{{ image_tarball_name.stdout }}" mode: 0644 validate_certs: no register: get_image_tarball_log - name: hqe_test_stress_run | test-resources | show tarball get debug: var=get_image_tarball_log - name: hqe_test_stress_run | test-resources | Get image name ignore_errors: true shell: basename {{ test_stress_test_test_stress_run_image_url }} '.tar.gz' register: test_stress_test_image_name - name: hqe-test_stress_run | test-resources | Get image name - debug debug: var=test_stress_test_image_name - name: hqe-test_stress_run | test-resources | Extract tarball ignore_errors: true unarchive: src: "{{ test_stress_run_work_folder }}/{{ image_tarball_name.stdout }}" dest: "{{ test_stress_run_work_folder }}/" - name: hqe-test_stress_run | test-resources | Get kernel name ignore_errors: true shell: ls | grep vmlinuz args: chdir: "{{ test_stress_run_work_folder }}" register: test_stress_run_kernel - name: hqe-test_stress_run | test-resources | Upload kernel to Glance ignore_errors: true environment: OS_USERNAME: "{{ test_stress_test_user }}" OS_TENANT_NAME: "{{ test_stress_test_project }}" OS_PASSWORD: "{{ test_stress_test_password }}" OS_CACERT: "{{ ca_bundle }}" OS_AUTH_URL: "{{ os_auth_url }}" shell: "{{ common_venv_bin }}/glance image-create --name {{ test_stress_run_kernel.stdout }} --container-format aki --disk-format aki --file {{ test_stress_run_work_folder }}/{{ test_stress_run_kernel.stdout }} | awk '/ id / {print $4}'" register: test_stress_test_image_kernel_id - name: hqe-test_stress_run | test-resources | Debug check on test_stress_test_image_kernel_id debug: var=test_stress_test_image_kernel_id - name: hqe-test_stress_run | test-resources | Upload image to Glance ignore_errors: true environment: OS_USERNAME: "{{ test_stress_test_user }}" OS_TENANT_NAME: "{{ test_stress_test_project }}" OS_PASSWORD: "{{ test_stress_test_password }}" OS_CACERT: "{{ ca_bundle }}" OS_AUTH_URL: "{{ os_auth_url }}" shell: "{{ common_venv_bin }}/glance image-create --name {{ test_stress_test_image_name.stdout }} --container-format ami --disk-format ami --property kernel_id={{ test_stress_test_image_kernel_id.stdout }} --file {{ test_stress_run_work_folder }}/{{ [ test_stress_test_image_name.stdout, 'img' ] | join('.') }}" # the run script picks up the image id via similar logic - name: hqe-test_stress_run | test-resources | Verify image exists ignore_errors: true environment: OS_USERNAME: "{{ test_stress_test_user }}" OS_TENANT_NAME: "{{ test_stress_test_project }}" OS_PASSWORD: "{{ test_stress_test_password }}" OS_CACERT: "{{ ca_bundle }}" OS_AUTH_URL: "{{ os_auth_url }}" shell: "{{ common_venv_bin }}/nova image-list | grep {{ test_stress_test_image_pattern }} | head -1 | awk '{print $2}'" register: test_stress_test_image_id - name: hqe-test_stress_run | test-resources | Verify image exists - debug debug: var=test_stress_test_image_id 0707010000034E000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005500000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-test-stress-run-run/templates0707010000034F000081A40000000000000000000000015B730C50000000F5000000000000000000000000000000000000005F00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-test-stress-run-run/templates/testrc.j2export OS_USERNAME={{ test_stress_test_user }} export OS_TENANT_NAME={{ test_stress_test_project }} export OS_PASSWORD={{ test_stress_test_password }} export OS_AUTH_URL={{ os_auth_url }} export OS_NO_CACHE=True export OS_CACERT={{ ca_bundle }} 07070100000350000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005000000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-test-stress-run-run/vars07070100000351000081A40000000000000000000000015B730C5000000839000000000000000000000000000000000000005900000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/roles/hqe-test-stress-run-run/vars/main.yml--- # Filter variable must be defined in all roles to allow for # test filtering. The test filter file contains the data to # be able to filter which tests to be executed out of role, # stored in the format which is more suitable for the specific role. # Test filter files are expected under a run_filters folder. # The file name must match the tags, for it to be selected properly # when a specific test run is requested in ardana-qa-run.yml run_filter_file: parallel.txt # Settings from deploy # Test account setup for testing, and clean-ed up afterwards test_stress_random_uuid: "{{ ansible_date_time.epoch | to_uuid }}" test_stress_random_id: "{{ ['hqe_test_stress_run', test_stress_random_uuid] | join('-') }}" test_stress_test_user: "{{ test_stress_random_id }}" test_stress_test_project: "{{ test_stress_random_id }}" test_stress_test_password: "{{ test_stress_random_id }}" test_stress_test_domain: Default test_stress_test_role: "{{ hqe_group_vars.keystone_member_role }}" # test resources test_stress_test_router: "{{ test_stress_random_id }}" test_stress_test_network: "{{ test_stress_random_id }}" test_stress_test_subnet: "{{ test_stress_random_id }}" test_stress_test_cidr: "192.168.1.0/24" test_stress_test_keyname: "{{ test_stress_random_id }}" test_stress_test_key_file: "{{ [test_stress_test_keyname, 'pem'] | join('.') }}" # test suite parameters test_stress_test_az: "nova" test_stress_test_flavor: "m1.small" test_stress_test_nvms: 4 test_stress_test_image_pattern: "trusty-server" test_stress_test_vmuser: "ubuntu" test_stress_test_longping: 16 test_stress_test_ext_net: "{{ hqe_group_vars.test_region_ext_net }}" test_stress_test_test_stress_run_image_url: "http://cloud-images.ubuntu.com/trusty/current/trusty-server-cloudimg-amd64.tar.gz" test_stress_test_http_proxy: "http://proxy.houston.hpecorp.net:8080" tsr_dns_server_ip: "10.1.64.20" auth_tail: ":5000/v2.0" test_stress_run_code_folder: "{{ work_folder }}/{{ tests_git_repo }}/{{ hqe_test_stress_run.deploy.tests_folder }}" test_stress_run_work_folder: "{{ work_folder }}/{{ hqe_test_stress_run.deploy.test_suite }}" 07070100000352000081A40000000000000000000000015B730C5000000017000000000000000000000000000000000000004300000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/test-requirements.txtansible python-subunit 07070100000353000041ED0000000000000000000000035B730C5000000000000000000000000000000000000000000000003300000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/tests07070100000354000041ED0000000000000000000000035B730C5000000000000000000000000000000000000000000000003B00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/tests/library07070100000355000041ED0000000000000000000000035B730C5000000000000000000000000000000000000000000000004100000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/tests/library/roles07070100000356000041ED0000000000000000000000035B730C5000000000000000000000000000000000000000000000004E00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/tests/library/roles/test_tracker07070100000357000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000005400000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/tests/library/roles/test_tracker/tasks07070100000358000081A40000000000000000000000015B730C5000000073000000000000000000000000000000000000005D00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/tests/library/roles/test_tracker/tasks/main.yml--- - include: test_dependencies.yml - include: test_name.yml - include: test_output.yml - include: test_status.yml07070100000359000081A40000000000000000000000015B730C5000000264000000000000000000000000000000000000006A00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/tests/library/roles/test_tracker/tasks/test_dependencies.yml--- # Test behaviour with missing / present dependencies - name: dependencies | cleanup existing virtual environment pip: name: python-subunit state: absent ignore_errors: yes - name: dependencies | test module fails test_tracker: name: no-subunit output: no-subunit register: test_result failed_when: "'Could not import subunit' not in test_result.msg" - name: dependencies | Add subunit to the virtual environment pip: name: python-subunit state: latest - name: setup | test module succeeds test_tracker: name: subunit output: /dev/null register: test_result0707010000035A000081A40000000000000000000000015B730C50000003E4000000000000000000000000000000000000006200000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/tests/library/roles/test_tracker/tasks/test_name.yml--- # Test the name and run_filter parameters of the module - name: name | test name is mandatory test_tracker: run_filter: foo output: foo register: test_result failed_when: "'missing required arguments: name' not in test_result.msg" - name: name | test name in subunit test_tracker: name: "test_name_123" output: test.subunit - name: name | test name in subunit | verify shell: subunit-ls test.subunit | grep -c test_name_123 register: test_result failed_when: test_result.stdout != "1" - name: name | cleanup file: path: test.subunit state: absent - name: run_filter | test run_filter in subunit test_tracker: name: "test_name_123" run_filter: ci output: test.subunit - name: run_filter | test run_filter in subunit | verify shell: subunit-ls test.subunit | grep -c 'test_name_123\[ci\]' register: test_result failed_when: test_result.stdout != "1" - name: run_filter | cleanup file: path: test.subunit state: absent0707010000035B000081A40000000000000000000000015B730C5000000752000000000000000000000000000000000000006400000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/tests/library/roles/test_tracker/tasks/test_output.yml--- # Test the output parameter of the module - name: output | test output is mandatory test_tracker: name: foo register: test_result failed_when: "'missing required arguments: output' not in test_result.msg" - name: output | test output file exists test_tracker: name: "incomplete" output: test.subunit - name: output | test output file exists | verify shell: subunit-ls test.subunit | grep -c incomplete register: test_result failed_when: test_result.stdout != "1" - name: output | test output file exists | cleanup file: path: test.subunit state: absent - name: output | test multiple packets one test | start test_tracker: name: complete output: test.subunit - name: output | test multiple packets one test | end test_tracker: name: complete output: test.subunit status: success - name: output | test multiple packets one test | verify shell: subunit-ls --times test.subunit register: test_result | grep -c complete failed_when: test_result.stdout != "1" - name: output | test multiple packets one test | cleanup file: path: test.subunit state: absent - name: output | test multiple tests | start test_tracker: name: multiple1 output: test.subunit - name: output | test multiple tests | end test_tracker: name: multiple1 output: test.subunit status: skip - name: output | test multiple tests | start test_tracker: name: multiple2 output: test.subunit - name: output | test multiple tests | end test_tracker: name: multiple2 output: test.subunit status: fail - name: output | test multiple tests | verify shell: subunit-ls --times test.subunit | egrep -c '^multiple[12]' register: test_result failed_when: test_result.stdout != "2" - name: output | test multiple tests | cleanup file: path: test.subunit state: absent0707010000035C000081A40000000000000000000000015B730C5000000A14000000000000000000000000000000000000006400000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/tests/library/roles/test_tracker/tasks/test_status.yml--- # Test the status and status_rc parameters of the module - name: status | test invalid value test_tracker: name: status status: foo output: somewhere register: test_result failed_when: "'value of status must be one of:' not in test_result.msg" - name: status-rc | test invalid value type test_tracker: name: status_rc status_rc: foo output: somewhere register: test_result failed_when: "'ValueError: invalid literal for int() with base 10' not in test_result.msg" - name: status, status_rc | incompatible parameters test_tracker: name: status_status status: success status_rc: 0 output: somewhere register: test_result failed_when: "'Both status=success and status_rc=0 have been specified' not in test_result.msg" - name: status_rc | zero is success test_tracker: name: success status_rc: 0 output: test.subunit - name: status_rc | zero is success | verify shell: subunit-filter -s test.subunit | subunit-ls | grep -c success register: test_result failed_when: test_result.stdout != "1" - name: status_rc | zero is success | cleanup file: path: test.subunit state: absent - name: status_rc | one is failure test_tracker: name: failure status_rc: 1 output: test.subunit - name: status_rc | one is failure | verify shell: subunit-filter -s test.subunit | subunit-ls | grep -c failure register: test_result failed_when: test_result.stdout != "1" - name: status_rc | one is failure | cleanup file: path: test.subunit state: absent - name: status_rc | test all final statuses | success test_tracker: name: all_success status: success output: test.subunit - name: status_rc | test all final statuses | fail test_tracker: name: all_fail status: fail output: test.subunit - name: status_rc | test all final statuses | xfail test_tracker: name: all_xfail status: xfail output: test.subunit - name: status_rc | test all final statuses | uxsuccess test_tracker: name: all_uxsuccess status: uxsuccess output: test.subunit - name: status_rc | test all final statuses | skip test_tracker: name: all_skip status: skip output: test.subunit - name: status_rc | test all final statuses | verify shell: subunit2pyunit test.subunit 2>&1 | egrep '^all.*\.\.\.' | awk '{ print $3 }' | tr '\n' '|' register: test_result failed_when: test_result.stdout != "ok|FAIL|expected|unexpected|skipped|" - name: status_rc | one is failure | cleanup file: path: test.subunit state: absent 0707010000035D000081A40000000000000000000000015B730C5000000170000000000000000000000000000000000000004C00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/tests/library/test_tracker.yml--- # This is a playbook to test the test_tracker module. # # The playbook can only be executed locally, and it relies on an # existing virtual environment # # Usage: # ansible-playbook -c local -i hosts/localhost test_tracker.yml -M ../../library -e 'ansible_python_interpreter=[venv]/bin/python' - hosts: localhost roles: - { role: test_tracker, tags: test }0707010000035E000041ED0000000000000000000000035B730C5000000000000000000000000000000000000000000000003300000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/tools0707010000035F000041ED0000000000000000000000025B730C5000000000000000000000000000000000000000000000003700000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/tools/bin07070100000360000081ED0000000000000000000000015B730C5000000761000000000000000000000000000000000000004D00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/tools/bin/get_tags_runfilter.sh#!/bin/bash # # Called by CI to get the TAGS and RUN_FILTER to be used # along with test-artefacts # This script generates a properties file that need to # be injected into the jenkins environment to be used # in the build steps that follow set -eu set -o pipefail set -x SCRIPT_DIR=$(readlink -e $(dirname $0)) source ${SCRIPT_DIR}/libcommon.sh run_ci=0 # Get the common file set find $HQE_ANSIBLE_ROOT -maxdepth 1 -type f | grep -Ev "README" > common_fileset.txt find $HQE_ANSIBLE_ROOT/roles -type f | grep hqe-common >> common_fileset.txt # Get the change set change_set=`git show --pretty=format: --name-only HEAD^..HEAD | grep -v '^$' | grep -Ev "tools|\.git|README"` # If there are changes to common files run the minimal tests of all test suites for file in $change_set; do if grep -q -F $file common_fileset.txt; then run_ci=1 break fi done # Select all lines starting with 'roles/'. Remove prefix and suffix to get # the test suite names that are modified. 'Common' will trigger template # because it's not a valid tag, but it must still be executed if it's alone TEST_SUITES=`git show --pretty=format: --name-only HEAD^..HEAD | \ grep -E '^roles/' | cut -f 2 -d "/" | sed -e \ '/^$/d;s/^hqe-//;s/-deploy$//;s/-run$//' | \ sed -e 's/common/template/' | sort -u | tr '\n' ',' | \ sed -e 's/,$//'` # Create the properties file to be injected into Jenkins environment if [[ $run_ci == 1 ]]; then echo "TAGS=\"ci,$TEST_SUITES\"">${WORKSPACE:-$PWD}/test_filters.properties echo "RUNFILTER=ci">>${WORKSPACE:-$PWD}/test_filters.properties else if [[ -z "$TEST_SUITES" ]]; then TEST_SUITES="ci" fi echo "TAGS=\"$TEST_SUITES\"">${WORKSPACE:-$PWD}/test_filters.properties echo "RUNFILTER=tests-ci">>${WORKSPACE:-$PWD}/test_filters.properties fi rm -rf common_fileset.txt 07070100000361000081A40000000000000000000000015B730C5000000179000000000000000000000000000000000000004400000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/tools/bin/libcommon.shHQE_ANSIBLE_TOOLS=$(cd $(dirname ${BASH_SOURCE[0]})/.. ; pwd) HQE_ANSIBLE_ROOT=$(cd $(dirname ${BASH_SOURCE[0]})/../.. ; pwd) export PYTHONUNBUFFERED=1 export GOZER_GIT_MIRROR=${GOZER_GIT_MIRROR:-http://git.suse.provo.cloud/cgit} export PYPI_BASE_HOST=${PYPI_BASE_HOST:-pypi.suse.provo.cloud} export PYPI_MIRROR_URL=${PYPI_MIRROR_URL:-http://$PYPI_BASE_HOST/openstack/latest} 07070100000362000081ED0000000000000000000000015B730C50000004F6000000000000000000000000000000000000004B00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/tools/bin/role_scaffolding.sh#!/bin/bash # # Called by test script developers to create # ardana-qa-ansible roles for their test suites. # Please note that this script only builds the # skeleton for the ansible role. The generated # role needs to be fixed by the tester to get it # working. # set -eu set -o pipefail set -x if [ "$#" -ne 1 ]; then echo "Usage: `basename "$0"` rolename" exit 1 fi SCRIPT_DIR=$(readlink -e $(dirname $0)) source ${SCRIPT_DIR}/libcommon.sh VENV=$HQE_ANSIBLE_TOOLS/tools/venvs/ansible # Setup venv mkdir -p $VENV virtualenv --no-site-packages $VENV $VENV/bin/pip install --trusted-host $PYPI_BASE_HOST --index-url=$PYPI_MIRROR_URL ansible==1.9.2 set +u source $VENV/bin/activate set -u if [[ ! -e "$HQE_ANSIBLE_ROOT" ]]; then HQE_ANSIBLE_ROOT="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" fi ansible-galaxy init "hqe-$1-deploy" --offline --force -p $HQE_ANSIBLE_ROOT/roles ansible-galaxy init "hqe-$1-run" --offline --force -p $HQE_ANSIBLE_ROOT/roles rm -rf $HQE_ANSIBLE_ROOT/roles/*$1*/README.md rm -rf $HQE_ANSIBLE_ROOT/roles/*$1*/meta rm -rf $HQE_ANSIBLE_ROOT/roles/*$1*/handlers cd $HQE_ANSIBLE_ROOT ansible-playbook -c local -i hosts/default_hosts ardana-qa-role-scaffolding.yml -e role_name="$1" -e role_dest="$HQE_ANSIBLE_ROOT/roles" 07070100000363000081A40000000000000000000000015B730C500000146B000000000000000000000000000000000000003B00000000ardana-qa-ansible-8.0+git.1534266448.a583ec9/user_guide.mdHelion OpenStack QA Ansible User Guide ====================================== Deployment Structure -------------------- The tests deployment architecture is made of a few different functions, which can be mapped to one or more separate machines. Functions are: 1. ansible runner 2. test driver 3. HLM deployer Connection matrix between functions: - ansible runner -- ssh(22) --> test driver (deploy tests and data, run tests) - ansible runner -- ssh(22) --> HLM deployer (to pull HLM data) - test-driver -- cloud ports --> Cloud VIP (for API calls) - test-driver -- ssh(22) --> HLM deployer, cloud nodes (for tests which require access to the cloud nodes for logs, data or so) ### The ansible runner The ansible runner (1) is the node where ansible is executed to trigger deployment and/or execution of tests. In many configurations this runs on the `deployer`, i.e. the node where HLM `deployer` is. This is convenient because the ansible playbooks for HLM are executed from there. For development and testing purposes, it is convenient to have the ansible runner on the laptop or workstation where the code (ansible or tests) is being developed. ### The test driver The test driver (2) is the node where the tests are executed and log files and test results written. The test driver provides a certain amount of isolation, as it is executed with a dedicated OS user, and any file needed and produced by it, is written under a common root folder. In some configuration this runs on the `deployer`, as the `deployer` has the required connectivity to all the cloud nodes. In CI the `deployer` is limited to the internal endpoints, so there is value in using a dedicated test driver where public and admin endpoints can be resolved. NOTE(andreaf): Currently it is not possible to separate the ansible runner and test driver functions into two separate hosts, because of limitations in the ansible framework and roles. Work is in progress to remove that limitation. ### The HLM deployer The HLM deployer (3) is used by tests has it hosts the deployment input data, root credentials as well as some ansible modules which are also used by tests. Tests targeting HLM itself also require access to the deployer to drive HLM from there. Tests Lifecycle --------------- The first steps required to run the tests are: - Identify which host will run which function. The simplest setup is the "all-in-one" where all functions run on the `deployer`. Sudo access is required on the test driver to create a new account and its home folder. - Implement the connection matrix. This involves network connectivity as well as passwordless ssh for ansible, and entries in /etc/hosts on the test driver to resolve names of cloud hosts and endpoints in the catalogue. - Provision ardana-qa-ansible on the ansible runner From that point on everything is automated via ansible. Three root operations are available: 1. pre-deploy 2. deploy 3. run ### Pre-deploy Pre-deploy targets the anisble runner and the test driver and completes their setup, by creating a new OS user and its home on the test driver, pulling the required data on the test driver and extra modules from the `deployer` on the ansible runner. Pre-deploy only needs to run once per target cloud. It requires re-running only if: - the target cloud is re-deployed or re-configured - we want our tests to target a different cloud It is possible to target different clouds from the same ansible runner, but its not recommended to do that at once from the same ansible folder, as there may be conflicts between the data pulled from different `deployers`. NOTE(andreaf) we may remove this limitation in future by using isolated library folders, each dedicated to a target cloud. ### Deploy Deploy targets the test driver. It prepares the ground for test execution by deploying required code and data in the work space on the test driver, installing dependencies, setting up virtual environments. Pre-deploy only needs to run once per target cloud. Re-running can be used to update the test driver the tests (or the ansible code in this repo) are modified. ### Run Deploy targets the test driver. It prepares for test execution by provisioning any required test resources, and it runs the tests and in finally cleans up the provisioned test resources. Run generates test results and log files on the test driver which can be collected and ingested in other systems for reporting and analysis. Inputs and folders ------------------ The framework exposes a few inputs that can be used to setup things differently depending on the target hosts and their setup. - The user provisioned on the test driver is `hqe_user`:`hqe_group`. - The user home == work folder is in `work_folder` in deploy and run, `hqe_home` in pre-deploy. - The ansible and test code are pre-cloned in `code_folder`. - The python virtual environments are deployed under `venv_folder_root`. - The user used by HLM on the `deployer` is `ardana_user`. - The home of `ardana_user` is `ardana_home_folder` or `$HOME` for `ardana_user@deployer`. - The name of the sudo group on the deployer is `test_driver_sudo_group` in pre-deploy (not needed elsewhere). 07070100000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000B00000000TRAILER!!!1491 blocks
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor