    # File lib/fog/openstack/identity.rb, line 172
            def initialize(options={})
              @openstack_auth_token = options[:openstack_auth_token]

              unless @openstack_auth_token
                missing_credentials = Array.new
                @openstack_api_key  = options[:openstack_api_key]
                @openstack_username = options[:openstack_username]

                missing_credentials << :openstack_api_key  unless @openstack_api_key
                missing_credentials << :openstack_username unless @openstack_username
                raise ArgumentError, "Missing required arguments: #{missing_credentials.join(', ')}" unless missing_credentials.empty?
              end

              @openstack_tenant   = options[:openstack_tenant]
              @openstack_auth_uri = URI.parse(options[:openstack_auth_url])
              @openstack_management_url       = options[:openstack_management_url]
              @openstack_must_reauthenticate  = false
              @openstack_service_type = options[:openstack_service_type] || ['identity']
              @openstack_service_name = options[:openstack_service_name]

              @connection_options = options[:connection_options] || {}

              @openstack_current_user_id = options[:openstack_current_user_id]

              @current_user = options[:current_user]
              @current_tenant = options[:current_tenant]

              authenticate

              @persistent = options[:persistent] || false
              @connection = Fog::Connection.new("#{@scheme}://#{@host}:#{@port}", @persistent, @connection_options)
            end