From abeca01eced477e082033cf3961f7058ded24648 Mon Sep 17 00:00:00 2001 From: Dirk Mueller Date: Thu, 2 Feb 2017 22:33:56 +0100 Subject: [PATCH] cinder: Make use of backend_host parameter in central config The previous implementation was error prone as it triggered a deprecated config option warning unnecessarily. Luckily 3 years ago a proper solution was implemented in OpenStack for being able to set the backend service name and backend cluster name (which we don't do yet). --- chef/cookbooks/cinder/attributes/default.rb | 1 - chef/cookbooks/cinder/recipes/common.rb | 9 +++++++ chef/cookbooks/cinder/recipes/volume.rb | 26 +++---------------- .../templates/default/cinder-volume.conf.erb | 6 ----- .../cinder/templates/default/cinder.conf.erb | 5 ++++ 5 files changed, 17 insertions(+), 30 deletions(-) delete mode 100644 chef/cookbooks/cinder/templates/default/cinder-volume.conf.erb diff --git a/chef/cookbooks/cinder/attributes/default.rb b/chef/cookbooks/cinder/attributes/default.rb index 92d31d6951..28a9c18d7f 100644 --- a/chef/cookbooks/cinder/attributes/default.rb +++ b/chef/cookbooks/cinder/attributes/default.rb @@ -17,7 +17,6 @@ default[:cinder][:verbose] = false default[:cinder][:max_header_line] = 16384 default[:cinder][:config_file] = "/etc/cinder/cinder.conf.d/100-cinder.conf" -default[:cinder][:config_file_cinder_volume] = "/etc/cinder/cinder-volume.conf.d/100-cinder-volume.conf" override[:cinder][:user]="cinder" override[:cinder][:group]="cinder" diff --git a/chef/cookbooks/cinder/recipes/common.rb b/chef/cookbooks/cinder/recipes/common.rb index 628df44047..f8fe6d6306 100644 --- a/chef/cookbooks/cinder/recipes/common.rb +++ b/chef/cookbooks/cinder/recipes/common.rb @@ -116,12 +116,21 @@ include_recipe "crowbar-openstack::common" end +# set a backend_host override when volume-ha is enabled +if CrowbarPacemakerHelper.cluster_enabled?(node) && + node[:cinder][:elements]["cinder-volume"].include?( + "cluster:#{CrowbarPacemakerHelper.cluster_name(node)}" + ) + backend_host = CrowbarPacemakerHelper.cluster_vhostname(node) +end + template node[:cinder][:config_file] do source "cinder.conf.erb" owner "root" group node[:cinder][:group] mode 0640 variables( + backend_host: backend_host, bind_host: bind_host, bind_port: bind_port, use_multi_backend: node[:cinder][:use_multi_backend], diff --git a/chef/cookbooks/cinder/recipes/volume.rb b/chef/cookbooks/cinder/recipes/volume.rb index 4723c5c55d..0bd9837c33 100644 --- a/chef/cookbooks/cinder/recipes/volume.rb +++ b/chef/cookbooks/cinder/recipes/volume.rb @@ -288,9 +288,10 @@ def make_volume(node, backend_id, volume) end end -volume_elements = node[:cinder][:elements]["cinder-volume"] ha_enabled = CrowbarPacemakerHelper.cluster_enabled?(node) && - volume_elements.include?("cluster:#{CrowbarPacemakerHelper.cluster_name(node)}") + node[:cinder][:elements]["cinder-volume"].include?( + "cluster:#{CrowbarPacemakerHelper.cluster_name(node)}" + ) cinder_service "volume" do use_pacemaker_provider ha_enabled @@ -304,26 +305,5 @@ def make_volume(node, backend_id, volume) if ha_enabled log "HA support for cinder volume is enabled" - # Create cinder-volume HA specific config file - service_host = CrowbarPacemakerHelper.cluster_vhostname(node) - - template node[:cinder][:config_file_cinder_volume] do - source "cinder-volume.conf.erb" - owner "root" - group node[:cinder][:group] - mode 0640 - variables( - host: service_host - ) - notifies :restart, "service[cinder-volume]" - end - include_recipe "cinder::volume_ha" -else - log "HA support for cinder volume is disabled" - - file node[:cinder][:config_file_cinder_volume] do - action :delete - notifies :restart, "service[cinder-volume]" - end end diff --git a/chef/cookbooks/cinder/templates/default/cinder-volume.conf.erb b/chef/cookbooks/cinder/templates/default/cinder-volume.conf.erb deleted file mode 100644 index cc896cb8d5..0000000000 --- a/chef/cookbooks/cinder/templates/default/cinder-volume.conf.erb +++ /dev/null @@ -1,6 +0,0 @@ -# Override some settings for cinder-volume - -[DEFAULT] -# Name of this node. This can be an opaque identifier. It is not necessarily a -# host name, FQDN, or IP address. (string value) -host = <%= @host %> diff --git a/chef/cookbooks/cinder/templates/default/cinder.conf.erb b/chef/cookbooks/cinder/templates/default/cinder.conf.erb index 20bc8e8045..73766a24fd 100644 --- a/chef/cookbooks/cinder/templates/default/cinder.conf.erb +++ b/chef/cookbooks/cinder/templates/default/cinder.conf.erb @@ -62,6 +62,11 @@ strict_ssh_host_key_policy = <%= @strict_ssh_host_key_policy ? 'true' : 'false' <% if @use_multi_backend -%> [<%= backend_id %>] volume_backend_name = <%= volume['backend_name'] %> + +<% if @backend_host -%> +backend_host = <%= @backend_host %> +<% end -%> + <% end -%> <% if volume['backend_driver'] == 'blockbridge' -%><% end -%>