
Created the clustering implementation for Percona XtraDB Cluster Server. Used the existing framework for adding a new cluster strategy for percona. Created guestagent, api, and taskmanager calls to setup the cluster. Ran into a weird issue where creating the admin user was not being saved even though there was no error logged. I believe this was happening because mysql was technically up from the mysqladmin ping cmd but was not processing the grant call yet. I've heard that to be sure you should run a 'select 1;' call to verify that mysql is really ready after starting it. I added a method to verify this. PXC needs a few more ports opened up for the group comm, state transfer, and incremental state transfer. Added the percona cluster.cnf template file for the setting needed in PXC. When a joining instance first joins the cluster it syncs all the data using xtrabackup, this will cause the joining instance to lose its admin user os_admin. So we reset the admin to a new password across the board. Make Percona Xtradb Cluster a different datastore because there are muliple version of PXC. This has been tested with pxc 5.5 from the ubuntu repository. Adding coverage xml output in tox.ini DocImpact Adding a new datastore percona-xtradb-cluster(pxc) that should not have any special cases for create and delete cluster. Implements: blueprint support-pxc-56 Change-Id: I239433f0491cea15b214c41ceecc3a5e72b5bbeb
62 lines
1.5 KiB
INI
62 lines
1.5 KiB
INI
[tox]
|
|
envlist = py27,pep8,checkbuild,checklinks
|
|
minversion = 1.6
|
|
skipsdist = True
|
|
|
|
[testenv]
|
|
setenv = VIRTUAL_ENV={envdir}
|
|
usedevelop = True
|
|
install_command = pip install -U {opts} {packages}
|
|
deps = -r{toxinidir}/requirements.txt
|
|
-r{toxinidir}/test-requirements.txt
|
|
commands = {envpython} run_tests.py
|
|
python setup.py testr --slowest
|
|
{envpython} generate_examples.py
|
|
whitelist_externals = bash
|
|
|
|
[tox:jenkins]
|
|
sitepackages = True
|
|
downloadcache = ~/cache/pip
|
|
|
|
[testenv:pep8]
|
|
commands =
|
|
flake8
|
|
# Check that .po and .pot files are valid:
|
|
bash -c "find trove -type f -regex '.*\.pot?' -print0 | \
|
|
xargs -0 -n 1 msgfmt --check-format -o /dev/null"
|
|
|
|
[testenv:cover]
|
|
basepython = python2.7
|
|
commands =
|
|
{envpython} run_tests.py --group=does_not_exist
|
|
coverage erase
|
|
python setup.py testr --coverage
|
|
coverage run -a run_tests.py
|
|
coverage html
|
|
coverage xml
|
|
coverage report
|
|
|
|
|
|
[testenv:venv]
|
|
commands = {posargs}
|
|
|
|
[flake8]
|
|
show-source = True
|
|
# H301 is ignored on purpose.
|
|
# The rest of the ignores are TODOs.
|
|
ignore = F821,H237,H238,H301,H404,H405,H501
|
|
builtins = _
|
|
exclude=.venv,.tox,dist,doc,openstack,*egg,tools,etc,build,*.po,*.pot
|
|
filename=*.py,trove-*
|
|
|
|
[testenv:checklinks]
|
|
commands = openstack-doc-test --check-links {posargs}
|
|
|
|
[testenv:checkbuild]
|
|
commands =
|
|
openstack-doc-test --check-niceness --check-syntax --check-deletions {posargs}
|
|
openstack-doc-test --check-build {posargs}
|
|
|
|
[testenv:publishdocs]
|
|
commands = openstack-doc-test --check-build --publish --force
|