Comment 3 for bug 1306734

Revision history for this message
Radoslaw Smigielski (radoslaw-smigielski) wrote :

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+/) {
    if ($mysql_module >= 2.2) {
      require 'mysql::bindings'
      require 'mysql::bindings::python'
    } 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?