diff --git a/manifests/params.pp b/manifests/params.pp index 95787db..f01397d 100644 --- a/manifests/params.pp +++ b/manifests/params.pp @@ -1,118 +1,122 @@ # Class: mysql::params # # The mysql configuration settings. # # Parameters: # # Actions: # # Requires: # # Sample Usage: # class mysql::params { $bind_address = '127.0.0.1' $port = 3306 $etc_root_password = false $ssl = false $restart = true case $::operatingsystem { 'Ubuntu': { $service_provider = upstart } default: { $service_provider = undef } } case $::osfamily { 'RedHat': { $basedir = '/usr' $datadir = '/var/lib/mysql' $service_name = 'mysqld' $client_package_name = 'mysql' $server_package_name = 'mysql-server' $socket = '/var/lib/mysql/mysql.sock' $pidfile = '/var/run/mysqld/mysqld.pid' $config_file = '/etc/my.cnf' $log_error = '/var/log/mysqld.log' $ruby_package_name = 'ruby-mysql' $ruby_package_provider = 'gem' $python_package_name = 'MySQL-python' + $php_package_name = 'php-mysql' $java_package_name = 'mysql-connector-java' $root_group = 'root' $ssl_ca = '/etc/mysql/cacert.pem' $ssl_cert = '/etc/mysql/server-cert.pem' $ssl_key = '/etc/mysql/server-key.pem' } 'Debian': { $basedir = '/usr' $datadir = '/var/lib/mysql' $service_name = 'mysql' $client_package_name = 'mysql-client' $server_package_name = 'mysql-server' $socket = '/var/run/mysqld/mysqld.sock' $pidfile = '/var/run/mysqld/mysqld.pid' $config_file = '/etc/mysql/my.cnf' $log_error = '/var/log/mysql/error.log' $ruby_package_name = 'libmysql-ruby' $python_package_name = 'python-mysqldb' + $php_package_name = 'php5-mysql' $java_package_name = 'libmysql-java' $root_group = 'root' $ssl_ca = '/etc/mysql/cacert.pem' $ssl_cert = '/etc/mysql/server-cert.pem' $ssl_key = '/etc/mysql/server-key.pem' } 'FreeBSD': { $basedir = '/usr/local' $datadir = '/var/db/mysql' $service_name = 'mysql-server' $client_package_name = 'databases/mysql55-client' $server_package_name = 'databases/mysql55-server' $socket = '/tmp/mysql.sock' $pidfile = '/var/db/mysql/mysql.pid' $config_file = '/var/db/mysql/my.cnf' $log_error = "/var/db/mysql/${::hostname}.err" $ruby_package_name = 'ruby-mysql' $ruby_package_provider = 'gem' $python_package_name = 'databases/py-MySQLdb' + $php_package_name = 'php5-mysql' $java_package_name = 'databases/mysql-connector-java' $root_group = 'wheel' $ssl_ca = undef $ssl_cert = undef $ssl_key = undef } default: { case $::operatingsystem { 'Amazon': { $basedir = '/usr' $datadir = '/var/lib/mysql' $service_name = 'mysqld' $client_package_name = 'mysql' $server_package_name = 'mysql-server' $socket = '/var/lib/mysql/mysql.sock' $config_file = '/etc/my.cnf' $log_error = '/var/log/mysqld.log' $ruby_package_name = 'ruby-mysql' $ruby_package_provider = 'gem' $python_package_name = 'MySQL-python' + $php_package_name = 'php-mysql' $java_package_name = 'mysql-connector-java' $root_group = 'root' $ssl_ca = '/etc/mysql/cacert.pem' $ssl_cert = '/etc/mysql/server-cert.pem' $ssl_key = '/etc/mysql/server-key.pem' } default: { fail("Unsupported osfamily: ${::osfamily} operatingsystem: ${::operatingsystem}, module ${module_name} only support osfamily RedHat, Debian, and FreeBSD, or operatingsystem Amazon") } } } } } diff --git a/manifests/php.pp b/manifests/php.pp new file mode 100644 index 0000000..88e5aa2 --- /dev/null +++ b/manifests/php.pp @@ -0,0 +1,20 @@ +# Class: mysql::php +# +# This class installs the php libs for mysql. +# +# Parameters: +# [*ensure*] - ensure state for package. +# can be specified as version. +# [*packagee*] - name of package +# +class mysql::php( + $package_name = $mysql::params::php_package_name, + $package_ensure = 'present' +) inherits mysql::params { + + package { 'php-mysql': + ensure => $package_ensure, + name => $package_name, + } + +} diff --git a/spec/classes/mysql_php_spec.rb b/spec/classes/mysql_php_spec.rb new file mode 100644 index 0000000..784ae84 --- /dev/null +++ b/spec/classes/mysql_php_spec.rb @@ -0,0 +1,54 @@ +require 'spec_helper' + +describe 'mysql::php' do + + describe 'on a debian based os' do + let :facts do + { :osfamily => 'Debian'} + end + it { should contain_package('php-mysql').with( + :name => 'php5-mysql', + :ensure => 'present' + )} + end + + describe 'on a freebsd based os' do + let :facts do + { :osfamily => 'FreeBSD'} + end + it { should contain_package('php-mysql').with( + :name => 'php5-mysql', + :ensure => 'present' + )} + end + + describe 'on a redhat based os' do + let :facts do + {:osfamily => 'Redhat'} + end + it { should contain_package('php-mysql').with( + :name => 'php-mysql', + :ensure => 'present' + )} + describe 'when parameters are supplied' do + let :params do + {:package_ensure => 'latest', :package_name => 'php53-mysql'} + end + it { should contain_package('php-mysql').with( + :name => 'php53-mysql', + :ensure => 'latest' + )} + end + end + + describe 'on any other os' do + let :facts do + {:osfamily => 'foo'} + end + + it 'should fail' do + expect { subject }.to raise_error(/Unsupported osfamily: foo/) + end + end + +end