Files
cookbook-openstack-block-st…/spec/identity_registration_spec.rb
Andy McCrae 39c61d04e6 Utilise ['openstack']['region'] from cookbook-openstack-common
- Set ['openstack']['block-storage']['region'] to equal ['openstack']['region']
- Add tests for endpoint creation, to confirm region is set.
- Add test to override the endpoint and confirm it is used.

Change-Id: I2e88e8ff7d5fa8f5d0d611e916eff65ddff8e85e
Addresses: blueprint uniform-region
2014-02-20 16:07:02 +00:00

119 lines
3.6 KiB
Ruby

# encoding: UTF-8
#
# Cookbook Name:: openstack-block-storage
require_relative 'spec_helper'
describe 'openstack-block-storage::identity_registration' do
before do
block_storage_stubs
@chef_run = ::ChefSpec::Runner.new ::UBUNTU_OPTS
@chef_run.converge 'openstack-block-storage::identity_registration'
end
it 'registers cinder volume service' do
resource = @chef_run.find_resource(
'openstack-identity_register',
'Register Cinder Volume Service'
).to_hash
expect(resource).to include(
auth_uri: 'http://127.0.0.1:35357/v2.0',
bootstrap_token: 'bootstrap-token',
service_name: 'cinder',
service_type: 'volume',
service_description: 'Cinder Volume Service',
endpoint_region: 'RegionOne',
endpoint_adminurl: 'http://127.0.0.1:8776/v1/%(tenant_id)s',
endpoint_internalurl: 'http://127.0.0.1:8776/v1/%(tenant_id)s',
endpoint_publicurl: 'http://127.0.0.1:8776/v1/%(tenant_id)s',
action: [:create_service]
)
end
it 'overrides cinder volume service region' do
@chef_run = ::ChefSpec::Runner.new ::UBUNTU_OPTS do |n|
n.set['openstack']['block-storage']['region'] = 'serviceRegion'
end
@chef_run.converge 'openstack-block-storage::identity_registration'
resource = @chef_run.find_resource(
'openstack-identity_register',
'Register Cinder Volume Service'
).to_hash
expect(resource).to include(
endpoint_region: 'serviceRegion',
action: [:create_service]
)
end
it 'registers cinder volume endpoint' do
resource = @chef_run.find_resource(
'openstack-identity_register',
'Register Cinder Volume Endpoint'
).to_hash
expect(resource).to include(
auth_uri: 'http://127.0.0.1:35357/v2.0',
bootstrap_token: 'bootstrap-token',
service_name: 'cinder',
service_type: 'volume',
service_description: 'Cinder Volume Service',
endpoint_region: 'RegionOne',
endpoint_adminurl: 'http://127.0.0.1:8776/v1/%(tenant_id)s',
endpoint_internalurl: 'http://127.0.0.1:8776/v1/%(tenant_id)s',
endpoint_publicurl: 'http://127.0.0.1:8776/v1/%(tenant_id)s',
action: [:create_endpoint]
)
end
it 'overrides cinder volume endpoint region' do
@chef_run = ::ChefSpec::Runner.new ::UBUNTU_OPTS do |n|
n.set['openstack']['block-storage']['region'] = 'volumeRegion'
end
@chef_run.converge 'openstack-block-storage::identity_registration'
resource = @chef_run.find_resource(
'openstack-identity_register',
'Register Cinder Volume Endpoint'
).to_hash
expect(resource).to include(
endpoint_region: 'volumeRegion',
action: [:create_endpoint]
)
end
it 'registers service user' do
resource = @chef_run.find_resource(
'openstack-identity_register',
'Register Cinder Service User'
).to_hash
expect(resource).to include(
auth_uri: 'http://127.0.0.1:35357/v2.0',
bootstrap_token: 'bootstrap-token',
tenant_name: 'service',
user_name: 'cinder',
user_pass: 'cinder-pass',
user_enabled: true,
action: [:create_user]
)
end
it 'grants admin role to service user for service tenant' do
resource = @chef_run.find_resource(
'openstack-identity_register',
'Grant service Role to Cinder Service User for Cinder Service Tenant'
).to_hash
expect(resource).to include(
auth_uri: 'http://127.0.0.1:35357/v2.0',
bootstrap_token: 'bootstrap-token',
tenant_name: 'service',
user_name: 'cinder',
role_name: 'admin',
action: [:grant_role]
)
end
end