Skip to content

Commit

Permalink
Merge pull request #617 from juniorsysadmin/package-manage-parameter
Browse files Browse the repository at this point in the history
(MODULES-1143) Add package_manage parameters
  • Loading branch information
Morgan Haskel committed Feb 27, 2015
2 parents 7eea731 + f5a693b commit 7a3fe1c
Show file tree
Hide file tree
Showing 8 changed files with 70 additions and 30 deletions.
8 changes: 8 additions & 0 deletions README.md
Expand Up @@ -249,6 +249,10 @@ The name of the group used for root. Can be a group name or a group ID. See more

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

#####`package_manage`

Whether to manage the mysql server package. Defaults to true.

#####`package_name`

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

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

#####`package_manage`

Whether to manage the mysql client package. Defaults to true.

#####`package_name`

The name of the MySQL client package to install.
Expand Down
1 change: 1 addition & 0 deletions manifests/client.pp
Expand Up @@ -3,6 +3,7 @@
$bindings_enable = $mysql::params::bindings_enable,
$install_options = undef,
$package_ensure = $mysql::params::client_package_ensure,
$package_manage = $mysql::params::client_package_manage,
$package_name = $mysql::params::client_package_name,
) inherits mysql::params {

Expand Down
12 changes: 8 additions & 4 deletions manifests/client/install.pp
@@ -1,9 +1,13 @@
class mysql::client::install {

package { 'mysql_client':
ensure => $mysql::client::package_ensure,
install_options => $mysql::client::install_options,
name => $mysql::client::package_name,
if $mysql::client::package_manage {

package { 'mysql_client':
ensure => $mysql::client::package_ensure,
install_options => $mysql::client::install_options,
name => $mysql::client::package_name,
}

}

}
2 changes: 2 additions & 0 deletions manifests/params.pp
Expand Up @@ -7,9 +7,11 @@
$restart = false
$root_password = 'UNSET'
$server_package_ensure = 'present'
$server_package_manage = true
$server_service_manage = true
$server_service_enabled = true
$client_package_ensure = 'present'
$client_package_manage = true
$create_root_user = true
$create_root_my_cnf = true
# mysql::bindings
Expand Down
1 change: 1 addition & 0 deletions manifests/server.pp
Expand Up @@ -7,6 +7,7 @@
$old_root_password = $mysql::params::old_root_password,
$override_options = {},
$package_ensure = $mysql::params::server_package_ensure,
$package_manage = $mysql::params::server_package_manage,
$package_name = $mysql::params::server_package_name,
$purge_conf_dir = $mysql::params::purge_conf_dir,
$remove_default_accounts = false,
Expand Down
53 changes: 28 additions & 25 deletions manifests/server/install.pp
@@ -1,35 +1,38 @@
#
class mysql::server::install {

package { 'mysql-server':
ensure => $mysql::server::package_ensure,
install_options => $mysql::server::install_options,
name => $mysql::server::package_name,
}
if $mysql::server::package_manage {

# Build the initial databases.
$mysqluser = $mysql::server::options['mysqld']['user']
$datadir = $mysql::server::options['mysqld']['datadir']
$basedir = $mysql::server::options['mysqld']['basedir']
$config_file = $mysql::server::config_file
package { 'mysql-server':
ensure => $mysql::server::package_ensure,
install_options => $mysql::server::install_options,
name => $mysql::server::package_name,
}

if $mysql::server::manage_config_file {
$install_db_args = "--basedir=${basedir} --defaults-extra-file=${config_file} --datadir=${datadir} --user=${mysqluser}"
} else {
$install_db_args = "--basedir=${basedir} --datadir=${datadir} --user=${mysqluser}"
}
# Build the initial databases.
$mysqluser = $mysql::server::options['mysqld']['user']
$datadir = $mysql::server::options['mysqld']['datadir']
$basedir = $mysql::server::options['mysqld']['basedir']
$config_file = $mysql::server::config_file

exec { 'mysql_install_db':
command => "mysql_install_db ${install_db_args}",
creates => "${datadir}/mysql",
logoutput => on_failure,
path => '/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin',
require => Package['mysql-server'],
}
if $mysql::server::manage_config_file {
$install_db_args = "--basedir=${basedir} --defaults-extra-file=${config_file} --datadir=${datadir} --user=${mysqluser}"
} else {
$install_db_args = "--basedir=${basedir} --datadir=${datadir} --user=${mysqluser}"
}

exec { 'mysql_install_db':
command => "mysql_install_db ${install_db_args}",
creates => "${datadir}/mysql",
logoutput => on_failure,
path => '/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin',
require => Package['mysql-server'],
}

if $mysql::server::restart {
Exec['mysql_install_db'] {
notify => Class['mysql::server::service'],
if $mysql::server::restart {
Exec['mysql_install_db'] {
notify => Class['mysql::server::service'],
}
}
}

Expand Down
13 changes: 13 additions & 0 deletions spec/classes/mysql_client_spec.rb
Expand Up @@ -17,6 +17,19 @@
it { is_expected.to contain_class('mysql::bindings') }
it { is_expected.to contain_package('mysql_client') }
end

context 'with package_manage set to true' do
let(:params) {{ :package_manage => true }}

it { is_expected.to contain_package('mysql_client') }
end

context 'with package_manage set to false' do
let(:params) {{ :package_manage => false }}

it { is_expected.not_to contain_package('mysql_client') }
end

end
end
end
Expand Down
10 changes: 9 additions & 1 deletion spec/classes/mysql_server_spec.rb
Expand Up @@ -20,11 +20,19 @@
end

context 'mysql::server::install' do
it 'contains the package' do
it 'contains the package by default' do
is_expected.to contain_package('mysql-server').with({
:ensure => :present,
})
end
context 'with package_manage set to true' do
let(:params) {{ :package_manage => true }}
it { is_expected.to contain_package('mysql-server') }
end
context 'with package_manage set to false' do
let(:params) {{ :package_manage => false }}
it { is_expected.not_to contain_package('mysql-server') }
end
context 'with datadir overridden' do
let(:params) {{ :override_options => { 'mysqld' => { 'datadir' => '/tmp' }} }}
it { is_expected.to contain_exec('mysql_install_db') }
Expand Down

0 comments on commit 7a3fe1c

Please sign in to comment.