Update amulet test for Mitaka; Refactor conf dict checks for clarity and simplicity; Remove Essex conditionals and definition.
This commit is contained in:
parent
40e3a51461
commit
e573053e59
@ -1,10 +0,0 @@
|
|||||||
#!/usr/bin/python
|
|
||||||
|
|
||||||
"""Amulet tests on a basic nova cloud controller deployment on
|
|
||||||
precise-essex."""
|
|
||||||
|
|
||||||
from basic_deployment import NovaCCBasicDeployment
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
|
||||||
deployment = NovaCCBasicDeployment(series='precise')
|
|
||||||
deployment.run_tests()
|
|
0
tests/019-basic-trusty-mitaka
Normal file → Executable file
0
tests/019-basic-trusty-mitaka
Normal file → Executable file
0
tests/021-basic-xenial-mitaka
Normal file → Executable file
0
tests/021-basic-xenial-mitaka
Normal file → Executable file
@ -438,8 +438,6 @@ class NovaCCBasicDeployment(OpenStackAmuletDeployment):
|
|||||||
'private-address': u.valid_ip,
|
'private-address': u.valid_ip,
|
||||||
'restart_trigger': u.not_null
|
'restart_trigger': u.not_null
|
||||||
}
|
}
|
||||||
if self._get_openstack_release() == self.precise_essex:
|
|
||||||
expected['volume_service'] = 'nova-volume'
|
|
||||||
|
|
||||||
ret = u.validate_relation_data(unit, relation, expected)
|
ret = u.validate_relation_data(unit, relation, expected)
|
||||||
if ret:
|
if ret:
|
||||||
@ -493,11 +491,6 @@ class NovaCCBasicDeployment(OpenStackAmuletDeployment):
|
|||||||
|
|
||||||
def test_300_nova_default_config(self):
|
def test_300_nova_default_config(self):
|
||||||
"""Verify the data in the nova config file's default section."""
|
"""Verify the data in the nova config file's default section."""
|
||||||
# NOTE(coreycb): Currently no way to test on essex because config file
|
|
||||||
# has no section headers.
|
|
||||||
if self._get_openstack_release() == self.precise_essex:
|
|
||||||
return
|
|
||||||
|
|
||||||
u.log.debug('Checking nova config file data...')
|
u.log.debug('Checking nova config file data...')
|
||||||
unit = self.nova_cc_sentry
|
unit = self.nova_cc_sentry
|
||||||
conf = '/etc/nova/nova.conf'
|
conf = '/etc/nova/nova.conf'
|
||||||
@ -557,90 +550,74 @@ class NovaCCBasicDeployment(OpenStackAmuletDeployment):
|
|||||||
'ec2_listen_port': '8763'
|
'ec2_listen_port': '8763'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if self._get_openstack_release() < self.trusty_kilo:
|
|
||||||
d = 'DEFAULT'
|
|
||||||
if self._get_openstack_release() < self.precise_icehouse:
|
|
||||||
expected[d]['sql_connection'] = db_uri
|
|
||||||
else:
|
|
||||||
database = {
|
|
||||||
'database': {
|
|
||||||
'connection': db_uri
|
|
||||||
}
|
|
||||||
}
|
|
||||||
keystone_authtoken = {
|
|
||||||
'keystone_authtoken': {
|
|
||||||
'auth_uri': ks_uri,
|
|
||||||
'auth_host': ks_ncc_rel['service_host'],
|
|
||||||
'auth_port': ks_ncc_rel['auth_port'],
|
|
||||||
'auth_protocol': ks_ncc_rel['auth_protocol'],
|
|
||||||
'admin_tenant_name': ks_ncc_rel['service_tenant'],
|
|
||||||
'admin_user': ks_ncc_rel['service_username'],
|
|
||||||
'admin_password': ks_ncc_rel['service_password'],
|
|
||||||
}
|
|
||||||
}
|
|
||||||
expected.update(database)
|
|
||||||
expected.update(keystone_authtoken)
|
|
||||||
expected[d]['lock_path'] = '/var/lock/nova'
|
|
||||||
expected[d]['libvirt_use_virtio_for_bridges'] = 'True'
|
|
||||||
expected[d]['compute_driver'] = 'libvirt.LibvirtDriver'
|
|
||||||
expected[d]['rabbit_userid'] = 'nova'
|
|
||||||
expected[d]['rabbit_virtual_host'] = 'openstack'
|
|
||||||
expected[d]['rabbit_password'] = rmq_ncc_rel['password']
|
|
||||||
expected[d]['rabbit_host'] = rmq_ncc_rel['hostname']
|
|
||||||
expected[d]['glance_api_servers'] = gl_ncc_rel['glance-api-server']
|
|
||||||
|
|
||||||
|
if self._get_openstack_release() < self.trusty_kilo:
|
||||||
|
# Juno and earlier
|
||||||
|
expected['database'] = {
|
||||||
|
'connection': db_uri
|
||||||
|
}
|
||||||
|
expected['keystone_authtoken'] = {
|
||||||
|
'auth_uri': ks_uri,
|
||||||
|
'auth_host': ks_ncc_rel['service_host'],
|
||||||
|
'auth_port': ks_ncc_rel['auth_port'],
|
||||||
|
'auth_protocol': ks_ncc_rel['auth_protocol'],
|
||||||
|
'admin_tenant_name': ks_ncc_rel['service_tenant'],
|
||||||
|
'admin_user': ks_ncc_rel['service_username'],
|
||||||
|
'admin_password': ks_ncc_rel['service_password'],
|
||||||
|
}
|
||||||
|
expected['DEFAULT'].update({
|
||||||
|
'lock_path': '/var/lock/nova',
|
||||||
|
'libvirt_use_virtio_for_bridges': 'True',
|
||||||
|
'compute_driver': 'libvirt.LibvirtDriver',
|
||||||
|
'rabbit_userid': 'nova',
|
||||||
|
'rabbit_virtual_host': 'openstack',
|
||||||
|
'rabbit_password': rmq_ncc_rel['password'],
|
||||||
|
'rabbit_host': rmq_ncc_rel['hostname'],
|
||||||
|
'glance_api_servers': gl_ncc_rel['glance-api-server']
|
||||||
|
})
|
||||||
else:
|
else:
|
||||||
database = {
|
# Kilo and later
|
||||||
'database': {
|
expected['database'] = {
|
||||||
'connection': db_uri,
|
'connection': db_uri,
|
||||||
'max_pool_size': '2',
|
'max_pool_size': '2',
|
||||||
}
|
|
||||||
}
|
}
|
||||||
glance = {
|
expected['glance'] = {
|
||||||
'glance': {
|
'api_servers': gl_ncc_rel['glance-api-server'],
|
||||||
'api_servers': gl_ncc_rel['glance-api-server'],
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
keystone_authtoken = {
|
expected['keystone_authtoken'] = {
|
||||||
'keystone_authtoken': {
|
'identity_uri': id_uri,
|
||||||
'identity_uri': id_uri,
|
'auth_uri': ks_uri,
|
||||||
'auth_uri': ks_uri,
|
'admin_tenant_name': ks_ncc_rel['service_tenant'],
|
||||||
'admin_tenant_name': ks_ncc_rel['service_tenant'],
|
'admin_user': ks_ncc_rel['service_username'],
|
||||||
'admin_user': ks_ncc_rel['service_username'],
|
'admin_password': ks_ncc_rel['service_password'],
|
||||||
'admin_password': ks_ncc_rel['service_password'],
|
'signing_dir': '/var/cache/nova',
|
||||||
'signing_dir': '/var/cache/nova',
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
osapi_v3 = {
|
expected['osapi_v3'] = {
|
||||||
'osapi_v3': {
|
'enabled': 'True',
|
||||||
'enabled': 'True',
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
conductor = {
|
expected['conductor'] = {
|
||||||
'conductor': {
|
'workers': '2',
|
||||||
'workers': '2',
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
oslo_messaging_rabbit = {
|
expected['oslo_messaging_rabbit'] = {
|
||||||
'oslo_messaging_rabbit': {
|
'rabbit_userid': 'nova',
|
||||||
'rabbit_userid': 'nova',
|
'rabbit_virtual_host': 'openstack',
|
||||||
'rabbit_virtual_host': 'openstack',
|
'rabbit_password': rmq_ncc_rel['password'],
|
||||||
'rabbit_password': rmq_ncc_rel['password'],
|
'rabbit_host': rmq_ncc_rel['hostname'],
|
||||||
'rabbit_host': rmq_ncc_rel['hostname'],
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
oslo_concurrency = {
|
expected['oslo_concurrency'] = {
|
||||||
'oslo_concurrency': {
|
'lock_path': '/var/lock/nova',
|
||||||
'lock_path': '/var/lock/nova',
|
}
|
||||||
}
|
|
||||||
|
if self._get_openstack_release() >= self.trusty_mitaka:
|
||||||
|
# Mitaka
|
||||||
|
expected['keystone_authtoken'] = {
|
||||||
|
'auth_type': 'password',
|
||||||
|
'project_name': 'services',
|
||||||
|
'username': 'nova',
|
||||||
|
'password': ks_ncc_rel['service_password'],
|
||||||
|
'auth_url': id_uri.rstrip('/'),
|
||||||
|
'region': 'RegionOne'
|
||||||
}
|
}
|
||||||
expected.update(database)
|
|
||||||
expected.update(glance)
|
|
||||||
expected.update(keystone_authtoken)
|
|
||||||
expected.update(osapi_v3)
|
|
||||||
expected.update(conductor)
|
|
||||||
expected.update(oslo_messaging_rabbit)
|
|
||||||
expected.update(oslo_concurrency)
|
|
||||||
|
|
||||||
for section, pairs in expected.iteritems():
|
for section, pairs in expected.iteritems():
|
||||||
ret = u.validate_config_data(unit, conf, section, pairs)
|
ret = u.validate_config_data(unit, conf, section, pairs)
|
||||||
@ -648,16 +625,20 @@ class NovaCCBasicDeployment(OpenStackAmuletDeployment):
|
|||||||
message = "nova config error: {}".format(ret)
|
message = "nova config error: {}".format(ret)
|
||||||
amulet.raise_status(amulet.FAIL, msg=message)
|
amulet.raise_status(amulet.FAIL, msg=message)
|
||||||
|
|
||||||
def test_302_api_rate_limiting_is_enabled_for_icehouse_or_more(self):
|
def test_302_api_rate_limiting_is_enabled(self):
|
||||||
"""
|
"""
|
||||||
The API rate limiting is enabled for icehouse or more. Otherwise the
|
Check that API rate limiting is enabled.
|
||||||
api-paste.ini file is left untouched.
|
|
||||||
"""
|
"""
|
||||||
u.log.debug('Checking api-paste config file data...')
|
u.log.debug('Checking api-paste config file data...')
|
||||||
|
|
||||||
unit = self.nova_cc_sentry
|
unit = self.nova_cc_sentry
|
||||||
conf = '/etc/nova/api-paste.ini'
|
conf = '/etc/nova/api-paste.ini'
|
||||||
section = "filter:ratelimit"
|
|
||||||
|
if self._get_openstack_release() >= self.trusty_mitaka:
|
||||||
|
section = "filter:legacy_ratelimit"
|
||||||
|
else:
|
||||||
|
section = "filter:ratelimit"
|
||||||
|
|
||||||
factory = ("nova.api.openstack.compute.limits:RateLimitingMiddleware"
|
factory = ("nova.api.openstack.compute.limits:RateLimitingMiddleware"
|
||||||
".factory")
|
".factory")
|
||||||
|
|
||||||
@ -674,13 +655,6 @@ class NovaCCBasicDeployment(OpenStackAmuletDeployment):
|
|||||||
|
|
||||||
def test_400_image_instance_create(self):
|
def test_400_image_instance_create(self):
|
||||||
"""Create an image/instance, verify they exist, and delete them."""
|
"""Create an image/instance, verify they exist, and delete them."""
|
||||||
# NOTE(coreycb): Skipping failing test on essex until resolved. essex
|
|
||||||
# nova API calls are getting "Malformed request url
|
|
||||||
# (HTTP 400)".
|
|
||||||
if self._get_openstack_release() == self.precise_essex:
|
|
||||||
u.log.error("Skipping test (due to Essex)")
|
|
||||||
return
|
|
||||||
|
|
||||||
u.log.debug('Checking nova instance creation...')
|
u.log.debug('Checking nova instance creation...')
|
||||||
|
|
||||||
image = u.create_cirros_image(self.glance, "cirros-image")
|
image = u.create_cirros_image(self.glance, "cirros-image")
|
||||||
@ -713,10 +687,6 @@ class NovaCCBasicDeployment(OpenStackAmuletDeployment):
|
|||||||
def test_900_restart_on_config_change(self):
|
def test_900_restart_on_config_change(self):
|
||||||
"""Verify that the specified services are restarted when the config
|
"""Verify that the specified services are restarted when the config
|
||||||
is changed."""
|
is changed."""
|
||||||
if self._get_openstack_release() == self.precise_essex:
|
|
||||||
u.log.error("Skipping test (due to Essex)")
|
|
||||||
return
|
|
||||||
|
|
||||||
u.log.info('Checking that conf files and system services respond '
|
u.log.info('Checking that conf files and system services respond '
|
||||||
'to a charm config change...')
|
'to a charm config change...')
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user