Inital commit
This commit is contained in:
commit
1e6d9b3a46
65
.gitignore
vendored
Normal file
65
.gitignore
vendored
Normal file
@ -0,0 +1,65 @@
|
||||
# Compiled source #
|
||||
###################
|
||||
*.com
|
||||
*.class
|
||||
*.dll
|
||||
*.exe
|
||||
*.o
|
||||
*.so
|
||||
*.pyc
|
||||
build/
|
||||
dist/
|
||||
doc/build/
|
||||
|
||||
# Packages #
|
||||
############
|
||||
# it's better to unpack these files and commit the raw source
|
||||
# git has its own built in compression methods
|
||||
*.7z
|
||||
*.dmg
|
||||
*.gz
|
||||
*.iso
|
||||
*.jar
|
||||
*.rar
|
||||
*.tar
|
||||
*.zip
|
||||
|
||||
# Logs and databases #
|
||||
######################
|
||||
*.log
|
||||
*.sql
|
||||
*.sqlite
|
||||
|
||||
# OS generated files #
|
||||
######################
|
||||
.DS_Store
|
||||
.DS_Store?
|
||||
._*
|
||||
.Spotlight-V100
|
||||
.Trashes
|
||||
.idea
|
||||
.tox
|
||||
*.sublime*
|
||||
*.egg-info
|
||||
Icon?
|
||||
ehthumbs.db
|
||||
Thumbs.db
|
||||
.eggs
|
||||
|
||||
# User driven backup files #
|
||||
############################
|
||||
*.bak
|
||||
|
||||
# Generated by pbr while building docs
|
||||
######################################
|
||||
AUTHORS
|
||||
ChangeLog
|
||||
|
||||
# Files created by releasenotes build
|
||||
releasenotes/build
|
||||
|
||||
# Test temp files
|
||||
tests/plugins
|
||||
|
||||
# Vagrant testing artifacts
|
||||
.vagrant
|
4
.gitreview
Normal file
4
.gitreview
Normal file
@ -0,0 +1,4 @@
|
||||
[gerrit]
|
||||
host=review.openstack.org
|
||||
port=29418
|
||||
project=openstack/openstack-ansible-os_rally.git
|
120
CONTRIBUTING.rst
Normal file
120
CONTRIBUTING.rst
Normal file
@ -0,0 +1,120 @@
|
||||
OpenStack-Ansible Rally
|
||||
#######################
|
||||
:tags: openstack, rally, cloud, ansible
|
||||
:category: \*nix
|
||||
|
||||
Contributor Guidelines
|
||||
^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
Filing Bugs
|
||||
-----------
|
||||
|
||||
Bugs should be filed on Launchpad, not GitHub:
|
||||
"https://bugs.launchpad.net/openstack-ansible"
|
||||
|
||||
|
||||
When submitting a bug, or working on a bug, please ensure the following
|
||||
criteria are met:
|
||||
* The description clearly states or describes the original problem or root
|
||||
cause of the problem.
|
||||
* Include historical information on how the problem was identified.
|
||||
* Any relevant logs are included.
|
||||
* The provided information should be totally self-contained. External
|
||||
access to web services/sites should not be needed.
|
||||
* Steps to reproduce the problem if possible.
|
||||
|
||||
|
||||
Submitting Code
|
||||
---------------
|
||||
|
||||
Changes to the project should be submitted for review via the Gerrit tool,
|
||||
following the workflow documented at:
|
||||
"http://docs.openstack.org/infra/manual/developers.html#development-workflow"
|
||||
|
||||
Pull requests submitted through GitHub will be ignored and closed without
|
||||
regard.
|
||||
|
||||
If you wish to test your changes locally prior to submitting them for review
|
||||
you can use the ``Vagrantfile`` included in the root of this repository. It
|
||||
aims to replicate the gate check testing that will be done by OpenStack CI
|
||||
once your review has been submitted.
|
||||
|
||||
To run tests:
|
||||
|
||||
.. code-block:: shell-session
|
||||
|
||||
# vagrant up
|
||||
|
||||
The Vagrant box will run all tests and report status in the output. If you
|
||||
need to iterate through a fix/test cycle, tests can be re-run in a running
|
||||
Vagrant box with:
|
||||
|
||||
.. code-block:: shell-session
|
||||
|
||||
# vagrant provision
|
||||
|
||||
|
||||
Extra
|
||||
-----
|
||||
|
||||
Tags:
|
||||
If it's a bug that needs fixing in a branch in addition to Master, add a
|
||||
'\<release\>-backport-potential' tag (eg ``juno-backport-potential``).
|
||||
There are predefined tags that will autocomplete.
|
||||
|
||||
Status:
|
||||
Please leave this alone, it should be New till someone triages the issue.
|
||||
|
||||
Importance:
|
||||
Should only be touched if it is a Blocker/Gating issue. If it is, please
|
||||
set to High, and only use Critical if you have found a bug that can take
|
||||
down whole infrastructures.
|
||||
|
||||
|
||||
Style guide
|
||||
-----------
|
||||
|
||||
When creating tasks and other roles for use in Ansible please create then
|
||||
using the YAML dictionary format.
|
||||
|
||||
Example YAML dictionary format:
|
||||
.. code-block:: yaml
|
||||
|
||||
- name: The name of the tasks
|
||||
module_name:
|
||||
thing1: "some-stuff"
|
||||
thing2: "some-other-stuff"
|
||||
tags:
|
||||
- some-tag
|
||||
- some-other-tag
|
||||
|
||||
|
||||
Example **NOT** in YAML dictionary format:
|
||||
.. code-block:: yaml
|
||||
|
||||
- name: The name of the tasks
|
||||
module_name: thing1="some-stuff" thing2="some-other-stuff"
|
||||
tags:
|
||||
- some-tag
|
||||
- some-other-tag
|
||||
|
||||
|
||||
Usage of the ">" and "|" operators should be limited to Ansible conditionals
|
||||
and command modules such as the ansible ``shell`` module.
|
||||
|
||||
|
||||
Issues
|
||||
------
|
||||
|
||||
When submitting an issue, or working on an issue please ensure the following
|
||||
criteria are met:
|
||||
* The description clearly states or describes the original problem or root
|
||||
cause of the problem.
|
||||
* Include historical information on how the problem was identified.
|
||||
* Any relevant logs are included.
|
||||
* If the issue is a bug that needs fixing in a branch other than Master,
|
||||
add the ‘backport potential’ tag TO THE ISSUE (not the PR).
|
||||
* The provided information should be totally self-contained. External
|
||||
access to web services/sites should not be needed.
|
||||
* If the issue is needed for a hotfix release, add the 'expedite' label.
|
||||
* Steps to reproduce the problem if possible.
|
201
LICENSE
Normal file
201
LICENSE
Normal file
@ -0,0 +1,201 @@
|
||||
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.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
APPENDIX: How to apply the Apache License to your work.
|
||||
|
||||
To apply the Apache License to your work, attach the following
|
||||
boilerplate notice, with the fields enclosed by brackets "{}"
|
||||
replaced with your own identifying information. (Don't include
|
||||
the brackets!) The text should be enclosed in the appropriate
|
||||
comment syntax for the file format. We also recommend that a
|
||||
file or class name and description of purpose be included on the
|
||||
same "printed page" as the copyright notice for easier
|
||||
identification within third-party archives.
|
||||
|
||||
Copyright {yyyy} {name of copyright owner}
|
||||
|
||||
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.
|
30
README.rst
Normal file
30
README.rst
Normal file
@ -0,0 +1,30 @@
|
||||
OpenStack-Ansible Rally
|
||||
#######################
|
||||
:tags: openstack, rally, cloud, ansible
|
||||
:category: \*nix
|
||||
|
||||
This Ansible role installs and configures OpenStack Rally.
|
||||
|
||||
Default Variables
|
||||
=================
|
||||
|
||||
.. literalinclude:: ../../defaults/main.yml
|
||||
:language: yaml
|
||||
:start-after: under the License.
|
||||
|
||||
Required Variables
|
||||
==================
|
||||
|
||||
* rally_galera_address
|
||||
* rally_galera_password
|
||||
|
||||
Example Playbook
|
||||
================
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
- name: Install Rally server
|
||||
hosts: rally_all
|
||||
user: root
|
||||
roles:
|
||||
- role: "os_rally"
|
46
defaults/main.yml
Normal file
46
defaults/main.yml
Normal file
@ -0,0 +1,46 @@
|
||||
---
|
||||
# Copyright 2016, Comcast Corporation
|
||||
#
|
||||
# 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.
|
||||
|
||||
rally_system_group_name: rally
|
||||
rally_system_user_name: rally
|
||||
rally_system_user_comment: Rally System User
|
||||
rally_system_user_shell: /bin/false
|
||||
rally_system_user_home: "/var/lib/{{ rally_system_user_name }}"
|
||||
rally_etc_directory: /etc/rally
|
||||
|
||||
rally_git_repo: "https://git.openstack.org/openstack/rally"
|
||||
rally_git_install_branch: c09af59f0f06db9e74a334aaee4c493119384ea7 # master
|
||||
rally_git_dest: "/opt/rally_{{ rally_git_install_branch |replace('/', '_') }}"
|
||||
|
||||
# Database vars
|
||||
rally_galera_database_name: rally_service
|
||||
rally_galera_user: magnum
|
||||
rally_database_connection_string: mysql+pymysql://{{ rally_galera_user }}:{{ rally_galera_password }}@{{ rally_galera_address }}/{{ rally_galera_database_name }}?charset=utf8
|
||||
|
||||
rally_apt_packages:
|
||||
- build-essential
|
||||
- libssl-dev
|
||||
- libffi-dev
|
||||
- python-dev
|
||||
- libxml2-dev
|
||||
- libxslt1-dev
|
||||
- libpq-dev
|
||||
- git
|
||||
- wget
|
||||
- pymysql
|
||||
|
||||
rally_pip_packages:
|
||||
- setuptools
|
||||
- rally
|
14
handlers/main.yml
Normal file
14
handlers/main.yml
Normal file
@ -0,0 +1,14 @@
|
||||
---
|
||||
# Copyright 2016, Comcast Corporation
|
||||
#
|
||||
# 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.
|
16
meta/main.yml
Normal file
16
meta/main.yml
Normal file
@ -0,0 +1,16 @@
|
||||
galaxy_info:
|
||||
author: Comcast Corporation
|
||||
description: Install and configure OpenStack Rally
|
||||
company: Comcast Corportation
|
||||
license: Apache2
|
||||
min_ansible_version: 1.9
|
||||
platforms:
|
||||
- name: Ubuntu
|
||||
versions:
|
||||
- trusty
|
||||
galaxy_tags: []
|
||||
dependencies:
|
||||
- apt_package_pinning
|
||||
- galera_client
|
||||
- pip_install
|
||||
- pip_lock_down
|
11
other-requirements.txt
Normal file
11
other-requirements.txt
Normal file
@ -0,0 +1,11 @@
|
||||
# This file facilitates OpenStack-CI package installation
|
||||
# before the execution of any tests.
|
||||
#
|
||||
# See the following for details:
|
||||
# - http://docs.openstack.org/infra/bindep/
|
||||
# - https://github.com/openstack-infra/bindep
|
||||
#
|
||||
# Even if the role does not make use of this facility, it
|
||||
# is better to have this file empty, otherwise OpenStack-CI
|
||||
# will fall back to installing its default packages which
|
||||
# will potentially be detrimental to the tests executed.
|
43
run_tests.sh
Normal file
43
run_tests.sh
Normal file
@ -0,0 +1,43 @@
|
||||
#!/usr/bin/env bash
|
||||
# Copyright 2015, Rackspace US, Inc.
|
||||
#
|
||||
# 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 -euov
|
||||
|
||||
FUNCTIONAL_TEST=${FUNCTIONAL_TEST:-true}
|
||||
|
||||
# prep the host
|
||||
if [ "$(which apt-get)" ]; then
|
||||
apt-get install -y build-essential python2.7 python-dev git-core
|
||||
fi
|
||||
|
||||
# get pip, if necessary
|
||||
if [ ! "$(which pip)" ]; then
|
||||
curl --silent --show-error --retry 5 \
|
||||
https://bootstrap.pypa.io/get-pip.py | sudo python2.7
|
||||
fi
|
||||
|
||||
# install tox
|
||||
pip install tox
|
||||
|
||||
# run through each tox env and execute the test
|
||||
for tox_env in $(awk -F= '/envlist/ {print $2}' tox.ini | sed 's/,/ /g'); do
|
||||
if [ "${tox_env}" != "functional" ]; then
|
||||
tox -e ${tox_env}
|
||||
elif [ "${tox_env}" == "functional" ]; then
|
||||
if ${FUNCTIONAL_TEST}; then
|
||||
tox -e ${tox_env}
|
||||
fi
|
||||
fi
|
||||
done
|
24
setup.cfg
Normal file
24
setup.cfg
Normal file
@ -0,0 +1,24 @@
|
||||
[metadata]
|
||||
name = openstack-ansible-os_rally
|
||||
summary = os_rally for OpenStack Ansible
|
||||
description-file =
|
||||
README.rst
|
||||
author = OpenStack
|
||||
author-email = openstack-dev@lists.openstack.org
|
||||
home-page = http://www.openstack.org/
|
||||
classifier =
|
||||
Intended Audience :: Developers
|
||||
Intended Audience :: System Administrators
|
||||
License :: OSI Approved :: Apache Software License
|
||||
Operating System :: POSIX :: Linux
|
||||
|
||||
[build_sphinx]
|
||||
all_files = 1
|
||||
build-dir = doc/build
|
||||
source-dir = doc/source
|
||||
|
||||
[pbr]
|
||||
warnerrors = True
|
||||
|
||||
[wheel]
|
||||
universal = 1
|
22
setup.py
Normal file
22
setup.py
Normal file
@ -0,0 +1,22 @@
|
||||
#!/usr/bin/env python
|
||||
# Copyright (c) 2013 Hewlett-Packard Development Company, L.P.
|
||||
#
|
||||
# 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.
|
||||
|
||||
# THIS FILE IS MANAGED BY THE GLOBAL REQUIREMENTS REPO - DO NOT EDIT
|
||||
import setuptools
|
||||
|
||||
setuptools.setup(
|
||||
setup_requires=['pbr'],
|
||||
pbr=True)
|
208
tasks/install.yml
Normal file
208
tasks/install.yml
Normal file
@ -0,0 +1,208 @@
|
||||
---
|
||||
# Copyright 2016, Comcast Corporation
|
||||
#
|
||||
# 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: Create developer mode constraint file
|
||||
copy:
|
||||
dest: "/opt/developer-pip-constraints.txt"
|
||||
content: |
|
||||
{% for item in rally_developer_constraints %}
|
||||
{{ item }}
|
||||
{% endfor %}
|
||||
when:
|
||||
- rally_developer_mode | bool
|
||||
tags:
|
||||
- rally-install
|
||||
- rally-pip-packages
|
||||
|
||||
- name: Clone requirements git repository
|
||||
git:
|
||||
repo: "{{ rally_requirements_git_repo }}"
|
||||
dest: "/opt/requirements"
|
||||
clone: yes
|
||||
update: yes
|
||||
version: "{{ rally_requirements_git_install_branch }}"
|
||||
when:
|
||||
- rally_developer_mode | bool
|
||||
tags:
|
||||
- rally-install
|
||||
- rally-pip-packages
|
||||
|
||||
- name: Add constraints to pip_install_options fact for developer mode
|
||||
set_fact:
|
||||
pip_install_options_fact: "{{ pip_install_options|default('') }} --constraint /opt/developer-pip-constraints.txt --constraint /opt/requirements/upper-constraints.txt"
|
||||
when:
|
||||
- rally_developer_mode | bool
|
||||
tags:
|
||||
- rally-install
|
||||
- rally-pip-packages
|
||||
|
||||
- name: Set pip_install_options_fact when not in developer mode
|
||||
set_fact:
|
||||
pip_install_options_fact: "{{ pip_install_options|default('') }}"
|
||||
when:
|
||||
- not rally_developer_mode | bool
|
||||
tags:
|
||||
- rally-install
|
||||
- rally-pip-packages
|
||||
|
||||
- name: Install requires pip packages
|
||||
pip:
|
||||
name: "{{ item }}"
|
||||
state: present
|
||||
extra_args: "{{ pip_install_options_fact }}"
|
||||
register: install_packages
|
||||
until: install_packages|success
|
||||
retries: 5
|
||||
delay: 2
|
||||
with_items: rally_requires_pip_packages
|
||||
tags:
|
||||
- rally-install
|
||||
- rally-pip-packages
|
||||
|
||||
- name: Get local venv checksum
|
||||
stat:
|
||||
path: "/var/cache/{{ rally_venv_download_url | basename }}"
|
||||
get_md5: False
|
||||
when:
|
||||
- not rally_developer_mode | bool
|
||||
- rally_venv_enabled | bool
|
||||
register: local_venv_stat
|
||||
tags:
|
||||
- rally-install
|
||||
- rally-pip-packages
|
||||
|
||||
- name: Get remote venv checksum
|
||||
uri:
|
||||
url: "{{ rally_venv_download_url | replace('tgz', 'checksum') }}"
|
||||
return_content: True
|
||||
when:
|
||||
- not rally_developer_mode | bool
|
||||
- rally_venv_enabled | bool
|
||||
register: remote_venv_checksum
|
||||
tags:
|
||||
- rally-install
|
||||
- rally-pip-packages
|
||||
|
||||
# TODO: When project moves to ansible 2 we can pass this a sha256sum which will:
|
||||
# a) allow us to remove force: yes
|
||||
# b) allow the module to calculate the checksum of dest file which would
|
||||
# result in file being downloaded only if provided and dest sha256sum
|
||||
# checksums differ
|
||||
- name: Attempt venv download
|
||||
get_url:
|
||||
url: "{{ rally_venv_download_url }}"
|
||||
dest: "/var/cache/{{ rally_venv_download_url | basename }}"
|
||||
force: yes
|
||||
ignore_errors: true
|
||||
register: get_venv
|
||||
when:
|
||||
- not rally_developer_mode | bool
|
||||
- rally_venv_enabled | bool
|
||||
- (local_venv_stat.stat.exists == False or
|
||||
{{ local_venv_stat.stat.checksum is defined and local_venv_stat.stat.checksum != remote_venv_checksum.content | trim }})
|
||||
tags:
|
||||
- rally-install
|
||||
- rally-pip-packages
|
||||
|
||||
- name: Set rally get_venv fact
|
||||
set_fact:
|
||||
rally_get_venv: "{{ get_venv }}"
|
||||
when: rally_venv_enabled | bool
|
||||
tags:
|
||||
- rally-install
|
||||
- rally-pip-packages
|
||||
|
||||
- name: Remove existing venv
|
||||
file:
|
||||
path: "{{ rally_venv_bin | dirname }}"
|
||||
state: absent
|
||||
when:
|
||||
- rally_venv_enabled | bool
|
||||
- rally_get_venv | changed
|
||||
tags:
|
||||
- rally-install
|
||||
- rally-pip-packages
|
||||
|
||||
- name: Create rally venv dir
|
||||
file:
|
||||
path: "{{ rally_venv_bin | dirname }}"
|
||||
state: directory
|
||||
when:
|
||||
- not rally_developer_mode | bool
|
||||
- rally_venv_enabled | bool
|
||||
- rally_get_venv | changed
|
||||
tags:
|
||||
- rally-install
|
||||
- rally-pip-packages
|
||||
|
||||
- name: Unarchive pre-built venv
|
||||
unarchive:
|
||||
src: "/var/cache/{{ rally_venv_download_url | basename }}"
|
||||
dest: "{{ rally_venv_bin | dirname }}"
|
||||
copy: "no"
|
||||
when:
|
||||
- not rally_developer_mode | bool
|
||||
- rally_venv_enabled | bool
|
||||
- rally_get_venv | changed
|
||||
tags:
|
||||
- rally-install
|
||||
- rally-pip-packages
|
||||
|
||||
- name: Update virtualenv path
|
||||
command: >
|
||||
virtualenv-tools --update-path=auto {{ rally_venv_bin | dirname }}
|
||||
when:
|
||||
- not rally_developer_mode | bool
|
||||
- rally_venv_enabled | bool
|
||||
- rally_get_venv | success
|
||||
tags:
|
||||
- rally-install
|
||||
- rally-pip-packages
|
||||
|
||||
- name: Install pip packages (venv)
|
||||
pip:
|
||||
name: "{{ item }}"
|
||||
state: present
|
||||
virtualenv: "{{ rally_venv_bin | dirname }}"
|
||||
virtualenv_site_packages: "no"
|
||||
extra_args: "{{ pip_install_options_fact }}"
|
||||
register: install_packages
|
||||
until: install_packages|success
|
||||
retries: 5
|
||||
delay: 2
|
||||
with_items: rally_pip_packages
|
||||
when:
|
||||
- rally_venv_enabled | bool
|
||||
- rally_get_venv | failed or rally_developer_mode | bool
|
||||
tags:
|
||||
- rally-install
|
||||
- rally-pip-packages
|
||||
|
||||
- name: Install pip packages (no venv)
|
||||
pip:
|
||||
name: "{{ item }}"
|
||||
state: present
|
||||
extra_args: "{{ pip_install_options_fact }}"
|
||||
register: install_packages
|
||||
until: install_packages|success
|
||||
retries: 5
|
||||
delay: 2
|
||||
with_items: rally_pip_packages
|
||||
when:
|
||||
- not rally_venv_enabled | bool
|
||||
- not rally_developer_mode | bool
|
||||
tags:
|
||||
- rally-install
|
||||
- rally-pip-packages
|
24
tasks/main.yml
Normal file
24
tasks/main.yml
Normal file
@ -0,0 +1,24 @@
|
||||
---
|
||||
# Copyright 2016, Comcast Corporation
|
||||
#
|
||||
# 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.
|
||||
|
||||
- include: pre-install.yml
|
||||
|
||||
- include: install.yml
|
||||
|
||||
- include: post-install.yml
|
||||
|
||||
- include: database-setup.yml
|
||||
when:
|
||||
- inventory_hostname == groups['rally_all'][0]
|
15
tasks/post-install.yml
Normal file
15
tasks/post-install.yml
Normal file
@ -0,0 +1,15 @@
|
||||
---
|
||||
# Copyright 2016, Comcast Corporation
|
||||
#
|
||||
# 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.
|
||||
|
47
tasks/pre-install.yml
Normal file
47
tasks/pre-install.yml
Normal file
@ -0,0 +1,47 @@
|
||||
---
|
||||
# Copyright 2016, Comcast Corporation
|
||||
#
|
||||
# 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: Create the Rally system group
|
||||
group:
|
||||
name: "{{ rally_system_group_name }}"
|
||||
state: "present"
|
||||
system: "yes"
|
||||
tags:
|
||||
- rally-group
|
||||
|
||||
- name: Create the Rally system user
|
||||
user:
|
||||
name: "{{ rally_system_user_name }}"
|
||||
group: "{{ rally_system_group_name }}"
|
||||
comment: "{{ rally_system_user_comment }}"
|
||||
shell: "{{ rally_system_user_shell }}"
|
||||
system: "yes"
|
||||
createhome: "yes"
|
||||
home: "{{ rally_system_user_home }}"
|
||||
tags:
|
||||
- rally-user
|
||||
|
||||
- name: Create Rally directories
|
||||
file:
|
||||
path: "{{ item.path }}"
|
||||
state: "directory"
|
||||
owner: "{{ rally_system_user_name }}"
|
||||
group: "{{ rally_system_group_name }}"
|
||||
mode: "0750"
|
||||
with_items:
|
||||
- path: "{{ rally_etc_directory }}"
|
||||
- path: "{{ rally_system_user_home }}"
|
||||
tags:
|
||||
- rally-directories
|
698
templates/rally.conf.j2
Normal file
698
templates/rally.conf.j2
Normal file
@ -0,0 +1,698 @@
|
||||
[DEFAULT]
|
||||
|
||||
#
|
||||
# From oslo.log
|
||||
#
|
||||
|
||||
# If set to true, the logging level will be set to DEBUG instead of
|
||||
# the default INFO level. (boolean value)
|
||||
#debug = false
|
||||
|
||||
# If set to false, the logging level will be set to WARNING instead of
|
||||
# the default INFO level. (boolean value)
|
||||
# This option is deprecated for removal.
|
||||
# Its value may be silently ignored in the future.
|
||||
#verbose = true
|
||||
|
||||
# The name of a logging configuration file. This file is appended to
|
||||
# any existing logging configuration files. For details about logging
|
||||
# configuration files, see the Python logging module documentation.
|
||||
# Note that when logging configuration files are used then all logging
|
||||
# configuration is set in the configuration file and other logging
|
||||
# configuration options are ignored (for example,
|
||||
# logging_context_format_string). (string value)
|
||||
# Deprecated group/name - [DEFAULT]/log_config
|
||||
#log_config_append = <None>
|
||||
|
||||
# Defines the format string for %%(asctime)s in log records. Default:
|
||||
# %(default)s . This option is ignored if log_config_append is set.
|
||||
# (string value)
|
||||
#log_date_format = %Y-%m-%d %H:%M:%S
|
||||
|
||||
# (Optional) Name of log file to send logging output to. If no default
|
||||
# is set, logging will go to stderr as defined by use_stderr. This
|
||||
# option is ignored if log_config_append is set. (string value)
|
||||
# Deprecated group/name - [DEFAULT]/logfile
|
||||
#log_file = <None>
|
||||
|
||||
# (Optional) The base directory used for relative log_file paths.
|
||||
# This option is ignored if log_config_append is set. (string value)
|
||||
# Deprecated group/name - [DEFAULT]/logdir
|
||||
#log_dir = <None>
|
||||
|
||||
# Uses logging handler designed to watch file system. When log file is
|
||||
# moved or removed this handler will open a new log file with
|
||||
# specified path instantaneously. It makes sense only if log_file
|
||||
# option is specified and Linux platform is used. This option is
|
||||
# ignored if log_config_append is set. (boolean value)
|
||||
#watch_log_file = false
|
||||
|
||||
# Use syslog for logging. Existing syslog format is DEPRECATED and
|
||||
# will be changed later to honor RFC5424. This option is ignored if
|
||||
# log_config_append is set. (boolean value)
|
||||
#use_syslog = false
|
||||
|
||||
# Syslog facility to receive log lines. This option is ignored if
|
||||
# log_config_append is set. (string value)
|
||||
#syslog_log_facility = LOG_USER
|
||||
|
||||
# Log output to standard error. This option is ignored if
|
||||
# log_config_append is set. (boolean value)
|
||||
#use_stderr = true
|
||||
|
||||
# Format string to use for log messages with context. (string value)
|
||||
#logging_context_format_string = %(asctime)s.%(msecs)03d %(process)d %(levelname)s %(name)s [%(request_id)s %(user_identity)s] %(instance)s%(message)s
|
||||
|
||||
# Format string to use for log messages when context is undefined.
|
||||
# (string value)
|
||||
#logging_default_format_string = %(asctime)s.%(msecs)03d %(process)d %(levelname)s %(name)s [-] %(instance)s%(message)s
|
||||
|
||||
# Additional data to append to log message when logging level for the
|
||||
# message is DEBUG. (string value)
|
||||
#logging_debug_format_suffix = %(funcName)s %(pathname)s:%(lineno)d
|
||||
|
||||
# Prefix each line of exception output with this format. (string
|
||||
# value)
|
||||
#logging_exception_prefix = %(asctime)s.%(msecs)03d %(process)d ERROR %(name)s %(instance)s
|
||||
|
||||
# Defines the format string for %(user_identity)s that is used in
|
||||
# logging_context_format_string. (string value)
|
||||
#logging_user_identity_format = %(user)s %(tenant)s %(domain)s %(user_domain)s %(project_domain)s
|
||||
|
||||
# List of package logging levels in logger=LEVEL pairs. This option is
|
||||
# ignored if log_config_append is set. (list value)
|
||||
#default_log_levels = amqp=WARN,amqplib=WARN,boto=WARN,qpid=WARN,sqlalchemy=WARN,suds=INFO,oslo.messaging=INFO,iso8601=WARN,requests.packages.urllib3.connectionpool=WARN,urllib3.connectionpool=WARN,websocket=WARN,requests.packages.urllib3.util.retry=WARN,urllib3.util.retry=WARN,keystonemiddleware=WARN,routes.middleware=WARN,stevedore=WARN,taskflow=WARN,keystoneauth=WARN,oslo.cache=INFO,dogpile.core.dogpile=INFO
|
||||
|
||||
# Enables or disables publication of error events. (boolean value)
|
||||
#publish_errors = false
|
||||
|
||||
# The format for an instance that is passed with the log message.
|
||||
# (string value)
|
||||
#instance_format = "[instance: %(uuid)s] "
|
||||
|
||||
# The format for an instance UUID that is passed with the log message.
|
||||
# (string value)
|
||||
#instance_uuid_format = "[instance: %(uuid)s] "
|
||||
|
||||
# Enables or disables fatal status of deprecations. (boolean value)
|
||||
#fatal_deprecations = false
|
||||
|
||||
#
|
||||
# From rally
|
||||
#
|
||||
|
||||
# Print debugging output only for Rally. Off-site components stay
|
||||
# quiet. (boolean value)
|
||||
#rally_debug = false
|
||||
|
||||
# HTTP timeout for any of OpenStack service in seconds (floating point
|
||||
# value)
|
||||
#openstack_client_http_timeout = 180.0
|
||||
|
||||
|
||||
[benchmark]
|
||||
|
||||
#
|
||||
# From rally
|
||||
#
|
||||
|
||||
# Time to sleep after creating a resource before polling for it status
|
||||
# (floating point value)
|
||||
#cinder_volume_create_prepoll_delay = 2.0
|
||||
|
||||
# Time to wait for cinder volume to be created. (floating point value)
|
||||
#cinder_volume_create_timeout = 600.0
|
||||
|
||||
# Interval between checks when waiting for volume creation. (floating
|
||||
# point value)
|
||||
#cinder_volume_create_poll_interval = 2.0
|
||||
|
||||
# Time to wait for cinder volume to be deleted. (floating point value)
|
||||
#cinder_volume_delete_timeout = 600.0
|
||||
|
||||
# Interval between checks when waiting for volume deletion. (floating
|
||||
# point value)
|
||||
#cinder_volume_delete_poll_interval = 2.0
|
||||
|
||||
# Time to sleep after boot before polling for status (floating point
|
||||
# value)
|
||||
#ec2_server_boot_prepoll_delay = 1.0
|
||||
|
||||
# Server boot timeout (floating point value)
|
||||
#ec2_server_boot_timeout = 300.0
|
||||
|
||||
# Server boot poll interval (floating point value)
|
||||
#ec2_server_boot_poll_interval = 1.0
|
||||
|
||||
# Time to sleep after creating a resource before polling for it status
|
||||
# (floating point value)
|
||||
#glance_image_create_prepoll_delay = 2.0
|
||||
|
||||
# Time to wait for glance image to be created. (floating point value)
|
||||
#glance_image_create_timeout = 120.0
|
||||
|
||||
# Interval between checks when waiting for image creation. (floating
|
||||
# point value)
|
||||
#glance_image_create_poll_interval = 1.0
|
||||
|
||||
# Time to wait for glance image to be deleted. (floating point value)
|
||||
#glance_image_delete_timeout = 120.0
|
||||
|
||||
# Interval between checks when waiting for image deletion. (floating
|
||||
# point value)
|
||||
#glance_image_delete_poll_interval = 1.0
|
||||
|
||||
# Time(in sec) to sleep after creating a resource before polling for
|
||||
# it status. (floating point value)
|
||||
#heat_stack_create_prepoll_delay = 2.0
|
||||
|
||||
# Time(in sec) to wait for heat stack to be created. (floating point
|
||||
# value)
|
||||
#heat_stack_create_timeout = 3600.0
|
||||
|
||||
# Time interval(in sec) between checks when waiting for stack
|
||||
# creation. (floating point value)
|
||||
#heat_stack_create_poll_interval = 1.0
|
||||
|
||||
# Time(in sec) to wait for heat stack to be deleted. (floating point
|
||||
# value)
|
||||
#heat_stack_delete_timeout = 3600.0
|
||||
|
||||
# Time interval(in sec) between checks when waiting for stack
|
||||
# deletion. (floating point value)
|
||||
#heat_stack_delete_poll_interval = 1.0
|
||||
|
||||
# Time(in sec) to wait for stack to be checked. (floating point value)
|
||||
#heat_stack_check_timeout = 3600.0
|
||||
|
||||
# Time interval(in sec) between checks when waiting for stack
|
||||
# checking. (floating point value)
|
||||
#heat_stack_check_poll_interval = 1.0
|
||||
|
||||
# Time(in sec) to sleep after updating a resource before polling for
|
||||
# it status. (floating point value)
|
||||
#heat_stack_update_prepoll_delay = 2.0
|
||||
|
||||
# Time(in sec) to wait for stack to be updated. (floating point value)
|
||||
#heat_stack_update_timeout = 3600.0
|
||||
|
||||
# Time interval(in sec) between checks when waiting for stack update.
|
||||
# (floating point value)
|
||||
#heat_stack_update_poll_interval = 1.0
|
||||
|
||||
# Time(in sec) to wait for stack to be suspended. (floating point
|
||||
# value)
|
||||
#heat_stack_suspend_timeout = 3600.0
|
||||
|
||||
# Time interval(in sec) between checks when waiting for stack suspend.
|
||||
# (floating point value)
|
||||
#heat_stack_suspend_poll_interval = 1.0
|
||||
|
||||
# Time(in sec) to wait for stack to be resumed. (floating point value)
|
||||
#heat_stack_resume_timeout = 3600.0
|
||||
|
||||
# Time interval(in sec) between checks when waiting for stack resume.
|
||||
# (floating point value)
|
||||
#heat_stack_resume_poll_interval = 1.0
|
||||
|
||||
# Time(in sec) to wait for stack snapshot to be created. (floating
|
||||
# point value)
|
||||
#heat_stack_snapshot_timeout = 3600.0
|
||||
|
||||
# Time interval(in sec) between checks when waiting for stack snapshot
|
||||
# to be created. (floating point value)
|
||||
#heat_stack_snapshot_poll_interval = 1.0
|
||||
|
||||
# Time(in sec) to wait for stack to be restored from snapshot.
|
||||
# (floating point value)
|
||||
#heat_stack_restore_timeout = 3600.0
|
||||
|
||||
# Time interval(in sec) between checks when waiting for stack to be
|
||||
# restored. (floating point value)
|
||||
#heat_stack_restore_poll_interval = 1.0
|
||||
|
||||
# Time (in sec) to wait for stack to scale up or down. (floating point
|
||||
# value)
|
||||
#heat_stack_scale_timeout = 3600.0
|
||||
|
||||
# Time interval (in sec) between checks when waiting for a stack to
|
||||
# scale up or down. (floating point value)
|
||||
#heat_stack_scale_poll_interval = 1.0
|
||||
|
||||
# Interval(in sec) between checks when waiting for node creation.
|
||||
# (floating point value)
|
||||
#ironic_node_create_poll_interval = 1.0
|
||||
|
||||
# Delay between creating Manila share and polling for its status.
|
||||
# (floating point value)
|
||||
#manila_share_create_prepoll_delay = 2.0
|
||||
|
||||
# Timeout for Manila share creation. (floating point value)
|
||||
#manila_share_create_timeout = 300.0
|
||||
|
||||
# Interval between checks when waiting for Manila share creation.
|
||||
# (floating point value)
|
||||
#manila_share_create_poll_interval = 3.0
|
||||
|
||||
# Timeout for Manila share deletion. (floating point value)
|
||||
#manila_share_delete_timeout = 180.0
|
||||
|
||||
# Interval between checks when waiting for Manila share deletion.
|
||||
# (floating point value)
|
||||
#manila_share_delete_poll_interval = 2.0
|
||||
|
||||
# A timeout in seconds for an environment deploy (integer value)
|
||||
# Deprecated group/name - [DEFAULT]/deploy_environment_timeout
|
||||
#murano_deploy_environment_timeout = 1200
|
||||
|
||||
# Deploy environment check interval in seconds (integer value)
|
||||
# Deprecated group/name - [DEFAULT]/deploy_environment_check_interval
|
||||
#murano_deploy_environment_check_interval = 5
|
||||
|
||||
# Time to sleep after start before polling for status (floating point
|
||||
# value)
|
||||
#nova_server_start_prepoll_delay = 0.0
|
||||
|
||||
# Server start timeout (floating point value)
|
||||
#nova_server_start_timeout = 300.0
|
||||
|
||||
# Server start poll interval (floating point value)
|
||||
#nova_server_start_poll_interval = 1.0
|
||||
|
||||
# Time to sleep after stop before polling for status (floating point
|
||||
# value)
|
||||
#nova_server_stop_prepoll_delay = 0.0
|
||||
|
||||
# Server stop timeout (floating point value)
|
||||
#nova_server_stop_timeout = 300.0
|
||||
|
||||
# Server stop poll interval (floating point value)
|
||||
#nova_server_stop_poll_interval = 2.0
|
||||
|
||||
# Time to sleep after boot before polling for status (floating point
|
||||
# value)
|
||||
#nova_server_boot_prepoll_delay = 1.0
|
||||
|
||||
# Server boot timeout (floating point value)
|
||||
#nova_server_boot_timeout = 300.0
|
||||
|
||||
# Server boot poll interval (floating point value)
|
||||
#nova_server_boot_poll_interval = 1.0
|
||||
|
||||
# Time to sleep after delete before polling for status (floating point
|
||||
# value)
|
||||
#nova_server_delete_prepoll_delay = 2.0
|
||||
|
||||
# Server delete timeout (floating point value)
|
||||
#nova_server_delete_timeout = 300.0
|
||||
|
||||
# Server delete poll interval (floating point value)
|
||||
#nova_server_delete_poll_interval = 2.0
|
||||
|
||||
# Time to sleep after reboot before polling for status (floating point
|
||||
# value)
|
||||
#nova_server_reboot_prepoll_delay = 2.0
|
||||
|
||||
# Server reboot timeout (floating point value)
|
||||
#nova_server_reboot_timeout = 300.0
|
||||
|
||||
# Server reboot poll interval (floating point value)
|
||||
#nova_server_reboot_poll_interval = 2.0
|
||||
|
||||
# Time to sleep after rebuild before polling for status (floating
|
||||
# point value)
|
||||
#nova_server_rebuild_prepoll_delay = 1.0
|
||||
|
||||
# Server rebuild timeout (floating point value)
|
||||
#nova_server_rebuild_timeout = 300.0
|
||||
|
||||
# Server rebuild poll interval (floating point value)
|
||||
#nova_server_rebuild_poll_interval = 1.0
|
||||
|
||||
# Time to sleep after rescue before polling for status (floating point
|
||||
# value)
|
||||
#nova_server_rescue_prepoll_delay = 2.0
|
||||
|
||||
# Server rescue timeout (floating point value)
|
||||
#nova_server_rescue_timeout = 300.0
|
||||
|
||||
# Server rescue poll interval (floating point value)
|
||||
#nova_server_rescue_poll_interval = 2.0
|
||||
|
||||
# Time to sleep after unrescue before polling for status (floating
|
||||
# point value)
|
||||
#nova_server_unrescue_prepoll_delay = 2.0
|
||||
|
||||
# Server unrescue timeout (floating point value)
|
||||
#nova_server_unrescue_timeout = 300.0
|
||||
|
||||
# Server unrescue poll interval (floating point value)
|
||||
#nova_server_unrescue_poll_interval = 2.0
|
||||
|
||||
# Time to sleep after suspend before polling for status (floating
|
||||
# point value)
|
||||
#nova_server_suspend_prepoll_delay = 2.0
|
||||
|
||||
# Server suspend timeout (floating point value)
|
||||
#nova_server_suspend_timeout = 300.0
|
||||
|
||||
# Server suspend poll interval (floating point value)
|
||||
#nova_server_suspend_poll_interval = 2.0
|
||||
|
||||
# Time to sleep after resume before polling for status (floating point
|
||||
# value)
|
||||
#nova_server_resume_prepoll_delay = 2.0
|
||||
|
||||
# Server resume timeout (floating point value)
|
||||
#nova_server_resume_timeout = 300.0
|
||||
|
||||
# Server resume poll interval (floating point value)
|
||||
#nova_server_resume_poll_interval = 2.0
|
||||
|
||||
# Time to sleep after pause before polling for status (floating point
|
||||
# value)
|
||||
#nova_server_pause_prepoll_delay = 2.0
|
||||
|
||||
# Server pause timeout (floating point value)
|
||||
#nova_server_pause_timeout = 300.0
|
||||
|
||||
# Server pause poll interval (floating point value)
|
||||
#nova_server_pause_poll_interval = 2.0
|
||||
|
||||
# Time to sleep after unpause before polling for status (floating
|
||||
# point value)
|
||||
#nova_server_unpause_prepoll_delay = 2.0
|
||||
|
||||
# Server unpause timeout (floating point value)
|
||||
#nova_server_unpause_timeout = 300.0
|
||||
|
||||
# Server unpause poll interval (floating point value)
|
||||
#nova_server_unpause_poll_interval = 2.0
|
||||
|
||||
# Time to sleep after shelve before polling for status (floating point
|
||||
# value)
|
||||
#nova_server_shelve_prepoll_delay = 2.0
|
||||
|
||||
# Server shelve timeout (floating point value)
|
||||
#nova_server_shelve_timeout = 300.0
|
||||
|
||||
# Server shelve poll interval (floating point value)
|
||||
#nova_server_shelve_poll_interval = 2.0
|
||||
|
||||
# Time to sleep after unshelve before polling for status (floating
|
||||
# point value)
|
||||
#nova_server_unshelve_prepoll_delay = 2.0
|
||||
|
||||
# Server unshelve timeout (floating point value)
|
||||
#nova_server_unshelve_timeout = 300.0
|
||||
|
||||
# Server unshelve poll interval (floating point value)
|
||||
#nova_server_unshelve_poll_interval = 2.0
|
||||
|
||||
# Time to sleep after image_create before polling for status (floating
|
||||
# point value)
|
||||
#nova_server_image_create_prepoll_delay = 0.0
|
||||
|
||||
# Server image_create timeout (floating point value)
|
||||
#nova_server_image_create_timeout = 300.0
|
||||
|
||||
# Server image_create poll interval (floating point value)
|
||||
#nova_server_image_create_poll_interval = 2.0
|
||||
|
||||
# Time to sleep after image_delete before polling for status (floating
|
||||
# point value)
|
||||
#nova_server_image_delete_prepoll_delay = 0.0
|
||||
|
||||
# Server image_delete timeout (floating point value)
|
||||
#nova_server_image_delete_timeout = 300.0
|
||||
|
||||
# Server image_delete poll interval (floating point value)
|
||||
#nova_server_image_delete_poll_interval = 2.0
|
||||
|
||||
# Time to sleep after resize before polling for status (floating point
|
||||
# value)
|
||||
#nova_server_resize_prepoll_delay = 2.0
|
||||
|
||||
# Server resize timeout (floating point value)
|
||||
#nova_server_resize_timeout = 400.0
|
||||
|
||||
# Server resize poll interval (floating point value)
|
||||
#nova_server_resize_poll_interval = 5.0
|
||||
|
||||
# Time to sleep after resize_confirm before polling for status
|
||||
# (floating point value)
|
||||
#nova_server_resize_confirm_prepoll_delay = 0.0
|
||||
|
||||
# Server resize_confirm timeout (floating point value)
|
||||
#nova_server_resize_confirm_timeout = 200.0
|
||||
|
||||
# Server resize_confirm poll interval (floating point value)
|
||||
#nova_server_resize_confirm_poll_interval = 2.0
|
||||
|
||||
# Time to sleep after resize_revert before polling for status
|
||||
# (floating point value)
|
||||
#nova_server_resize_revert_prepoll_delay = 0.0
|
||||
|
||||
# Server resize_revert timeout (floating point value)
|
||||
#nova_server_resize_revert_timeout = 200.0
|
||||
|
||||
# Server resize_revert poll interval (floating point value)
|
||||
#nova_server_resize_revert_poll_interval = 2.0
|
||||
|
||||
# Time to sleep after live_migrate before polling for status (floating
|
||||
# point value)
|
||||
#nova_server_live_migrate_prepoll_delay = 1.0
|
||||
|
||||
# Server live_migrate timeout (floating point value)
|
||||
#nova_server_live_migrate_timeout = 400.0
|
||||
|
||||
# Server live_migrate poll interval (floating point value)
|
||||
#nova_server_live_migrate_poll_interval = 2.0
|
||||
|
||||
# Time to sleep after migrate before polling for status (floating
|
||||
# point value)
|
||||
#nova_server_migrate_prepoll_delay = 1.0
|
||||
|
||||
# Server migrate timeout (floating point value)
|
||||
#nova_server_migrate_timeout = 400.0
|
||||
|
||||
# Server migrate poll interval (floating point value)
|
||||
#nova_server_migrate_poll_interval = 2.0
|
||||
|
||||
# Nova volume detach timeout (floating point value)
|
||||
#nova_detach_volume_timeout = 200.0
|
||||
|
||||
# Nova volume detach poll interval (floating point value)
|
||||
#nova_detach_volume_poll_interval = 2.0
|
||||
|
||||
# A timeout in seconds for a cluster create operation (integer value)
|
||||
# Deprecated group/name - [DEFAULT]/cluster_create_timeout
|
||||
#sahara_cluster_create_timeout = 1800
|
||||
|
||||
# A timeout in seconds for a cluster delete operation (integer value)
|
||||
# Deprecated group/name - [DEFAULT]/cluster_delete_timeout
|
||||
#sahara_cluster_delete_timeout = 900
|
||||
|
||||
# Cluster status polling interval in seconds (integer value)
|
||||
# Deprecated group/name - [DEFAULT]/cluster_check_interval
|
||||
#sahara_cluster_check_interval = 5
|
||||
|
||||
# A timeout in seconds for a Job Execution to complete (integer value)
|
||||
# Deprecated group/name - [DEFAULT]/job_execution_timeout
|
||||
#sahara_job_execution_timeout = 600
|
||||
|
||||
# Job Execution status polling interval in seconds (integer value)
|
||||
# Deprecated group/name - [DEFAULT]/job_check_interval
|
||||
#sahara_job_check_interval = 5
|
||||
|
||||
# Amount of workers one proxy should serve to. (integer value)
|
||||
#sahara_workers_per_proxy = 20
|
||||
|
||||
# Interval between checks when waiting for a VM to become pingable
|
||||
# (floating point value)
|
||||
#vm_ping_poll_interval = 1.0
|
||||
|
||||
# Time to wait for a VM to become pingable (floating point value)
|
||||
#vm_ping_timeout = 120.0
|
||||
|
||||
|
||||
[cleanup]
|
||||
|
||||
#
|
||||
# From rally
|
||||
#
|
||||
|
||||
# A timeout in seconds for deleting resources (integer value)
|
||||
#resource_deletion_timeout = 600
|
||||
|
||||
# Number of cleanup threads to run (integer value)
|
||||
#cleanup_threads = 20
|
||||
|
||||
|
||||
[database]
|
||||
|
||||
#
|
||||
# From oslo.db
|
||||
#
|
||||
|
||||
# The file name to use with SQLite. (string value)
|
||||
# Deprecated group/name - [DEFAULT]/sqlite_db
|
||||
#sqlite_db = oslo.sqlite
|
||||
|
||||
# If True, SQLite uses synchronous mode. (boolean value)
|
||||
# Deprecated group/name - [DEFAULT]/sqlite_synchronous
|
||||
#sqlite_synchronous = true
|
||||
|
||||
# The back end to use for the database. (string value)
|
||||
# Deprecated group/name - [DEFAULT]/db_backend
|
||||
#backend = sqlalchemy
|
||||
|
||||
# The SQLAlchemy connection string to use to connect to the database.
|
||||
# (string value)
|
||||
# Deprecated group/name - [DEFAULT]/sql_connection
|
||||
# Deprecated group/name - [DATABASE]/sql_connection
|
||||
# Deprecated group/name - [sql]/connection
|
||||
connection = {{ rally_database_connection_string }}
|
||||
|
||||
# The SQLAlchemy connection string to use to connect to the slave
|
||||
# database. (string value)
|
||||
#slave_connection = <None>
|
||||
|
||||
# The SQL mode to be used for MySQL sessions. This option, including
|
||||
# the default, overrides any server-set SQL mode. To use whatever SQL
|
||||
# mode is set by the server configuration, set this to no value.
|
||||
# Example: mysql_sql_mode= (string value)
|
||||
#mysql_sql_mode = TRADITIONAL
|
||||
|
||||
# Timeout before idle SQL connections are reaped. (integer value)
|
||||
# Deprecated group/name - [DEFAULT]/sql_idle_timeout
|
||||
# Deprecated group/name - [DATABASE]/sql_idle_timeout
|
||||
# Deprecated group/name - [sql]/idle_timeout
|
||||
#idle_timeout = 3600
|
||||
|
||||
# Minimum number of SQL connections to keep open in a pool. (integer
|
||||
# value)
|
||||
# Deprecated group/name - [DEFAULT]/sql_min_pool_size
|
||||
# Deprecated group/name - [DATABASE]/sql_min_pool_size
|
||||
#min_pool_size = 1
|
||||
|
||||
# Maximum number of SQL connections to keep open in a pool. (integer
|
||||
# value)
|
||||
# Deprecated group/name - [DEFAULT]/sql_max_pool_size
|
||||
# Deprecated group/name - [DATABASE]/sql_max_pool_size
|
||||
#max_pool_size = <None>
|
||||
|
||||
# Maximum number of database connection retries during startup. Set to
|
||||
# -1 to specify an infinite retry count. (integer value)
|
||||
# Deprecated group/name - [DEFAULT]/sql_max_retries
|
||||
# Deprecated group/name - [DATABASE]/sql_max_retries
|
||||
#max_retries = 10
|
||||
|
||||
# Interval between retries of opening a SQL connection. (integer
|
||||
# value)
|
||||
# Deprecated group/name - [DEFAULT]/sql_retry_interval
|
||||
# Deprecated group/name - [DATABASE]/reconnect_interval
|
||||
#retry_interval = 10
|
||||
|
||||
# If set, use this value for max_overflow with SQLAlchemy. (integer
|
||||
# value)
|
||||
# Deprecated group/name - [DEFAULT]/sql_max_overflow
|
||||
# Deprecated group/name - [DATABASE]/sqlalchemy_max_overflow
|
||||
#max_overflow = 50
|
||||
|
||||
# Verbosity of SQL debugging information: 0=None, 100=Everything.
|
||||
# (integer value)
|
||||
# Deprecated group/name - [DEFAULT]/sql_connection_debug
|
||||
#connection_debug = 0
|
||||
|
||||
# Add Python stack traces to SQL as comment strings. (boolean value)
|
||||
# Deprecated group/name - [DEFAULT]/sql_connection_trace
|
||||
#connection_trace = false
|
||||
|
||||
# If set, use this value for pool_timeout with SQLAlchemy. (integer
|
||||
# value)
|
||||
# Deprecated group/name - [DATABASE]/sqlalchemy_pool_timeout
|
||||
#pool_timeout = <None>
|
||||
|
||||
# Enable the experimental use of database reconnect on connection
|
||||
# lost. (boolean value)
|
||||
#use_db_reconnect = false
|
||||
|
||||
# Seconds between retries of a database transaction. (integer value)
|
||||
#db_retry_interval = 1
|
||||
|
||||
# If True, increases the interval between retries of a database
|
||||
# operation up to db_max_retry_interval. (boolean value)
|
||||
#db_inc_retry_interval = true
|
||||
|
||||
# If db_inc_retry_interval is set, the maximum seconds between retries
|
||||
# of a database operation. (integer value)
|
||||
#db_max_retry_interval = 10
|
||||
|
||||
# Maximum retries in case of connection error or deadlock error before
|
||||
# error is raised. Set to -1 to specify an infinite retry count.
|
||||
# (integer value)
|
||||
#db_max_retries = 20
|
||||
|
||||
|
||||
[image]
|
||||
|
||||
#
|
||||
# From rally
|
||||
#
|
||||
|
||||
# CirrOS image URL (string value)
|
||||
#cirros_img_url = http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-disk.img
|
||||
|
||||
# Image disk format to use when creating the image (string value)
|
||||
#disk_format = qcow2
|
||||
|
||||
# Image container format to use when creating the image (string value)
|
||||
#container_format = bare
|
||||
|
||||
# Regular expression for name of an image to discover it in the cloud
|
||||
# and use it for the tests. Note that when Rally is searching for the
|
||||
# image, case insensitive matching is performed. Specify nothing
|
||||
# ('name_regex =') if you want to disable discovering. In this case
|
||||
# Rally will create needed resources by itself if the values for the
|
||||
# corresponding config options are not specified in the Tempest config
|
||||
# file (string value)
|
||||
#name_regex = ^.*(cirros|testvm).*$
|
||||
|
||||
|
||||
[role]
|
||||
|
||||
#
|
||||
# From rally
|
||||
#
|
||||
|
||||
# Role required for users to be able to create Swift containers
|
||||
# (string value)
|
||||
#swift_operator_role = Member
|
||||
|
||||
# User role that has reseller admin (string value)
|
||||
#swift_reseller_admin_role = ResellerAdmin
|
||||
|
||||
# Role required for users to be able to manage Heat stacks (string
|
||||
# value)
|
||||
#heat_stack_owner_role = heat_stack_owner
|
||||
|
||||
# Role for Heat template-defined users (string value)
|
||||
#heat_stack_user_role = heat_stack_user
|
||||
|
||||
|
||||
[users_context]
|
||||
|
||||
#
|
||||
# From rally
|
||||
#
|
||||
|
||||
# How many concurrent threads use for serving users context (integer
|
||||
# value)
|
||||
#resource_management_workers = 30
|
||||
|
||||
# ID of domain in which projects will be created. (string value)
|
||||
#project_domain = default
|
||||
|
||||
# ID of domain in which users will be created. (string value)
|
||||
#user_domain = default
|
8
test-requirements.txt
Normal file
8
test-requirements.txt
Normal file
@ -0,0 +1,8 @@
|
||||
ansible-lint<=2.3.9
|
||||
ansible>=1.9.1,<2.0.0
|
||||
bashate
|
||||
flake8
|
||||
|
||||
# this is required for the docs build jobs
|
||||
sphinx!=1.2.0,!=1.3b1,<1.3,>=1.1.2
|
||||
oslosphinx>=2.5.0 # Apache-2.0
|
1
tests/inventory
Normal file
1
tests/inventory
Normal file
@ -0,0 +1 @@
|
||||
localhost
|
19
tests/test.yml
Normal file
19
tests/test.yml
Normal file
@ -0,0 +1,19 @@
|
||||
---
|
||||
# Copyright 2016, Comcast Corporation
|
||||
#
|
||||
# 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.
|
||||
|
||||
- hosts: localhost
|
||||
remote_user: root
|
||||
roles:
|
||||
- openstack-ansible-os_rally
|
136
tox.ini
Normal file
136
tox.ini
Normal file
@ -0,0 +1,136 @@
|
||||
[tox]
|
||||
minversion = 1.6
|
||||
skipsdist = True
|
||||
envlist = docs,linters,functional
|
||||
|
||||
|
||||
[testenv]
|
||||
usedevelop = True
|
||||
install_command = pip install -U {opts} {packages}
|
||||
deps = -r{toxinidir}/test-requirements.txt
|
||||
commands = /usr/bin/find . -type f -name "*.pyc" -delete
|
||||
passenv =
|
||||
HOME
|
||||
whitelist_externals =
|
||||
bash
|
||||
git
|
||||
rm
|
||||
wget
|
||||
setenv =
|
||||
VIRTUAL_ENV={envdir}
|
||||
ANSIBLE_HOST_KEY_CHECKING = False
|
||||
ANSIBLE_SSH_CONTROL_PATH = /tmp/%%h-%%r
|
||||
# TODO (odyssey4me) These are only here as they are non-standard folder
|
||||
# names for Ansible 1.9.x. We are using the standard folder names for
|
||||
# Ansible v2.x. We can remove this when we move to Ansible 2.x.
|
||||
ANSIBLE_ACTION_PLUGINS = {homedir}/.ansible/plugins/action
|
||||
ANSIBLE_CALLBACK_PLUGINS = {homedir}/.ansible/plugins/callback
|
||||
ANSIBLE_FILTER_PLUGINS = {homedir}/.ansible/plugins/filter
|
||||
ANSIBLE_LOOKUP_PLUGINS = {homedir}/.ansible/plugins/lookup
|
||||
# This is required as the default is the current path or a path specified
|
||||
# in ansible.cfg
|
||||
ANSIBLE_LIBRARY = {homedir}/.ansible/plugins/library
|
||||
# This is required as the default is '/etc/ansible/roles' or a path
|
||||
# specified in ansible.cfg
|
||||
ANSIBLE_ROLES_PATH = {homedir}/.ansible/roles:{toxinidir}/..
|
||||
|
||||
|
||||
[testenv:docs]
|
||||
commands=
|
||||
python setup.py build_sphinx
|
||||
|
||||
|
||||
# environment used by the -infra templated docs job
|
||||
[testenv:venv]
|
||||
deps = -r{toxinidir}/test-requirements.txt
|
||||
commands = {posargs}
|
||||
|
||||
|
||||
[testenv:pep8]
|
||||
commands =
|
||||
# Run hacking/flake8 check for all python files
|
||||
bash -c "grep --recursive --binary-files=without-match \
|
||||
--files-with-match '^.!.*python$' \
|
||||
--exclude-dir .eggs \
|
||||
--exclude-dir .git \
|
||||
--exclude-dir .tox \
|
||||
--exclude-dir *.egg-info \
|
||||
--exclude-dir doc \
|
||||
{toxinidir} | xargs flake8 --verbose"
|
||||
|
||||
[flake8]
|
||||
# Ignores the following rules due to how ansible modules work in general
|
||||
# F403 'from ansible.module_utils.basic import *' used;
|
||||
# unable to detect undefined names
|
||||
# H303 No wildcard (*) import.
|
||||
ignore=F403,H303
|
||||
|
||||
|
||||
[testenv:bashate]
|
||||
commands =
|
||||
# Run bashate check for all bash scripts
|
||||
# Ignores the following rules:
|
||||
# E003: Indent not multiple of 4 (we prefer to use multiples of 2)
|
||||
# E006: Line longer than 79 columns (as many scripts use jinja
|
||||
# templating, this is very difficult)
|
||||
# E040: Syntax error determined using `bash -n` (as many scripts
|
||||
# use jinja templating, this will often fail and the syntax
|
||||
# error will be discovered in execution anyway)
|
||||
bash -c "grep --recursive --binary-files=without-match \
|
||||
--files-with-match '^.!.*\(ba\)\?sh$' \
|
||||
--exclude-dir .tox \
|
||||
--exclude-dir .git \
|
||||
{toxinidir} | xargs bashate --error . --verbose --ignore=E003,E006,E040"
|
||||
|
||||
|
||||
[testenv:ansible-syntax]
|
||||
commands =
|
||||
rm -rf {homedir}/.ansible
|
||||
git clone https://git.openstack.org/openstack/openstack-ansible-plugins \
|
||||
{homedir}/.ansible/plugins
|
||||
ansible-galaxy install \
|
||||
--role-file={toxinidir}/tests/ansible-role-requirements.yml \
|
||||
--ignore-errors \
|
||||
--force
|
||||
ansible-playbook -i {toxinidir}/tests/inventory \
|
||||
--syntax-check \
|
||||
--list-tasks \
|
||||
-e "rolename={toxinidir}" \
|
||||
{toxinidir}/tests/test.yml
|
||||
|
||||
|
||||
[testenv:ansible-lint]
|
||||
commands =
|
||||
ansible-lint {toxinidir}/tests/test.yml
|
||||
|
||||
|
||||
[testenv:functional]
|
||||
commands =
|
||||
echo -e "\n *******************************************************\n" \
|
||||
"**** Functional Testing is still to be implemented ****\n" \
|
||||
"**** TODO: Write tests here ****\n" \
|
||||
"*******************************************************\n"
|
||||
# As a temporary measure, while functional testing is being worked on, we
|
||||
# will not execute the functional test. This allows other patches to be
|
||||
# worked on while the functional testing is being worked out.
|
||||
#rm -rf {homedir}/.ansible
|
||||
#git clone https://git.openstack.org/openstack/openstack-ansible-plugins \
|
||||
# {homedir}/.ansible/plugins
|
||||
# This plugin makes the ansible-playbook output easier to read
|
||||
#wget -O {homedir}/.ansible/plugins/callback/human_log.py \
|
||||
# https://gist.githubusercontent.com/cliffano/9868180/raw/f360f306b3c6d689734a6aa8773a00edf16a0054/human_log.py
|
||||
#ansible-galaxy install \
|
||||
# --role-file={toxinidir}/tests/ansible-role-requirements.yml \
|
||||
# --ignore-errors \
|
||||
# --force
|
||||
#ansible-playbook -i {toxinidir}/tests/inventory \
|
||||
# -e "rolename={toxinidir}" \
|
||||
# {toxinidir}/tests/test.yml
|
||||
|
||||
|
||||
[testenv:linters]
|
||||
commands =
|
||||
{[testenv:pep8]commands}
|
||||
{[testenv:bashate]commands}
|
||||
{[testenv:ansible-lint]commands}
|
||||
{[testenv:ansible-syntax]commands}
|
14
vars/main.yml
Normal file
14
vars/main.yml
Normal file
@ -0,0 +1,14 @@
|
||||
---
|
||||
# Copyright 2016, Comcast Corporation
|
||||
#
|
||||
# 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.
|
Loading…
Reference in New Issue
Block a user