Skip to content

Commit 0837e4c

Browse files
author
Damon Conway
committed
[MODULES-1484] Add support for install_options for all package resources.
Add install_options parameter to mysql::bindings, mysql::client, and mysql::server. The default is undef. Wrap all package resources in an if statement checking $mysql::[bindings,client,server]::install_options for undef.
1 parent 40dd180 commit 0837e4c

File tree

13 files changed

+136
-38
lines changed

13 files changed

+136
-38
lines changed

README.md

+9
Original file line numberDiff line numberDiff line change
@@ -178,6 +178,9 @@ Whether the MySQL configuration file should be managed.
178178
#####`includedir`
179179
The location of !includedir for custom configuration overrides.
180180

181+
#####`install_options`
182+
Pass install_options array to managed package resources. You must be sure to pass the appropriate options for the correct package manager.
183+
181184
#####`purge_conf_dir`
182185

183186
Whether the `includedir` directory should be purged.
@@ -346,6 +349,9 @@ The hostname to allow to access the MySQL monitoring user.
346349

347350
####mysql::bindings
348351

352+
#####`install_options`
353+
Pass install_options array to managed package resources. You must be sure to pass the appropriate options for the correct package manager.
354+
349355
#####`java_enable`
350356

351357
Boolean to decide if the Java bindings should be installed.
@@ -420,6 +426,9 @@ What provider should be used to install the package.
420426

421427
Boolean to automatically install all bindings.
422428

429+
#####`install_options`
430+
Pass install_options array to managed package resources. You must be sure to pass the appropriate options for the correct package manager.
431+
423432
#####`package_ensure`
424433

425434
What to set the package to. Can be 'present', 'absent', or 'x.y.z'.

manifests/bindings.pp

+1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
# See README.md.
22
class mysql::bindings (
3+
$install_options = undef,
34
# Boolean to determine if we should include the classes.
45
$java_enable = false,
56
$perl_enable = false,

manifests/bindings/client_dev.pp

+15-5
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,23 @@
22
class mysql::bindings::client_dev {
33

44
if $mysql::bindings::client_dev_package_name {
5-
package { 'mysql-client_dev':
6-
ensure => $mysql::bindings::client_dev_package_ensure,
7-
name => $mysql::bindings::client_dev_package_name,
8-
provider => $mysql::bindings::client_dev_package_provider,
5+
if $mysql::bindings::install_options == undef {
6+
package { 'mysql-client_dev':
7+
ensure => $mysql::bindings::client_dev_package_ensure,
8+
name => $mysql::bindings::client_dev_package_name,
9+
provider => $mysql::bindings::client_dev_package_provider,
10+
}
11+
} else {
12+
validate_array($mysql::bindings::install_options)
13+
package { 'mysql-client_dev':
14+
ensure => $mysql::bindings::client_dev_package_ensure,
15+
install_options => $mysql::bindings::install_options,
16+
name => $mysql::bindings::client_dev_package_name,
17+
provider => $mysql::bindings::client_dev_package_provider,
18+
}
919
}
1020
} else {
1121
warning("No MySQL client development package configured for ${::operatingsystem}.")
1222
}
1323

14-
}
24+
}

manifests/bindings/daemon_dev.pp

+15-5
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,23 @@
22
class mysql::bindings::daemon_dev {
33

44
if $mysql::bindings::daemon_dev_package_name {
5-
package { 'mysql-daemon_dev':
6-
ensure => $mysql::bindings::daemon_dev_package_ensure,
7-
name => $mysql::bindings::daemon_dev_package_name,
8-
provider => $mysql::bindings::daemon_dev_package_provider,
5+
if $mysql::bindings::install_options == undef {
6+
package { 'mysql-daemon_dev':
7+
ensure => $mysql::bindings::daemon_dev_package_ensure,
8+
name => $mysql::bindings::daemon_dev_package_name,
9+
provider => $mysql::bindings::daemon_dev_package_provider,
10+
}
11+
} else {
12+
validate_array($mysql::bindings::install_options)
13+
package { 'mysql-daemon_dev':
14+
ensure => $mysql::bindings::daemon_dev_package_ensure,
15+
install_options => $mysql::bindings::install_options,
16+
name => $mysql::bindings::daemon_dev_package_name,
17+
provider => $mysql::bindings::daemon_dev_package_provider,
18+
}
919
}
1020
} else {
1121
warning("No MySQL daemon development package configured for ${::operatingsystem}.")
1222
}
1323

14-
}
24+
}

manifests/bindings/java.pp

+14-5
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,19 @@
11
# Private class
22
class mysql::bindings::java {
33

4-
package { 'mysql-connector-java':
5-
ensure => $mysql::bindings::java_package_ensure,
6-
name => $mysql::bindings::java_package_name,
7-
provider => $mysql::bindings::java_package_provider,
8-
}
4+
if $mysql::bindings::install_options == undef {
5+
package { 'mysql-connector-java':
6+
ensure => $mysql::bindings::java_package_ensure,
7+
name => $mysql::bindings::java_package_name,
8+
provider => $mysql::bindings::java_package_provider,
9+
}
10+
} else {
11+
validate_array($mysql::bindings::install_options)
12+
package { 'mysql-connector-java':
13+
ensure => $mysql::bindings::java_package_ensure,
14+
install_options => $mysql::bindings::install_options,
15+
name => $mysql::bindings::java_package_name,
16+
provider => $mysql::bindings::java_package_provider,
17+
}
918

1019
}

manifests/bindings/perl.pp

+14-4
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,20 @@
11
# Private class
22
class mysql::bindings::perl {
33

4-
package{ 'perl_mysql':
5-
ensure => $mysql::bindings::perl_package_ensure,
6-
name => $mysql::bindings::perl_package_name,
7-
provider => $mysql::bindings::perl_package_provider,
4+
if $mysql::bindings::install_options == undef {
5+
package{ 'perl_mysql':
6+
ensure => $mysql::bindings::perl_package_ensure,
7+
name => $mysql::bindings::perl_package_name,
8+
provider => $mysql::bindings::perl_package_provider,
9+
}
10+
} else {
11+
validate_array($mysql::bindings::install_options)
12+
package{ 'perl_mysql':
13+
ensure => $mysql::bindings::perl_package_ensure,
14+
install_options => $mysql::bindings::install_options,
15+
name => $mysql::bindings::perl_package_name,
16+
provider => $mysql::bindings::perl_package_provider,
17+
}
818
}
919

1020
}

manifests/bindings/php.pp

+14-4
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,20 @@
11
# Private class: See README.md
22
class mysql::bindings::php {
33

4-
package { 'php-mysql':
5-
ensure => $mysql::bindings::php_package_ensure,
6-
name => $mysql::bindings::php_package_name,
7-
provider => $mysql::bindings::php_package_provider,
4+
if $mysql::bindings::install_options == undef {
5+
package { 'php-mysql':
6+
ensure => $mysql::bindings::php_package_ensure,
7+
name => $mysql::bindings::php_package_name,
8+
provider => $mysql::bindings::php_package_provider,
9+
}
10+
} else {
11+
validate_array($mysql::bindings::install_options)
12+
package { 'php-mysql':
13+
ensure => $mysql::bindings::php_package_ensure,
14+
install_options => $mysql::bindings::install_options,
15+
name => $mysql::bindings::php_package_name,
16+
provider => $mysql::bindings::php_package_provider,
17+
}
818
}
919

1020
}

manifests/bindings/python.pp

+14-5
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,19 @@
11
# Private class
22
class mysql::bindings::python {
33

4-
package { 'python-mysqldb':
5-
ensure => $mysql::bindings::python_package_ensure,
6-
name => $mysql::bindings::python_package_name,
7-
provider => $mysql::bindings::python_package_provider,
8-
}
4+
if $mysql::bindings::install_options == undef {
5+
package { 'python-mysqldb':
6+
ensure => $mysql::bindings::python_package_ensure,
7+
name => $mysql::bindings::python_package_name,
8+
provider => $mysql::bindings::python_package_provider,
9+
}
10+
} else {
11+
validate_array($mysql::bindings::install_options)
12+
package { 'python-mysqldb':
13+
ensure => $mysql::bindings::python_package_ensure,
14+
install_options => $mysql::bindings::install_options,
15+
name => $mysql::bindings::python_package_name,
16+
provider => $mysql::bindings::python_package_provider,
17+
}
918

1019
}

manifests/bindings/ruby.pp

+14-4
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,20 @@
11
# Private class
22
class mysql::bindings::ruby {
33

4-
package{ 'ruby_mysql':
5-
ensure => $mysql::bindings::ruby_package_ensure,
6-
name => $mysql::bindings::ruby_package_name,
7-
provider => $mysql::bindings::ruby_package_provider,
4+
if $mysql::bindings::install_options == undef {
5+
package{ 'ruby_mysql':
6+
ensure => $mysql::bindings::ruby_package_ensure,
7+
name => $mysql::bindings::ruby_package_name,
8+
provider => $mysql::bindings::ruby_package_provider,
9+
}
10+
} else {
11+
validate_array($mysql::bindings::install_options)
12+
package{ 'ruby_mysql':
13+
ensure => $mysql::bindings::ruby_package_ensure,
14+
install_options => $mysql::bindings::install_options,
15+
name => $mysql::bindings::ruby_package_name,
16+
provider => $mysql::bindings::ruby_package_provider,
17+
}
818
}
919

1020
}

manifests/client.pp

+1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
#
22
class mysql::client (
33
$bindings_enable = $mysql::params::bindings_enable,
4+
$install_options = undef,
45
$package_ensure = $mysql::params::client_package_ensure,
56
$package_name = $mysql::params::client_package_name,
67
) inherits mysql::params {

manifests/client/install.pp

+12-3
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,17 @@
11
class mysql::client::install {
22

3-
package { 'mysql_client':
4-
ensure => $mysql::client::package_ensure,
5-
name => $mysql::client::package_name,
3+
if $mysql::client::install_options == undef {
4+
package { 'mysql_client':
5+
ensure => $mysql::client::package_ensure,
6+
name => $mysql::client::package_name,
7+
}
8+
} else {
9+
validate_array($mysql::client::install_options)
10+
package { 'mysql_client':
11+
ensure => $mysql::client::package_ensure,
12+
install_options => $mysql::client::install_options,
13+
name => $mysql::client::package_name,
14+
}
615
}
716

817
}

manifests/server.pp

+1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
class mysql::server (
33
$config_file = $mysql::params::config_file,
44
$includedir = $mysql::params::includedir,
5+
$install_options = undef,
56
$manage_config_file = $mysql::params::manage_config_file,
67
$old_root_password = $mysql::params::old_root_password,
78
$override_options = {},

manifests/server/install.pp

+12-3
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,18 @@
11
#
22
class mysql::server::install {
33

4-
package { 'mysql-server':
5-
ensure => $mysql::server::package_ensure,
6-
name => $mysql::server::package_name,
4+
if $mysql::server::install_options == undef {
5+
package { 'mysql-server':
6+
ensure => $mysql::server::package_ensure,
7+
name => $mysql::server::package_name,
8+
}
9+
} else {
10+
validate_array($mysql::server::install_options)
11+
package { 'mysql-server':
12+
ensure => $mysql::server::package_ensure,
13+
install_options => $mysql::server::install_options,
14+
name => $mysql::server::package_name,
15+
}
716
}
817

918
# Build the initial databases.

0 commit comments

Comments
 (0)