diff options
Diffstat (limited to 'manifests/profile/pacemaker/cinder')
-rw-r--r-- | manifests/profile/pacemaker/cinder/api.pp | 5 | ||||
-rw-r--r-- | manifests/profile/pacemaker/cinder/backup.pp | 60 | ||||
-rw-r--r-- | manifests/profile/pacemaker/cinder/scheduler.pp | 17 | ||||
-rw-r--r-- | manifests/profile/pacemaker/cinder/volume.pp | 25 |
4 files changed, 84 insertions, 23 deletions
diff --git a/manifests/profile/pacemaker/cinder/api.pp b/manifests/profile/pacemaker/cinder/api.pp index 2c9cedf..d18942d 100644 --- a/manifests/profile/pacemaker/cinder/api.pp +++ b/manifests/profile/pacemaker/cinder/api.pp @@ -31,7 +31,6 @@ class tripleo::profile::pacemaker::cinder::api ( $bootstrap_node = hiera('bootstrap_nodeid'), $step = hiera('step'), ) { - Service <| tag == 'cinder-service' |> { hasrestart => true, restart => '/bin/true', @@ -45,9 +44,7 @@ class tripleo::profile::pacemaker::cinder::api ( $pacemaker_master = false } - class { '::tripleo::profile::base::cinder::api': - sync_db => $pacemaker_master, - } + include ::tripleo::profile::base::cinder::api if $step >= 5 and $pacemaker_master { pacemaker::resource::service { $::cinder::params::api_service : diff --git a/manifests/profile/pacemaker/cinder/backup.pp b/manifests/profile/pacemaker/cinder/backup.pp new file mode 100644 index 0000000..72ec456 --- /dev/null +++ b/manifests/profile/pacemaker/cinder/backup.pp @@ -0,0 +1,60 @@ +# Copyright 2016 Red Hat, Inc. +# +# 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. +# +# == Class: tripleo::profile::pacemaker::cinder::backup +# +# Cinder Backup Pacemaker HA profile for tripleo +# +# === Parameters +# +# [*bootstrap_node*] +# (Optional) The hostname of the node responsible for bootstrapping tasks +# Defaults to hiera('bootstrap_nodeid') +# +# [*step*] +# (Optional) The current step in deployment. See tripleo-heat-templates +# for more details. +# Defaults to hiera('step') +# +class tripleo::profile::pacemaker::cinder::backup ( + $bootstrap_node = hiera('bootstrap_nodeid'), + $step = hiera('step'), +) { + + Service <| tag == 'cinder::backup' |> { + hasrestart => true, + restart => '/bin/true', + start => '/bin/true', + stop => '/bin/true', + } + + if $::hostname == downcase($bootstrap_node) { + $pacemaker_master = true + } else { + $pacemaker_master = false + } + + include ::tripleo::profile::base::cinder::backup + + if $step >= 3 and $pacemaker_master and hiera('stack_action') == 'UPDATE' { + Cinder_config<||> + ~> + tripleo::pacemaker::resource_restart_flag { "${::cinder::params::backup_service}": } + } + + if $step >= 5 and $pacemaker_master { + pacemaker::resource::service { $::cinder::params::backup_service : } + } + +} diff --git a/manifests/profile/pacemaker/cinder/scheduler.pp b/manifests/profile/pacemaker/cinder/scheduler.pp index 9b79903..e25ef54 100644 --- a/manifests/profile/pacemaker/cinder/scheduler.pp +++ b/manifests/profile/pacemaker/cinder/scheduler.pp @@ -31,7 +31,6 @@ class tripleo::profile::pacemaker::cinder::scheduler ( $bootstrap_node = hiera('bootstrap_nodeid'), $step = hiera('step'), ) { - Service <| tag == 'cinder-service' |> { hasrestart => true, restart => '/bin/true', @@ -67,6 +66,22 @@ class tripleo::profile::pacemaker::cinder::scheduler ( require => [Pacemaker::Resource::Service[$::cinder::params::api_service], Pacemaker::Resource::Service[$::cinder::params::scheduler_service]], } + pacemaker::constraint::base { 'cinder-scheduler-then-cinder-volume-constraint': + constraint_type => 'order', + first_resource => "${::cinder::params::scheduler_service}-clone", + second_resource => $::cinder::params::volume_service, + first_action => 'start', + second_action => 'start', + require => [Pacemaker::Resource::Service[$::cinder::params::scheduler_service], + Pacemaker::Resource::Service[$::cinder::params::volume_service]], + } + pacemaker::constraint::colocation { 'cinder-volume-with-cinder-scheduler-colocation': + source => $::cinder::params::volume_service, + target => "${::cinder::params::scheduler_service}-clone", + score => 'INFINITY', + require => [Pacemaker::Resource::Service[$::cinder::params::scheduler_service], + Pacemaker::Resource::Service[$::cinder::params::volume_service]], + } } } diff --git a/manifests/profile/pacemaker/cinder/volume.pp b/manifests/profile/pacemaker/cinder/volume.pp index a4f251e..82e2522 100644 --- a/manifests/profile/pacemaker/cinder/volume.pp +++ b/manifests/profile/pacemaker/cinder/volume.pp @@ -31,8 +31,7 @@ class tripleo::profile::pacemaker::cinder::volume ( $bootstrap_node = hiera('bootstrap_nodeid'), $step = hiera('step'), ) { - - Service <| tag == 'cinder-service' |> { + Service <| tag == 'cinder::volume' |> { hasrestart => true, restart => '/bin/true', start => '/bin/true', @@ -47,24 +46,14 @@ class tripleo::profile::pacemaker::cinder::volume ( include ::tripleo::profile::base::cinder::volume + if $step >= 3 and $pacemaker_master and hiera('stack_action') == 'UPDATE' { + Cinder_api_paste_ini<||> ~> Tripleo::Pacemaker::Resource_restart_flag["${::cinder::params::volume_service}"] + Cinder_config<||> ~> Tripleo::Pacemaker::Resource_restart_flag["${::cinder::params::volume_service}"] + tripleo::pacemaker::resource_restart_flag { "${::cinder::params::volume_service}": } + } + if $step >= 5 and $pacemaker_master { pacemaker::resource::service { $::cinder::params::volume_service : } - pacemaker::constraint::base { 'cinder-scheduler-then-cinder-volume-constraint': - constraint_type => 'order', - first_resource => "${::cinder::params::scheduler_service}-clone", - second_resource => $::cinder::params::volume_service, - first_action => 'start', - second_action => 'start', - require => [Pacemaker::Resource::Service[$::cinder::params::scheduler_service], - Pacemaker::Resource::Service[$::cinder::params::volume_service]], - } - pacemaker::constraint::colocation { 'cinder-volume-with-cinder-scheduler-colocation': - source => $::cinder::params::volume_service, - target => "${::cinder::params::scheduler_service}-clone", - score => 'INFINITY', - require => [Pacemaker::Resource::Service[$::cinder::params::scheduler_service], - Pacemaker::Resource::Service[$::cinder::params::volume_service]], - } } } |