Comment 0 for bug 1511316

Revision history for this message
Romanos Skiadas (rski) wrote :

From manifests/api.pp

83 # [*volume_api_class*]
84 # (optional) The name of the class that nova will use to access volumes. Cinder is the only option.
85 # Defaults to 'nova.volume.cinder.API'

Since $volume_api_class is optional, the requirement for cinder should be optional as well.
However, even when volume_api_class is set to false, cinder is included in api.pp:

209 include ::cinder::client

This makes creating a puppet module that deploys nova as described in the kilo docs (http://docs.openstack.org/kilo/install-guide/install/apt/content/ch_nova.html) difficult, as the latter do not include cinder at the compute stage.

Something similar to what might need to be done here is done in manifests/db.pp, where the required backend class depends on what is selected:

case $database_connection_real {
       /^mysql:\/\//: {
         $backend_package = false
         require 'mysql::bindings'
         require 'mysql::bindings::python'
       }
       /^postgresql:\/\//: {
         $backend_package = false
         require 'postgresql::lib::python'
       }
       /^sqlite:\/\//: {
         $backend_package = $::nova::params::sqlite_package_name
       }
       default: {
         fail('Unsupported backend configured')
       }