# File lib/fog/joyent/compute.rb, line 98
        def initialize(options = {})
          @connection_options = options[:connection_options] || {}
          @persistent = options[:persistent] || false

          @joyent_url = options[:joyent_url] || 'https://us-sw-1.api.joyentcloud.com'
          @joyent_version = options[:joyent_version] || '~6.5'

          @joyent_username = options[:joyent_username]

          unless @joyent_username
            raise ArgumentError, "options[:joyent_username] required"
          end

          if options[:joyent_keyname] && options[:joyent_keyfile]
            if File.exists?(options[:joyent_keyfile])
              @joyent_keyname = options[:joyent_keyname]
              @joyent_key = File.read(options[:joyent_keyfile])

              if @joyent_key.lines.first.include?('-----BEGIN DSA PRIVATE KEY-----')
                @key = OpenSSL::PKey::DSA.new(@joyent_key)
              elsif @joyent_key.lines.first.include?('-----BEGIN RSA PRIVATE KEY-----')
                @key = OpenSSL::PKey::RSA.new(@joyent_key)
              else
                raise ArgumentError, "options[joyent_keyfile] provided must be an RSA or DSA private key"
              end


              @header_method = method(:header_for_signature_auth)
            else
              raise ArgumentError, "options[:joyent_keyfile] provided does not exist."
            end

          elsif options[:joyent_password]
            @joyent_password = options[:joyent_password]

            @header_method = method(:header_for_basic_auth)
          else
            raise ArgumentError, "Must provide either a joyent_password or joyent_keyname and joyent_keyfile pair"
          end

          @connection = Fog::Connection.new(
            @joyent_url,
            @persistent,
            @connection_options
          )
        end