    # File lib/fog/vsphere/compute.rb, line 180
            def initialize(options={})
              require 'rbvmomi'
              @vsphere_username = options[:vsphere_username]
              @vsphere_password = options[:vsphere_password]
              @vsphere_server   = options[:vsphere_server]
              @vsphere_port     = options[:vsphere_port] || 443
              @vsphere_path     = options[:vsphere_path] || '/sdk'
              @vsphere_ns       = options[:vsphere_ns] || 'urn:vim25'
              @vsphere_rev      = options[:vsphere_rev] || '4.0'
              @vsphere_ssl      = options[:vsphere_ssl] || true
              @vsphere_expected_pubkey_hash = options[:vsphere_expected_pubkey_hash]
              @vsphere_must_reauthenticate = false

              @connection = nil
              # This is a state variable to allow digest validation of the SSL cert
              bad_cert = false
              loop do
                begin
                  @connection = RbVmomi::VIM.new :host => @vsphere_server,
                                                 :port => @vsphere_port,
                                                 :path => @vsphere_path,
                                                 :ns   => @vsphere_ns,
                                                 :rev  => @vsphere_rev,
                                                 :ssl  => @vsphere_ssl,
                                                 :insecure => bad_cert
                  break
                rescue OpenSSL::SSL::SSLError
                  raise if bad_cert
                  bad_cert = true
                end
              end

              if bad_cert then
                validate_ssl_connection
              end

              # Negotiate the API revision
              if not options[:vsphere_rev]
                rev = @connection.serviceContent.about.apiVersion
                @connection.rev = [ rev, ENV['FOG_VSPHERE_REV'] || '4.1' ].min
              end

              @vsphere_is_vcenter = @connection.serviceContent.about.apiType == "VirtualCenter"
              @vsphere_rev = @connection.rev

              authenticate
            end