From e83322a8f932caa7c7378dcb4f97713ba64ae93f Mon Sep 17 00:00:00 2001 From: Dmitry Ilyin Date: Fri, 11 Oct 2013 19:18:51 +0400 Subject: [PATCH] Refactor heat_db_sync --- deployment/puppet/heat/manifests/db.pp | 30 +++++++++---------- deployment/puppet/heat/manifests/db/mysql.pp | 4 +-- deployment/puppet/heat/manifests/params.pp | 1 + .../puppet/heat/templates/heat_db_sync.sh.erb | 7 +++++ 4 files changed, 24 insertions(+), 18 deletions(-) create mode 100644 deployment/puppet/heat/templates/heat_db_sync.sh.erb diff --git a/deployment/puppet/heat/manifests/db.pp b/deployment/puppet/heat/manifests/db.pp index b5710a9618..90c3557676 100644 --- a/deployment/puppet/heat/manifests/db.pp +++ b/deployment/puppet/heat/manifests/db.pp @@ -35,25 +35,25 @@ class heat::db ( 'DEFAULT/sql_connection': value => $sql_connection; } - exec { 'db_sync' : - command => $db_sync_command, - path => '/usr/bin', - user => 'heat', - refreshonly => true, - logoutput => on_failure, - onlyif => "test -f $db_sync_command", - subscribe => [Package['heat-engine'], Package['heat-api'],], + file { 'db_sync_script' : + ensure => present, + path => $::heat::params::heat_db_sync_command, + owner => 'root', + group => 'root', + mode => '0755', + content => template('heat/heat_db_sync.sh.erb'), } - # Lagacy part - support old rpms before 2013.2.xx without heat-manage tool - exec { 'legacy_db_sync' : - command => $legacy_db_sync_command, - path => '/usr/bin', + exec { 'heat_db_sync' : + command => $::heat::params::heat_db_sync_command, + path => [ '/bin', '/sbin', '/usr/bin', '/usr/sbin', '/usr/local/bin', '/usr/local/sbin' ], user => 'heat', refreshonly => true, - logoutput => on_failure, - unless => "test -f $db_sync_command", - subscribe => [Package['heat-engine'], Package['heat-api'],], + logoutput => 'on_failure', } + + File['db_sync_script'] ~> Exec['heat_db_sync'] + Package['heat-engine'] ~> Exec['heat_db_sync'] + Package['heat-api'] ~> Exec['heat_db_sync'] } diff --git a/deployment/puppet/heat/manifests/db/mysql.pp b/deployment/puppet/heat/manifests/db/mysql.pp index 3f1abea80b..a0d15141d6 100644 --- a/deployment/puppet/heat/manifests/db/mysql.pp +++ b/deployment/puppet/heat/manifests/db/mysql.pp @@ -16,8 +16,6 @@ class heat::db::mysql( grant => ['all'], } - Class['mysql::server'] -> Mysql::Db[$dbname] - Mysql::Db[$dbname] ~> Exec['db_sync'] - Mysql::Db[$dbname] ~> Exec['legacy_db_sync'] + Class['mysql::server'] -> Mysql::Db[$dbname] ~> Exec['heat_db_sync'] } diff --git a/deployment/puppet/heat/manifests/params.pp b/deployment/puppet/heat/manifests/params.pp index 691760b548..3fd09d3c3a 100644 --- a/deployment/puppet/heat/manifests/params.pp +++ b/deployment/puppet/heat/manifests/params.pp @@ -19,5 +19,6 @@ class heat::params { $db_sync_command = '/usr/bin/heat-manage db_sync' $legacy_db_sync_command = '/usr/bin/python -m heat.db.sync' + $heat_db_sync_command = '/usr/local/bin/heat_db_sync' } diff --git a/deployment/puppet/heat/templates/heat_db_sync.sh.erb b/deployment/puppet/heat/templates/heat_db_sync.sh.erb new file mode 100644 index 0000000000..a53dcf3066 --- /dev/null +++ b/deployment/puppet/heat/templates/heat_db_sync.sh.erb @@ -0,0 +1,7 @@ +#!/bin/sh + +if [ -f "/usr/bin/heat-manage" ]; then + /usr/bin/heat-manage db_sync +else + /usr/bin/python -m heat.db.sync +fi \ No newline at end of file