# File lib/fog/openstack/compute.rb, line 275
        def initialize(options={})
          @openstack_auth_token = options[:openstack_auth_token]
          @auth_token        = options[:openstack_auth_token]
          @openstack_identity_public_endpoint = options[:openstack_identity_endpoint]

          unless @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] || ['nova', 'compute']
          @openstack_service_name = options[:openstack_service_name]
          @openstack_identity_service_type = options[:openstack_identity_service_type] || 'identity'
          @openstack_region      = options[:openstack_region]

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

          @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