puppet-manila/manifests/scheduler.pp
root 5b720d66d6 Manila hooks support
This code moves all deps to an external class so that Manila can be
installed with mechanisms besides packages (like venv or docker). This
also cleans-up the dependency tree by removing false or confusing
dependencies.

Change-Id: I053dbef10d51664d99e633abb714b3520a681e96
2016-10-28 11:29:34 +02:00

68 lines
1.5 KiB
Puppet

# == Class: manila::scheduler
#
# Install and manage Manila scheduler.
#
# === Parameters
#
# [*scheduler_driver*]
# (Optional) Description
# Defaults to false.
#
# [*package_ensure*]
# (Optional) The state of the scheduler package
# Defaults to 'present'.
#
# [*enabled*]
# (Optional) Whether to run the scheduler service
# Defaults to true.
#
# [*manage_service*]
# (Optional) Whether to start/stop the service
# Defaults to true.
#
class manila::scheduler (
$scheduler_driver = false,
$package_ensure = 'present',
$enabled = true,
$manage_service = true
) {
include ::manila::deps
include ::manila::params
Manila_config<||> ~> Service['manila-scheduler']
Manila_api_paste_ini<||> ~> Service['manila-scheduler']
Exec<| title == 'manila-manage db_sync' |> ~> Service['manila-scheduler']
if $scheduler_driver {
manila_config {
'DEFAULT/scheduler_driver': value => $scheduler_driver;
}
}
if $::manila::params::scheduler_package {
Package['manila-scheduler'] -> Service['manila-scheduler']
package { 'manila-scheduler':
ensure => $package_ensure,
name => $::manila::params::scheduler_package,
tag => ['openstack', 'manila-package'],
}
}
if $manage_service {
if $enabled {
$ensure = 'running'
} else {
$ensure = 'stopped'
}
}
service { 'manila-scheduler':
ensure => $ensure,
name => $::manila::params::scheduler_service,
enable => $enabled,
hasstatus => true,
tag => 'manila-service',
}
}