Amulet test fixes:
* Makefile: - Run flake8 on tests dir - Only run precise-icehouse and trusty-icehouse tests by default and increase test timeout - Fix charm-helpers sync target * t/00-setup: Simplify dependencies install * t/README: Mention charm-tools dependency * t/basic_deployment.py: - Turn off debugging (OpenStackAmuletUtils(ERROR)) - Specify unstable charm deployment - Use dicts in add_services - Rename restart test - Cleanup on restart test failure - Drop fake fail debug function
This commit is contained in:
parent
a2ce89d407
commit
05d6b57348
8
Makefile
8
Makefile
@ -2,17 +2,19 @@
|
|||||||
PYTHON := /usr/bin/env python
|
PYTHON := /usr/bin/env python
|
||||||
|
|
||||||
lint:
|
lint:
|
||||||
@flake8 --exclude hooks/charmhelpers hooks unit_tests
|
@flake8 --exclude hooks/charmhelpers hooks unit_tests tests
|
||||||
@charm proof
|
@charm proof
|
||||||
|
|
||||||
unit_test:
|
unit_test:
|
||||||
|
@echo Starting unit tests...
|
||||||
@$(PYTHON) /usr/bin/nosetests --nologcapture --with-coverage unit_tests
|
@$(PYTHON) /usr/bin/nosetests --nologcapture --with-coverage unit_tests
|
||||||
|
|
||||||
test:
|
test:
|
||||||
@echo Starting amulet deployment tests...
|
@echo Starting amulet deployment tests...
|
||||||
#NOTE(beisner): can remove -v after bug 1320357 is fixed
|
#NOTE(beisner): can remove -v after bug 1320357 is fixed
|
||||||
# https://bugs.launchpad.net/amulet/+bug/1320357
|
# https://bugs.launchpad.net/amulet/+bug/1320357
|
||||||
@juju test -v -p AMULET_HTTP_PROXY
|
@juju test -v -p AMULET_HTTP_PROXY --timeout 900 \
|
||||||
|
00-setup 14-basic-precise-icehouse 15-basic-trusty-icehouse
|
||||||
|
|
||||||
bin/charm_helpers_sync.py:
|
bin/charm_helpers_sync.py:
|
||||||
@mkdir -p bin
|
@mkdir -p bin
|
||||||
@ -21,7 +23,7 @@ bin/charm_helpers_sync.py:
|
|||||||
|
|
||||||
sync: bin/charm_helpers_sync.py
|
sync: bin/charm_helpers_sync.py
|
||||||
@$(PYTHON) bin/charm_helpers_sync.py -c charm-helpers-hooks.yaml
|
@$(PYTHON) bin/charm_helpers_sync.py -c charm-helpers-hooks.yaml
|
||||||
@charm-helper-sync -c charm-helpers-tests.yaml
|
@$(PYTHON) bin/charm_helpers_sync.py -c charm-helpers-tests.yaml
|
||||||
|
|
||||||
publish: lint unit_test
|
publish: lint unit_test
|
||||||
bzr push lp:charms/cinder
|
bzr push lp:charms/cinder
|
||||||
|
@ -4,7 +4,7 @@ set -ex
|
|||||||
|
|
||||||
sudo add-apt-repository --yes ppa:juju/stable
|
sudo add-apt-repository --yes ppa:juju/stable
|
||||||
sudo apt-get update --yes
|
sudo apt-get update --yes
|
||||||
sudo apt-get install --yes python-amulet
|
sudo apt-get install --yes python-amulet \
|
||||||
sudo apt-get install --yes python-keystoneclient
|
python-keystoneclient \
|
||||||
sudo apt-get install --yes python-cinderclient
|
python-cinderclient \
|
||||||
sudo apt-get install --yes python-glanceclient
|
python-glanceclient
|
||||||
|
@ -1,6 +1,12 @@
|
|||||||
This directory provides Amulet tests that focus on verification of Cinder
|
This directory provides Amulet tests that focus on verification of Cinder
|
||||||
deployments.
|
deployments.
|
||||||
|
|
||||||
|
In order to run tests, you'll need charm-tools installed (in addition to
|
||||||
|
juju, of course):
|
||||||
|
sudo add-apt-repository ppa:juju/stable
|
||||||
|
sudo apt-get update
|
||||||
|
sudo apt-get install charm-tools
|
||||||
|
|
||||||
If you use a web proxy server to access the web, you'll need to set the
|
If you use a web proxy server to access the web, you'll need to set the
|
||||||
AMULET_HTTP_PROXY environment variable to the http URL of the proxy server.
|
AMULET_HTTP_PROXY environment variable to the http URL of the proxy server.
|
||||||
|
|
||||||
|
@ -17,7 +17,7 @@ from charmhelpers.contrib.openstack.amulet.utils import ( # noqa
|
|||||||
)
|
)
|
||||||
|
|
||||||
# Use DEBUG to turn on debug logging
|
# Use DEBUG to turn on debug logging
|
||||||
u = OpenStackAmuletUtils(DEBUG)
|
u = OpenStackAmuletUtils(ERROR)
|
||||||
|
|
||||||
|
|
||||||
class CinderBasicDeployment(OpenStackAmuletDeployment):
|
class CinderBasicDeployment(OpenStackAmuletDeployment):
|
||||||
@ -29,9 +29,10 @@ class CinderBasicDeployment(OpenStackAmuletDeployment):
|
|||||||
# NOTE(beisner): Features and tests vary across Openstack releases.
|
# NOTE(beisner): Features and tests vary across Openstack releases.
|
||||||
# https://wiki.openstack.org/wiki/CinderSupportMatrix
|
# https://wiki.openstack.org/wiki/CinderSupportMatrix
|
||||||
|
|
||||||
def __init__(self, series=None, openstack=None, source=None):
|
def __init__(self, series=None, openstack=None, source=None, stable=False):
|
||||||
'''Deploy the entire test environment.'''
|
'''Deploy the entire test environment.'''
|
||||||
super(CinderBasicDeployment, self).__init__(series, openstack, source)
|
super(CinderBasicDeployment, self).__init__(series, openstack, source,
|
||||||
|
stable)
|
||||||
self._add_services()
|
self._add_services()
|
||||||
self._add_relations()
|
self._add_relations()
|
||||||
self._configure_services()
|
self._configure_services()
|
||||||
@ -39,12 +40,15 @@ class CinderBasicDeployment(OpenStackAmuletDeployment):
|
|||||||
self._initialize_tests()
|
self._initialize_tests()
|
||||||
|
|
||||||
def _add_services(self):
|
def _add_services(self):
|
||||||
'''Add the service that we're testing, including the number of units,
|
"""Add services
|
||||||
where this charm is local, and the other charms are from
|
|
||||||
the charm store.'''
|
Add the services that we're testing, where cinder is local,
|
||||||
this_service = ('cinder', 1)
|
and the rest of the service are from lp branches that are
|
||||||
other_services = [('mysql', 1), ('rabbitmq-server', 1),
|
compatible with the local charm (e.g. stable or next).
|
||||||
('keystone', 1), ('glance', 1)]
|
"""
|
||||||
|
this_service = {'name': 'cinder'}
|
||||||
|
other_services = [{'name': 'mysql'}, {'name': 'rabbitmq-server'},
|
||||||
|
{'name': 'keystone'}, {'name': 'glance'}]
|
||||||
super(CinderBasicDeployment, self)._add_services(this_service,
|
super(CinderBasicDeployment, self)._add_services(this_service,
|
||||||
other_services)
|
other_services)
|
||||||
|
|
||||||
@ -508,10 +512,13 @@ class CinderBasicDeployment(OpenStackAmuletDeployment):
|
|||||||
amulet.raise_status(amulet.FAIL,
|
amulet.raise_status(amulet.FAIL,
|
||||||
msg='glance endpoint: {}'.format(ret))
|
msg='glance endpoint: {}'.format(ret))
|
||||||
|
|
||||||
def test_cinder_restart_on_config_change(self):
|
def test_z_cinder_restart_on_config_change(self):
|
||||||
'''Verify that cinder services are restarted when
|
'''Verify cinder services are restarted when the config is changed.
|
||||||
the config is changed.'''
|
|
||||||
|
|
||||||
|
Note(coreycb): The method name with the _z_ is a little odd
|
||||||
|
but it forces the test to run last. It just makes things
|
||||||
|
easier because restarting services requires re-authorization.
|
||||||
|
'''
|
||||||
u.log.debug('making charm config change')
|
u.log.debug('making charm config change')
|
||||||
self.d.configure('cinder', {'verbose': 'True'})
|
self.d.configure('cinder', {'verbose': 'True'})
|
||||||
self.d.configure('cinder', {'debug': 'True'})
|
self.d.configure('cinder', {'debug': 'True'})
|
||||||
@ -519,11 +526,15 @@ class CinderBasicDeployment(OpenStackAmuletDeployment):
|
|||||||
if not self.service_restarted(self.cinder_sentry, 'cinder-api',
|
if not self.service_restarted(self.cinder_sentry, 'cinder-api',
|
||||||
'/etc/cinder/cinder.conf',
|
'/etc/cinder/cinder.conf',
|
||||||
sleep_time=30):
|
sleep_time=30):
|
||||||
|
self.d.configure('cinder', {'verbose': 'False'})
|
||||||
|
self.d.configure('cinder', {'debug': 'False'})
|
||||||
msg = "cinder-api service didn't restart after config change"
|
msg = "cinder-api service didn't restart after config change"
|
||||||
amulet.raise_status(amulet.FAIL, msg=msg)
|
amulet.raise_status(amulet.FAIL, msg=msg)
|
||||||
|
|
||||||
if not self.service_restarted(self.cinder_sentry, 'cinder-volume',
|
if not self.service_restarted(self.cinder_sentry, 'cinder-volume',
|
||||||
'/etc/cinder/cinder.conf', sleep_time=0):
|
'/etc/cinder/cinder.conf', sleep_time=0):
|
||||||
|
self.d.configure('cinder', {'verbose': 'False'})
|
||||||
|
self.d.configure('cinder', {'debug': 'False'})
|
||||||
msg = "cinder-volume service didn't restart after conf change"
|
msg = "cinder-volume service didn't restart after conf change"
|
||||||
amulet.raise_status(amulet.FAIL, msg=msg)
|
amulet.raise_status(amulet.FAIL, msg=msg)
|
||||||
|
|
||||||
@ -806,9 +817,3 @@ class CinderBasicDeployment(OpenStackAmuletDeployment):
|
|||||||
ret = self.delete_all_objs(self.cinder.volumes, item_desc='volume')
|
ret = self.delete_all_objs(self.cinder.volumes, item_desc='volume')
|
||||||
if ret:
|
if ret:
|
||||||
amulet.raise_status(amulet.FAIL, msg=ret)
|
amulet.raise_status(amulet.FAIL, msg=ret)
|
||||||
|
|
||||||
def test_zzzz_fake_fail(self):
|
|
||||||
'''Force a fake fail to keep juju environment after a successful test run'''
|
|
||||||
# Useful in test writing, when used with: juju test --set-e
|
|
||||||
amulet.raise_status(amulet.FAIL, msg='using fake fail to keep juju environment')
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user