# File lib/rubyipmi.rb, line 11
    def self.connect(user, pass, host, provider="any",debug=false)

      # use this variable to reduce cmd calls
      installed = false

      # use the first available provider
      if provider == "any"
        if is_provider_installed?("freeipmi")
          provider = "freeipmi"
          installed = true
        elsif is_provider_installed?("ipmitool")
          provider = "ipmitool"
          installed = true
        else
          raise "No IPMI provider is installed, please install freeipmi or ipmitool"
        end
      end

      # If the provider is available create a connection object
      if installed or is_provider_installed?(provider)
        if provider == "freeipmi"
          @conn = Rubyipmi::Freeipmi::Connection.new(user, pass, host, debug)
        elsif provider == "ipmitool"
          @conn = Rubyipmi::Ipmitool::Connection.new(user,pass,host, debug)
        else
          raise "Incorrect provider given, must use freeipmi or ipmitool"
        end
      else
        # Can't find the provider command line tool, maybe try other provider?
        raise "The IPMI provider: #{provider} is not installed"

      end
    end