class iaas::profile::cinder (
  $password = undef,
  $public_interface = hiera('iaas::public_interface', undef),
  $admin_interface = hiera('iaas::admin_interface', undef),
  $secret = undef,
  $volume_size = undef,

##verbose, debug
  $verbose = hiera('iaas::verbose', undef),
  $debug = hiera('iaas::debug', undef),

  $region = hiera('iaas::region', undef),

#VIP1
  $endpoint_main = hiera('iaas::main_address', undef),
#VIP2
  $endpoint_admin = hiera('iaas::admin_address', undef),

##rmqhosts
#  $endpoint = hiera('iaas::main_address', undef),
  $rhosts = hiera('iaas::profile::rabbitmq::rhosts', undef),
  $rabbitmq_user = hiera('iaas::profile::rabbitmq::user', undef),
  $rabbitmq_password = hiera('iaas::profile::rabbitmq::password', undef),
) {
  include iaas::resources::connectors

  if $endpoint_admin == '' {
    $real_endpoint_admin = $endpoint_main
  }else{
    $real_endpoint_admin = $endpoint_admin
  }

##Leave commented if database is different from controller
#  iaas::resources::database { 'cinder': }

  class { '::cinder':
##Verbose, debug
    verbose => $verbose,
    debug => $debug,
    database_connection => $iaas::resources::connectors::cinder,
##Added rabbit_hosts - uncomment as needed
#    rabbit_host => $endpoint,
    rabbit_hosts => $rhosts,
    rabbit_userid => $rabbitmq_user,
    rabbit_password => $rabbitmq_password,
    mysql_module => '2.3',
    database_idle_timeout => 3600,
  }

  class { '::cinder::glance':
    glance_api_servers => [ "${real_endpoint_admin}:9292" ],
  }

  class { '::cinder::keystone::auth':
    password => $password,
    public_address => $endpoint_main,
    admin_address => $real_endpoint_admin,
    internal_address => $real_endpoint_admin,
    region => $region,
  }

  class { '::cinder::api':
#Identity_uri - planed to be implemented in Kilo
#    keystone_identity_uri => "http://${real_endpoint_admin}:35357",
    keystone_auth_host => $real_endpoint_admin,
    keystone_password => $password,
    keystone_auth_uri => "http://${endpoint_main}:5000/v2.0",
    bind_host => $::facts["ipaddress_${admin_interface}"],
  }

  class { '::cinder::scheduler':
#    scheduler_driver => 'cinder.scheduler.simple.SimpleScheduler',
    scheduler_driver => 'cinder.scheduler.filter_scheduler.FilterScheduler',
  }

#  class { '::cinder::setup_test_volume':
#    volume_name => 'cinder-volumes',
#    size => $volume_size
#  } ->

  class { '::cinder::volume': }

  class { '::cinder::volume::rbd':
    rbd_pool => 'volumes',
    rbd_user => 'cinder',
    rbd_secret_uuid => $secret,
  }

  class { '::cinder::backup': }
  class { '::cinder::backup::ceph':
    backup_ceph_user => 'cinder-backup',
  }

  cinder_config {
    'keystone_authtoken/identity_uri' :value => "http://${real_endpoint_admin}:35357";
  }

}