2016-06-22 15:25:52 +01:00
|
|
|
# Copyright 2016 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.
|
|
|
|
|
2013-10-20 15:28:18 -07:00
|
|
|
import ceilometer_contexts as contexts
|
|
|
|
from test_utils import CharmTestCase
|
|
|
|
|
|
|
|
TO_PATCH = [
|
2021-05-05 17:58:06 +03:00
|
|
|
'config',
|
2013-10-20 15:28:18 -07:00
|
|
|
'relation_get',
|
|
|
|
'relation_ids',
|
|
|
|
'related_units',
|
|
|
|
]
|
|
|
|
|
|
|
|
|
|
|
|
class CeilometerContextsTest(CharmTestCase):
|
|
|
|
|
|
|
|
def setUp(self):
|
|
|
|
super(CeilometerContextsTest, self).setUp(contexts, TO_PATCH)
|
2021-05-05 17:58:06 +03:00
|
|
|
self.config.side_effect = self.test_config.get
|
2013-10-20 15:28:18 -07:00
|
|
|
self.relation_get.side_effect = self.test_relation.get
|
|
|
|
|
|
|
|
def tearDown(self):
|
|
|
|
super(CeilometerContextsTest, self).tearDown()
|
|
|
|
|
|
|
|
def test_ceilometer_service_context(self):
|
|
|
|
self.relation_ids.return_value = ['ceilometer-service:0']
|
|
|
|
self.related_units.return_value = ['ceilometer/0']
|
|
|
|
data = {
|
2013-12-17 15:00:42 +00:00
|
|
|
'debug': True,
|
|
|
|
'verbose': False,
|
|
|
|
'rabbitmq_host': 'foo',
|
2017-10-18 10:28:07 +00:00
|
|
|
'rabbitmq_hosts': 'foo,bar',
|
2013-12-17 15:00:42 +00:00
|
|
|
'rabbitmq_user': 'bar',
|
|
|
|
'rabbitmq_password': 'baz',
|
|
|
|
'rabbitmq_virtual_host': 'openstack',
|
2014-03-28 15:33:10 +00:00
|
|
|
'rabbit_ssl_ca': None,
|
|
|
|
'rabbit_ssl_port': None,
|
2016-09-28 17:52:59 +08:00
|
|
|
'api_version': 3,
|
2013-12-17 15:00:42 +00:00
|
|
|
'auth_protocol': 'http',
|
|
|
|
'auth_host': 'keystone',
|
|
|
|
'auth_port': '80',
|
2016-09-28 17:52:59 +08:00
|
|
|
'service_protocol': 'http',
|
|
|
|
'service_host': 'keystone',
|
|
|
|
'service_port': '80',
|
|
|
|
'signing_dir': '/var/lib/ceilometer',
|
2016-11-08 18:45:32 +01:00
|
|
|
'admin_domain_name': 'admin_domain',
|
2013-12-17 15:00:42 +00:00
|
|
|
'admin_tenant_name': 'admin',
|
|
|
|
'admin_user': 'admin',
|
|
|
|
'admin_password': 'password',
|
2020-06-26 12:08:52 -03:00
|
|
|
'metering_secret': 'secret',
|
|
|
|
'polling_batch_size': 50,
|
2013-10-20 15:28:18 -07:00
|
|
|
}
|
|
|
|
self.test_relation.set(data)
|
2017-09-12 21:18:42 +08:00
|
|
|
self.assertEqual(contexts.CeilometerServiceContext()(), data)
|
2013-10-20 15:28:18 -07:00
|
|
|
|
|
|
|
def test_ceilometer_service_context_not_related(self):
|
|
|
|
self.relation_ids.return_value = []
|
2017-09-12 21:18:42 +08:00
|
|
|
self.assertEqual(contexts.CeilometerServiceContext()(), {})
|
2021-05-05 17:58:06 +03:00
|
|
|
|
|
|
|
def test_ceilometer_context(self):
|
|
|
|
self.assertEqual(contexts.CeilometerAgentContext()(), {
|
|
|
|
'polling_interval': 300,
|
|
|
|
'enable_all_pollsters': False,
|
|
|
|
})
|
|
|
|
|
|
|
|
def test_ceilometer_context_enable_all_pollsters(self):
|
|
|
|
self.test_config.set('enable-all-pollsters', True)
|
|
|
|
self.assertEqual(contexts.CeilometerAgentContext()(), {
|
|
|
|
'polling_interval': 300,
|
|
|
|
'enable_all_pollsters': True,
|
|
|
|
})
|
|
|
|
|
|
|
|
def test_ceilometer_context_polling_interval(self):
|
|
|
|
self.test_config.set('polling-interval', 600)
|
|
|
|
self.assertEqual(contexts.CeilometerAgentContext()(), {
|
|
|
|
'polling_interval': 600,
|
|
|
|
'enable_all_pollsters': False,
|
|
|
|
})
|