This adds a parameter (default value is like old behavior) so that the
my.cnf file isn't managed (created/updated) by the mysql module at all
which is necessary for our environment. We need to set all parameters by
ourself. If we don't set a parameter then the default from the mysqld
binary should be used instead of any default parameter the mysql module
provides us.
When the root password is not managed, it causes mysql to
fail b/c it does not create the /root/.my.cnf file (which causes
all mysql commands from the provider to fail)
Some characters used in a password can cause the shell in an exec to do
unexpected things unless the password is enclosed in single quotes.
Updated the rspec tests to deal with the password quoting.
notice: /Stage[main]/Mysql::Config/Exec[set_mysql_rootpw]/returns: mysqladmin: Can't read dir of '/etc/mysql/conf.d/' (Errcode: 2)
Even though it's not fatal, it's cleaner for Exec['set_mysql_rootpw'] to require File['/etc/mysql/conf.d'].
This commit adds a ssl parameter to the mysql::config class.
Setting ssl to true adds the following parameters to the template.
ssl_ca - path to ssl-ca
ssl_cert - path to ssl-cert
ssl_key - path to ssl-key
On Ubuntu, mysql should use upstart provider instead of init.d. This
change overrides the init provider until the issue with init provider
can be addressed.
Prevously, the server class declared the config class and
the config class had a relationship to the server class.
This actually meant that the config class could never be declared
by itself b/c it exlicity depended on the server class (which it
could never resolve externally b/c it would result in a redeclaration
of the config class itself.)
This issue actually made it impossible to test the manifest on its
own with rspec-puppet. This commit makes it much easier to write
rspec tests for the config class.
Since the set_mysql_rootpw exec is only created
when the password is being managed, having the mysql
resource (which always exists) reference it leads
to an error when the mysql root password is not being
managed.
This commit resolves the issue by having the set
mysql rootpw exec notify the mysql restart if it
changes.
This is a major change to the module and would be released as a new
version.
* Add self.instances to database and database_user for puppet resource.
* Update database provider to use flush method.
* Update module to conform to puppet-lint recommendations.
* Cleanup some unecessary logic in mysql::db define type.
* Move mysql_restart to config class.
* Use class to class dependency instead of resource dependency.
* Change appropriate rspec-puppet tests.
* Add fixtures directory to simplify testing.
* Update raketask and spec_helper to reflect fixture changes.
* Update mysql_password function to support validation.
* Move client installation to a separate class.
* Update documentation and readme.