X-Git-Url: https://git.adam-barratt.org.uk/?a=blobdiff_plain;f=3rdparty%2Fmodules%2Fcinder%2Fmanifests%2Fapi.pp;fp=3rdparty%2Fmodules%2Fcinder%2Fmanifests%2Fapi.pp;h=0000000000000000000000000000000000000000;hb=6e1426dc77fb4e5d51f07c187c6f2219431dc31e;hp=f9102c4cd3cbbfaebb3e29a3f2ec37e6ad262b92;hpb=87423ba664cd5f2bb462ebadd08b1a90d0fe1c8d;p=mirror%2Fdsa-puppet.git diff --git a/3rdparty/modules/cinder/manifests/api.pp b/3rdparty/modules/cinder/manifests/api.pp deleted file mode 100644 index f9102c4cd..000000000 --- a/3rdparty/modules/cinder/manifests/api.pp +++ /dev/null @@ -1,251 +0,0 @@ -# == Class: cinder::api -# -# Setup and configure the cinder API endpoint -# -# === Parameters -# -# [*keystone_password*] -# The password to use for authentication (keystone) -# -# [*keystone_enabled*] -# (optional) Use keystone for authentification -# Defaults to true -# -# [*keystone_tenant*] -# (optional) The tenant of the auth user -# Defaults to services -# -# [*keystone_user*] -# (optional) The name of the auth user -# Defaults to cinder -# -# [*keystone_auth_host*] -# (optional) The keystone host -# Defaults to localhost -# -# [*keystone_auth_port*] -# (optional) The keystone auth port -# Defaults to 35357 -# -# [*keystone_auth_protocol*] -# (optional) The protocol used to access the auth host -# Defaults to http. -# -# [*os_region_name*] -# (optional) Some operations require cinder to make API requests -# to Nova. This sets the keystone region to be used for these -# requests. For example, boot-from-volume. -# Defaults to undef. -# -# [*keystone_auth_admin_prefix*] -# (optional) The admin_prefix used to admin endpoint of the auth host -# This allow admin auth URIs like http://auth_host:35357/keystone. -# (where '/keystone' is the admin prefix) -# Defaults to false for empty. If defined, should be a string with a -# leading '/' and no trailing '/'. -# -# [*service_port*] -# (optional) The cinder api port -# Defaults to 5000 -# -# [*service_workers*] -# (optional) Number of cinder-api workers -# Defaults to $::processorcount -# -# [*package_ensure*] -# (optional) The state of the package -# Defaults to present -# -# [*bind_host*] -# (optional) The cinder api bind address -# Defaults to 0.0.0.0 -# -# [*enabled*] -# (optional) The state of the service -# Defaults to true -# -# [*manage_service*] -# (optional) Whether to start/stop the service -# Defaults to true -# -# [*ratelimits*] -# (optional) The state of the service -# Defaults to undef. If undefined the default ratelimiting values are used. -# -# [*ratelimits_factory*] -# (optional) Factory to use for ratelimiting -# Defaults to 'cinder.api.v1.limits:RateLimitingMiddleware.factory' -# -# [*default_volume_type*] -# (optional) default volume type to use. -# This should contain the name of the default volume type to use. -# If not configured, it produces an error when creating a volume -# without specifying a type. -# Defaults to 'false'. -# -# [*validate*] -# (optional) Whether to validate the service is working after any service refreshes -# Defaults to false -# -# [*validation_options*] -# (optional) Service validation options -# Should be a hash of options defined in openstacklib::service_validation -# If empty, defaults values are taken from openstacklib function. -# Default command list volumes. -# Require validate set at True. -# Example: -# glance::api::validation_options: -# glance-api: -# command: check_cinder-api.py -# path: /usr/bin:/bin:/usr/sbin:/sbin -# provider: shell -# tries: 5 -# try_sleep: 10 -# Defaults to {} -# -class cinder::api ( - $keystone_password, - $keystone_enabled = true, - $keystone_tenant = 'services', - $keystone_user = 'cinder', - $keystone_auth_host = 'localhost', - $keystone_auth_port = '35357', - $keystone_auth_protocol = 'http', - $keystone_auth_admin_prefix = false, - $keystone_auth_uri = false, - $os_region_name = undef, - $service_port = '5000', - $service_workers = $::processorcount, - $package_ensure = 'present', - $bind_host = '0.0.0.0', - $enabled = true, - $manage_service = true, - $ratelimits = undef, - $default_volume_type = false, - $ratelimits_factory = - 'cinder.api.v1.limits:RateLimitingMiddleware.factory', - $validate = false, - $validation_options = {}, -) { - - include cinder::params - include cinder::policy - - Cinder_config<||> ~> Service['cinder-api'] - Cinder_api_paste_ini<||> ~> Service['cinder-api'] - Class['cinder::policy'] ~> Service['cinder-api'] - - if $::cinder::params::api_package { - Package['cinder-api'] -> Class['cinder::policy'] - Package['cinder-api'] -> Cinder_config<||> - Package['cinder-api'] -> Cinder_api_paste_ini<||> - Package['cinder-api'] -> Service['cinder-api'] - package { 'cinder-api': - ensure => $package_ensure, - name => $::cinder::params::api_package, - } - } - - if $enabled { - - Cinder_config<||> ~> Exec['cinder-manage db_sync'] - - exec { 'cinder-manage db_sync': - command => $::cinder::params::db_sync_command, - path => '/usr/bin', - user => 'cinder', - refreshonly => true, - logoutput => 'on_failure', - require => Package['cinder'], - } - if $manage_service { - $ensure = 'running' - } - } else { - if $manage_service { - $ensure = 'stopped' - } - } - - service { 'cinder-api': - ensure => $ensure, - name => $::cinder::params::api_service, - enable => $enabled, - hasstatus => true, - require => Package['cinder'], - } - - cinder_config { - 'DEFAULT/osapi_volume_listen': value => $bind_host; - 'DEFAULT/osapi_volume_workers': value => $service_workers; - } - - if $os_region_name { - cinder_config { - 'DEFAULT/os_region_name': value => $os_region_name; - } - } - - if $keystone_auth_uri { - $auth_uri = $keystone_auth_uri - } else { - $auth_uri = "${keystone_auth_protocol}://${keystone_auth_host}:${service_port}/" - } - cinder_api_paste_ini { 'filter:authtoken/auth_uri': value => $auth_uri; } - - if $keystone_enabled { - cinder_config { - 'DEFAULT/auth_strategy': value => 'keystone' ; - } - cinder_api_paste_ini { - 'filter:authtoken/service_protocol': value => $keystone_auth_protocol; - 'filter:authtoken/service_host': value => $keystone_auth_host; - 'filter:authtoken/service_port': value => $service_port; - 'filter:authtoken/auth_protocol': value => $keystone_auth_protocol; - 'filter:authtoken/auth_host': value => $keystone_auth_host; - 'filter:authtoken/auth_port': value => $keystone_auth_port; - 'filter:authtoken/admin_tenant_name': value => $keystone_tenant; - 'filter:authtoken/admin_user': value => $keystone_user; - 'filter:authtoken/admin_password': value => $keystone_password, secret => true; - } - - if ($ratelimits != undef) { - cinder_api_paste_ini { - 'filter:ratelimit/paste.filter_factory': value => $ratelimits_factory; - 'filter:ratelimit/limits': value => $ratelimits; - } - } - - if $keystone_auth_admin_prefix { - validate_re($keystone_auth_admin_prefix, '^(/.+[^/])?$') - cinder_api_paste_ini { - 'filter:authtoken/auth_admin_prefix': value => $keystone_auth_admin_prefix; - } - } else { - cinder_api_paste_ini { - 'filter:authtoken/auth_admin_prefix': ensure => absent; - } - } - } - - if $default_volume_type { - cinder_config { - 'DEFAULT/default_volume_type': value => $default_volume_type; - } - } else { - cinder_config { - 'DEFAULT/default_volume_type': ensure => absent; - } - } - - if $validate { - $defaults = { - 'cinder-api' => { - 'command' => "cinder --os-auth-url ${auth_uri} --os-tenant-name ${keystone_tenant} --os-username ${keystone_user} --os-password ${keystone_password} list", - } - } - $validation_options_hash = merge ($defaults, $validation_options) - create_resources('openstacklib::service_validation', $validation_options_hash, {'subscribe' => 'Service[cinder-api]'}) - } - -}