This test is being disabled because of bug #1846390. https://bugs.launchpad.net/charms/+source/ceilometer/+bug/1846390
123 lines
4.6 KiB
Python
123 lines
4.6 KiB
Python
#!/usr/bin/env python3
|
|
|
|
# Copyright 2019 Canonical Ltd.
|
|
#
|
|
# 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.
|
|
|
|
"""Encapsulate Ceilometer testing."""
|
|
|
|
import logging
|
|
|
|
import zaza.openstack.utilities.openstack as openstack_utils
|
|
import zaza.openstack.charm_tests.test_utils as test_utils
|
|
|
|
|
|
class CeilometerTest(test_utils.OpenStackBaseTest):
|
|
"""Encapsulate Ceilometer tests."""
|
|
|
|
CONF_FILE = '/etc/ceilometer/ceilometer.conf'
|
|
|
|
XENIAL_PIKE = openstack_utils.get_os_release('xenial_pike')
|
|
XENIAL_OCATA = openstack_utils.get_os_release('xenial_ocata')
|
|
XENIAL_NEWTON = openstack_utils.get_os_release('xenial_newton')
|
|
TRUSTY_MITAKA = openstack_utils.get_os_release('trusty_mitaka')
|
|
TRUSTY_LIBERTY = openstack_utils.get_os_release('trusty_liberty')
|
|
|
|
@classmethod
|
|
def setUpClass(cls):
|
|
"""Run class setup for running Ceilometer tests."""
|
|
super(CeilometerTest, cls).setUpClass()
|
|
|
|
@property
|
|
def services(self):
|
|
"""Return a list services for Openstack Release.
|
|
|
|
Note: disabling ceilometer-polling and ceilometer-agent-central due to
|
|
bug #1846390.
|
|
https://bugs.launchpad.net/charms/+source/ceilometer/+bug/1846390
|
|
"""
|
|
current_release = openstack_utils.get_os_release()
|
|
services = []
|
|
|
|
if current_release >= CeilometerTest.XENIAL_PIKE:
|
|
# services.append('ceilometer-polling: AgentManager worker(0)')
|
|
services.append('ceilometer-agent-notification: '
|
|
'NotificationService worker(0)')
|
|
elif current_release >= CeilometerTest.XENIAL_OCATA:
|
|
services.append('ceilometer-collector: CollectorService worker(0)')
|
|
# services.append('ceilometer-polling: AgentManager worker(0)')
|
|
services.append('ceilometer-agent-notification: '
|
|
'NotificationService worker(0)')
|
|
services.append('apache2')
|
|
elif current_release >= CeilometerTest.XENIAL_NEWTON:
|
|
services.append('ceilometer-collector - CollectorService(0)')
|
|
# services.append('ceilometer-polling - AgentManager(0)')
|
|
services.append('ceilometer-agent-notification - '
|
|
'NotificationService(0)')
|
|
services.append('ceilometer-api')
|
|
else:
|
|
services.append('ceilometer-collector')
|
|
services.append('ceilometer-api')
|
|
services.append('ceilometer-agent-notification')
|
|
|
|
if current_release < CeilometerTest.TRUSTY_MITAKA:
|
|
services.append('ceilometer-alarm-notifier')
|
|
services.append('ceilometer-alarm-evaluator')
|
|
|
|
# if current_release >= CeilometerTest.TRUSTY_LIBERTY:
|
|
# Liberty and later
|
|
# services.append('ceilometer-polling')
|
|
# else:
|
|
# Juno and earlier
|
|
# services.append('ceilometer-agent-central')
|
|
|
|
return services
|
|
|
|
# NOTE(beisner): need to add more functional tests
|
|
|
|
def test_900_restart_on_config_change(self):
|
|
"""Checking restart happens on config change."""
|
|
# Expected default and alternate values
|
|
current_value = openstack_utils.get_application_config_option(
|
|
'ceilometer', 'debug'
|
|
)
|
|
assert type(current_value) == bool
|
|
new_value = not current_value
|
|
|
|
# Convert bool to str
|
|
current_value = str(current_value)
|
|
new_value = str(new_value)
|
|
|
|
set_default = {'debug': current_value}
|
|
set_alternate = {'debug': new_value}
|
|
default_entry = {'DEFAULT': {'debug': [current_value]}}
|
|
alternate_entry = {'DEFAULT': {'debug': [new_value]}}
|
|
|
|
logging.info('changing config: {}'.format(set_alternate))
|
|
self.restart_on_changed(
|
|
CeilometerTest.CONF_FILE,
|
|
set_default,
|
|
set_alternate,
|
|
default_entry,
|
|
alternate_entry,
|
|
self.services)
|
|
|
|
def test_901_pause_resume(self):
|
|
"""Run pause and resume tests.
|
|
|
|
Pause service and check services are stopped then resume and check
|
|
they are started.
|
|
"""
|
|
with self.pause_resume(self.services):
|
|
logging.info("Testing pause and resume")
|