104 Commits

Author SHA1 Message Date
Andy McCrae
8a9127efbc Prevent galera_cluster_name from changing.
On a running galera cluster, we don't want to unintentionally allow a
galera_cluster_name from changing. This will cause a cluster to fail to
start (if the nodes are restarted sequentially) as the cluter name value
has changed.

To ensure we can still change this value, a new
"galera_force_change_cluster_name" variable is added, which can be set
to "True" in order to change the cluster name.

Change-Id: I8bae038bd207a15d5731b9c91b78df851a4c1986
2016-09-13 17:32:53 +01:00
Jesse Pretorius
45f9c76b1c Compress test execution logs
The volume of logs we collect in CI jobs are extensive. This
patch ensures that the logs collected are compressed to reduce
the space taken in CI systems.

PYTHONUNBUFFERED is also set to ensure that the console log
from the CI jobs is recorded in the exact order of execution.

Change-Id: I5aad324d7ac6535e35d635b58599f6a54436da5b
Related-Bug: #1620849
2016-09-09 10:10:38 +01:00
Major Hayden
352cbd131d Allow galera to listen on v4/v6
While working on https://review.openstack.org/#/c/320542/, galera
was found to be listening only on IPv6 addresses. Connections to
::1 worked fine, but connections to 127.0.0.1 failed.

This patch ensures that galera is listening on all IPv4 and IPv6
addresses.

Closes-bug: 1620793
Change-Id: I1ddae03343b6fe9542b6118810cc55108d4417c0
2016-09-06 14:36:05 -05:00
Adam Reznechek
b1ed69fe75 Fix arch-specific percona-xtrabackup and qpress
Add architecture-specific location support for percona-xtrabackup
and qpress packages to fix limitation of hardcoded amd64 packages.

Change-Id: Ifa9d53a91f6ae7d497045fa4e7558c1b7c4d53a8
2016-09-01 22:52:23 -05:00
Kevin Carter
a3bb3b73b9 Enable log collection after functional testing
This change enables log collection within the gate so that further analysis
on gate tasks can be performed post build. This is very useful when
debugging problems.

Change-Id: I79d98754d50febdf9b8f39f412a2e9fa1c10c36a
Signed-off-by: Kevin Carter <kevin.carter@rackspace.com>
2016-08-29 21:33:43 -05:00
Jenkins
4b2f0dbada Merge "Rename package lists (and related vars) appropriately" 2016-08-26 22:00:56 +00:00
Adam Reznechek
ece430ab2f Work around Ansible vcpu fact bug on ppc64le
This changes how several fields using ansible_processor_vcpus are set to
work around a bug in Ansible where ansible_processor_vcpus is reported
as 0 on ppc64le today due to issues with /proc/cpuinfo format differences.
An upstream fix has been proposed at [1].

[1] - ansible/ansible#16533

Change-Id: I49a024aa2165db6501d9e26d09d7940cb0531bd4
2016-08-26 14:17:18 -05:00
Adam Reznechek
45a7ed4aa1 Update qpress to use Xenial package
Update the package for qpress to pull the Xenial package now that
it's available in the repo.

Change-Id: Ia1d99e7b16868c5e6a0a91644aea2f155fcfd078
2016-08-26 10:15:09 -05:00
Jesse Pretorius
3df31ce349 Rename package lists (and related vars) appropriately
In order to make it easier to differentiate between the lists of
python packages, distribution packages, downloaded packages,
package pins and other similar variables the variable names are
being changed to ensure that they have a more explicit suffix
that defines the purpose and makes the naming more consistent.

This is to facilitate a lookup plugin which will be able to look
up all the package lists and present them as a consolidated piece
of data which may be used for artifact preparation.

Change-Id: Iba040bf8da6ec0552fcf7d10022094dc57d312bc
2016-08-26 15:47:41 +01:00
Travis Truman
885aefaa19 Remove apt update from Vagrantfile
Its now done in run_tests.sh which is run by the
Vagrant provisioner

Change-Id: If290b83f2bff440156217750c9f05f913c70979e
2016-08-24 20:04:37 +00:00
Jenkins
86a5d8b715 Merge "Updated from global requirements" 2016-08-20 16:24:02 +00:00
Jesse Pretorius
1ac20470de Make all linting tests use upper-constraints
As per [1] all linting tests can now use upper-constraints. This patch
removes all instances of the install_command override relating to lint
testing which were needed to negate the use of upper-constraints.

[1] http://lists.openstack.org/pipermail/openstack-dev/2016-August/101474.html

Change-Id: Iad37e0a7a762e87a284d97dba09483b953c51b5d
2016-08-20 16:03:31 +01:00
Shashank Tavildar
658c8489cc Added SNI support for galera_server role via OS packages
Some Linux distributions, such as CentOS 7 and Xenial, have trouble
validating SSL certificates when using get_url with servers
that use Server Name Indication (SNI).

This patch adds those packages to the list of required packages and
uses bindep to install them in developer test environments the same
way that the gate tests install them.


Change-Id: Ib43145a80fbe3c65d1f2720225da92ea1e978bc5
2016-08-19 20:59:00 +00:00
OpenStack Proposal Bot
2e1cf58277 Updated from global requirements
Change-Id: Icfa816c270439a4ddada7052d07ae4103cbe61ce
2016-08-19 19:50:57 +00:00
Michael Gugino
ff22a68003 Add apt-get update to run_tests
Change-Id: I31c216223299431f13591e87f1fa03b92c66a5a6
2016-08-19 10:48:52 +00:00
Travis Truman
3eb2a89946 [DOCS] - Removing tags: and category:
Change-Id: I4cea66346b43b7a97ac70bb5cad73fd4de14733e
2016-08-18 15:03:45 -04:00
Jesse Pretorius
49006d70cf Add python packages for SNI support in tests
This adds python packages required for SNI support to ensure that tox
installs the packages into the venv when running tests.

Change-Id: Ic3b2f300e8f45255b4966f3f1cdb4d80ad799098
2016-08-16 14:26:41 +00:00
Darren Birkett
1f0cfa235a remove compact option from xtrabackup
Using the --compact option with xtrabackup has been shown to cause
crashes when used during an SST to transfer data between nodes:

https://bugs.launchpad.net/percona-xtrabackup/+bug/1192834

Based on DBA advice, we are disabling this option.

Closes-Bug: #1590166
Change-Id: I23fd5e36b74163fe97cf983cdc4b1d5678d94e7b
2016-08-15 16:55:36 +00:00
Jenkins
aa309fabfd Merge "[DOCS] Move example playbook to separate file" 2016-08-15 11:17:23 +00:00
Travis Truman
a04ca292a0 Adding Vagrantfile for local testing
Running `vagrant up` will emulate the gate tests

Change-Id: I3075e778939a70d3657de2f1ba512ca5dbf79a28
2016-08-14 09:38:35 +00:00
Jenkins
af115bf7bd Merge "Move other-requirements.txt to bindep.txt" 2016-08-14 05:01:39 +00:00
Andreas Jaeger
f18654fdbf Move other-requirements.txt to bindep.txt
The default filename for documenting binary dependencies has been
changed from "other-requirements.txt" to "bindep.txt" with the release
of bindep 2.1.0. While the previous name is still supported, it will
be deprecated.

Move the file around to follow this change.

Note that this change is self-testing, the OpenStack CI infrastructure
will use a "bindep.txt" file to setup nodes for testing.

For more information about bindep, see also:
http://docs.openstack.org/infra/manual/drivers.html#package-requirements
http://docs.openstack.org/infra/bindep/

As well as this announcement:
http://lists.openstack.org/pipermail/openstack-dev/2016-August/101590.html

Change-Id: Id0addf53a54e055cffdd71a03e9fe8d4adb10997
2016-08-12 20:55:56 +02:00
Robb Romans
50bcea12d8 [DOCS] Move example playbook to separate file
Change-Id: I76b2773c46124f953aecfd502758b153e40fc1f9
2016-08-12 13:31:55 -05:00
Jean-Philippe Evrard
15310f1391 Include ansible commands for ansible linting
The plugin repo needs to be cloned for ansible-lint to
understand ansible plugins. The commands currently
reside in tox.ini under the ansible section and are not
currently included. This commit fixes that error.

Change-Id: Ib64c9e266469ada11d6534e07ad93ab8906af2eb
2016-08-11 18:07:59 +01:00
Jesse Pretorius
54ca3be6d4 Add ability to change apt/yum package state
The current method of installing the distribution packages required is
set in the tasks and cannot be changed by a deployer.

Currently the apt task always installs the latest package. This results
in unexpected binary changes when a deployer may simply be trying to
execute a configuration change.

This patch adds the ability for a deployer to change the desired state
so that the results are predictable.

Change-Id: Ifefa11da81b59084c238a8264fec9f0018dfe23d
2016-08-02 07:49:07 +00:00
Jesse Pretorius
727189ff0c Ensure that doc linting is included in the linters test
The 'docs' tox target executes the doc8 lint test which may result in
failures when testing documentation builds, but OpenStack-CI does not
execute that tox target.

In order to ensure that we catch all standard documentation syntax
errors and prevent them from merging, this patch includes the docs
target in the 'linters' chain of tests.

Fixes for any failures which result from executing this test are also
included in the patch.

Change-Id: Id23f9d262a1a18230f797c5aaecc76e627d0998a
2016-07-26 00:36:03 +01:00
Kevin Carter
a69a34f126
Change the repos to use upstream default
This changes the default repos scheme to use the upstream
default which is "http" instead of "https". This change is
in support of enabling packages to be cached instead of
proxied which will improve the speed of deployment.

Change-Id: I15111e60cb3e7e57ce4adabf870ff9d8c7d64f29
Signed-off-by: Kevin Carter <kevin.carter@rackspace.com>
2016-07-22 10:38:05 -05:00
Jesse Pretorius
9f47da61e4 Use plugins repo version of the human_log callback plugin
With the implementation of https://review.openstack.org/321331 the
human_log callback plugin is now part of the plugins repo.

This patch removes the retrofitted version in tox in favor of using
the version from the plugins repo instead.

Change-Id: I046226445257466da85f0f54872c26ccd91989af
2016-07-15 14:00:31 +01:00
Jenkins
06cc6feb14 Merge "Updated from global requirements" 2016-07-15 10:03:17 +00:00
OpenStack Proposal Bot
1763be707f Updated from global requirements
Change-Id: Ifeeaa855e56114b97fed21c150393bf5d0b1911b
2016-07-15 03:57:25 +00:00
Mike Carden
35b16687eb Remove duplicates from .gitignore
This patch removes the duplicated releasenotes/build
lines from .gitignore.

Change-Id: I3b1e690e509de0e6514a4210e0b0066e802c0da8
2016-07-15 11:27:52 +10:00
Jesse Pretorius
bcd2b9d5c4 Implement doc8 checks for docs
In order to prepare for the move of detailed configuration
content from the install guide to the roles, doc8 checks
are being implemented in the roles to ensure that any new
content submitted is properly checked.

Change-Id: I4c1be882868247a3a4d8795246f0b22dfa381837
Partially-Implements: blueprint osa-install-guide-overhaul
2016-07-13 12:53:53 +01:00
Jesse Pretorius
4a8707f149 Update sphinx configuration
This patch updates the sphinx configuration for docs and releasenotes
to make it easier to replicate across repositories and to comply with
pep8 testing without exceptions.

Change-Id: I0020d055b9f867cbd1df1c004bb77ba24f0e7d5d
2016-07-12 16:50:59 +01:00
Jesse Pretorius
8e48a2ebf0 Update tox configuration
In order to prepare for implementing requirements management by the
OpenStack requirements management process, and to improve the
reliability and effectiveness of test execution, this patch implements
some changes to the tox configuration:

- The minimum tox version is increased in order to be able to use
  constraints for the python packages.
- The OpenStack upper-constraints are used when preparing the test
  venv for the linters checks.
- Any proxy environment variables set on the test host are passed
  into the venv to enable testing from behind a proxy.
- The environment variables used by Ansible tests are moved into
  a new venv called 'ansible' and this environment is inherited
  by all Ansible-related tests.
- The docs test will clean-up an existing build directory before
  executing the docs build.
- The releasenotes build cannot use upper-constraints at this point,
  so it doesn't.
- The Ansible role download will no longer ignore errors so that any
  problems discovered will result in a failed test.
- The human readable logging callback plugin is implemented for
  functional testing.
- The ansible test requirements are moved into tox.ini to ensure
  compliance for requirements.txt/test-requirements.txt for the
  global-requirements management contract.
- The ~/.ansible directory as a whole is not deleted. Instead only
  the plugins and roles folders are deleted to ensure that zuul's
  Ansible artifacts are left in-place.
- The ansible-lint version is updated to support execution against a
  folder, and the test now executes against the entire role to ensure
  that it captures all applicable files for lint testing.

This is a combined port of the following:
- https://review.openstack.org/323507
- https://review.openstack.org/338193
- https://review.openstack.org/332443
- https://review.openstack.org/338193
- https://review.openstack.org/339493

Change-Id: I44d9a6f75c582924c509c24acc070bbbb817aaaa
2016-07-08 13:33:16 +01:00
Jimmy McCrory
ac3942da3d Change default collation to utf8_general_ci
There can be issues during database migrations when a column used as a
foreign key is using a different collation between the parent and
child table.

Update the my.cnf template to set the server default collation to
utf8_general_ci to ensure consistency between tables initially
created with and those later altered to use the utf8 character set.

This matches both the instruction from the OpenStack install guide[0],
and MariaDB's default for the utf8 character set[1].

[0]
http://docs.openstack.org/mitaka/install-guide-ubuntu/environment-sql-database.html
[1]
>  SHOW CHARACTER SET WHERE CHARSET = 'utf8';
+---------+---------------+-------------------+--------+
| Charset | Description   | Default collation | Maxlen |
+---------+---------------+-------------------+--------+
| utf8    | UTF-8 Unicode | utf8_general_ci   |      3 |
+---------+---------------+-------------------+--------+

Related-Bug: 1594195
Change-Id: I8507b6c9bd058bb308cc089f3802e52e24bea324
2016-06-23 21:54:55 -07:00
Jenkins
d99e16da7c Merge "Clean up container cache prep in tests" 2016-06-17 19:17:19 +00:00
Jesse Pretorius
4d25aebb8c Clean up container cache prep in tests
This patch cleans up the container cache preparation in the tests
due to the following patches:

- https://review.openstack.org/307856 (new image build process)
- https://review.openstack.org/315114 (new apt config process)
- https://review.openstack.org/322188 (new resolver config process)

Change-Id: Id267ce54dfb69f4ee70220bd55d9f07bd6b00648
2016-06-17 18:13:48 +01:00
Jesse Pretorius
08ce66f4ae Pin test-requirements to match OpenStack requirements
A new release of flake8 is causing lint faiures. Our requirements
should match OpenStack requirements anyway.

This patch pins to the current master requirements from the
OpenStack requirements repository using global-requirements.

Change-Id: If99c8d22742b5540073368e57ad241d87fc74404
2016-06-17 12:33:10 +01:00
Travis Truman
63e1d9f7f9 DOC - Adopting the common role documentation pattern
As discussed during the Newton design summit, we
agreed to adopt the role documentation pattern laid
out in the os_keystone role

Change-Id: I6a01800a1734872495a60a19de64d3c835574db6
2016-06-07 10:08:46 -04:00
Jean-Philippe Evrard
db39fee237 Consistency for multi-os in the includes
This makes the include_vars consistent accross all the
openstack-ansible-.* repos.

Change-Id: I750dfaba1c4f717b03054ed2af2aa73722c77f71
2016-06-02 14:18:55 +01:00
Kevin Carter
5b23837dd0
Add CentOS7 support to Galera Server
Updates the multi-distro framework to add CentOS7 support.

Depends-On: Ieadcdd70e9b8271aee3880896255a5037f56567e
Change-Id: I7e889ea4653a6972ea7f8208416fc1fc3db45e5c
Signed-off-by: Kevin Carter <kevin.carter@rackspace.com>
2016-05-23 13:04:38 -05:00
Michael Gugino
5136160186 Implement Xenial Support
This commit implements support for Ubuntu 16.04 Xenial.  Changes
include renaming several variables from galera_* to percona_* for
clarity.  The reason for this change is that 16.04 will be using
distribution provided packages for percona-xtrabackup.

Mariadb 10.0 packages are available for Ubuntu 16.04, so those
packages and installations procedures will remain unchanged.

Depends-On: Iab5485529cf14933fd7f37430d234a5c41185c18
Change-Id: I4baeb2eddf137619ffedba2f9efd61b7bd142f92
2016-05-19 16:38:40 -04:00
Michael Gugino
7bec84f67a Remove Mariadb Upgrade Check
Previous versions of OpenStack-Ansible allowed
for upgrading Mariadb from version 5.5 to 10.0.

Mitaka assumes Mariadb version 10.0, thus the
upgrade check is no longer needed for gate
testing.

Change-Id: I589b3849e52ab4d6810f16588c733aed4d17b6b2
2016-05-18 09:49:44 -04:00
Jenkins
013052bebd Merge "Use the apt_package_pinning role" 2016-05-06 12:11:59 +00:00
Jimmy McCrory
090240e9e7 Use the apt_package_pinning role
Add the galera_apt_pinned_packages default variable which is passed to
the apt_package_pinning role, instead of a template within this role, to
pin the MariaDB repo.

Change-Id: Iea8b002b57fa72230056656f42eaa75e84e9b5a6
2016-05-05 19:08:04 -07:00
Jenkins
4158ec6bac Merge "Add .swp files to .gitignore" 2016-05-04 22:26:44 +00:00
Jesse Pretorius
05cdf7c454 Add .swp files to .gitignore
Change-Id: I06df957c6a71ab101831b003eb72db13513932a2
2016-05-04 15:18:07 +01:00
Jesse Pretorius
ac3bbca051 Change pip install task state to 'latest'
Currently all pip install tasks only require the package to be
present. This means that when an environment undergoes a minor
upgrade the package is not upgraded to the same version that
was tested with. This ultimately results in a deployed
environment that does not match the tested environment.

While for the services installed into venvs this is not an
issue, it does affect those which do not use venvs and any
packages which are installed outside of a venv or on top
of a venv.

This patch changes the behaviour to ensure that the install
task will always use the latest available package. In
developer_mode this will mean using the version specified
in upper-constraints, and in an integrated build this will
mean the version which is available in the wheel repo's
folder for the tag.

Change-Id: I90a044e142829ea90bbc81cdda5a2a257fe8de22
2016-05-04 09:41:00 +01:00
Jesse Pretorius
cca71a5774 Add dependencies for paramiko 2.0
Paramiko version 2.0 has been released. It now uses the Python library
cryptography. Installing this requires additional system packages. This
commit adds in the appropriate packages required by cryptography based
on its documentation [1].

An alternative approach would have been to constrain the version of
Paramiko however the project describes the 1.x versions as relying on
insecure dependencies [2].

[1] https://cryptography.io/en/latest/installation/
[2] http://www.paramiko.org/installing.html

Change-Id: I3342166dc5c66c7a1773330c6ce47dafd7ff5535
2016-05-03 08:54:07 +01:00
Jenkins
c57e5f3a4a Merge "Ansible 2.x - Address deprecation warning of bare variables" 2016-04-26 09:46:02 +00:00