Merge pull request #67 from relaxdiego/fix/65
This merge adds the ability for the client to specify a base_url for the request. This is useful in situations where the session in use is based on a default token which does not have any service catalog.
This commit is contained in:
		@@ -35,6 +35,23 @@ module Aviator
 | 
				
			|||||||
    end
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    class MissingServiceEndpointError < StandardError
 | 
				
			||||||
 | 
					      def initialize(service_name, request_name)
 | 
				
			||||||
 | 
					        request_name = request_name.to_s.split('::').last.underscore
 | 
				
			||||||
 | 
					        super "The session's service catalog does not have an entry for the #{ service_name } "\
 | 
				
			||||||
 | 
					              "service. Therefore, I don't know to which base URL the request should be sent. "\
 | 
				
			||||||
 | 
					              "This may be because you are using a default or unscoped token. If this is not your "\
 | 
				
			||||||
 | 
					              "intention, please authenticate with a scoped token. If using a default token is your "\
 | 
				
			||||||
 | 
					              "intention, make sure to provide a base url when you call the request. For example: \n\n"\
 | 
				
			||||||
 | 
					              "session.#{ service_name }_service.request :#{ request_name }, base_url: 'http://myenv.com:9999/v2.0' do |params|\n"\
 | 
				
			||||||
 | 
					              "  params[:example1] = 'example1'\n"\
 | 
				
			||||||
 | 
					              "  params[:example2] = 'example2'\n"\
 | 
				
			||||||
 | 
					              "end\n\n"
 | 
				
			||||||
 | 
					      end
 | 
				
			||||||
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    class Logger < Faraday::Response::Logger
 | 
					    class Logger < Faraday::Response::Logger
 | 
				
			||||||
      def initialize(app, logger=nil)
 | 
					      def initialize(app, logger=nil)
 | 
				
			||||||
        super(app)
 | 
					        super(app)
 | 
				
			||||||
@@ -68,6 +85,10 @@ module Aviator
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
      raise SessionDataNotProvidedError.new unless session_data
 | 
					      raise SessionDataNotProvidedError.new unless session_data
 | 
				
			||||||
      
 | 
					      
 | 
				
			||||||
 | 
					      [:base_url].each do |k|
 | 
				
			||||||
 | 
					        session_data[k] = options[k] if options[k]
 | 
				
			||||||
 | 
					      end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      request_class = find_request(request_name, session_data, options[:endpoint_type])
 | 
					      request_class = find_request(request_name, session_data, options[:endpoint_type])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      raise UnknownRequestError.new(request_name) unless request_class
 | 
					      raise UnknownRequestError.new(request_name) unless request_class
 | 
				
			||||||
@@ -119,11 +140,11 @@ module Aviator
 | 
				
			|||||||
      namespace = Aviator.const_get(provider.camelize)
 | 
					      namespace = Aviator.const_get(provider.camelize)
 | 
				
			||||||
                         .const_get(service.camelize)
 | 
					                         .const_get(service.camelize)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      version = infer_version(session_data).to_s.camelize
 | 
					      version = infer_version(session_data, name).to_s.camelize
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      return nil unless version && namespace.const_defined?(version)
 | 
					      return nil unless version && namespace.const_defined?(version)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      namespace = namespace.const_get(version)
 | 
					      namespace = namespace.const_get(version, name)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      endpoint_types.each do |endpoint_type|
 | 
					      endpoint_types.each do |endpoint_type|
 | 
				
			||||||
        name = name.to_s.camelize
 | 
					        name = name.to_s.camelize
 | 
				
			||||||
@@ -139,7 +160,7 @@ module Aviator
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # Candidate for extraction to aviator/openstack
 | 
					    # Candidate for extraction to aviator/openstack
 | 
				
			||||||
    def infer_version(session_data)
 | 
					    def infer_version(session_data, request_name='sample_request')
 | 
				
			||||||
      if session_data.has_key?(:auth_service) && session_data[:auth_service][:api_version]
 | 
					      if session_data.has_key?(:auth_service) && session_data[:auth_service][:api_version]
 | 
				
			||||||
        session_data[:auth_service][:api_version].to_sym
 | 
					        session_data[:auth_service][:api_version].to_sym
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -147,8 +168,13 @@ module Aviator
 | 
				
			|||||||
        m = session_data[:auth_service][:host_uri].match(/(v\d+)\.?\d*/)
 | 
					        m = session_data[:auth_service][:host_uri].match(/(v\d+)\.?\d*/)
 | 
				
			||||||
        return m[1].to_sym unless m.nil?
 | 
					        return m[1].to_sym unless m.nil?
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      elsif session_data.has_key? :base_url
 | 
				
			||||||
 | 
					        m = session_data[:base_url].match(/(v\d+)\.?\d*/)
 | 
				
			||||||
 | 
					        return m[1].to_sym unless m.nil?
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      elsif session_data.has_key? :access
 | 
					      elsif session_data.has_key? :access
 | 
				
			||||||
        service_spec = session_data[:access][:serviceCatalog].find{|s| s[:type] == service }
 | 
					        service_spec = session_data[:access][:serviceCatalog].find{|s| s[:type] == service }
 | 
				
			||||||
 | 
					        raise MissingServiceEndpointError.new(service.to_s, request_name) unless service_spec
 | 
				
			||||||
        version = service_spec[:endpoints][0][:publicURL].match(/(v\d+)\.?\d*/)
 | 
					        version = service_spec[:endpoints][0][:publicURL].match(/(v\d+)\.?\d*/)
 | 
				
			||||||
        version ? version[1].to_sym : :v1
 | 
					        version ? version[1].to_sym : :v1
 | 
				
			||||||
      end
 | 
					      end
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -16,10 +16,16 @@ module Aviator
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    private
 | 
					    private
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def base_url_for(endpoint_type)
 | 
					    def base_url_for(endpoint_type)
 | 
				
			||||||
 | 
					      if session_data[:base_url]
 | 
				
			||||||
 | 
					        session_data[:base_url]
 | 
				
			||||||
 | 
					      else
 | 
				
			||||||
        service_spec = session_data[:access][:serviceCatalog].find { |s| s[:type] == service.to_s }
 | 
					        service_spec = session_data[:access][:serviceCatalog].find { |s| s[:type] == service.to_s }
 | 
				
			||||||
 | 
					        raise Aviator::Service::MissingServiceEndpointError.new(service.to_s, self.class) unless service_spec
 | 
				
			||||||
        service_spec[:endpoints][0]["#{ endpoint_type }URL".to_sym]
 | 
					        service_spec[:endpoints][0]["#{ endpoint_type }URL".to_sym]
 | 
				
			||||||
      end
 | 
					      end
 | 
				
			||||||
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def params_to_querystring(param_names)
 | 
					    def params_to_querystring(param_names)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -74,6 +74,24 @@ class Aviator::Test
 | 
				
			|||||||
      end
 | 
					      end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      it 'raises an error if session data does not have the endpoint information' do
 | 
				
			||||||
 | 
					        request_name = config[:auth_service][:request].to_sym
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        bootstrap = JSON.parse('{"access": {"token": {"issued_at": "2013-09-25T20:21:55.453783",
 | 
				
			||||||
 | 
					          "expires": "2013-09-26T02:21:55Z", "id": "2f6bdec6cd0f49b4a60ede0cd4bf2c0d"},
 | 
				
			||||||
 | 
					          "serviceCatalog": [], "user": {"username": "bogus",
 | 
				
			||||||
 | 
					          "roles_links": [], "id": "447527294dae4a1788d36beb0db99c00", "roles": [],
 | 
				
			||||||
 | 
					          "name": "bogus"}, "metadata": {"is_admin": 0, "roles":
 | 
				
			||||||
 | 
					          []}}}').with_indifferent_access
 | 
				
			||||||
 | 
					          
 | 
				
			||||||
 | 
					        s = service(bootstrap)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        the_method = lambda { s.request request_name }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        the_method.must_raise Aviator::Service::MissingServiceEndpointError
 | 
				
			||||||
 | 
					      end
 | 
				
			||||||
 | 
					            
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      it 'can find the correct request based on non-bootstrapped session data' do
 | 
					      it 'can find the correct request based on non-bootstrapped session data' do
 | 
				
			||||||
        session_data = do_auth_request.body
 | 
					        session_data = do_auth_request.body
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										109
									
								
								test/aviator/openstack/common/v2/public/base_test.rb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										109
									
								
								test/aviator/openstack/common/v2/public/base_test.rb
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,109 @@
 | 
				
			|||||||
 | 
					require 'test_helper'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class Aviator::Test
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  describe 'aviator/openstack/common/v2/public/base' do
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def create_request(session_data = get_session_data, &block)
 | 
				
			||||||
 | 
					      block ||= lambda do |params|
 | 
				
			||||||
 | 
					                  params[:tenant_id] = 0
 | 
				
			||||||
 | 
					                  params[:role_id]   = 0
 | 
				
			||||||
 | 
					                  params[:user_id]   = 0
 | 
				
			||||||
 | 
					                end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      klass.new(session_data, &block)
 | 
				
			||||||
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def get_session_data
 | 
				
			||||||
 | 
					      session.send :auth_info
 | 
				
			||||||
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def helper
 | 
				
			||||||
 | 
					      Aviator::Test::RequestHelper
 | 
				
			||||||
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def klass
 | 
				
			||||||
 | 
					      @klass ||= helper.load_request('openstack', 'common', 'v2', 'public', 'base.rb')
 | 
				
			||||||
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def session
 | 
				
			||||||
 | 
					      unless @session
 | 
				
			||||||
 | 
					        @session = Aviator::Session.new(
 | 
				
			||||||
 | 
					          config_file: Environment.path,
 | 
				
			||||||
 | 
					          environment: 'openstack_admin'
 | 
				
			||||||
 | 
					        )
 | 
				
			||||||
 | 
					        @session.authenticate
 | 
				
			||||||
 | 
					      end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      @session
 | 
				
			||||||
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    validate_attr :anonymous? do
 | 
				
			||||||
 | 
					      klass.anonymous?.must_equal false
 | 
				
			||||||
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    validate_attr :api_version do
 | 
				
			||||||
 | 
					      klass.api_version.must_equal :v2
 | 
				
			||||||
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    validate_attr :endpoint_type do
 | 
				
			||||||
 | 
					      klass.endpoint_type.must_equal :public
 | 
				
			||||||
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    validate_attr :headers do
 | 
				
			||||||
 | 
					      headers = { 'X-Auth-Token' => get_session_data[:access][:token][:id] }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      request = create_request
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      request.headers.must_equal headers
 | 
				
			||||||
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    describe '::base_url_for' do
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      it 'must throw a MissingServiceEndpointError when the service\'s endpoint can\'t be found' do
 | 
				
			||||||
 | 
					        default_session_data = JSON.parse('{"access": {"token": {"issued_at": "2013-09-25T20:21:55.453783",
 | 
				
			||||||
 | 
					          "expires": "2013-09-26T02:21:55Z", "id": "2f6bdec6cd0f49b4a60ede0cd4bf2c0d"},
 | 
				
			||||||
 | 
					          "serviceCatalog": [], "user": {"username": "bogus",
 | 
				
			||||||
 | 
					          "roles_links": [], "id": "447527294dae4a1788d36beb0db99c00", "roles": [],
 | 
				
			||||||
 | 
					          "name": "bogus"}, "metadata": {"is_admin": 0, "roles":
 | 
				
			||||||
 | 
					          []}}}').with_indifferent_access
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        request = klass.new(default_session_data)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        the_method = lambda { request.send(:base_url_for, :public) }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        the_method.must_raise Aviator::Service::MissingServiceEndpointError
 | 
				
			||||||
 | 
					      end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      it 'must use the base_url value if provided.' do        
 | 
				
			||||||
 | 
					        default_session_data = JSON.parse('{"access": {"token": {"issued_at": "2013-09-25T20:21:55.453783",
 | 
				
			||||||
 | 
					          "expires": "2013-09-26T02:21:55Z", "id": "2f6bdec6cd0f49b4a60ede0cd4bf2c0d"},
 | 
				
			||||||
 | 
					          "serviceCatalog": [], "user": {"username": "bogus",
 | 
				
			||||||
 | 
					          "roles_links": [], "id": "447527294dae4a1788d36beb0db99c00", "roles": [],
 | 
				
			||||||
 | 
					          "name": "bogus"}, "metadata": {"is_admin": 0, "roles":
 | 
				
			||||||
 | 
					          []}}}').with_indifferent_access
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        base_url = 'http://sample'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        default_session_data.merge!({ base_url: base_url })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        request = klass.new(default_session_data)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        request.send(:base_url_for, :public).must_equal base_url
 | 
				
			||||||
 | 
					      end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
							
								
								
									
										131
									
								
								test/aviator/openstack/identity/v2/public/list_tenants_test.rb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										131
									
								
								test/aviator/openstack/identity/v2/public/list_tenants_test.rb
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,131 @@
 | 
				
			|||||||
 | 
					require 'test_helper'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class Aviator::Test
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  describe 'aviator/openstack/identity/v2/public/list_tenants' do
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def create_request(session_data = get_session_data, &block)
 | 
				
			||||||
 | 
					      klass.new(session_data, &block)
 | 
				
			||||||
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def get_session_data
 | 
				
			||||||
 | 
					      session.send :auth_info
 | 
				
			||||||
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def helper
 | 
				
			||||||
 | 
					      Aviator::Test::RequestHelper
 | 
				
			||||||
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def klass
 | 
				
			||||||
 | 
					      @klass ||= helper.load_request('openstack', 'identity', 'v2', 'public', 'list_tenants.rb')
 | 
				
			||||||
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def session
 | 
				
			||||||
 | 
					      unless @session
 | 
				
			||||||
 | 
					        @session = Aviator::Session.new(
 | 
				
			||||||
 | 
					          config_file: Environment.path,
 | 
				
			||||||
 | 
					          environment: 'openstack_admin'
 | 
				
			||||||
 | 
					        )
 | 
				
			||||||
 | 
					        @session.authenticate
 | 
				
			||||||
 | 
					      end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      @session
 | 
				
			||||||
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    validate_attr :anonymous? do
 | 
				
			||||||
 | 
					      klass.anonymous?.must_equal false
 | 
				
			||||||
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    validate_attr :api_version do
 | 
				
			||||||
 | 
					      klass.api_version.must_equal :v2
 | 
				
			||||||
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    validate_attr :body do
 | 
				
			||||||
 | 
					      klass.body?.must_equal false
 | 
				
			||||||
 | 
					      create_request.body?.must_equal false
 | 
				
			||||||
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    validate_attr :endpoint_type do
 | 
				
			||||||
 | 
					      klass.endpoint_type.must_equal :public
 | 
				
			||||||
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    validate_attr :headers do
 | 
				
			||||||
 | 
					      session_data = get_session_data
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      headers = { 'X-Auth-Token' => session_data[:access][:token][:id] }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      request = create_request(session_data)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      request.headers.must_equal headers
 | 
				
			||||||
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    validate_attr :http_method do
 | 
				
			||||||
 | 
					      create_request.http_method.must_equal :get
 | 
				
			||||||
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    validate_attr :url do
 | 
				
			||||||
 | 
					      session_data = get_session_data
 | 
				
			||||||
 | 
					      service_spec = session_data[:access][:serviceCatalog].find{|s| s[:type] == 'identity' }
 | 
				
			||||||
 | 
					      url          = "#{ service_spec[:endpoints][0][:publicURL] }/tenants"
 | 
				
			||||||
 | 
					      request      = klass.new(session_data)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      request.url.must_equal url
 | 
				
			||||||
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    validate_response 'no parameters are provided' do
 | 
				
			||||||
 | 
					      service = session.identity_service
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      response = service.request :list_tenants
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      response.status.must_equal 200
 | 
				
			||||||
 | 
					      response.body.wont_be_nil
 | 
				
			||||||
 | 
					      response.body[:tenants].length.wont_equal 0
 | 
				
			||||||
 | 
					      response.headers.wont_be_nil
 | 
				
			||||||
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    validate_response 'session is using a default token' do
 | 
				
			||||||
 | 
					      s = Aviator::Session.new(
 | 
				
			||||||
 | 
					          config_file: Environment.path,
 | 
				
			||||||
 | 
					          environment: 'openstack_admin'
 | 
				
			||||||
 | 
					        )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      s.authenticate do |creds|
 | 
				
			||||||
 | 
					        creds.username = Environment.openstack_member[:auth_credentials][:username]
 | 
				
			||||||
 | 
					        creds.password = Environment.openstack_member[:auth_credentials][:password]
 | 
				
			||||||
 | 
					      end
 | 
				
			||||||
 | 
					      
 | 
				
			||||||
 | 
					      base_url = URI(Environment.openstack_admin[:auth_service][:host_uri])
 | 
				
			||||||
 | 
					      
 | 
				
			||||||
 | 
					      api_version = Environment.openstack_admin[:auth_service][:api_version]
 | 
				
			||||||
 | 
					      
 | 
				
			||||||
 | 
					      if api_version 
 | 
				
			||||||
 | 
					        base_url.path = (api_version == 'v2' ? '/v2.0' : "/#{ api_version }")
 | 
				
			||||||
 | 
					      end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      # base_url should have the form 'https://<domain>:<port>/<api_version>'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      response = s.identity_service.request :list_tenants, base_url: base_url.to_s
 | 
				
			||||||
 | 
					      
 | 
				
			||||||
 | 
					      response.status.must_equal 200
 | 
				
			||||||
 | 
					      response.body.wont_be_nil
 | 
				
			||||||
 | 
					      response.body[:tenants].length.wont_equal 0
 | 
				
			||||||
 | 
					      response.headers.wont_be_nil
 | 
				
			||||||
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
@@ -0,0 +1,62 @@
 | 
				
			|||||||
 | 
					---
 | 
				
			||||||
 | 
					http_interactions:
 | 
				
			||||||
 | 
					- request:
 | 
				
			||||||
 | 
					    method: post
 | 
				
			||||||
 | 
					    uri: <OPENSTACK_ADMIN_HOST_URI>:5000/v2.0/tokens
 | 
				
			||||||
 | 
					    body:
 | 
				
			||||||
 | 
					      encoding: UTF-8
 | 
				
			||||||
 | 
					      string: ! '{"auth":{"passwordCredentials":{"username":"<OPENSTACK_ADMIN_USERNAME>","password":"<OPENSTACK_ADMIN_PASSWORD>"},"tenantName":"<OPENSTACK_ADMIN_TENANTNAME>"}}'
 | 
				
			||||||
 | 
					    headers:
 | 
				
			||||||
 | 
					      Content-Type:
 | 
				
			||||||
 | 
					      - application/json
 | 
				
			||||||
 | 
					      User-Agent:
 | 
				
			||||||
 | 
					      - Faraday v0.8.8
 | 
				
			||||||
 | 
					  response:
 | 
				
			||||||
 | 
					    status:
 | 
				
			||||||
 | 
					      code: 200
 | 
				
			||||||
 | 
					      message: 
 | 
				
			||||||
 | 
					    headers:
 | 
				
			||||||
 | 
					      vary:
 | 
				
			||||||
 | 
					      - X-Auth-Token
 | 
				
			||||||
 | 
					      content-type:
 | 
				
			||||||
 | 
					      - application/json
 | 
				
			||||||
 | 
					      content-length:
 | 
				
			||||||
 | 
					      - '2649'
 | 
				
			||||||
 | 
					      date:
 | 
				
			||||||
 | 
					      - Wed, 25 Sep 2013 20:21:00 GMT
 | 
				
			||||||
 | 
					      connection:
 | 
				
			||||||
 | 
					      - close
 | 
				
			||||||
 | 
					    body:
 | 
				
			||||||
 | 
					      encoding: US-ASCII
 | 
				
			||||||
 | 
					      string: ! '{"access": {"token": {"issued_at": "2013-09-25T20:21:00.599676",
 | 
				
			||||||
 | 
					        "expires": "2013-09-26T02:21:00Z", "id": "695465ba44f34e32b008250b7a92e4e9",
 | 
				
			||||||
 | 
					        "tenant": {"description": "Used for Aviator testing/development", "enabled":
 | 
				
			||||||
 | 
					        true, "id": "291e43291289457da59d8f727c46147a", "name": "<OPENSTACK_ADMIN_TENANTNAME>"}},
 | 
				
			||||||
 | 
					        "serviceCatalog": [{"endpoints": [{"adminURL": "<OPENSTACK_ADMIN_HOST_URI>:8774/v2/291e43291289457da59d8f727c46147a",
 | 
				
			||||||
 | 
					        "region": "RegionOne", "internalURL": "<OPENSTACK_ADMIN_HOST_URI>:8774/v2/291e43291289457da59d8f727c46147a",
 | 
				
			||||||
 | 
					        "id": "6bb597a3738045f4b2c51a7702037cab", "publicURL": "<OPENSTACK_ADMIN_HOST_URI>:8774/v2/291e43291289457da59d8f727c46147a"}],
 | 
				
			||||||
 | 
					        "endpoints_links": [], "type": "compute", "name": "nova"}, {"endpoints": [{"adminURL":
 | 
				
			||||||
 | 
					        "<OPENSTACK_ADMIN_HOST_URI>:9292", "region": "RegionOne", "internalURL": "<OPENSTACK_ADMIN_HOST_URI>:9292",
 | 
				
			||||||
 | 
					        "id": "2985945e07b74103bb2dfef7e426cd43", "publicURL": "<OPENSTACK_ADMIN_HOST_URI>:9292"}],
 | 
				
			||||||
 | 
					        "endpoints_links": [], "type": "image", "name": "glance"}, {"endpoints": [{"adminURL":
 | 
				
			||||||
 | 
					        "<OPENSTACK_ADMIN_HOST_URI>:8777", "region": "RegionOne", "internalURL": "<OPENSTACK_ADMIN_HOST_URI>:8777",
 | 
				
			||||||
 | 
					        "id": "370119dd80e84894bfe83d766fd467dd", "publicURL": "<OPENSTACK_ADMIN_HOST_URI>:8777"}],
 | 
				
			||||||
 | 
					        "endpoints_links": [], "type": "metering", "name": "ceilometer"}, {"endpoints":
 | 
				
			||||||
 | 
					        [{"adminURL": "<OPENSTACK_ADMIN_HOST_URI>:8776/v1/291e43291289457da59d8f727c46147a",
 | 
				
			||||||
 | 
					        "region": "RegionOne", "internalURL": "<OPENSTACK_ADMIN_HOST_URI>:8776/v1/291e43291289457da59d8f727c46147a",
 | 
				
			||||||
 | 
					        "id": "2492a6f5fa80466d9312e51a8f79b638", "publicURL": "<OPENSTACK_ADMIN_HOST_URI>:8776/v1/291e43291289457da59d8f727c46147a"}],
 | 
				
			||||||
 | 
					        "endpoints_links": [], "type": "volume", "name": "cinder"}, {"endpoints":
 | 
				
			||||||
 | 
					        [{"adminURL": "<OPENSTACK_ADMIN_HOST_URI>:8773/services/Admin", "region":
 | 
				
			||||||
 | 
					        "RegionOne", "internalURL": "<OPENSTACK_ADMIN_HOST_URI>:8773/services/Cloud",
 | 
				
			||||||
 | 
					        "id": "1f68f3ce931946c788e487443e772fb2", "publicURL": "<OPENSTACK_ADMIN_HOST_URI>:8773/services/Cloud"}],
 | 
				
			||||||
 | 
					        "endpoints_links": [], "type": "ec2", "name": "nova_ec2"}, {"endpoints": [{"adminURL":
 | 
				
			||||||
 | 
					        "<OPENSTACK_ADMIN_HOST_URI>:35357/v2.0", "region": "RegionOne", "internalURL":
 | 
				
			||||||
 | 
					        "<OPENSTACK_ADMIN_HOST_URI>:5000/v2.0", "id": "12c722e9b9fb471fbea83c6157c0123a",
 | 
				
			||||||
 | 
					        "publicURL": "<OPENSTACK_ADMIN_HOST_URI>:5000/v2.0"}], "endpoints_links":
 | 
				
			||||||
 | 
					        [], "type": "identity", "name": "keystone"}], "user": {"username": "<OPENSTACK_ADMIN_USERNAME>",
 | 
				
			||||||
 | 
					        "roles_links": [], "id": "3cb44449b3cb48519641864ca82d1911", "roles": [{"name":
 | 
				
			||||||
 | 
					        "admin"}], "name": "<OPENSTACK_ADMIN_USERNAME>"}, "metadata": {"is_admin":
 | 
				
			||||||
 | 
					        0, "roles": ["a0d6ba8f41b746b495a6d25c69962489"]}}}'
 | 
				
			||||||
 | 
					    http_version: 
 | 
				
			||||||
 | 
					  recorded_at: Wed, 25 Sep 2013 20:21:00 GMT
 | 
				
			||||||
 | 
					recorded_with: VCR 2.5.0
 | 
				
			||||||
@@ -0,0 +1,143 @@
 | 
				
			|||||||
 | 
					---
 | 
				
			||||||
 | 
					http_interactions:
 | 
				
			||||||
 | 
					- request:
 | 
				
			||||||
 | 
					    method: post
 | 
				
			||||||
 | 
					    uri: <OPENSTACK_ADMIN_HOST_URI>:5000/v2.0/tokens
 | 
				
			||||||
 | 
					    body:
 | 
				
			||||||
 | 
					      encoding: UTF-8
 | 
				
			||||||
 | 
					      string: ! '{"auth":{"passwordCredentials":{"username":"<OPENSTACK_ADMIN_USERNAME>","password":"<OPENSTACK_ADMIN_PASSWORD>"},"tenantName":"<OPENSTACK_ADMIN_TENANTNAME>"}}'
 | 
				
			||||||
 | 
					    headers:
 | 
				
			||||||
 | 
					      Content-Type:
 | 
				
			||||||
 | 
					      - application/json
 | 
				
			||||||
 | 
					      User-Agent:
 | 
				
			||||||
 | 
					      - Faraday v0.8.8
 | 
				
			||||||
 | 
					  response:
 | 
				
			||||||
 | 
					    status:
 | 
				
			||||||
 | 
					      code: 200
 | 
				
			||||||
 | 
					      message: 
 | 
				
			||||||
 | 
					    headers:
 | 
				
			||||||
 | 
					      vary:
 | 
				
			||||||
 | 
					      - X-Auth-Token
 | 
				
			||||||
 | 
					      content-type:
 | 
				
			||||||
 | 
					      - application/json
 | 
				
			||||||
 | 
					      content-length:
 | 
				
			||||||
 | 
					      - '2649'
 | 
				
			||||||
 | 
					      date:
 | 
				
			||||||
 | 
					      - Wed, 25 Sep 2013 19:00:22 GMT
 | 
				
			||||||
 | 
					      connection:
 | 
				
			||||||
 | 
					      - close
 | 
				
			||||||
 | 
					    body:
 | 
				
			||||||
 | 
					      encoding: US-ASCII
 | 
				
			||||||
 | 
					      string: ! '{"access": {"token": {"issued_at": "2013-09-25T19:00:22.822563",
 | 
				
			||||||
 | 
					        "expires": "2013-09-26T01:00:22Z", "id": "9db5bd6b0022494f8bb97ceea0ce4b68",
 | 
				
			||||||
 | 
					        "tenant": {"description": "Used for Aviator testing/development", "enabled":
 | 
				
			||||||
 | 
					        true, "id": "291e43291289457da59d8f727c46147a", "name": "<OPENSTACK_ADMIN_TENANTNAME>"}},
 | 
				
			||||||
 | 
					        "serviceCatalog": [{"endpoints": [{"adminURL": "<OPENSTACK_ADMIN_HOST_URI>:8774/v2/291e43291289457da59d8f727c46147a",
 | 
				
			||||||
 | 
					        "region": "RegionOne", "internalURL": "<OPENSTACK_ADMIN_HOST_URI>:8774/v2/291e43291289457da59d8f727c46147a",
 | 
				
			||||||
 | 
					        "id": "6bb597a3738045f4b2c51a7702037cab", "publicURL": "<OPENSTACK_ADMIN_HOST_URI>:8774/v2/291e43291289457da59d8f727c46147a"}],
 | 
				
			||||||
 | 
					        "endpoints_links": [], "type": "compute", "name": "nova"}, {"endpoints": [{"adminURL":
 | 
				
			||||||
 | 
					        "<OPENSTACK_ADMIN_HOST_URI>:9292", "region": "RegionOne", "internalURL": "<OPENSTACK_ADMIN_HOST_URI>:9292",
 | 
				
			||||||
 | 
					        "id": "2985945e07b74103bb2dfef7e426cd43", "publicURL": "<OPENSTACK_ADMIN_HOST_URI>:9292"}],
 | 
				
			||||||
 | 
					        "endpoints_links": [], "type": "image", "name": "glance"}, {"endpoints": [{"adminURL":
 | 
				
			||||||
 | 
					        "<OPENSTACK_ADMIN_HOST_URI>:8777", "region": "RegionOne", "internalURL": "<OPENSTACK_ADMIN_HOST_URI>:8777",
 | 
				
			||||||
 | 
					        "id": "370119dd80e84894bfe83d766fd467dd", "publicURL": "<OPENSTACK_ADMIN_HOST_URI>:8777"}],
 | 
				
			||||||
 | 
					        "endpoints_links": [], "type": "metering", "name": "ceilometer"}, {"endpoints":
 | 
				
			||||||
 | 
					        [{"adminURL": "<OPENSTACK_ADMIN_HOST_URI>:8776/v1/291e43291289457da59d8f727c46147a",
 | 
				
			||||||
 | 
					        "region": "RegionOne", "internalURL": "<OPENSTACK_ADMIN_HOST_URI>:8776/v1/291e43291289457da59d8f727c46147a",
 | 
				
			||||||
 | 
					        "id": "2492a6f5fa80466d9312e51a8f79b638", "publicURL": "<OPENSTACK_ADMIN_HOST_URI>:8776/v1/291e43291289457da59d8f727c46147a"}],
 | 
				
			||||||
 | 
					        "endpoints_links": [], "type": "volume", "name": "cinder"}, {"endpoints":
 | 
				
			||||||
 | 
					        [{"adminURL": "<OPENSTACK_ADMIN_HOST_URI>:8773/services/Admin", "region":
 | 
				
			||||||
 | 
					        "RegionOne", "internalURL": "<OPENSTACK_ADMIN_HOST_URI>:8773/services/Cloud",
 | 
				
			||||||
 | 
					        "id": "1f68f3ce931946c788e487443e772fb2", "publicURL": "<OPENSTACK_ADMIN_HOST_URI>:8773/services/Cloud"}],
 | 
				
			||||||
 | 
					        "endpoints_links": [], "type": "ec2", "name": "nova_ec2"}, {"endpoints": [{"adminURL":
 | 
				
			||||||
 | 
					        "<OPENSTACK_ADMIN_HOST_URI>:35357/v2.0", "region": "RegionOne", "internalURL":
 | 
				
			||||||
 | 
					        "<OPENSTACK_ADMIN_HOST_URI>:5000/v2.0", "id": "12c722e9b9fb471fbea83c6157c0123a",
 | 
				
			||||||
 | 
					        "publicURL": "<OPENSTACK_ADMIN_HOST_URI>:5000/v2.0"}], "endpoints_links":
 | 
				
			||||||
 | 
					        [], "type": "identity", "name": "keystone"}], "user": {"username": "<OPENSTACK_ADMIN_USERNAME>",
 | 
				
			||||||
 | 
					        "roles_links": [], "id": "3cb44449b3cb48519641864ca82d1911", "roles": [{"name":
 | 
				
			||||||
 | 
					        "admin"}], "name": "<OPENSTACK_ADMIN_USERNAME>"}, "metadata": {"is_admin":
 | 
				
			||||||
 | 
					        0, "roles": ["a0d6ba8f41b746b495a6d25c69962489"]}}}'
 | 
				
			||||||
 | 
					    http_version: 
 | 
				
			||||||
 | 
					  recorded_at: Wed, 25 Sep 2013 19:00:22 GMT
 | 
				
			||||||
 | 
					- request:
 | 
				
			||||||
 | 
					    method: get
 | 
				
			||||||
 | 
					    uri: <OPENSTACK_ADMIN_HOST_URI>:5000/v2.0/tenants
 | 
				
			||||||
 | 
					    body:
 | 
				
			||||||
 | 
					      encoding: US-ASCII
 | 
				
			||||||
 | 
					      string: ''
 | 
				
			||||||
 | 
					    headers:
 | 
				
			||||||
 | 
					      Content-Type:
 | 
				
			||||||
 | 
					      - application/json
 | 
				
			||||||
 | 
					      User-Agent:
 | 
				
			||||||
 | 
					      - Faraday v0.8.8
 | 
				
			||||||
 | 
					      X-Auth-Token:
 | 
				
			||||||
 | 
					      - 9db5bd6b0022494f8bb97ceea0ce4b68
 | 
				
			||||||
 | 
					  response:
 | 
				
			||||||
 | 
					    status:
 | 
				
			||||||
 | 
					      code: 200
 | 
				
			||||||
 | 
					      message: 
 | 
				
			||||||
 | 
					    headers:
 | 
				
			||||||
 | 
					      vary:
 | 
				
			||||||
 | 
					      - X-Auth-Token
 | 
				
			||||||
 | 
					      content-type:
 | 
				
			||||||
 | 
					      - application/json
 | 
				
			||||||
 | 
					      content-length:
 | 
				
			||||||
 | 
					      - '4062'
 | 
				
			||||||
 | 
					      date:
 | 
				
			||||||
 | 
					      - Wed, 25 Sep 2013 19:00:23 GMT
 | 
				
			||||||
 | 
					      connection:
 | 
				
			||||||
 | 
					      - close
 | 
				
			||||||
 | 
					    body:
 | 
				
			||||||
 | 
					      encoding: US-ASCII
 | 
				
			||||||
 | 
					      string: ! '{"tenants_links": [], "tenants": [{"description": "Description",
 | 
				
			||||||
 | 
					        "enabled": true, "id": "1113967479ea4426a4c80a1b109daee2", "name": "Permanent
 | 
				
			||||||
 | 
					        Project"}, {"description": "", "enabled": true, "id": "1b398a49e78448b3bdb7acf77e584fe5",
 | 
				
			||||||
 | 
					        "name": "alvintest"}, {"description": "Tenant for the openstack services",
 | 
				
			||||||
 | 
					        "enabled": true, "id": "1c386cddb0604535ba1f372a1c971550", "name": "services"},
 | 
				
			||||||
 | 
					        {"description": "My Project", "enabled": true, "id": "25f6138692a5497982e0a9185b6925eb",
 | 
				
			||||||
 | 
					        "name": "Project"}, {"description": "", "enabled": true, "id": "27779ee35855440cbbed49e93bb068f5",
 | 
				
			||||||
 | 
					        "name": "alvintest3"}, {"description": "Used for Aviator testing/development",
 | 
				
			||||||
 | 
					        "enabled": true, "id": "291e43291289457da59d8f727c46147a", "name": "<OPENSTACK_ADMIN_TENANTNAME>"},
 | 
				
			||||||
 | 
					        {"description": "asdf", "enabled": true, "id": "3abf2f47fb194ecc9977362e5d1a8c09",
 | 
				
			||||||
 | 
					        "name": "mmaglana"}, {"description": "testing", "enabled": true, "id": "3ec6ecaff17a41a5bb105a15376c5566",
 | 
				
			||||||
 | 
					        "name": "ninja"}, {"description": "This is a test", "enabled": true, "id":
 | 
				
			||||||
 | 
					        "4170d3aef0ff4fdcb0287496f5eb3a61", "name": "Test Project Too"}, {"description":
 | 
				
			||||||
 | 
					        "My Project", "enabled": true, "id": "47c27e66021546c8b39fe9a2cf0d0935", "name":
 | 
				
			||||||
 | 
					        "Xample"}, {"description": "This is a test", "enabled": true, "id": "5a15648e5483474aa8d6fa13dbe37a4b",
 | 
				
			||||||
 | 
					        "name": "Test Project"}, {"description": "sample", "enabled": true, "id":
 | 
				
			||||||
 | 
					        "646fe18d914745eeae0122a24ea653cc", "name": "newprojtest"}, {"description":
 | 
				
			||||||
 | 
					        "test", "enabled": true, "id": "6bad4d3fe00c43d3ad3c2dcca4ff3eb0", "name":
 | 
				
			||||||
 | 
					        "elmer"}, {"description": "My Project", "enabled": true, "id": "6f2c8fc3dda7430c9c1adbdf8c769b9c",
 | 
				
			||||||
 | 
					        "name": "WWProject"}, {"description": "Test Project", "enabled": true, "id":
 | 
				
			||||||
 | 
					        "713e1b55039d4fd6b91bbeac8914028c", "name": "a_test_project"}, {"description":
 | 
				
			||||||
 | 
					        "", "enabled": true, "id": "763d42422d914f0ca6eab905b85c65c5", "name": "Fonsy
 | 
				
			||||||
 | 
					        Test 1"}, {"description": "lalala", "enabled": true, "id": "7dfb270af41245c4911cce903532cdde",
 | 
				
			||||||
 | 
					        "name": "jason_test"}, {"description": "testing", "enabled": true, "id": "85ea75f214ca4d3f834ca37cc570a8fd",
 | 
				
			||||||
 | 
					        "name": "ann"}, {"description": "test", "enabled": true, "id": "89b89207b57a4ac4a9e9d0be628a95b3",
 | 
				
			||||||
 | 
					        "name": "projet"}, {"description": "admin tenant", "enabled": true, "id":
 | 
				
			||||||
 | 
					        "8a42fc89e6fb41a0b676d7b502b35c81", "name": "admin"}, {"description": "My
 | 
				
			||||||
 | 
					        Project", "enabled": true, "id": "8f6e20e1ad2a4ffb98da9450dc804891", "name":
 | 
				
			||||||
 | 
					        "Aviator Project"}, {"description": "one instance in SUSPENDED state cannot
 | 
				
			||||||
 | 
					        be \"resumed\" and deleted", "enabled": true, "id": "951659d798a14d5e98a94878760cfe39",
 | 
				
			||||||
 | 
					        "name": "admgelProject"}, {"description": "sample", "enabled": true, "id":
 | 
				
			||||||
 | 
					        "a0d20724cd2d475e99b01b2b9a03f71e", "name": "projecttest"}, {"description":
 | 
				
			||||||
 | 
					        "lalala", "enabled": true, "id": "a0e37889b3eb4e319992c5b29ef8c5fe", "name":
 | 
				
			||||||
 | 
					        "jason_testxxx"}, {"description": "lalala", "enabled": true, "id": "aadac34ef5f44c869151d9f62851ea1b",
 | 
				
			||||||
 | 
					        "name": "jason_testxxxxx"}, {"description": "DELETEME", "enabled": true, "id":
 | 
				
			||||||
 | 
					        "b7d51b17bbc144b3991d94d3a715fe7b", "name": "DELETEME"}, {"description": "test",
 | 
				
			||||||
 | 
					        "enabled": true, "id": "bd57591e188f438ba53b19228e156358", "name": "test123"},
 | 
				
			||||||
 | 
					        {"description": "", "enabled": true, "id": "bfaebc8688fc48a2b227509173c934e3",
 | 
				
			||||||
 | 
					        "name": "aviator_test"}, {"description": "sample", "enabled": true, "id":
 | 
				
			||||||
 | 
					        "bfed1ed0079b4cb78abbbbb3257ddc21", "name": "another test project"}, {"description":
 | 
				
			||||||
 | 
					        "My Project", "enabled": true, "id": "c764b14c998040d6ad1fb98831b31754", "name":
 | 
				
			||||||
 | 
					        "Project 1377582007"}, {"description": "Used for Aviator testing/development
 | 
				
			||||||
 | 
					        ", "enabled": true, "id": "d770443fc60a410c843dc12b98ac8135", "name": "<OPENSTACK_MEMBER_TENANTNAME>"},
 | 
				
			||||||
 | 
					        {"description": "System account for Morphlabs mCloud administration", "enabled":
 | 
				
			||||||
 | 
					        true, "id": "e7b1b62aa1474f758c4974b8be44cf6c", "name": "demo"}, {"description":
 | 
				
			||||||
 | 
					        "", "enabled": true, "id": "ecc997fefbb24691b14ff16ebe900f17", "name": "alvintest2"},
 | 
				
			||||||
 | 
					        {"description": "", "enabled": true, "id": "f10664c00326466b98707ce4d5cff470",
 | 
				
			||||||
 | 
					        "name": "alvintest4"}, {"description": "lalala", "enabled": true, "id": "f74461b5bd9e4740b2d4fb3df0e07b51",
 | 
				
			||||||
 | 
					        "name": "jason_testxxxx"}]}'
 | 
				
			||||||
 | 
					    http_version: 
 | 
				
			||||||
 | 
					  recorded_at: Wed, 25 Sep 2013 19:00:23 GMT
 | 
				
			||||||
 | 
					recorded_with: VCR 2.5.0
 | 
				
			||||||
@@ -0,0 +1,74 @@
 | 
				
			|||||||
 | 
					---
 | 
				
			||||||
 | 
					http_interactions:
 | 
				
			||||||
 | 
					- request:
 | 
				
			||||||
 | 
					    method: post
 | 
				
			||||||
 | 
					    uri: <OPENSTACK_ADMIN_HOST_URI>:5000/v2.0/tokens
 | 
				
			||||||
 | 
					    body:
 | 
				
			||||||
 | 
					      encoding: UTF-8
 | 
				
			||||||
 | 
					      string: ! '{"auth":{"passwordCredentials":{"username":"<OPENSTACK_MEMBER_USERNAME>","password":"<OPENSTACK_MEMBER_PASSWORD>"}}}'
 | 
				
			||||||
 | 
					    headers:
 | 
				
			||||||
 | 
					      Content-Type:
 | 
				
			||||||
 | 
					      - application/json
 | 
				
			||||||
 | 
					      User-Agent:
 | 
				
			||||||
 | 
					      - Faraday v0.8.8
 | 
				
			||||||
 | 
					  response:
 | 
				
			||||||
 | 
					    status:
 | 
				
			||||||
 | 
					      code: 200
 | 
				
			||||||
 | 
					      message: 
 | 
				
			||||||
 | 
					    headers:
 | 
				
			||||||
 | 
					      vary:
 | 
				
			||||||
 | 
					      - X-Auth-Token
 | 
				
			||||||
 | 
					      content-type:
 | 
				
			||||||
 | 
					      - application/json
 | 
				
			||||||
 | 
					      content-length:
 | 
				
			||||||
 | 
					      - '355'
 | 
				
			||||||
 | 
					      date:
 | 
				
			||||||
 | 
					      - Wed, 25 Sep 2013 22:45:41 GMT
 | 
				
			||||||
 | 
					      connection:
 | 
				
			||||||
 | 
					      - close
 | 
				
			||||||
 | 
					    body:
 | 
				
			||||||
 | 
					      encoding: US-ASCII
 | 
				
			||||||
 | 
					      string: ! '{"access": {"token": {"issued_at": "2013-09-25T22:45:41.760351",
 | 
				
			||||||
 | 
					        "expires": "2013-09-26T04:45:41Z", "id": "922efc3fc21c4ffa86c280209f4aa9b8"},
 | 
				
			||||||
 | 
					        "serviceCatalog": [], "user": {"username": "<OPENSTACK_MEMBER_USERNAME>",
 | 
				
			||||||
 | 
					        "roles_links": [], "id": "447527294dae4a1788d36beb0db99c00", "roles": [],
 | 
				
			||||||
 | 
					        "name": "<OPENSTACK_MEMBER_USERNAME>"}, "metadata": {"is_admin": 0, "roles":
 | 
				
			||||||
 | 
					        []}}}'
 | 
				
			||||||
 | 
					    http_version: 
 | 
				
			||||||
 | 
					  recorded_at: Wed, 25 Sep 2013 22:45:41 GMT
 | 
				
			||||||
 | 
					- request:
 | 
				
			||||||
 | 
					    method: get
 | 
				
			||||||
 | 
					    uri: <OPENSTACK_ADMIN_HOST_URI>:5000/v2.0/tenants
 | 
				
			||||||
 | 
					    body:
 | 
				
			||||||
 | 
					      encoding: US-ASCII
 | 
				
			||||||
 | 
					      string: ''
 | 
				
			||||||
 | 
					    headers:
 | 
				
			||||||
 | 
					      Content-Type:
 | 
				
			||||||
 | 
					      - application/json
 | 
				
			||||||
 | 
					      User-Agent:
 | 
				
			||||||
 | 
					      - Faraday v0.8.8
 | 
				
			||||||
 | 
					      X-Auth-Token:
 | 
				
			||||||
 | 
					      - 922efc3fc21c4ffa86c280209f4aa9b8
 | 
				
			||||||
 | 
					  response:
 | 
				
			||||||
 | 
					    status:
 | 
				
			||||||
 | 
					      code: 200
 | 
				
			||||||
 | 
					      message: 
 | 
				
			||||||
 | 
					    headers:
 | 
				
			||||||
 | 
					      vary:
 | 
				
			||||||
 | 
					      - X-Auth-Token
 | 
				
			||||||
 | 
					      content-type:
 | 
				
			||||||
 | 
					      - application/json
 | 
				
			||||||
 | 
					      content-length:
 | 
				
			||||||
 | 
					      - '189'
 | 
				
			||||||
 | 
					      date:
 | 
				
			||||||
 | 
					      - Wed, 25 Sep 2013 22:45:42 GMT
 | 
				
			||||||
 | 
					      connection:
 | 
				
			||||||
 | 
					      - close
 | 
				
			||||||
 | 
					    body:
 | 
				
			||||||
 | 
					      encoding: US-ASCII
 | 
				
			||||||
 | 
					      string: ! '{"tenants_links": [], "tenants": [{"description": "Used for Aviator
 | 
				
			||||||
 | 
					        testing/development ", "enabled": true, "id": "d770443fc60a410c843dc12b98ac8135",
 | 
				
			||||||
 | 
					        "name": "<OPENSTACK_MEMBER_TENANTNAME>"}]}'
 | 
				
			||||||
 | 
					    http_version: 
 | 
				
			||||||
 | 
					  recorded_at: Wed, 25 Sep 2013 22:45:42 GMT
 | 
				
			||||||
 | 
					recorded_with: VCR 2.5.0
 | 
				
			||||||
@@ -0,0 +1,62 @@
 | 
				
			|||||||
 | 
					---
 | 
				
			||||||
 | 
					http_interactions:
 | 
				
			||||||
 | 
					- request:
 | 
				
			||||||
 | 
					    method: post
 | 
				
			||||||
 | 
					    uri: <OPENSTACK_ADMIN_HOST_URI>:5000/v2.0/tokens
 | 
				
			||||||
 | 
					    body:
 | 
				
			||||||
 | 
					      encoding: UTF-8
 | 
				
			||||||
 | 
					      string: ! '{"auth":{"passwordCredentials":{"username":"<OPENSTACK_ADMIN_USERNAME>","password":"<OPENSTACK_ADMIN_PASSWORD>"},"tenantName":"<OPENSTACK_ADMIN_TENANTNAME>"}}'
 | 
				
			||||||
 | 
					    headers:
 | 
				
			||||||
 | 
					      Content-Type:
 | 
				
			||||||
 | 
					      - application/json
 | 
				
			||||||
 | 
					      User-Agent:
 | 
				
			||||||
 | 
					      - Faraday v0.8.8
 | 
				
			||||||
 | 
					  response:
 | 
				
			||||||
 | 
					    status:
 | 
				
			||||||
 | 
					      code: 200
 | 
				
			||||||
 | 
					      message: 
 | 
				
			||||||
 | 
					    headers:
 | 
				
			||||||
 | 
					      vary:
 | 
				
			||||||
 | 
					      - X-Auth-Token
 | 
				
			||||||
 | 
					      content-type:
 | 
				
			||||||
 | 
					      - application/json
 | 
				
			||||||
 | 
					      content-length:
 | 
				
			||||||
 | 
					      - '2649'
 | 
				
			||||||
 | 
					      date:
 | 
				
			||||||
 | 
					      - Wed, 25 Sep 2013 19:00:19 GMT
 | 
				
			||||||
 | 
					      connection:
 | 
				
			||||||
 | 
					      - close
 | 
				
			||||||
 | 
					    body:
 | 
				
			||||||
 | 
					      encoding: US-ASCII
 | 
				
			||||||
 | 
					      string: ! '{"access": {"token": {"issued_at": "2013-09-25T19:00:19.111920",
 | 
				
			||||||
 | 
					        "expires": "2013-09-26T01:00:19Z", "id": "f9433cbaa20849c9b6123d2f8d9efec6",
 | 
				
			||||||
 | 
					        "tenant": {"description": "Used for Aviator testing/development", "enabled":
 | 
				
			||||||
 | 
					        true, "id": "291e43291289457da59d8f727c46147a", "name": "<OPENSTACK_ADMIN_TENANTNAME>"}},
 | 
				
			||||||
 | 
					        "serviceCatalog": [{"endpoints": [{"adminURL": "<OPENSTACK_ADMIN_HOST_URI>:8774/v2/291e43291289457da59d8f727c46147a",
 | 
				
			||||||
 | 
					        "region": "RegionOne", "internalURL": "<OPENSTACK_ADMIN_HOST_URI>:8774/v2/291e43291289457da59d8f727c46147a",
 | 
				
			||||||
 | 
					        "id": "6bb597a3738045f4b2c51a7702037cab", "publicURL": "<OPENSTACK_ADMIN_HOST_URI>:8774/v2/291e43291289457da59d8f727c46147a"}],
 | 
				
			||||||
 | 
					        "endpoints_links": [], "type": "compute", "name": "nova"}, {"endpoints": [{"adminURL":
 | 
				
			||||||
 | 
					        "<OPENSTACK_ADMIN_HOST_URI>:9292", "region": "RegionOne", "internalURL": "<OPENSTACK_ADMIN_HOST_URI>:9292",
 | 
				
			||||||
 | 
					        "id": "2985945e07b74103bb2dfef7e426cd43", "publicURL": "<OPENSTACK_ADMIN_HOST_URI>:9292"}],
 | 
				
			||||||
 | 
					        "endpoints_links": [], "type": "image", "name": "glance"}, {"endpoints": [{"adminURL":
 | 
				
			||||||
 | 
					        "<OPENSTACK_ADMIN_HOST_URI>:8777", "region": "RegionOne", "internalURL": "<OPENSTACK_ADMIN_HOST_URI>:8777",
 | 
				
			||||||
 | 
					        "id": "370119dd80e84894bfe83d766fd467dd", "publicURL": "<OPENSTACK_ADMIN_HOST_URI>:8777"}],
 | 
				
			||||||
 | 
					        "endpoints_links": [], "type": "metering", "name": "ceilometer"}, {"endpoints":
 | 
				
			||||||
 | 
					        [{"adminURL": "<OPENSTACK_ADMIN_HOST_URI>:8776/v1/291e43291289457da59d8f727c46147a",
 | 
				
			||||||
 | 
					        "region": "RegionOne", "internalURL": "<OPENSTACK_ADMIN_HOST_URI>:8776/v1/291e43291289457da59d8f727c46147a",
 | 
				
			||||||
 | 
					        "id": "2492a6f5fa80466d9312e51a8f79b638", "publicURL": "<OPENSTACK_ADMIN_HOST_URI>:8776/v1/291e43291289457da59d8f727c46147a"}],
 | 
				
			||||||
 | 
					        "endpoints_links": [], "type": "volume", "name": "cinder"}, {"endpoints":
 | 
				
			||||||
 | 
					        [{"adminURL": "<OPENSTACK_ADMIN_HOST_URI>:8773/services/Admin", "region":
 | 
				
			||||||
 | 
					        "RegionOne", "internalURL": "<OPENSTACK_ADMIN_HOST_URI>:8773/services/Cloud",
 | 
				
			||||||
 | 
					        "id": "1f68f3ce931946c788e487443e772fb2", "publicURL": "<OPENSTACK_ADMIN_HOST_URI>:8773/services/Cloud"}],
 | 
				
			||||||
 | 
					        "endpoints_links": [], "type": "ec2", "name": "nova_ec2"}, {"endpoints": [{"adminURL":
 | 
				
			||||||
 | 
					        "<OPENSTACK_ADMIN_HOST_URI>:35357/v2.0", "region": "RegionOne", "internalURL":
 | 
				
			||||||
 | 
					        "<OPENSTACK_ADMIN_HOST_URI>:5000/v2.0", "id": "12c722e9b9fb471fbea83c6157c0123a",
 | 
				
			||||||
 | 
					        "publicURL": "<OPENSTACK_ADMIN_HOST_URI>:5000/v2.0"}], "endpoints_links":
 | 
				
			||||||
 | 
					        [], "type": "identity", "name": "keystone"}], "user": {"username": "<OPENSTACK_ADMIN_USERNAME>",
 | 
				
			||||||
 | 
					        "roles_links": [], "id": "3cb44449b3cb48519641864ca82d1911", "roles": [{"name":
 | 
				
			||||||
 | 
					        "admin"}], "name": "<OPENSTACK_ADMIN_USERNAME>"}, "metadata": {"is_admin":
 | 
				
			||||||
 | 
					        0, "roles": ["a0d6ba8f41b746b495a6d25c69962489"]}}}'
 | 
				
			||||||
 | 
					    http_version: 
 | 
				
			||||||
 | 
					  recorded_at: Wed, 25 Sep 2013 19:00:19 GMT
 | 
				
			||||||
 | 
					recorded_with: VCR 2.5.0
 | 
				
			||||||
@@ -0,0 +1,62 @@
 | 
				
			|||||||
 | 
					---
 | 
				
			||||||
 | 
					http_interactions:
 | 
				
			||||||
 | 
					- request:
 | 
				
			||||||
 | 
					    method: post
 | 
				
			||||||
 | 
					    uri: <OPENSTACK_ADMIN_HOST_URI>:5000/v2.0/tokens
 | 
				
			||||||
 | 
					    body:
 | 
				
			||||||
 | 
					      encoding: UTF-8
 | 
				
			||||||
 | 
					      string: ! '{"auth":{"passwordCredentials":{"username":"<OPENSTACK_ADMIN_USERNAME>","password":"<OPENSTACK_ADMIN_PASSWORD>"},"tenantName":"<OPENSTACK_ADMIN_TENANTNAME>"}}'
 | 
				
			||||||
 | 
					    headers:
 | 
				
			||||||
 | 
					      Content-Type:
 | 
				
			||||||
 | 
					      - application/json
 | 
				
			||||||
 | 
					      User-Agent:
 | 
				
			||||||
 | 
					      - Faraday v0.8.8
 | 
				
			||||||
 | 
					  response:
 | 
				
			||||||
 | 
					    status:
 | 
				
			||||||
 | 
					      code: 200
 | 
				
			||||||
 | 
					      message: 
 | 
				
			||||||
 | 
					    headers:
 | 
				
			||||||
 | 
					      vary:
 | 
				
			||||||
 | 
					      - X-Auth-Token
 | 
				
			||||||
 | 
					      content-type:
 | 
				
			||||||
 | 
					      - application/json
 | 
				
			||||||
 | 
					      content-length:
 | 
				
			||||||
 | 
					      - '2649'
 | 
				
			||||||
 | 
					      date:
 | 
				
			||||||
 | 
					      - Wed, 25 Sep 2013 19:00:18 GMT
 | 
				
			||||||
 | 
					      connection:
 | 
				
			||||||
 | 
					      - close
 | 
				
			||||||
 | 
					    body:
 | 
				
			||||||
 | 
					      encoding: US-ASCII
 | 
				
			||||||
 | 
					      string: ! '{"access": {"token": {"issued_at": "2013-09-25T19:00:18.408332",
 | 
				
			||||||
 | 
					        "expires": "2013-09-26T01:00:18Z", "id": "bdd80cf6e8bd44898e107f050fb879cb",
 | 
				
			||||||
 | 
					        "tenant": {"description": "Used for Aviator testing/development", "enabled":
 | 
				
			||||||
 | 
					        true, "id": "291e43291289457da59d8f727c46147a", "name": "<OPENSTACK_ADMIN_TENANTNAME>"}},
 | 
				
			||||||
 | 
					        "serviceCatalog": [{"endpoints": [{"adminURL": "<OPENSTACK_ADMIN_HOST_URI>:8774/v2/291e43291289457da59d8f727c46147a",
 | 
				
			||||||
 | 
					        "region": "RegionOne", "internalURL": "<OPENSTACK_ADMIN_HOST_URI>:8774/v2/291e43291289457da59d8f727c46147a",
 | 
				
			||||||
 | 
					        "id": "6bb597a3738045f4b2c51a7702037cab", "publicURL": "<OPENSTACK_ADMIN_HOST_URI>:8774/v2/291e43291289457da59d8f727c46147a"}],
 | 
				
			||||||
 | 
					        "endpoints_links": [], "type": "compute", "name": "nova"}, {"endpoints": [{"adminURL":
 | 
				
			||||||
 | 
					        "<OPENSTACK_ADMIN_HOST_URI>:9292", "region": "RegionOne", "internalURL": "<OPENSTACK_ADMIN_HOST_URI>:9292",
 | 
				
			||||||
 | 
					        "id": "2985945e07b74103bb2dfef7e426cd43", "publicURL": "<OPENSTACK_ADMIN_HOST_URI>:9292"}],
 | 
				
			||||||
 | 
					        "endpoints_links": [], "type": "image", "name": "glance"}, {"endpoints": [{"adminURL":
 | 
				
			||||||
 | 
					        "<OPENSTACK_ADMIN_HOST_URI>:8777", "region": "RegionOne", "internalURL": "<OPENSTACK_ADMIN_HOST_URI>:8777",
 | 
				
			||||||
 | 
					        "id": "370119dd80e84894bfe83d766fd467dd", "publicURL": "<OPENSTACK_ADMIN_HOST_URI>:8777"}],
 | 
				
			||||||
 | 
					        "endpoints_links": [], "type": "metering", "name": "ceilometer"}, {"endpoints":
 | 
				
			||||||
 | 
					        [{"adminURL": "<OPENSTACK_ADMIN_HOST_URI>:8776/v1/291e43291289457da59d8f727c46147a",
 | 
				
			||||||
 | 
					        "region": "RegionOne", "internalURL": "<OPENSTACK_ADMIN_HOST_URI>:8776/v1/291e43291289457da59d8f727c46147a",
 | 
				
			||||||
 | 
					        "id": "2492a6f5fa80466d9312e51a8f79b638", "publicURL": "<OPENSTACK_ADMIN_HOST_URI>:8776/v1/291e43291289457da59d8f727c46147a"}],
 | 
				
			||||||
 | 
					        "endpoints_links": [], "type": "volume", "name": "cinder"}, {"endpoints":
 | 
				
			||||||
 | 
					        [{"adminURL": "<OPENSTACK_ADMIN_HOST_URI>:8773/services/Admin", "region":
 | 
				
			||||||
 | 
					        "RegionOne", "internalURL": "<OPENSTACK_ADMIN_HOST_URI>:8773/services/Cloud",
 | 
				
			||||||
 | 
					        "id": "1f68f3ce931946c788e487443e772fb2", "publicURL": "<OPENSTACK_ADMIN_HOST_URI>:8773/services/Cloud"}],
 | 
				
			||||||
 | 
					        "endpoints_links": [], "type": "ec2", "name": "nova_ec2"}, {"endpoints": [{"adminURL":
 | 
				
			||||||
 | 
					        "<OPENSTACK_ADMIN_HOST_URI>:35357/v2.0", "region": "RegionOne", "internalURL":
 | 
				
			||||||
 | 
					        "<OPENSTACK_ADMIN_HOST_URI>:5000/v2.0", "id": "12c722e9b9fb471fbea83c6157c0123a",
 | 
				
			||||||
 | 
					        "publicURL": "<OPENSTACK_ADMIN_HOST_URI>:5000/v2.0"}], "endpoints_links":
 | 
				
			||||||
 | 
					        [], "type": "identity", "name": "keystone"}], "user": {"username": "<OPENSTACK_ADMIN_USERNAME>",
 | 
				
			||||||
 | 
					        "roles_links": [], "id": "3cb44449b3cb48519641864ca82d1911", "roles": [{"name":
 | 
				
			||||||
 | 
					        "admin"}], "name": "<OPENSTACK_ADMIN_USERNAME>"}, "metadata": {"is_admin":
 | 
				
			||||||
 | 
					        0, "roles": ["a0d6ba8f41b746b495a6d25c69962489"]}}}'
 | 
				
			||||||
 | 
					    http_version: 
 | 
				
			||||||
 | 
					  recorded_at: Wed, 25 Sep 2013 19:00:18 GMT
 | 
				
			||||||
 | 
					recorded_with: VCR 2.5.0
 | 
				
			||||||
@@ -0,0 +1,62 @@
 | 
				
			|||||||
 | 
					---
 | 
				
			||||||
 | 
					http_interactions:
 | 
				
			||||||
 | 
					- request:
 | 
				
			||||||
 | 
					    method: post
 | 
				
			||||||
 | 
					    uri: <OPENSTACK_ADMIN_HOST_URI>:5000/v2.0/tokens
 | 
				
			||||||
 | 
					    body:
 | 
				
			||||||
 | 
					      encoding: UTF-8
 | 
				
			||||||
 | 
					      string: ! '{"auth":{"passwordCredentials":{"username":"<OPENSTACK_ADMIN_USERNAME>","password":"<OPENSTACK_ADMIN_PASSWORD>"},"tenantName":"<OPENSTACK_ADMIN_TENANTNAME>"}}'
 | 
				
			||||||
 | 
					    headers:
 | 
				
			||||||
 | 
					      Content-Type:
 | 
				
			||||||
 | 
					      - application/json
 | 
				
			||||||
 | 
					      User-Agent:
 | 
				
			||||||
 | 
					      - Faraday v0.8.8
 | 
				
			||||||
 | 
					  response:
 | 
				
			||||||
 | 
					    status:
 | 
				
			||||||
 | 
					      code: 200
 | 
				
			||||||
 | 
					      message: 
 | 
				
			||||||
 | 
					    headers:
 | 
				
			||||||
 | 
					      vary:
 | 
				
			||||||
 | 
					      - X-Auth-Token
 | 
				
			||||||
 | 
					      content-type:
 | 
				
			||||||
 | 
					      - application/json
 | 
				
			||||||
 | 
					      content-length:
 | 
				
			||||||
 | 
					      - '2649'
 | 
				
			||||||
 | 
					      date:
 | 
				
			||||||
 | 
					      - Wed, 25 Sep 2013 19:00:20 GMT
 | 
				
			||||||
 | 
					      connection:
 | 
				
			||||||
 | 
					      - close
 | 
				
			||||||
 | 
					    body:
 | 
				
			||||||
 | 
					      encoding: US-ASCII
 | 
				
			||||||
 | 
					      string: ! '{"access": {"token": {"issued_at": "2013-09-25T19:00:20.145845",
 | 
				
			||||||
 | 
					        "expires": "2013-09-26T01:00:20Z", "id": "d95df57d5f424d0a996ed719bf4de115",
 | 
				
			||||||
 | 
					        "tenant": {"description": "Used for Aviator testing/development", "enabled":
 | 
				
			||||||
 | 
					        true, "id": "291e43291289457da59d8f727c46147a", "name": "<OPENSTACK_ADMIN_TENANTNAME>"}},
 | 
				
			||||||
 | 
					        "serviceCatalog": [{"endpoints": [{"adminURL": "<OPENSTACK_ADMIN_HOST_URI>:8774/v2/291e43291289457da59d8f727c46147a",
 | 
				
			||||||
 | 
					        "region": "RegionOne", "internalURL": "<OPENSTACK_ADMIN_HOST_URI>:8774/v2/291e43291289457da59d8f727c46147a",
 | 
				
			||||||
 | 
					        "id": "6bb597a3738045f4b2c51a7702037cab", "publicURL": "<OPENSTACK_ADMIN_HOST_URI>:8774/v2/291e43291289457da59d8f727c46147a"}],
 | 
				
			||||||
 | 
					        "endpoints_links": [], "type": "compute", "name": "nova"}, {"endpoints": [{"adminURL":
 | 
				
			||||||
 | 
					        "<OPENSTACK_ADMIN_HOST_URI>:9292", "region": "RegionOne", "internalURL": "<OPENSTACK_ADMIN_HOST_URI>:9292",
 | 
				
			||||||
 | 
					        "id": "2985945e07b74103bb2dfef7e426cd43", "publicURL": "<OPENSTACK_ADMIN_HOST_URI>:9292"}],
 | 
				
			||||||
 | 
					        "endpoints_links": [], "type": "image", "name": "glance"}, {"endpoints": [{"adminURL":
 | 
				
			||||||
 | 
					        "<OPENSTACK_ADMIN_HOST_URI>:8777", "region": "RegionOne", "internalURL": "<OPENSTACK_ADMIN_HOST_URI>:8777",
 | 
				
			||||||
 | 
					        "id": "370119dd80e84894bfe83d766fd467dd", "publicURL": "<OPENSTACK_ADMIN_HOST_URI>:8777"}],
 | 
				
			||||||
 | 
					        "endpoints_links": [], "type": "metering", "name": "ceilometer"}, {"endpoints":
 | 
				
			||||||
 | 
					        [{"adminURL": "<OPENSTACK_ADMIN_HOST_URI>:8776/v1/291e43291289457da59d8f727c46147a",
 | 
				
			||||||
 | 
					        "region": "RegionOne", "internalURL": "<OPENSTACK_ADMIN_HOST_URI>:8776/v1/291e43291289457da59d8f727c46147a",
 | 
				
			||||||
 | 
					        "id": "2492a6f5fa80466d9312e51a8f79b638", "publicURL": "<OPENSTACK_ADMIN_HOST_URI>:8776/v1/291e43291289457da59d8f727c46147a"}],
 | 
				
			||||||
 | 
					        "endpoints_links": [], "type": "volume", "name": "cinder"}, {"endpoints":
 | 
				
			||||||
 | 
					        [{"adminURL": "<OPENSTACK_ADMIN_HOST_URI>:8773/services/Admin", "region":
 | 
				
			||||||
 | 
					        "RegionOne", "internalURL": "<OPENSTACK_ADMIN_HOST_URI>:8773/services/Cloud",
 | 
				
			||||||
 | 
					        "id": "1f68f3ce931946c788e487443e772fb2", "publicURL": "<OPENSTACK_ADMIN_HOST_URI>:8773/services/Cloud"}],
 | 
				
			||||||
 | 
					        "endpoints_links": [], "type": "ec2", "name": "nova_ec2"}, {"endpoints": [{"adminURL":
 | 
				
			||||||
 | 
					        "<OPENSTACK_ADMIN_HOST_URI>:35357/v2.0", "region": "RegionOne", "internalURL":
 | 
				
			||||||
 | 
					        "<OPENSTACK_ADMIN_HOST_URI>:5000/v2.0", "id": "12c722e9b9fb471fbea83c6157c0123a",
 | 
				
			||||||
 | 
					        "publicURL": "<OPENSTACK_ADMIN_HOST_URI>:5000/v2.0"}], "endpoints_links":
 | 
				
			||||||
 | 
					        [], "type": "identity", "name": "keystone"}], "user": {"username": "<OPENSTACK_ADMIN_USERNAME>",
 | 
				
			||||||
 | 
					        "roles_links": [], "id": "3cb44449b3cb48519641864ca82d1911", "roles": [{"name":
 | 
				
			||||||
 | 
					        "admin"}], "name": "<OPENSTACK_ADMIN_USERNAME>"}, "metadata": {"is_admin":
 | 
				
			||||||
 | 
					        0, "roles": ["a0d6ba8f41b746b495a6d25c69962489"]}}}'
 | 
				
			||||||
 | 
					    http_version: 
 | 
				
			||||||
 | 
					  recorded_at: Wed, 25 Sep 2013 19:00:20 GMT
 | 
				
			||||||
 | 
					recorded_with: VCR 2.5.0
 | 
				
			||||||
@@ -0,0 +1,62 @@
 | 
				
			|||||||
 | 
					---
 | 
				
			||||||
 | 
					http_interactions:
 | 
				
			||||||
 | 
					- request:
 | 
				
			||||||
 | 
					    method: post
 | 
				
			||||||
 | 
					    uri: <OPENSTACK_ADMIN_HOST_URI>:5000/v2.0/tokens
 | 
				
			||||||
 | 
					    body:
 | 
				
			||||||
 | 
					      encoding: UTF-8
 | 
				
			||||||
 | 
					      string: ! '{"auth":{"passwordCredentials":{"username":"<OPENSTACK_ADMIN_USERNAME>","password":"<OPENSTACK_ADMIN_PASSWORD>"},"tenantName":"<OPENSTACK_ADMIN_TENANTNAME>"}}'
 | 
				
			||||||
 | 
					    headers:
 | 
				
			||||||
 | 
					      Content-Type:
 | 
				
			||||||
 | 
					      - application/json
 | 
				
			||||||
 | 
					      User-Agent:
 | 
				
			||||||
 | 
					      - Faraday v0.8.8
 | 
				
			||||||
 | 
					  response:
 | 
				
			||||||
 | 
					    status:
 | 
				
			||||||
 | 
					      code: 200
 | 
				
			||||||
 | 
					      message: 
 | 
				
			||||||
 | 
					    headers:
 | 
				
			||||||
 | 
					      vary:
 | 
				
			||||||
 | 
					      - X-Auth-Token
 | 
				
			||||||
 | 
					      content-type:
 | 
				
			||||||
 | 
					      - application/json
 | 
				
			||||||
 | 
					      content-length:
 | 
				
			||||||
 | 
					      - '2649'
 | 
				
			||||||
 | 
					      date:
 | 
				
			||||||
 | 
					      - Wed, 25 Sep 2013 19:00:21 GMT
 | 
				
			||||||
 | 
					      connection:
 | 
				
			||||||
 | 
					      - close
 | 
				
			||||||
 | 
					    body:
 | 
				
			||||||
 | 
					      encoding: US-ASCII
 | 
				
			||||||
 | 
					      string: ! '{"access": {"token": {"issued_at": "2013-09-25T19:00:21.745126",
 | 
				
			||||||
 | 
					        "expires": "2013-09-26T01:00:21Z", "id": "eb587564e730436b8f55861fb77fa04e",
 | 
				
			||||||
 | 
					        "tenant": {"description": "Used for Aviator testing/development", "enabled":
 | 
				
			||||||
 | 
					        true, "id": "291e43291289457da59d8f727c46147a", "name": "<OPENSTACK_ADMIN_TENANTNAME>"}},
 | 
				
			||||||
 | 
					        "serviceCatalog": [{"endpoints": [{"adminURL": "<OPENSTACK_ADMIN_HOST_URI>:8774/v2/291e43291289457da59d8f727c46147a",
 | 
				
			||||||
 | 
					        "region": "RegionOne", "internalURL": "<OPENSTACK_ADMIN_HOST_URI>:8774/v2/291e43291289457da59d8f727c46147a",
 | 
				
			||||||
 | 
					        "id": "6bb597a3738045f4b2c51a7702037cab", "publicURL": "<OPENSTACK_ADMIN_HOST_URI>:8774/v2/291e43291289457da59d8f727c46147a"}],
 | 
				
			||||||
 | 
					        "endpoints_links": [], "type": "compute", "name": "nova"}, {"endpoints": [{"adminURL":
 | 
				
			||||||
 | 
					        "<OPENSTACK_ADMIN_HOST_URI>:9292", "region": "RegionOne", "internalURL": "<OPENSTACK_ADMIN_HOST_URI>:9292",
 | 
				
			||||||
 | 
					        "id": "2985945e07b74103bb2dfef7e426cd43", "publicURL": "<OPENSTACK_ADMIN_HOST_URI>:9292"}],
 | 
				
			||||||
 | 
					        "endpoints_links": [], "type": "image", "name": "glance"}, {"endpoints": [{"adminURL":
 | 
				
			||||||
 | 
					        "<OPENSTACK_ADMIN_HOST_URI>:8777", "region": "RegionOne", "internalURL": "<OPENSTACK_ADMIN_HOST_URI>:8777",
 | 
				
			||||||
 | 
					        "id": "370119dd80e84894bfe83d766fd467dd", "publicURL": "<OPENSTACK_ADMIN_HOST_URI>:8777"}],
 | 
				
			||||||
 | 
					        "endpoints_links": [], "type": "metering", "name": "ceilometer"}, {"endpoints":
 | 
				
			||||||
 | 
					        [{"adminURL": "<OPENSTACK_ADMIN_HOST_URI>:8776/v1/291e43291289457da59d8f727c46147a",
 | 
				
			||||||
 | 
					        "region": "RegionOne", "internalURL": "<OPENSTACK_ADMIN_HOST_URI>:8776/v1/291e43291289457da59d8f727c46147a",
 | 
				
			||||||
 | 
					        "id": "2492a6f5fa80466d9312e51a8f79b638", "publicURL": "<OPENSTACK_ADMIN_HOST_URI>:8776/v1/291e43291289457da59d8f727c46147a"}],
 | 
				
			||||||
 | 
					        "endpoints_links": [], "type": "volume", "name": "cinder"}, {"endpoints":
 | 
				
			||||||
 | 
					        [{"adminURL": "<OPENSTACK_ADMIN_HOST_URI>:8773/services/Admin", "region":
 | 
				
			||||||
 | 
					        "RegionOne", "internalURL": "<OPENSTACK_ADMIN_HOST_URI>:8773/services/Cloud",
 | 
				
			||||||
 | 
					        "id": "1f68f3ce931946c788e487443e772fb2", "publicURL": "<OPENSTACK_ADMIN_HOST_URI>:8773/services/Cloud"}],
 | 
				
			||||||
 | 
					        "endpoints_links": [], "type": "ec2", "name": "nova_ec2"}, {"endpoints": [{"adminURL":
 | 
				
			||||||
 | 
					        "<OPENSTACK_ADMIN_HOST_URI>:35357/v2.0", "region": "RegionOne", "internalURL":
 | 
				
			||||||
 | 
					        "<OPENSTACK_ADMIN_HOST_URI>:5000/v2.0", "id": "12c722e9b9fb471fbea83c6157c0123a",
 | 
				
			||||||
 | 
					        "publicURL": "<OPENSTACK_ADMIN_HOST_URI>:5000/v2.0"}], "endpoints_links":
 | 
				
			||||||
 | 
					        [], "type": "identity", "name": "keystone"}], "user": {"username": "<OPENSTACK_ADMIN_USERNAME>",
 | 
				
			||||||
 | 
					        "roles_links": [], "id": "3cb44449b3cb48519641864ca82d1911", "roles": [{"name":
 | 
				
			||||||
 | 
					        "admin"}], "name": "<OPENSTACK_ADMIN_USERNAME>"}, "metadata": {"is_admin":
 | 
				
			||||||
 | 
					        0, "roles": ["a0d6ba8f41b746b495a6d25c69962489"]}}}'
 | 
				
			||||||
 | 
					    http_version: 
 | 
				
			||||||
 | 
					  recorded_at: Wed, 25 Sep 2013 19:00:21 GMT
 | 
				
			||||||
 | 
					recorded_with: VCR 2.5.0
 | 
				
			||||||
		Reference in New Issue
	
	Block a user