derive the roles from the users hash instead of duplicating data

Change-Id: I7b4d0b2fa7722d6563b4074a45d905a093ee38db
This commit is contained in:
Ionuț Arțăriși 2013-09-20 10:49:35 +02:00
parent 25d7252e31
commit 2e6b8b9c67
3 changed files with 10 additions and 15 deletions

View File

@ -50,14 +50,11 @@ default["openstack"]["identity"]["syslog"]["use"] = false
default["openstack"]["identity"]["syslog"]["facility"] = "LOG_LOCAL2"
default["openstack"]["identity"]["syslog"]["config_facility"] = "local2"
# default["openstack"]["identity"]["roles"] = [ "admin", "Member", "KeystoneAdmin", "KeystoneServiceAdmin", "sysadmin", "netadmin" ]
default["openstack"]["identity"]["roles"] = [ "admin", "Member", "KeystoneAdmin", "KeystoneServiceAdmin" ]
default["openstack"]["identity"]["admin_user"] = "admin"
default["openstack"]["identity"]["admin_tenant_name"] = "admin"
default["openstack"]["identity"]["users"] = {
default["openstack"]["identity"]["admin_user"] => {
default["openstack"]["identity"]["admin_user"] => {
"password" => nil,
"default_tenant" => default["openstack"]["identity"]["admin_tenant_name"],
"roles" => {

View File

@ -89,11 +89,14 @@ end.flatten.uniq.each do |tenant_name|
end
end
node["openstack"]["identity"]["roles"].each do |role_key|
openstack_identity_register "Register '#{role_key.to_s}' Role" do
# Register all the roles from the users hash
node["openstack"]["identity"]["users"].values.map do |user_info|
user_info["roles"].keys
end.flatten.uniq.each do |role_name|
openstack_identity_register "Register '#{role_name.to_s}' Role" do
auth_uri auth_uri
bootstrap_token bootstrap_token
role_name role_key
role_name role_name
action :create_role
end

View File

@ -86,18 +86,13 @@ describe "openstack-identity::registration" do
end
end
context "configured roles" do
roles = ["role1", "role2"]
context "configured roles derived from users attribute" do
let(:chef_run) {
chef_run = ::ChefSpec::ChefRunner.new ::UBUNTU_OPTS
chef_run.node.set["openstack"]["identity"]["roles"] = roles
chef_run.converge "openstack-identity::registration"
}
roles = ["role1", "role2"]
roles.each do |role_name|
it "registers the #{role_name} role" do
resource = chef_run.find_resource(
resource = chef_run_test_users.find_resource(
"openstack-identity_register",
"Register '#{role_name}' Role"
).to_hash