-
Notifications
You must be signed in to change notification settings - Fork 52
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* Manifest for evaluator and auth * acceptance * example * unit tests * Fix dbsync command and run it to make evaluator work Change-Id: I3e9f43ebeceaf62abed9412959c067c4bd4409da
- Loading branch information
Showing
9 changed files
with
334 additions
and
9 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,73 @@ | ||
# The aodh::auth class helps configure auth settings | ||
# | ||
# == Parameters | ||
# [*auth_url*] | ||
# the keystone public endpoint | ||
# Optional. Defaults to 'http://localhost:5000/v2.0' | ||
# | ||
# [*auth_region*] | ||
# the keystone region of this node | ||
# Optional. Defaults to 'RegionOne' | ||
# | ||
# [*auth_user*] | ||
# the keystone user for aodh services | ||
# Optional. Defaults to 'aodh' | ||
# | ||
# [*auth_password*] | ||
# the keystone password for aodh services | ||
# Required. | ||
# | ||
# [*auth_tenant_name*] | ||
# the keystone tenant name for aodh services | ||
# Optional. Defaults to 'services' | ||
# | ||
# [*auth_tenant_id*] | ||
# the keystone tenant id for aodh services. | ||
# Optional. Defaults to undef. | ||
# | ||
# [*auth_cacert*] | ||
# Certificate chain for SSL validation. Optional; Defaults to 'undef' | ||
# | ||
# [*auth_endpoint_type*] | ||
# Type of endpoint in Identity service catalog to use for | ||
# communication with OpenStack services. | ||
# Optional. Defaults to undef. | ||
# | ||
class aodh::auth ( | ||
$auth_password, | ||
$auth_url = 'http://localhost:5000/v2.0', | ||
$auth_region = 'RegionOne', | ||
$auth_user = 'aodh', | ||
$auth_tenant_name = 'services', | ||
$auth_tenant_id = undef, | ||
$auth_cacert = undef, | ||
$auth_endpoint_type = undef, | ||
) { | ||
|
||
if $auth_cacert { | ||
aodh_config { 'service_credentials/os_cacert': value => $auth_cacert } | ||
} else { | ||
aodh_config { 'service_credentials/os_cacert': ensure => absent } | ||
} | ||
|
||
aodh_config { | ||
'service_credentials/os_auth_url' : value => $auth_url; | ||
'service_credentials/os_region_name' : value => $auth_region; | ||
'service_credentials/os_username' : value => $auth_user; | ||
'service_credentials/os_password' : value => $auth_password, secret => true; | ||
'service_credentials/os_tenant_name' : value => $auth_tenant_name; | ||
} | ||
|
||
if $auth_tenant_id { | ||
aodh_config { | ||
'service_credentials/os_tenant_id' : value => $auth_tenant_id; | ||
} | ||
} | ||
|
||
if $auth_endpoint_type { | ||
aodh_config { | ||
'service_credentials/os_endpoint_type' : value => $auth_endpoint_type; | ||
} | ||
} | ||
|
||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,14 +1,23 @@ | ||
# | ||
# Class to execute "aodh-manage db_sync | ||
# Class to execute "aodh-dbsync" | ||
# | ||
class aodh::db::sync { | ||
exec { 'aodh-manage db_sync': | ||
# [*user*] | ||
# (optional) User to run dbsync command. | ||
# Defaults to 'aodh' | ||
# | ||
class aodh::db::sync ( | ||
$user = 'aodh', | ||
){ | ||
exec { 'aodh-db-sync': | ||
command => 'aodh-dbsync --config-file /etc/aodh/aodh.conf', | ||
path => '/usr/bin', | ||
user => 'aodh', | ||
refreshonly => true, | ||
subscribe => [Package['aodh'], Aodh_config['database/connection']], | ||
require => User['aodh'], | ||
user => $user, | ||
logoutput => on_failure, | ||
} | ||
|
||
Exec['aodh-manage db_sync'] ~> Service<| title == 'aodh' |> | ||
Package<| tag == 'aodh-package' |> ~> Exec['aodh-db-sync'] | ||
Exec['aodh-db-sync'] ~> Service<| tag == 'aodh-db-sync-service' |> | ||
Aodh_config<||> ~> Exec['aodh-db-sync'] | ||
Aodh_config<| title == 'database/connection' |> ~> Exec['aodh-db-sync'] | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,59 @@ | ||
# Installs the aodh evaluator service | ||
# | ||
# == Params | ||
# [*enabled*] | ||
# (optional) Should the service be enabled. | ||
# Defaults to true. | ||
# | ||
# [*manage_service*] | ||
# (optional) Whether the service should be managed by Puppet. | ||
# Defaults to true. | ||
# | ||
# [*package_ensure*] | ||
# (optional) ensure state for package. | ||
# Defaults to 'present' | ||
# | ||
# [*coordination_url*] | ||
# (optional) The url to use for distributed group membership coordination. | ||
# Defaults to undef. | ||
# | ||
class aodh::evaluator ( | ||
$manage_service = true, | ||
$enabled = true, | ||
$package_ensure = 'present', | ||
$coordination_url = undef, | ||
) { | ||
|
||
include ::aodh::params | ||
|
||
Aodh_config<||> ~> Service['aodh-evaluator'] | ||
|
||
if $coordination_url { | ||
aodh_config { | ||
'coordination/backend_url' : value => $coordination_url; | ||
} | ||
} | ||
|
||
Package[$::aodh::params::evaluator_package_name] -> Service['aodh-evaluator'] | ||
ensure_resource( 'package', [$::aodh::params::evaluator_package_name], | ||
{ ensure => $package_ensure } | ||
) | ||
|
||
if $manage_service { | ||
if $enabled { | ||
$service_ensure = 'running' | ||
} else { | ||
$service_ensure = 'stopped' | ||
} | ||
} | ||
|
||
Package['aodh'] -> Service['aodh-evaluator'] | ||
service { 'aodh-evaluator': | ||
ensure => $service_ensure, | ||
name => $::aodh::params::evaluator_service_name, | ||
enable => $enabled, | ||
hasstatus => true, | ||
hasrestart => true, | ||
tag => ['aodh-service','aodh-db-sync-service'] | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,55 @@ | ||
require 'spec_helper' | ||
|
||
describe 'aodh::auth' do | ||
|
||
let :params do | ||
{ :auth_url => 'http://localhost:5000/v2.0', | ||
:auth_region => 'RegionOne', | ||
:auth_user => 'aodh', | ||
:auth_password => 'password', | ||
:auth_tenant_name => 'services', | ||
} | ||
end | ||
|
||
shared_examples_for 'aodh-auth' do | ||
|
||
it 'configures authentication' do | ||
is_expected.to contain_aodh_config('service_credentials/os_auth_url').with_value('http://localhost:5000/v2.0') | ||
is_expected.to contain_aodh_config('service_credentials/os_region_name').with_value('RegionOne') | ||
is_expected.to contain_aodh_config('service_credentials/os_username').with_value('aodh') | ||
is_expected.to contain_aodh_config('service_credentials/os_password').with_value('password') | ||
is_expected.to contain_aodh_config('service_credentials/os_password').with_value(params[:auth_password]).with_secret(true) | ||
is_expected.to contain_aodh_config('service_credentials/os_tenant_name').with_value('services') | ||
is_expected.to contain_aodh_config('service_credentials/os_cacert').with(:ensure => 'absent') | ||
end | ||
|
||
context 'when overriding parameters' do | ||
before do | ||
params.merge!( | ||
:auth_cacert => '/tmp/dummy.pem', | ||
:auth_endpoint_type => 'internalURL', | ||
) | ||
end | ||
it { is_expected.to contain_aodh_config('service_credentials/os_cacert').with_value(params[:auth_cacert]) } | ||
it { is_expected.to contain_aodh_config('service_credentials/os_endpoint_type').with_value(params[:auth_endpoint_type]) } | ||
end | ||
|
||
end | ||
|
||
context 'on Debian platforms' do | ||
let :facts do | ||
{ :osfamily => 'Debian' } | ||
end | ||
|
||
it_configures 'aodh-auth' | ||
end | ||
|
||
context 'on RedHat platforms' do | ||
let :facts do | ||
{ :osfamily => 'RedHat' } | ||
end | ||
|
||
it_configures 'aodh-auth' | ||
end | ||
|
||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,112 @@ | ||
require 'spec_helper' | ||
# LP1492636 - Cohabitation of compile matcher and webmock | ||
WebMock.disable_net_connect!(:allow => "169.254.169.254") | ||
|
||
describe 'aodh::evaluator' do | ||
|
||
let :pre_condition do | ||
"class { '::aodh': }" | ||
end | ||
|
||
let :params do | ||
{ :enabled => true } | ||
end | ||
|
||
shared_examples_for 'aodh-evaluator' do | ||
|
||
context 'with coordination' do | ||
before do | ||
params.merge!({ :coordination_url => 'redis://localhost:6379' }) | ||
end | ||
|
||
it 'configures backend_url' do | ||
is_expected.to contain_aodh_config('coordination/backend_url').with_value('redis://localhost:6379') | ||
end | ||
end | ||
|
||
context 'when enabled' do | ||
it { is_expected.to contain_class('aodh::params') } | ||
|
||
it 'installs aodh-evaluator package' do | ||
is_expected.to contain_package(platform_params[:evaluator_package_name]).with( | ||
:ensure => 'present' | ||
) | ||
end | ||
|
||
it 'configures aodh-evaluator service' do | ||
is_expected.to contain_service('aodh-evaluator').with( | ||
:ensure => 'running', | ||
:name => platform_params[:evaluator_service_name], | ||
:enable => true, | ||
:hasstatus => true, | ||
:hasrestart => true, | ||
:tag => ['aodh-service','aodh-db-sync-service'] | ||
) | ||
end | ||
|
||
end | ||
|
||
context 'when disabled' do | ||
let :params do | ||
{ :enabled => false } | ||
end | ||
|
||
# Catalog compilation does not crash for lack of aodh::db | ||
it { is_expected.to compile } | ||
it 'configures aodh-evaluator service' do | ||
is_expected.to contain_service('aodh-evaluator').with( | ||
:ensure => 'stopped', | ||
:name => platform_params[:evaluator_service_name], | ||
:enable => false, | ||
:hasstatus => true, | ||
:hasrestart => true, | ||
:tag => ['aodh-service','aodh-db-sync-service'] | ||
) | ||
end | ||
end | ||
|
||
context 'when service management is disabled' do | ||
let :params do | ||
{ :enabled => false, | ||
:manage_service => false } | ||
end | ||
|
||
it 'configures aodh-evaluator service' do | ||
is_expected.to contain_service('aodh-evaluator').with( | ||
:ensure => nil, | ||
:name => platform_params[:evaluator_service_name], | ||
:enable => false, | ||
:hasstatus => true, | ||
:hasrestart => true, | ||
:tag => ['aodh-service','aodh-db-sync-service'] | ||
) | ||
end | ||
end | ||
end | ||
|
||
context 'on Debian platforms' do | ||
let :facts do | ||
{ :osfamily => 'Debian' } | ||
end | ||
|
||
let :platform_params do | ||
{ :evaluator_package_name => 'aodh-evaluator', | ||
:evaluator_service_name => 'aodh-evaluator' } | ||
end | ||
|
||
it_configures 'aodh-evaluator' | ||
end | ||
|
||
context 'on RedHat platforms' do | ||
let :facts do | ||
{ :osfamily => 'RedHat' } | ||
end | ||
|
||
let :platform_params do | ||
{ :evaluator_package_name => 'openstack-aodh-evaluator', | ||
:evaluator_service_name => 'openstack-aodh-evaluator' } | ||
end | ||
|
||
it_configures 'aodh-evaluator' | ||
end | ||
end |