So in the keystone/manifests/init.pp there is a fragment of the code which detects type of the database [mysql|posgresql|sqlite] by looking at the connection sting. And according to the database type "requiers" dedicated db modules.
For MySQL support default value for mysql_module is 0.9 plus below fragment of keystone/manifests/init.pp is responsible for the include logic:
The bottom line is that:
1. mysql_module use to be >= 2.2 nowadays
2. by default mysql_module version 0.9 is assumed and the error about missing 'mysql::python' is thrown
3. by specifying your real mysql_module version in your keystone class, you can resolve this problem
IMHO we should not assume 0.9 as a default as it's very old or make "mysql_module" option mandatory?
So in the keystone/ manifests/ init.pp there is a fragment of the code which detects type of the database [mysql| posgresql| sqlite] by looking at the connection sting. And according to the database type "requiers" dedicated db modules.
For MySQL support default value for mysql_module is 0.9 plus below fragment of keystone/ manifests/ init.pp is responsible for the include logic:
if($database_ connection_ real =~ /mysql: \/\/\S+ :\S+@\S+ \/\S+/) { :bindings: :python'
if ($mysql_module >= 2.2) {
require 'mysql::bindings'
require 'mysql:
} else {
require 'mysql::python'
}
The bottom line is that:
1. mysql_module use to be >= 2.2 nowadays
2. by default mysql_module version 0.9 is assumed and the error about missing 'mysql::python' is thrown
3. by specifying your real mysql_module version in your keystone class, you can resolve this problem
IMHO we should not assume 0.9 as a default as it's very old or make "mysql_module" option mandatory?