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

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

              @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