Creation of neutron::db::sync
In order to standardize the way dbsync are run across our modules, we create a new class neutron::db::sync. This class will be included if sync_db is enabled. By making this transition the neutron::db::sync class can be returned by the ENC. A use case would be in an highly available environment with 3 galera nodes, include neutron::server on every node with sync_db set to false and have the ENC return ceilometer::db::sync just for one node. Change-Id: I81e824e3e9e8f901b2a0084c7a5ec42c53781864
This commit is contained in:
parent
4b5d4b4030
commit
6d4ff50c5b
20
manifests/db/sync.pp
Normal file
20
manifests/db/sync.pp
Normal file
@ -0,0 +1,20 @@
|
||||
#
|
||||
# Class to execute neutron dbsync
|
||||
#
|
||||
class neutron::db::sync {
|
||||
|
||||
include ::neutron::params
|
||||
|
||||
Package<| title == 'neutron-server' |> -> Exec['neutron-db-sync']
|
||||
Package<| title == 'neutron' |> -> Exec['neutron-db-sync']
|
||||
Neutron_config<||> ~> Exec['neutron-db-sync']
|
||||
Neutron_config<| title == 'database/connection' |> ~> Exec['neutron-db-sync']
|
||||
Exec['neutron-db-sync'] ~> Service <| title == 'neutron-server' |>
|
||||
|
||||
exec { 'neutron-db-sync':
|
||||
command => 'neutron-db-manage --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugin.ini upgrade head',
|
||||
path => '/usr/bin',
|
||||
refreshonly => true,
|
||||
logoutput => on_failure,
|
||||
}
|
||||
}
|
@ -281,22 +281,7 @@ class neutron::server (
|
||||
}
|
||||
|
||||
if $sync_db {
|
||||
if ($::neutron::params::server_package) {
|
||||
# Debian platforms
|
||||
Package<| title == 'neutron-server' |> ~> Exec['neutron-db-sync']
|
||||
} else {
|
||||
# RH platforms
|
||||
Package<| title == 'neutron' |> ~> Exec['neutron-db-sync']
|
||||
}
|
||||
|
||||
exec { 'neutron-db-sync':
|
||||
command => 'neutron-db-manage --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugin.ini upgrade head',
|
||||
path => '/usr/bin',
|
||||
before => Service['neutron-server'],
|
||||
subscribe => Neutron_config['database/connection'],
|
||||
refreshonly => true
|
||||
}
|
||||
Neutron_config<||> ~> Exec['neutron-db-sync']
|
||||
include ::neutron::db::sync
|
||||
}
|
||||
|
||||
neutron_config {
|
||||
|
43
spec/classes/neutron_db_sync_spec.rb
Normal file
43
spec/classes/neutron_db_sync_spec.rb
Normal file
@ -0,0 +1,43 @@
|
||||
require 'spec_helper'
|
||||
|
||||
describe 'neutron::db::sync' do
|
||||
|
||||
shared_examples_for 'neutron-dbsync' do
|
||||
|
||||
it 'runs neutron-db-sync' do
|
||||
is_expected.to contain_exec('neutron-db-sync').with(
|
||||
:command => 'neutron-db-manage --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugin.ini upgrade head',
|
||||
:path => '/usr/bin',
|
||||
:refreshonly => 'true',
|
||||
:logoutput => 'on_failure'
|
||||
)
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
context 'on a RedHat osfamily' do
|
||||
let :facts do
|
||||
{
|
||||
:osfamily => 'RedHat',
|
||||
:operatingsystemrelease => '7.0',
|
||||
:concat_basedir => '/var/lib/puppet/concat'
|
||||
}
|
||||
end
|
||||
|
||||
it_configures 'neutron-dbsync'
|
||||
end
|
||||
|
||||
context 'on a Debian osfamily' do
|
||||
let :facts do
|
||||
{
|
||||
:operatingsystemrelease => '7.8',
|
||||
:operatingsystem => 'Debian',
|
||||
:osfamily => 'Debian',
|
||||
:concat_basedir => '/var/lib/puppet/concat'
|
||||
}
|
||||
end
|
||||
|
||||
it_configures 'neutron-dbsync'
|
||||
end
|
||||
|
||||
end
|
@ -96,7 +96,7 @@ describe 'neutron::server' do
|
||||
:ensure => 'running',
|
||||
:require => 'Class[Neutron]'
|
||||
)
|
||||
is_expected.not_to contain_exec('neutron-db-sync')
|
||||
is_expected.not_to contain_class('neutron::db::sync')
|
||||
is_expected.to contain_neutron_api_config('filter:authtoken/auth_admin_prefix').with(
|
||||
:ensure => 'absent'
|
||||
)
|
||||
@ -236,14 +236,8 @@ describe 'neutron::server' do
|
||||
:sync_db => true
|
||||
)
|
||||
end
|
||||
it 'should exec neutron-db-sync' do
|
||||
is_expected.to contain_exec('neutron-db-sync').with(
|
||||
:command => 'neutron-db-manage --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugin.ini upgrade head',
|
||||
:path => '/usr/bin',
|
||||
:before => 'Service[neutron-server]',
|
||||
:subscribe => 'Neutron_config[database/connection]',
|
||||
:refreshonly => true
|
||||
)
|
||||
it 'includes neutron::db::sync' do
|
||||
is_expected.to contain_class('neutron::db::sync')
|
||||
end
|
||||
end
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user