Move gnocchi upgrade and api to step 4

gnocchi upgrade requires storage sacks to be initialized. This means
we need to ensure the storage backends are up before running the
upgrade and starting the api. Lets move the api to step 4 so we can
ensure other dependencies are in place.

Co-Authored-By: Juan Antonio Osorio Robles <jaosorior@redhat.com>
Depends-On: Ibfa9fb39f60c1e4a802d189b32ff4c34476c93d3
Change-Id: If2ae48b21389e76fd638c0b48c148a5d4f227630
(cherry picked from commit 5e91493f7a)
This commit is contained in:
Pradeep Kilambi 2017-05-25 18:12:50 -04:00
parent 3a1074fb98
commit bcdea36c18
2 changed files with 14 additions and 32 deletions

View File

@ -102,12 +102,11 @@ class tripleo::profile::base::gnocchi::api (
$tls_keyfile = undef
}
if $step >= 3 and $sync_db {
if $step >= 4 and $sync_db {
include ::gnocchi::db::sync
}
if $step >= 3 {
include ::gnocchi::api
if $step >= 4 or ($step >= 3 and $sync_db) {
include ::apache::mod::ssl
class { '::gnocchi::wsgi::apache':
ssl_cert => $tls_certfile,
@ -120,19 +119,20 @@ class tripleo::profile::base::gnocchi::api (
coordination_url => join(['redis://:', $gnocchi_redis_password, '@', normalize_ip_for_uri($redis_vip), ':6379/']),
}
case $gnocchi_backend {
'swift': { include ::gnocchi::storage::swift }
'swift': {
include ::gnocchi::storage::swift
if $sync_db {
include ::swift::deps
# Ensure we have swift proxy available before running gnocchi-upgrade
# as storage is initialized at this point.
Anchor<| title == 'swift::service::end' |> ~> Class['Gnocchi::db::sync']
}
}
'file': { include ::gnocchi::storage::file }
'rbd': { include ::gnocchi::storage::ceph }
default: { fail('Unrecognized gnocchi_backend parameter.') }
}
include ::gnocchi::api
}
# Re-run gnochci upgrade with storage as swift/ceph should be up at this
# stage.
if $step >= 5 and $sync_db {
exec {'run gnocchi upgrade with storage':
command => 'gnocchi-upgrade --config-file=/etc/gnocchi/gnocchi.conf',
path => ['/usr/bin', '/usr/sbin'],
}
}
}

View File

@ -36,9 +36,9 @@ describe 'tripleo::profile::base::gnocchi::api' do
}
end
context 'with step 3 on bootstrap' do
context 'with step 4 on bootstrap' do
let(:params) { {
:step => 3,
:step => 4,
:bootstrap_node => 'node.example.com',
:gnocchi_redis_password => 'gnocchi',
:redis_vip => '127.0.0.1'
@ -51,20 +51,6 @@ describe 'tripleo::profile::base::gnocchi::api' do
}
end
context 'with step 3' do
let(:params) { {
:step => 3,
:gnocchi_redis_password => 'gnocchi',
:redis_vip => '127.0.0.1'
} }
it {
is_expected.to_not contain_class('gnocchi::db::sync')
is_expected.to contain_class('gnocchi::api')
is_expected.to contain_class('gnocchi::wsgi::apache')
}
end
context 'with step 4' do
let(:params) { {
:step => 4,
@ -129,10 +115,6 @@ describe 'tripleo::profile::base::gnocchi::api' do
it {
is_expected.to contain_class('gnocchi::api')
is_expected.to contain_class('gnocchi::wsgi::apache')
is_expected.to contain_exec('run gnocchi upgrade with storage').with(
:command => 'gnocchi-upgrade --config-file=/etc/gnocchi/gnocchi.conf',
:path => ['/usr/bin', '/usr/sbin']
)
}
end
end