Created
January 29, 2018 16:45
-
-
Save aufi/d014cc327081a709fcdef328b3444cb7 to your computer and use it in GitHub Desktop.
keystone
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/app/models/manageiq/providers/openstack/inventory/collector/target_collection.rb b/app/models/manageiq/providers/openstack/inventory/collector/target_collection.rb | |
index 0d98e25a..a63299fb 100644 | |
--- a/app/models/manageiq/providers/openstack/inventory/collector/target_collection.rb | |
+++ b/app/models/manageiq/providers/openstack/inventory/collector/target_collection.rb | |
@@ -124,7 +124,7 @@ class ManageIQ::Providers::Openstack::Inventory::Collector::TargetCollection < M | |
def memoized_get_tenant(tenant_id) | |
return nil if tenant_id.blank? | |
@tenant_memo ||= Hash.new do |h, key| | |
- h[key] = safe_get { identity_service.tenants.find_by_id(key) } | |
+ h[key] = safe_get { identity_service.respond_to?(:projects) ? identity_service.projects_get_by_id(key) : identity_service.tenants.find_by_id(key) } | |
end | |
@tenant_memo[tenant_id] | |
end | |
@@ -275,8 +275,7 @@ class ManageIQ::Providers::Openstack::Inventory::Collector::TargetCollection < M | |
add_simple_target!(:key_pairs, name) | |
end | |
add_simple_target!(:images, vm.parent.ems_ref) if vm.parent | |
- # TODO: consider if CloudTenant refresh is needed, if so, fix get_project in fog/openstack and update code | |
- # add_simple_target!(:cloud_tenants, vm.cloud_tenant.ems_ref) if vm.cloud_tenant | |
+ add_simple_target!(:cloud_tenants, vm.cloud_tenant.ems_ref) if vm.cloud_tenant | |
end | |
end | |
@@ -285,8 +284,7 @@ class ManageIQ::Providers::Openstack::Inventory::Collector::TargetCollection < M | |
add_simple_target!(:images, vm.image["id"]) | |
add_simple_target!(:availability_zones, vm.availability_zone) | |
add_simple_target!(:key_pairs, vm.key_name) if vm.key_name | |
- # TODO: consider if CloudTenant refresh is needed, if so, fix get_project in fog/openstack and update code | |
- # add_simple_target!(:cloud_tenants, vm.tenant_id) | |
+ add_simple_target!(:cloud_tenants, vm.tenant_id) | |
add_simple_target!(:flavors, vm.flavor["id"]) | |
vm.os_interfaces.each do |iface| | |
diff --git a/lib/manageiq/providers/openstack/legacy/openstack_handle/identity_delegate.rb b/lib/manageiq/providers/openstack/legacy/openstack_handle/identity_delegate.rb | |
index f539524c..1f84adcf 100644 | |
--- a/lib/manageiq/providers/openstack/legacy/openstack_handle/identity_delegate.rb | |
+++ b/lib/manageiq/providers/openstack/legacy/openstack_handle/identity_delegate.rb | |
@@ -144,5 +144,28 @@ module OpenstackHandle | |
list_roles_for_user_on_tenant(project_id, user_id).body["roles"] | |
end | |
end | |
+ | |
+ def projects_get_by_id(id) | |
+ response = Handle.try_connection(@os_handle.security_protocol) do |scheme, connection_options| | |
+ url = Handle.url(@os_handle.address, @os_handle.port, scheme, "/v3/projects/#{id}") | |
+ connection = Fog::Core::Connection.new(url, false, connection_options) | |
+puts "========================================================" | |
+p connection | |
+puts "========================================================" | |
+ p unscoped_token | |
+ response = connection.request( | |
+ :expects => [200, 204], | |
+ :headers => {'Content-Type' => 'application/json', | |
+ 'Accept' => 'application/json', | |
+ 'X-Auth-Token' => unscoped_token}, | |
+ :method => 'GET' | |
+ ) | |
+ end | |
+ puts "========================================================" | |
+ puts "========================================================" | |
+ puts "========================================================" | |
+ p response.body | |
+ Fog::JSON.decode(response.body) | |
+ end | |
end | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment