From 91dcb510bace2f3a14745c18e945f8504a325c15 Mon Sep 17 00:00:00 2001 From: Joshua Hesketh Date: Tue, 15 Mar 2016 12:45:22 +1100 Subject: [PATCH] Add election alias to governance.openstack.org Add an alias for /election/ to go to /srv/static/election where the election repo will be published to. Partially-Implements: spec publish-election-repo Change-Id: Ie5e783c65396e9fb74f3d739e775e51a948652fe --- modules/openstack_project/manifests/static.pp | 37 +++++++++++++++---- .../templates/static-http-and-https.vhost.erb | 19 ++++++++++ 2 files changed, 48 insertions(+), 8 deletions(-) diff --git a/modules/openstack_project/manifests/static.pp b/modules/openstack_project/manifests/static.pp index fd6fd30045..bd06622150 100644 --- a/modules/openstack_project/manifests/static.pp +++ b/modules/openstack_project/manifests/static.pp @@ -49,6 +49,10 @@ class openstack_project::static ( } } + if ! defined(Httpd::Mod['alias']) { + httpd::mod { 'alias': ensure => present } + } + if ! defined(File['/srv/static']) { file { '/srv/static': ensure => directory, @@ -252,22 +256,39 @@ class openstack_project::static ( } ########################################################### - # Governance + # Governance & Election + + # Extra aliases and directories needed for vhost template: + $aliases = { + '/election/' => '/srv/static/election/' + } + $directories = [ + '/srv/static/election', + '/srv/static/governance' + ] ::httpd::vhost { 'governance.openstack.org': - port => 443, # Is required despite not being used. - docroot => '/srv/static/governance', - priority => '50', - ssl => true, - template => 'openstack_project/static-http-and-https.vhost.erb', - vhost_name => 'governance.openstack.org', - require => [ + port => 443, # Is required despite not being used. + docroot => '/srv/static/governance', + priority => '50', + ssl => true, + template => 'openstack_project/static-http-and-https.vhost.erb', + vhost_name => 'governance.openstack.org', + require => [ + File['/srv/static/election'], File['/srv/static/governance'], File[$cert_file], File[$key_file], ], } + file { '/srv/static/election': + ensure => directory, + owner => 'jenkins', + group => 'jenkins', + require => User['jenkins'], + } + file { '/srv/static/governance': ensure => directory, owner => 'jenkins', diff --git a/modules/openstack_project/templates/static-http-and-https.vhost.erb b/modules/openstack_project/templates/static-http-and-https.vhost.erb index 83a7403cb1..bd57e85608 100644 --- a/modules/openstack_project/templates/static-http-and-https.vhost.erb +++ b/modules/openstack_project/templates/static-http-and-https.vhost.erb @@ -14,6 +14,24 @@ RewriteRule ^/(.*)$ http://<%= @vhost_name %>/$1 [L,R=301] <% end -%> DocumentRoot <%= @docroot %> + +<% if scope.lookupvar('openstack_project::static::aliases').is_a? Hash -%> + # Alias other folders + <% scope.lookupvar('openstack_project::static::aliases').each do |a, d| -%> + Alias "<%= a %>" "<%= d %>" + <% end -%> +<% end -%> +<% if scope.lookupvar('openstack_project::static::directories').is_a? Array -%> + <% scope.lookupvar('openstack_project::static::directories').each do |dirname| -%> + > + Options Indexes FollowSymLinks MultiViews + AllowOverride None + Order allow,deny + allow from all + Satisfy Any + + <% end -%> +<% else -%> > Options Indexes FollowSymLinks MultiViews AllowOverride None @@ -21,6 +39,7 @@ allow from all Satisfy Any +<% end -%> LogLevel warn ErrorLog /var/log/apache2/<%= @vhost_name %>_error.log CustomLog /var/log/apache2/<%= @vhost_name %>_access.log combined