# == Class keystone::service # # Encapsulates the keystone service to a class. # This allows resources that require keystone to # require this class, which can optionally # validate that the service can actually accept # connections. # # === Parameters # # [*ensure*] # (optional) The desired state of the keystone service # Defaults to 'running' # # [*service_name*] # (optional) The name of the keystone service # Defaults to $::keystone::params::service_name # # [*enable*] # (optional) Whether to enable the keystone service # Defaults to true # # [*hasstatus*] # (optional) Whether the keystone service has status # Defaults to true # # [*hasrestart*] # (optional) Whether the keystone service has restart # Defaults to true # # [*provider*] # (optional) Provider for keystone service # Defaults to $::keystone::params::service_provider # # [*validate*] # (optional) Whether to validate the service is working # after any service refreshes # Defaults to false # # [*admin_token*] # (optional) The admin token to use for validation # Defaults to undef # # [*admin_endpoint*] # (optional) The admin endpont to use for validation # Defaults to 'http://localhost:35357/v2.0' # # [*retries*] # (optional) Number of times to retry validation # Defaults to 10 # # [*delay*] # (optional) Number of seconds between validation attempts # Defaults to 2 # # [*insecure*] # (optional) Whether to validate keystone connections # using the --insecure option with keystone client. # Defaults to false # # [*cacert*] # (optional) Whether to validate keystone connections # using the specified argument with the --os-cacert option # with keystone client. # Defaults to undef # class keystone::service( $ensure = 'running', $service_name = $::keystone::params::service_name, $enable = true, $hasstatus = true, $hasrestart = true, $provider = $::keystone::params::service_provider, $validate = false, $admin_token = undef, $admin_endpoint = 'http://localhost:35357/v2.0', $retries = 10, $delay = 2, $insecure = false, $cacert = undef, ) { include keystone::params service { 'keystone': ensure => $ensure, name => $service_name, enable => $enable, hasstatus => $hasstatus, hasrestart => $hasrestart, provider => $provider } if $insecure { $insecure_s = '--insecure' } else { $insecure_s = '' } if $cacert { $cacert_s = "--os-cacert ${cacert}" } else { $cacert_s = '' } if $validate and $admin_token and $admin_endpoint { $cmd = "keystone --os-endpoint ${admin_endpoint} --os-token ${admin_token} ${insecure_s} ${cacert_s} user-list" $catch = 'name' exec { 'validate_keystone_connection': path => '/usr/bin:/bin:/usr/sbin:/sbin', provider => shell, command => $cmd, subscribe => Service['keystone'], refreshonly => true, tries => $retries, try_sleep => $delay } Exec['validate_keystone_connection'] -> Keystone_user<||> Exec['validate_keystone_connection'] -> Keystone_role<||> Exec['validate_keystone_connection'] -> Keystone_tenant<||> Exec['validate_keystone_connection'] -> Keystone_service<||> Exec['validate_keystone_connection'] -> Keystone_endpoint<||> } }