From f5c5f88eed4706922b49da7c1b2b4fd33e3176c5 Mon Sep 17 00:00:00 2001 From: Nate Potter Date: Tue, 3 Nov 2015 19:54:31 +0000 Subject: [PATCH] Allow customization of db sync command line Add parameter to designate::db::sync class to allow end users to add command line parameters to the db sync command. Change-Id: Iae224e97d91ee24e0aae1b79330f0906ff516508 Partial-bug: #1472740 --- manifests/db/powerdns/sync.pp | 14 ++++++++++-- manifests/db/sync.pp | 15 +++++++++++-- manifests/params.pp | 2 -- .../designate_db_powerdns_sync_spec.rb | 22 ++++++++++++++++++- spec/classes/designate_db_sync_spec.rb | 22 ++++++++++++++++++- 5 files changed, 67 insertions(+), 8 deletions(-) diff --git a/manifests/db/powerdns/sync.pp b/manifests/db/powerdns/sync.pp index 749228e9..efc6ec9e 100644 --- a/manifests/db/powerdns/sync.pp +++ b/manifests/db/powerdns/sync.pp @@ -1,12 +1,22 @@ # # Class to execute designate powerdns dbsync # -class designate::db::powerdns::sync { +# ==Parameters +# +# [*extra_params*] +# (optional) String of extra command line parameters to append +# to the designate-manage powerdns sync command. These will be +# inserted in the command line between 'designate-manage' and +# 'powerdns sync'. +# Defaults to undef +class designate::db::powerdns::sync( + $extra_params = undef, +) { include ::designate::params exec { 'designate-powerdns-dbsync': - command => $::designate::params::powerdns_dbsync_command, + command => "designate-manage ${extra_params} powerdns sync", path => '/usr/bin', user => 'root', refreshonly => true, diff --git a/manifests/db/sync.pp b/manifests/db/sync.pp index f8a26f46..0ec8c10c 100644 --- a/manifests/db/sync.pp +++ b/manifests/db/sync.pp @@ -1,12 +1,23 @@ # # Class to execute designate dbsync # -class designate::db::sync { +# ==Parameters +# +# [*extra_params*] +# (optional) String of extra command line parameters to append +# to the designate-manage database sync command. These will be +# inserted in the command line between 'designate-manage' and +# 'database sync'. +# Defaults to undef +# +class designate::db::sync( + $extra_params = undef, +) { include ::designate::params exec { 'designate-dbsync': - command => $::designate::params::dbsync_command, + command => "designate-manage ${extra_params} database sync", path => '/usr/bin', user => 'root', refreshonly => true, diff --git a/manifests/params.pp b/manifests/params.pp index 9e830984..922fd06e 100644 --- a/manifests/params.pp +++ b/manifests/params.pp @@ -1,8 +1,6 @@ # Params # class designate::params { - $dbsync_command = 'designate-manage database sync' - $powerdns_dbsync_command = 'designate-manage powerdns sync' $state_path = '/var/lib/designate' # bind path $designatepath = "${state_path}/bind9" diff --git a/spec/classes/designate_db_powerdns_sync_spec.rb b/spec/classes/designate_db_powerdns_sync_spec.rb index 4b36c449..87eac37d 100644 --- a/spec/classes/designate_db_powerdns_sync_spec.rb +++ b/spec/classes/designate_db_powerdns_sync_spec.rb @@ -11,7 +11,7 @@ describe 'designate::db::powerdns::sync' do it 'runs designate-powerdns-dbsync' do is_expected.to contain_exec('designate-powerdns-dbsync').with( - :command => 'designate-manage powerdns sync', + :command => 'designate-manage powerdns sync', :path => '/usr/bin', :user => 'root', :refreshonly => 'true', @@ -21,4 +21,24 @@ describe 'designate::db::powerdns::sync' do ) end + describe 'overriding extra_params' do + let :params do + { + :extra_params => '--config-file /etc/designate/designate.conf' + } + end + + it {is_expected.to contain_exec('designate-powerdns-dbsync').with( + :command => 'designate-manage --config-file /etc/designate/designate.conf powerdns sync', + :path => '/usr/bin', + :user => 'root', + :refreshonly => 'true', + :logoutput => 'on_failure', + :subscribe => 'Anchor[designate::config::end]', + :notify => 'Anchor[designate::service::begin]', + ) + } + end + + end diff --git a/spec/classes/designate_db_sync_spec.rb b/spec/classes/designate_db_sync_spec.rb index 430af41b..3d334e2e 100644 --- a/spec/classes/designate_db_sync_spec.rb +++ b/spec/classes/designate_db_sync_spec.rb @@ -11,7 +11,7 @@ describe 'designate::db::sync' do it 'runs designate-dbsync' do is_expected.to contain_exec('designate-dbsync').with( - :command => 'designate-manage database sync', + :command => 'designate-manage database sync', :path => '/usr/bin', :user => 'root', :refreshonly => 'true', @@ -21,4 +21,24 @@ describe 'designate::db::sync' do ) end + describe 'overriding extra_params' do + let :params do + { + :extra_params => '--config-file /etc/designate/designate.conf' + } + end + + it {is_expected.to contain_exec('designate-dbsync').with( + :command => 'designate-manage --config-file /etc/designate/designate.conf database sync', + :path => '/usr/bin', + :user => 'root', + :refreshonly => 'true', + :logoutput => 'on_failure', + :subscribe => 'Anchor[designate::config::end]', + :notify => 'Anchor[designate::service::begin]', + ) + } + end + + end