64100bb284
In keystone when the multi-domain configuration is enable, listing all the user is no longer supported. You have to specify the domain. The rational is that some domain will have LDAP backend (possibly AD) with tons of users. Listing them all would not be reliable. The prefetch feature in puppet needs to know all users and create an associated object. This is not a good idea when the number of user is too high. Thus the removal of this is necessary. The rational for using prefetch is that checking all items in one go "cost" less than fetching individual information. As the number of user defined in the catalog is likely to be less than the number of user in the keystone db, this seems dubious that this would be case here, hence the removal. As a consequence the keystone_user_role needs prefetch removal as well. It actually greatly simplify the code. A cache is made for user and project id to minimize the number of requests to the minimum. Closes-Bug: 1554555 Closes-Bug: 1485508 Depends-On: I5b334e3ffd26df4ba8584d77a5e41b56e73536c8 Change-Id: I8e117a9ddbd2ed5b3df739a0b27a66ad07a33e29
48 lines
1.4 KiB
Ruby
48 lines
1.4 KiB
Ruby
# Load libraries from openstacklib here to simulate how they live together in a real puppet run (for provider unit tests)
|
|
$LOAD_PATH.push(File.join(File.dirname(__FILE__), 'fixtures', 'modules', 'openstacklib', 'lib'))
|
|
require 'puppetlabs_spec_helper/module_spec_helper'
|
|
require 'shared_examples'
|
|
require 'webmock/rspec'
|
|
|
|
require 'puppet-openstack_spec_helper/defaults'
|
|
require 'rspec-puppet-facts'
|
|
include RspecPuppetFacts
|
|
|
|
# LP1492636 - Cohabitation of compile matcher and webmock
|
|
WebMock.disable_net_connect!(:allow => "169.254.169.254")
|
|
|
|
RSpec.configure do |c|
|
|
c.alias_it_should_behave_like_to :it_configures, 'configures'
|
|
c.alias_it_should_behave_like_to :it_raises, 'raises'
|
|
# TODO(aschultz): remove this after all tests converted to use OSDefaults
|
|
# instead of referencing @default_facts
|
|
c.before :each do
|
|
@default_facts = OSDefaults.get_facts
|
|
end
|
|
end
|
|
|
|
RSpec::Matchers.define :be_absent do
|
|
match do |actual|
|
|
actual == :absent
|
|
end
|
|
end
|
|
|
|
at_exit { RSpec::Puppet::Coverage.report! }
|
|
|
|
def setup_provider_tests
|
|
Puppet::Provider::Keystone.class_exec do
|
|
def self.reset
|
|
@admin_endpoint = nil
|
|
@tenant_hash = nil
|
|
@admin_token = nil
|
|
@keystone_file = nil
|
|
Puppet::Provider::Keystone.class_variable_set('@@default_domain_id', nil)
|
|
@domain_hash = nil
|
|
@users_name = nil
|
|
@projects_name = nil
|
|
end
|
|
end
|
|
end
|
|
|
|
Dir[File.dirname(__FILE__) + '/support/**/*.rb'].each { |f| require f }
|