From d2d8c911bddcac1f424cf050df1208251f021544 Mon Sep 17 00:00:00 2001 From: Emilien Macchi Date: Mon, 11 Aug 2014 16:47:09 +0200 Subject: [PATCH] database/sql: use augeas instead of file_line It appears sometimes some encoding issues. Also, using augeas is the cleanest way to modify a file for this use. This patch use augeas for /etc/services & mysqlchk service on 9200/tcp. --- manifests/database/sql.pp | 16 ++++++++++------ spec/classes/cloud_database_sql_spec.rb | 6 ------ 2 files changed, 10 insertions(+), 12 deletions(-) diff --git a/manifests/database/sql.pp b/manifests/database/sql.pp index 30c438ad..496b62b7 100644 --- a/manifests/database/sql.pp +++ b/manifests/database/sql.pp @@ -284,13 +284,17 @@ class cloud::database::sql ( package_name => $mysql_client_package_name, } - # Haproxy http monitoring - file_line { 'mysqlchk-in-etc-services': - path => '/etc/services', - line => 'mysqlchk 9200/tcp', - match => '^mysqlchk 9200/tcp$', - notify => [ Service['xinetd'], Exec['reload_xinetd'] ] + augeas { 'mysqlchk': + context => '/files/etc/services', + changes => [ + 'ins service-name after service-name[last()]', + 'set service-name[last()] mysqlchkr', + 'set service-name[. = "mysqlchk"]/port 9200', + 'set service-name[. = "mysqlchk"]/protocol tcp', + ], + onlyif => 'match service-name[. = "mysqlchk"] size == 0', + notify => [ Service['xinetd'], Exec['reload_xinetd'] ] } file { diff --git a/spec/classes/cloud_database_sql_spec.rb b/spec/classes/cloud_database_sql_spec.rb index 7b095a0f..01386658 100644 --- a/spec/classes/cloud_database_sql_spec.rb +++ b/spec/classes/cloud_database_sql_spec.rb @@ -86,12 +86,6 @@ describe 'cloud::database::sql' do end # configure mysql galera server context 'configure mysqlchk http replication' do - it { should contain_file_line('mysqlchk-in-etc-services').with( - :line => 'mysqlchk 9200/tcp', - :path => '/etc/services', - :notify => ['Service[xinetd]', 'Exec[reload_xinetd]'] - )} - it { should contain_file('/etc/xinetd.d/mysqlchk').with_mode('0755') } it { should contain_file('/usr/bin/clustercheck').with_mode('0755') } it { should contain_file('/usr/bin/clustercheck').with_content(/MYSQL_USERNAME="#{params[:galera_clustercheck_dbuser]}"/)}