mirror of
				https://github.com/fog/fog.git
				synced 2022-11-09 13:51:43 -05:00 
			
		
		
		
	[rackspace] pass connection_options onto identity service so we can auth behind a proxy
This commit is contained in:
		
							parent
							
								
									c716044ed3
								
							
						
					
					
						commit
						ee038e1da3
					
				
					 17 changed files with 63 additions and 25 deletions
				
			
		| 
						 | 
				
			
			@ -117,7 +117,8 @@ module Fog
 | 
			
		|||
          options = {
 | 
			
		||||
            :rackspace_api_key => @rackspace_api_key,
 | 
			
		||||
            :rackspace_username => @rackspace_username,
 | 
			
		||||
            :rackspace_auth_url => @rackspace_auth_url
 | 
			
		||||
            :rackspace_auth_url => @rackspace_auth_url,
 | 
			
		||||
            :connection_options => @connection_options
 | 
			
		||||
          }
 | 
			
		||||
          super(options)
 | 
			
		||||
        end
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -244,7 +244,8 @@ module Fog
 | 
			
		|||
             options = {
 | 
			
		||||
               :rackspace_api_key  => @rackspace_api_key,
 | 
			
		||||
               :rackspace_username => @rackspace_username,
 | 
			
		||||
               :rackspace_auth_url => @rackspace_auth_url
 | 
			
		||||
               :rackspace_auth_url => @rackspace_auth_url,
 | 
			
		||||
               :connection_options => @connection_options
 | 
			
		||||
             }
 | 
			
		||||
             super(options)
 | 
			
		||||
           else
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -174,7 +174,8 @@ module Fog
 | 
			
		|||
          options = {
 | 
			
		||||
            :rackspace_api_key => @rackspace_api_key,
 | 
			
		||||
            :rackspace_username => @rackspace_username,
 | 
			
		||||
            :rackspace_auth_url => @rackspace_auth_url
 | 
			
		||||
            :rackspace_auth_url => @rackspace_auth_url,
 | 
			
		||||
            :connection_options => @connection_options
 | 
			
		||||
          }
 | 
			
		||||
          super(options)
 | 
			
		||||
        end
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -119,7 +119,8 @@ module Fog
 | 
			
		|||
          options = {
 | 
			
		||||
            :rackspace_api_key  => @rackspace_api_key,
 | 
			
		||||
            :rackspace_username => @rackspace_username,
 | 
			
		||||
            :rackspace_auth_url => @rackspace_auth_url
 | 
			
		||||
            :rackspace_auth_url => @rackspace_auth_url,
 | 
			
		||||
            :connection_options => @connection_options
 | 
			
		||||
          }
 | 
			
		||||
 | 
			
		||||
          super(options)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -162,7 +162,8 @@ module Fog
 | 
			
		|||
          options = {
 | 
			
		||||
            :rackspace_api_key  => @rackspace_api_key,
 | 
			
		||||
            :rackspace_username => @rackspace_username,
 | 
			
		||||
            :rackspace_auth_url => @rackspace_auth_url
 | 
			
		||||
            :rackspace_auth_url => @rackspace_auth_url,
 | 
			
		||||
            :connection_options => @connection_options
 | 
			
		||||
          }
 | 
			
		||||
 | 
			
		||||
          super(options)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -150,7 +150,8 @@ module Fog
 | 
			
		|||
          options = {
 | 
			
		||||
            :rackspace_api_key => @rackspace_api_key,
 | 
			
		||||
            :rackspace_username => @rackspace_username,
 | 
			
		||||
            :rackspace_auth_url => @rackspace_auth_url
 | 
			
		||||
            :rackspace_auth_url => @rackspace_auth_url,
 | 
			
		||||
            :connection_options => @connection_options
 | 
			
		||||
          }
 | 
			
		||||
          super(options)
 | 
			
		||||
        end
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -54,7 +54,8 @@ module Fog
 | 
			
		|||
        hash = {
 | 
			
		||||
              :rackspace_api_key => identity_options[:rackspace_api_key],
 | 
			
		||||
              :rackspace_username => identity_options[:rackspace_username],
 | 
			
		||||
              :rackspace_auth_url => identity_options[:rackspace_auth_url]
 | 
			
		||||
              :rackspace_auth_url => identity_options[:rackspace_auth_url],
 | 
			
		||||
              :connection_options => identity_options[:connection_options] || {}
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        @identity_service = Fog::Rackspace::Identity.new(hash)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -181,7 +181,8 @@ module Fog
 | 
			
		|||
            options = {
 | 
			
		||||
              :rackspace_api_key  => @rackspace_api_key,
 | 
			
		||||
              :rackspace_username => @rackspace_username,
 | 
			
		||||
              :rackspace_auth_url => @rackspace_auth_url
 | 
			
		||||
              :rackspace_auth_url => @rackspace_auth_url,
 | 
			
		||||
              :connection_options => @connection_options
 | 
			
		||||
            }            
 | 
			
		||||
            super(options)
 | 
			
		||||
          else
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -42,14 +42,17 @@ Shindo.tests('Fog::Rackspace::BlockStorage', ['rackspace']) do
 | 
			
		|||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  tests('current authentation') do
 | 
			
		||||
  tests('current authentication') do
 | 
			
		||||
    pending if Fog.mocking?
 | 
			
		||||
 | 
			
		||||
    tests('variables populated').succeeds  do
 | 
			
		||||
      @service = Fog::Rackspace::BlockStorage.new :rackspace_auth_url => 'https://identity.api.rackspacecloud.com/v2.0'
 | 
			
		||||
      @service = Fog::Rackspace::BlockStorage.new :rackspace_auth_url => 'https://identity.api.rackspacecloud.com/v2.0', :connection_options => {:ssl_verify_peer => true}
 | 
			
		||||
      returns(true, "auth token populated") { !@service.send(:auth_token).nil? }
 | 
			
		||||
      returns(false, "path populated") { @service.instance_variable_get("@uri").host.nil? }
 | 
			
		||||
      returns(false, "identity service was used") { @service.instance_variable_get("@identity_service").nil? }
 | 
			
		||||
 | 
			
		||||
      identity_service = @service.instance_variable_get("@identity_service")
 | 
			
		||||
      returns(false, "identity service was used") { identity_service.nil? }
 | 
			
		||||
      returns(true, "connection_options are passed") { identity_service.instance_variable_get("@connection_options").has_key?(:ssl_verify_peer) }
 | 
			
		||||
      @service.list_volumes
 | 
			
		||||
    end
 | 
			
		||||
    tests('dfw region').succeeds  do
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -43,10 +43,13 @@ Shindo.tests('Fog::CDN::Rackspace', ['rackspace']) do
 | 
			
		|||
    pending if Fog.mocking?
 | 
			
		||||
    
 | 
			
		||||
    tests('variables populated').succeeds do
 | 
			
		||||
      @service = Fog::CDN::Rackspace.new :rackspace_auth_url => 'https://identity.api.rackspacecloud.com/v2.0'
 | 
			
		||||
      @service = Fog::CDN::Rackspace.new :rackspace_auth_url => 'https://identity.api.rackspacecloud.com/v2.0', :connection_options => { :ssl_verify_peer => true }
 | 
			
		||||
      returns(true, "auth token populated") { !@service.send(:auth_token).nil? }
 | 
			
		||||
      returns(false, "path populated") { @service.instance_variable_get("@uri").path.nil? }
 | 
			
		||||
      returns(false, "identity service was used") { @service.instance_variable_get("@identity_service").nil? }
 | 
			
		||||
      identity_service = @service.instance_variable_get("@identity_service")
 | 
			
		||||
      returns(false, "identity service was used") { identity_service.nil? }
 | 
			
		||||
      returns(true, "connection_options are passed") { identity_service.instance_variable_get("@connection_options").has_key?(:ssl_verify_peer) }
 | 
			
		||||
 | 
			
		||||
      @service.get_containers
 | 
			
		||||
    end
 | 
			
		||||
    tests('dfw region').succeeds do
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -43,11 +43,13 @@ Shindo.tests('Rackspace | Compute', ['rackspace']) do
 | 
			
		|||
    pending if Fog.mocking?
 | 
			
		||||
 | 
			
		||||
    tests('variables populated').succeeds do
 | 
			
		||||
      @service = Fog::Compute::Rackspace.new :rackspace_auth_url => 'https://identity.api.rackspacecloud.com/v2.0'
 | 
			
		||||
      @service = Fog::Compute::Rackspace.new :rackspace_auth_url => 'https://identity.api.rackspacecloud.com/v2.0', :connection_options => { :ssl_verify_peer => true }
 | 
			
		||||
      returns(true, "auth token populated") { !@service.send(:auth_token).nil? }
 | 
			
		||||
      returns(true) { (@service.instance_variable_get("@uri").host == 'servers.api.rackspacecloud.com') != nil }
 | 
			
		||||
 | 
			
		||||
      returns(false, "identity service was used") { @service.instance_variable_get("@identity_service").nil? }
 | 
			
		||||
      identity_service = @service.instance_variable_get("@identity_service")
 | 
			
		||||
      returns(false, "identity service was used") { identity_service.nil? }
 | 
			
		||||
      returns(true, "connection_options are passed") { identity_service.instance_variable_get("@connection_options").has_key?(:ssl_verify_peer) }
 | 
			
		||||
      @service.list_flavors
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -46,10 +46,12 @@ Shindo.tests('Fog::Compute::RackspaceV2', ['rackspace']) do
 | 
			
		|||
    pending if Fog.mocking?
 | 
			
		||||
    
 | 
			
		||||
    tests('variables populated').succeeds do
 | 
			
		||||
      @service = Fog::Compute::RackspaceV2.new :rackspace_auth_url => 'https://identity.api.rackspacecloud.com/v2.0'
 | 
			
		||||
      @service = Fog::Compute::RackspaceV2.new :rackspace_auth_url => 'https://identity.api.rackspacecloud.com/v2.0', :connection_options => {:ssl_verify_peer => true}
 | 
			
		||||
      returns(true, "auth token populated") { !@service.send(:auth_token).nil? }
 | 
			
		||||
      returns(false, "path populated") { @service.instance_variable_get("@uri").host.nil? }
 | 
			
		||||
      returns(false, "identity service was used") { @service.instance_variable_get("@identity_service").nil? }
 | 
			
		||||
      identity_service = @service.instance_variable_get("@identity_service")
 | 
			
		||||
      returns(false, "identity service was used") { identity_service.nil? }
 | 
			
		||||
      returns(true, "connection_options are passed") { identity_service.instance_variable_get("@connection_options").has_key?(:ssl_verify_peer) }
 | 
			
		||||
      @service.list_flavors
 | 
			
		||||
    end
 | 
			
		||||
    tests('dfw region').succeeds do
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -46,10 +46,13 @@ Shindo.tests('Fog::Rackspace::Databases', ['rackspace']) do |variable|
 | 
			
		|||
    pending if Fog.mocking?
 | 
			
		||||
 | 
			
		||||
    tests('variables populated').succeeds do
 | 
			
		||||
      @service = Fog::Rackspace::Databases.new :rackspace_auth_url => 'https://identity.api.rackspacecloud.com/v2.0'
 | 
			
		||||
      @service = Fog::Rackspace::Databases.new :rackspace_auth_url => 'https://identity.api.rackspacecloud.com/v2.0', :connection_options => { :ssl_verify_peer => true }
 | 
			
		||||
      returns(true, "auth token populated") { !@service.send(:auth_token).nil? }
 | 
			
		||||
      returns(false, "path populated") { @service.instance_variable_get("@uri").nil? }
 | 
			
		||||
      returns(false, "identity service was used") { @service.instance_variable_get("@identity_service").nil? }
 | 
			
		||||
 | 
			
		||||
      identity_service = @service.instance_variable_get("@identity_service")
 | 
			
		||||
      returns(false, "identity service was used") { identity_service.nil? }
 | 
			
		||||
      returns(true, "connection_options are passed") { identity_service.instance_variable_get("@connection_options").has_key?(:ssl_verify_peer) }
 | 
			
		||||
      @service.flavors
 | 
			
		||||
    end
 | 
			
		||||
    tests('dfw region').succeeds do
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -47,11 +47,14 @@ Shindo.tests('Fog::DNS::Rackspace', ['rackspace']) do
 | 
			
		|||
    pending if Fog.mocking?
 | 
			
		||||
 | 
			
		||||
    tests('variables populated').succeeds do
 | 
			
		||||
      @service = Fog::DNS::Rackspace.new :rackspace_auth_url => 'https://identity.api.rackspacecloud.com/v2.0'
 | 
			
		||||
      @service = Fog::DNS::Rackspace.new :rackspace_auth_url => 'https://identity.api.rackspacecloud.com/v2.0', :connection_options => { :ssl_verify_peer => true }
 | 
			
		||||
      returns(true, "auth token populated") { !@service.send(:auth_token).nil? }
 | 
			
		||||
      returns(false, "path populated") { @service.instance_variable_get("@uri").host.nil? }
 | 
			
		||||
      returns(true, "contains tenant id") {  (@service.instance_variable_get("@uri").path =~ /\/v1\.0\/\d+$/) != nil} #dns does not error if tenant id is missing
 | 
			
		||||
      returns(false, "identity service was used") { @service.instance_variable_get("@identity_service").nil? }
 | 
			
		||||
 | 
			
		||||
      identity_service = @service.instance_variable_get("@identity_service")
 | 
			
		||||
      returns(false, "identity service was used") { identity_service.nil? }
 | 
			
		||||
      returns(true, "connection_options are passed") { identity_service.instance_variable_get("@connection_options").has_key?(:ssl_verify_peer) }
 | 
			
		||||
      @service.list_domains
 | 
			
		||||
    end
 | 
			
		||||
    tests('custom endpoint') do
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -46,10 +46,12 @@ Shindo.tests('Fog::Rackspace::LoadBalancers', ['rackspace']) do
 | 
			
		|||
    pending if Fog.mocking?
 | 
			
		||||
 | 
			
		||||
    tests('variables populated').succeeds do
 | 
			
		||||
      @service = Fog::Rackspace::LoadBalancers.new :rackspace_auth_url => 'https://identity.api.rackspacecloud.com/v2.0'
 | 
			
		||||
      @service = Fog::Rackspace::LoadBalancers.new :rackspace_auth_url => 'https://identity.api.rackspacecloud.com/v2.0', :connection_options => { :ssl_verify_peer => true }
 | 
			
		||||
      returns(true, "auth token populated") { !@service.send(:auth_token).nil? }
 | 
			
		||||
      returns(false, "path populated") { @service.instance_variable_get("@uri").host.nil? }
 | 
			
		||||
      returns(false, "identity service was used") { @service.instance_variable_get("@identity_service").nil? }
 | 
			
		||||
      identity_service = @service.instance_variable_get("@identity_service")
 | 
			
		||||
      returns(false, "identity service was used") { identity_service.nil? }
 | 
			
		||||
      returns(true, "connection_options are passed") { identity_service.instance_variable_get("@connection_options").has_key?(:ssl_verify_peer) }
 | 
			
		||||
      @service.list_load_balancers
 | 
			
		||||
    end
 | 
			
		||||
    tests('dfw region').succeeds do
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -53,6 +53,15 @@ Shindo.tests('Fog::Rackspace::Identity | tokens', ['rackspace']) do
 | 
			
		|||
    tests('#create_token').formats(ACCESS_FORMAT) do
 | 
			
		||||
      service.create_token(username, api_key).body
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    tests('uses connection options').returns(true) do
 | 
			
		||||
      identity_service = Fog::Rackspace::Identity.new(:connection_options => { :ssl_verify_peer => true })
 | 
			
		||||
 | 
			
		||||
      connection = identity_service.instance_variable_get("@connection")
 | 
			
		||||
      excon = connection.instance_variable_get("@excon")
 | 
			
		||||
      data = excon.instance_variable_get("@data")
 | 
			
		||||
      data.has_key?(:ssl_verify_peer)
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  tests('failure') do
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -43,10 +43,13 @@ Shindo.tests('Rackspace | Storage', ['rackspace']) do
 | 
			
		|||
    pending if Fog.mocking?
 | 
			
		||||
    
 | 
			
		||||
    tests('variables populated').succeeds do
 | 
			
		||||
      @service = Fog::Storage::Rackspace.new :rackspace_auth_url => 'https://identity.api.rackspacecloud.com/v2.0'
 | 
			
		||||
      @service = Fog::Storage::Rackspace.new :rackspace_auth_url => 'https://identity.api.rackspacecloud.com/v2.0', :connection_options => { :ssl_verify_peer => true }
 | 
			
		||||
      returns(true, "auth token populated") { !@service.send(:auth_token).nil? }
 | 
			
		||||
      returns(false, "path populated") { @service.instance_variable_get("@uri").nil? }
 | 
			
		||||
      returns(false, "identity service was used") { @service.instance_variable_get("@identity_service").nil? }
 | 
			
		||||
 | 
			
		||||
      identity_service = @service.instance_variable_get("@identity_service")
 | 
			
		||||
      returns(false, "identity service was used") { identity_service.nil? }
 | 
			
		||||
      returns(true, "connection_options are passed") { identity_service.instance_variable_get("@connection_options").has_key?(:ssl_verify_peer) }
 | 
			
		||||
      @service.head_containers
 | 
			
		||||
    end
 | 
			
		||||
    tests('dfw region').succeeds do
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue