6908722cfc
* RUN annotation caused duplication for tasks in the old folder * RUN should only be used if you need non-standard run configuration * With ROLE annotation there's no need to update all the tests when you add new astute.yaml fixture for existing role * Fix manifest variable in broken tests Change-Id: I7a1c98bdb51590d8d80cee387de35d5581cf1da2 Partial-bug: #1535339
83 lines
3.6 KiB
Ruby
83 lines
3.6 KiB
Ruby
# ROLE: primary-controller
|
|
|
|
require 'spec_helper'
|
|
require 'shared-examples'
|
|
manifest = 'openstack-cinder/keystone.pp'
|
|
|
|
describe manifest do
|
|
shared_examples 'catalog' do
|
|
it 'should set empty trusts_delegated_roles for cinder auth' do
|
|
contain_class('cinder::keystone::auth')
|
|
end
|
|
|
|
public_protocol = 'http'
|
|
internal_protocol = 'http'
|
|
internal_address = Noop.hiera 'management_vip'
|
|
admin_protocol = 'http'
|
|
admin_address = internal_address
|
|
|
|
if Noop.hiera_structure('use_ssl', false)
|
|
public_protocol = 'https'
|
|
public_address = Noop.hiera_structure('use_ssl/cinder_public_hostname')
|
|
internal_protocol = 'https'
|
|
internal_address = Noop.hiera_structure('use_ssl/cinder_internal_hostname')
|
|
admin_protocol = 'https'
|
|
admin_address = Noop.hiera_structure('use_ssl/cinder_admin_hostname')
|
|
elsif Noop.hiera_structure('public_ssl/services')
|
|
public_address = Noop.hiera_structure('public_ssl/hostname')
|
|
public_protocol = 'https'
|
|
else
|
|
public_address = Noop.hiera('public_vip')
|
|
end
|
|
|
|
public_url = "#{public_protocol}://#{public_address}:8776/v1/%(tenant_id)s"
|
|
internal_url = "#{internal_protocol}://#{internal_address}:8776/v1/%(tenant_id)s"
|
|
admin_url = "#{admin_protocol}://#{admin_address}:8776/v1/%(tenant_id)s"
|
|
public_url_v2 = "#{public_protocol}://#{public_address}:8776/v2/%(tenant_id)s"
|
|
internal_url_v2 = "#{internal_protocol}://#{internal_address}:8776/v2/%(tenant_id)s"
|
|
admin_url_v2 = "#{admin_protocol}://#{admin_address}:8776/v2/%(tenant_id)s"
|
|
public_url_v3 = "#{public_protocol}://#{public_address}:8776/v3/%(tenant_id)s"
|
|
internal_url_v3 = "#{internal_protocol}://#{internal_address}:8776/v3/%(tenant_id)s"
|
|
admin_url_v3 = "#{admin_protocol}://#{admin_address}:8776/v3/%(tenant_id)s"
|
|
|
|
password = Noop.hiera_structure 'cinder/user_password'
|
|
auth_name = Noop.hiera_structure 'cinder/auth_name', 'cinder'
|
|
configure_endpoint = Noop.hiera_structure 'cinder/configure_endpoint', true
|
|
configure_user = Noop.hiera_structure 'cinder/configure_user_role', true
|
|
service_name = Noop.hiera_structure 'cinder/service_name', 'cinder'
|
|
region = Noop.hiera_structure 'cinder/region', 'RegionOne'
|
|
tenant = Noop.hiera_structure 'cinder/tenant', 'services'
|
|
|
|
it 'should have explicit ordering between LB classes and particular actions' do
|
|
expect(graph).to ensure_transitive_dependency("Haproxy_backend_status[keystone-public]",
|
|
"Class[cinder::keystone::auth]")
|
|
expect(graph).to ensure_transitive_dependency("Haproxy_backend_status[keystone-admin]",
|
|
"Class[cinder::keystone::auth]")
|
|
end
|
|
|
|
it 'should declare cinder::keystone::auth class with propper parameters' do
|
|
should contain_class('cinder::keystone::auth').with(
|
|
'password' => password,
|
|
'auth_name' => auth_name,
|
|
'configure_endpoint' => configure_endpoint,
|
|
'configure_user' => configure_user,
|
|
'service_name' => service_name,
|
|
'public_url' => public_url,
|
|
'internal_url' => internal_url,
|
|
'admin_url' => admin_url,
|
|
'public_url_v2' => public_url_v2,
|
|
'internal_url_v2' => internal_url_v2,
|
|
'admin_url_v2' => admin_url_v2,
|
|
'public_url_v3' => public_url_v3,
|
|
'internal_url_v3' => internal_url_v3,
|
|
'admin_url_v3' => admin_url_v3,
|
|
'region' => region,
|
|
'tenant' => tenant,
|
|
)
|
|
end
|
|
|
|
end #end of shared examples
|
|
|
|
test_ubuntu_and_centos manifest
|
|
end
|