Skip to content

Commit 7a3fe1c

Browse files
author
Morgan Haskel
committed
Merge pull request #617 from juniorsysadmin/package-manage-parameter
(MODULES-1143) Add package_manage parameters
2 parents 7eea731 + f5a693b commit 7a3fe1c

File tree

8 files changed

+70
-30
lines changed

8 files changed

+70
-30
lines changed

README.md

+8
Original file line numberDiff line numberDiff line change
@@ -249,6 +249,10 @@ The name of the group used for root. Can be a group name or a group ID. See more
249249

250250
Whether the package exists or should be a specific version. Valid values are 'present', 'absent', or 'x.y.z'. Defaults to 'present'.
251251

252+
#####`package_manage`
253+
254+
Whether to manage the mysql server package. Defaults to true.
255+
252256
#####`package_name`
253257

254258
The name of the MySQL server package to install.
@@ -551,6 +555,10 @@ Array of install options for managed package resources. You must pass the approp
551555

552556
Whether the MySQL package should be present, absent, or a specific version. Valid values are 'present', 'absent', or 'x.y.z'.
553557

558+
#####`package_manage`
559+
560+
Whether to manage the mysql client package. Defaults to true.
561+
554562
#####`package_name`
555563

556564
The name of the MySQL client package to install.

manifests/client.pp

+1
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
$bindings_enable = $mysql::params::bindings_enable,
44
$install_options = undef,
55
$package_ensure = $mysql::params::client_package_ensure,
6+
$package_manage = $mysql::params::client_package_manage,
67
$package_name = $mysql::params::client_package_name,
78
) inherits mysql::params {
89

manifests/client/install.pp

+8-4
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,13 @@
11
class mysql::client::install {
22

3-
package { 'mysql_client':
4-
ensure => $mysql::client::package_ensure,
5-
install_options => $mysql::client::install_options,
6-
name => $mysql::client::package_name,
3+
if $mysql::client::package_manage {
4+
5+
package { 'mysql_client':
6+
ensure => $mysql::client::package_ensure,
7+
install_options => $mysql::client::install_options,
8+
name => $mysql::client::package_name,
9+
}
10+
711
}
812

913
}

manifests/params.pp

+2
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,11 @@
77
$restart = false
88
$root_password = 'UNSET'
99
$server_package_ensure = 'present'
10+
$server_package_manage = true
1011
$server_service_manage = true
1112
$server_service_enabled = true
1213
$client_package_ensure = 'present'
14+
$client_package_manage = true
1315
$create_root_user = true
1416
$create_root_my_cnf = true
1517
# mysql::bindings

manifests/server.pp

+1
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
$old_root_password = $mysql::params::old_root_password,
88
$override_options = {},
99
$package_ensure = $mysql::params::server_package_ensure,
10+
$package_manage = $mysql::params::server_package_manage,
1011
$package_name = $mysql::params::server_package_name,
1112
$purge_conf_dir = $mysql::params::purge_conf_dir,
1213
$remove_default_accounts = false,

manifests/server/install.pp

+28-25
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,38 @@
11
#
22
class mysql::server::install {
33

4-
package { 'mysql-server':
5-
ensure => $mysql::server::package_ensure,
6-
install_options => $mysql::server::install_options,
7-
name => $mysql::server::package_name,
8-
}
4+
if $mysql::server::package_manage {
95

10-
# Build the initial databases.
11-
$mysqluser = $mysql::server::options['mysqld']['user']
12-
$datadir = $mysql::server::options['mysqld']['datadir']
13-
$basedir = $mysql::server::options['mysqld']['basedir']
14-
$config_file = $mysql::server::config_file
6+
package { 'mysql-server':
7+
ensure => $mysql::server::package_ensure,
8+
install_options => $mysql::server::install_options,
9+
name => $mysql::server::package_name,
10+
}
1511

16-
if $mysql::server::manage_config_file {
17-
$install_db_args = "--basedir=${basedir} --defaults-extra-file=${config_file} --datadir=${datadir} --user=${mysqluser}"
18-
} else {
19-
$install_db_args = "--basedir=${basedir} --datadir=${datadir} --user=${mysqluser}"
20-
}
12+
# Build the initial databases.
13+
$mysqluser = $mysql::server::options['mysqld']['user']
14+
$datadir = $mysql::server::options['mysqld']['datadir']
15+
$basedir = $mysql::server::options['mysqld']['basedir']
16+
$config_file = $mysql::server::config_file
2117

22-
exec { 'mysql_install_db':
23-
command => "mysql_install_db ${install_db_args}",
24-
creates => "${datadir}/mysql",
25-
logoutput => on_failure,
26-
path => '/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin',
27-
require => Package['mysql-server'],
28-
}
18+
if $mysql::server::manage_config_file {
19+
$install_db_args = "--basedir=${basedir} --defaults-extra-file=${config_file} --datadir=${datadir} --user=${mysqluser}"
20+
} else {
21+
$install_db_args = "--basedir=${basedir} --datadir=${datadir} --user=${mysqluser}"
22+
}
23+
24+
exec { 'mysql_install_db':
25+
command => "mysql_install_db ${install_db_args}",
26+
creates => "${datadir}/mysql",
27+
logoutput => on_failure,
28+
path => '/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin',
29+
require => Package['mysql-server'],
30+
}
2931

30-
if $mysql::server::restart {
31-
Exec['mysql_install_db'] {
32-
notify => Class['mysql::server::service'],
32+
if $mysql::server::restart {
33+
Exec['mysql_install_db'] {
34+
notify => Class['mysql::server::service'],
35+
}
3336
}
3437
}
3538

spec/classes/mysql_client_spec.rb

+13
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,19 @@
1717
it { is_expected.to contain_class('mysql::bindings') }
1818
it { is_expected.to contain_package('mysql_client') }
1919
end
20+
21+
context 'with package_manage set to true' do
22+
let(:params) {{ :package_manage => true }}
23+
24+
it { is_expected.to contain_package('mysql_client') }
25+
end
26+
27+
context 'with package_manage set to false' do
28+
let(:params) {{ :package_manage => false }}
29+
30+
it { is_expected.not_to contain_package('mysql_client') }
31+
end
32+
2033
end
2134
end
2235
end

spec/classes/mysql_server_spec.rb

+9-1
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,19 @@
2020
end
2121

2222
context 'mysql::server::install' do
23-
it 'contains the package' do
23+
it 'contains the package by default' do
2424
is_expected.to contain_package('mysql-server').with({
2525
:ensure => :present,
2626
})
2727
end
28+
context 'with package_manage set to true' do
29+
let(:params) {{ :package_manage => true }}
30+
it { is_expected.to contain_package('mysql-server') }
31+
end
32+
context 'with package_manage set to false' do
33+
let(:params) {{ :package_manage => false }}
34+
it { is_expected.not_to contain_package('mysql-server') }
35+
end
2836
context 'with datadir overridden' do
2937
let(:params) {{ :override_options => { 'mysqld' => { 'datadir' => '/tmp' }} }}
3038
it { is_expected.to contain_exec('mysql_install_db') }

0 commit comments

Comments
 (0)