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:
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 $sync_db {
|
||||||
if ($::neutron::params::server_package) {
|
include ::neutron::db::sync
|
||||||
# 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']
|
|
||||||
}
|
}
|
||||||
|
|
||||||
neutron_config {
|
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',
|
:ensure => 'running',
|
||||||
:require => 'Class[Neutron]'
|
: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(
|
is_expected.to contain_neutron_api_config('filter:authtoken/auth_admin_prefix').with(
|
||||||
:ensure => 'absent'
|
:ensure => 'absent'
|
||||||
)
|
)
|
||||||
@@ -236,14 +236,8 @@ describe 'neutron::server' do
|
|||||||
:sync_db => true
|
:sync_db => true
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
it 'should exec neutron-db-sync' do
|
it 'includes neutron::db::sync' do
|
||||||
is_expected.to contain_exec('neutron-db-sync').with(
|
is_expected.to contain_class('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
|
|
||||||
)
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user