From 243d4ad7ef217e1249e0e5ea89dc8fb2a610fa2f Mon Sep 17 00:00:00 2001 From: Brant Knudson Date: Tue, 24 Jun 2014 16:25:26 -0500 Subject: [PATCH] Use auth_token from keystonemiddleware auth_token middleware in python-keystoneclient is deprecated and has been moved to the keystonemiddleware repo. test_keystone_middleware_conf and test_keystone_middleware_parse_conffile were removed. These tests were relying on undocumented behavior (how the config options turn into attributes). This doesn't work anymore since the keystonemiddleware version doesn't provide any public API other than calling it as a wsgi app, and then doesn't document what internal operations it will do when called so isn't safe to be called in unit tests. Tests verifying that the auth_token middleware can read its config options should be done in keystonemiddleware. Closes-Bug: #1342274 Change-Id: I1aadbe24db63eb2507b088cd53886d7f2e192cab --- ceilometer/tests/api/v2/test_app.py | 52 ----------------------------- etc/ceilometer/api_paste.ini | 2 +- requirements.txt | 1 + 3 files changed, 2 insertions(+), 53 deletions(-) diff --git a/ceilometer/tests/api/v2/test_app.py b/ceilometer/tests/api/v2/test_app.py index dafc39d23..f1cf59355 100644 --- a/ceilometer/tests/api/v2/test_app.py +++ b/ceilometer/tests/api/v2/test_app.py @@ -18,64 +18,12 @@ """Test basic ceilometer-api app """ import json -import os import mock import wsme -from ceilometer.api import app -from ceilometer.openstack.common import fileutils -from ceilometer.openstack.common.fixture import config from ceilometer.openstack.common import gettextutils -from ceilometer import service -from ceilometer.tests import api as acl from ceilometer.tests.api import v2 -from ceilometer.tests import base - - -class TestApp(base.BaseTestCase): - - def setUp(self): - super(TestApp, self).setUp() - self.CONF = self.useFixture(config.Config()).conf - - def test_keystone_middleware_conf(self): - self.CONF.set_override("auth_protocol", "file", - group=acl.OPT_GROUP_NAME) - self.CONF.set_override("auth_version", "v2.0", - group=acl.OPT_GROUP_NAME) - self.CONF.set_override("pipeline_cfg_file", - self.path_get("etc/ceilometer/pipeline.yaml")) - self.CONF.set_override('connection', "log://", group="database") - self.CONF.set_override("auth_uri", None, group=acl.OPT_GROUP_NAME) - file_name = self.path_get('etc/ceilometer/api_paste.ini') - self.CONF.set_override("api_paste_config", file_name) - - api_app = app.load_app() - self.assertTrue(api_app.auth_uri.startswith('file')) - - def test_keystone_middleware_parse_conffile(self): - pipeline_conf = self.path_get("etc/ceilometer/pipeline.yaml") - api_conf = self.path_get('etc/ceilometer/api_paste.ini') - content = ("[DEFAULT]\n" - "rpc_backend = fake\n" - "pipeline_cfg_file = {0}\n" - "api_paste_config = {1}\n" - "[{2}]\n" - "auth_protocol = file\n" - "auth_version = v2.0\n".format(pipeline_conf, - api_conf, - acl.OPT_GROUP_NAME)) - - tmpfile = fileutils.write_to_tempfile(content=content, - prefix='ceilometer', - suffix='.conf') - service.prepare_service(['ceilometer-api', - '--config-file=%s' % tmpfile]) - self.CONF.set_override('connection', "log://", group="database") - api_app = app.load_app() - self.assertTrue(api_app.auth_uri.startswith('file')) - os.unlink(tmpfile) class TestPecanApp(v2.FunctionalTest): diff --git a/etc/ceilometer/api_paste.ini b/etc/ceilometer/api_paste.ini index 6ae6f449c..93a87f7f3 100644 --- a/etc/ceilometer/api_paste.ini +++ b/etc/ceilometer/api_paste.ini @@ -11,5 +11,5 @@ pipeline = authtoken api-server paste.app_factory = ceilometer.api.app:app_factory [filter:authtoken] -paste.filter_factory = keystoneclient.middleware.auth_token:filter_factory +paste.filter_factory = keystonemiddleware.auth_token:filter_factory diff --git a/requirements.txt b/requirements.txt index 6705bc878..51db16848 100644 --- a/requirements.txt +++ b/requirements.txt @@ -7,6 +7,7 @@ happybase>=0.5,!=0.7 iso8601>=0.1.9 jsonpath-rw>=1.2.0,<2.0 jsonschema>=2.0.0,<3.0.0 +keystonemiddleware>=1.0.0 lockfile>=0.8 lxml>=2.3 msgpack-python>=0.4.0