Created
April 3, 2018 12:40
-
-
Save aufi/78e52c0f350a8739b239acb66c94605e to your computer and use it in GitHub Desktop.
This file contains hidden or 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
diff --git a/lib/manageiq/providers/openstack/legacy/openstack_handle/handle.rb b/lib/manageiq/providers/openstack/legacy/openstack_handle/handle.rb | |
index 7caa3297..e52bc976 100644 | |
--- a/lib/manageiq/providers/openstack/legacy/openstack_handle/handle.rb | |
+++ b/lib/manageiq/providers/openstack/legacy/openstack_handle/handle.rb | |
@@ -166,17 +166,18 @@ module OpenstackHandle | |
opts = options.dup | |
service = (opts.delete(:service) || "Compute").to_s.camelize | |
tenant = opts.delete(:tenant_name) | |
+ tenant_discovery = opts.delete(:tenant_discovery) || true | |
domain = domain_id | |
# Do not send auth_type to fog, it throws warning | |
opts.delete(:auth_type) | |
unless tenant | |
- tenant ||= default_tenant_name | |
+ tenant ||= default_tenant_name unless tenant_discovery | |
end | |
- opts[:openstack_tenant] = tenant | |
+ opts[:openstack_tenant] = tenant if tenant | |
# For identity ,there is only domain scope, with project_name nil | |
- opts[:openstack_project_name] = @project_name = tenant | |
+ opts[:openstack_project_name] = @project_name = tenant if tenant | |
opts[:openstack_project_domain_id] = domain | |
opts[:openstack_user_domain_id] = domain | |
opts[:openstack_region] = region | |
@@ -239,8 +240,8 @@ module OpenstackHandle | |
end | |
alias_method :connect_compute, :compute_service | |
- def identity_service | |
- connect(:service => "Identity") | |
+ def identity_service(tenant_discovery = true) | |
+ connect(:service => "Identity", :tenant_discovery => tenant_discovery) | |
end | |
alias_method :connect_identity, :identity_service | |
@@ -346,7 +347,7 @@ module OpenstackHandle | |
end | |
def tenants | |
- @tenants ||= identity_service.visible_tenants | |
+ @tenants ||= identity_service(discover_tenants: false).visible_tenants | |
end | |
def tenant_names | |
@@ -380,7 +381,7 @@ module OpenstackHandle | |
def default_tenant_name | |
return @default_tenant_name ||= "admin" if tenant_accessible?("admin") | |
tenant_names.each do |name| | |
- next if name == "services" | |
+ next if name.blank? || name == "services" | |
return @default_tenant_name ||= name if tenant_accessible?(name) | |
end | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment