]> review.fuel-infra Code Review - puppet-modules/puppet-ceilometer.git/commitdiff
Add option to enable Ceilometer's SSL middleware
authorJuan Antonio Osorio Robles <jaosorior@redhat.com>
Mon, 10 Oct 2016 08:54:52 +0000 (11:54 +0300)
committerJuan Antonio Osorio Robles <jaosorior@redhat.com>
Fri, 14 Oct 2016 08:36:46 +0000 (08:36 +0000)
Ceilometer is now using the HTTPProxyToWSGI middleware from
oslo.middlware in its default api-paste configuration [1]. This commit
gives us the ability to enable/disable that middlware.

[1] I24f16dda49bd9e7930ca9f0d32bf0793463aff03

Change-Id: I1812a27202ba3714b354aeb27611d38def87a7fc
(cherry picked from commit d4aa3e5cad9b66044d31f0c885458aac7cfbc792)

manifests/api.pp
releasenotes/notes/Adds-enable-proxy-header-parsing-64b78b56d8787e1d.yaml [new file with mode: 0644]
spec/classes/ceilometer_api_spec.rb

index 8b2111fe7489581fd6af4459e03e40d58350fe65..54dd691f5515f3e9bf1d337ebf766763d2847e65 100644 (file)
 #   (Optional) Type of authentication to be used.
 #   Defaults to 'keystone'
 #
+# [*enable_proxy_headers_parsing*]
+#   (Optional) Enable paste middleware to handle SSL requests through
+#   HTTPProxyToWSGI middleware.
+#   Defaults to $::os_service_default.
+#
 # = DEPRECATED PARAMETER
 #
 # [*identity_uri*]
 #   Defaults to undef
 #
 class ceilometer::api (
-  $manage_service    = true,
-  $enabled           = true,
-  $package_ensure    = 'present',
-  $host              = '0.0.0.0',
-  $port              = '8777',
-  $service_name      = $::ceilometer::params::api_service_name,
-  $api_workers       = $::os_service_default,
-  $auth_strategy     = 'keystone',
+  $manage_service               = true,
+  $enabled                      = true,
+  $package_ensure               = 'present',
+  $host                         = '0.0.0.0',
+  $port                         = '8777',
+  $service_name                 = $::ceilometer::params::api_service_name,
+  $api_workers                  = $::os_service_default,
+  $auth_strategy                = 'keystone',
+  $enable_proxy_headers_parsing = $::os_service_default,
   # DEPRECATED PARAMETERS
-  $identity_uri      = undef,
-  $auth_uri          = undef,
-  $keystone_user     = undef,
-  $keystone_tenant   = undef,
-  $keystone_password = undef,
-  $memcached_servers = undef,
+  $identity_uri                 = undef,
+  $auth_uri                     = undef,
+  $keystone_user                = undef,
+  $keystone_tenant              = undef,
+  $keystone_password            = undef,
+  $memcached_servers            = undef,
 ) inherits ceilometer::params {
 
   include ::ceilometer::params
@@ -171,4 +177,8 @@ running as a standalone service, or httpd for being run by a httpd server")
     'api/port':    value => $port;
   }
 
+  oslo::middleware { 'ceilometer_config':
+    enable_proxy_headers_parsing => $enable_proxy_headers_parsing,
+  }
+
 }
diff --git a/releasenotes/notes/Adds-enable-proxy-header-parsing-64b78b56d8787e1d.yaml b/releasenotes/notes/Adds-enable-proxy-header-parsing-64b78b56d8787e1d.yaml
new file mode 100644 (file)
index 0000000..3f79875
--- /dev/null
@@ -0,0 +1,4 @@
+---
+features:
+  - This adds the enable_proxy_headers parsing option which is used by the
+    http_proxy_to_wsgi middleware.
index fcf7ead147dcc14e38cf286f11919ec9ddb6d09a..0739743fbc84de617778dd711c8b22880403260a 100644 (file)
@@ -35,6 +35,7 @@ describe 'ceilometer::api' do
       is_expected.to contain_ceilometer_config('api/host').with_value( params[:host] )
       is_expected.to contain_ceilometer_config('api/port').with_value( params[:port] )
       is_expected.to contain_ceilometer_config('api/workers').with_value('<SERVICE DEFAULT>')
+      is_expected.to contain_ceilometer_config('oslo_middleware/enable_proxy_headers_parsing').with_value('<SERVICE DEFAULT>')
     end
 
     [{:enabled => true}, {:enabled => false}].each do |param_hash|
@@ -85,6 +86,14 @@ describe 'ceilometer::api' do
       end
     end
 
+    context 'with enable_proxy_headers_parsing' do
+      before do
+        params.merge!({:enable_proxy_headers_parsing => true })
+      end
+
+      it { is_expected.to contain_ceilometer_config('oslo_middleware/enable_proxy_headers_parsing').with_value(true) }
+    end
+
     context 'with disabled service managing' do
       before do
         params.merge!({