def self.connect opts
fail unless opts.is_a? Hash
fail "host option required" unless opts[:host]
opts[:user] ||= 'root'
opts[:password] ||= ''
opts[:ssl] = true unless opts.member? :ssl or opts["no-ssl""no-ssl"]
opts[:insecure] ||= false
opts[:port] ||= (opts[:ssl] ? 443 : 80)
opts[:path] ||= '/sdk'
opts[:ns] ||= 'urn:vim25'
rev_given = opts[:rev] != nil
opts[:rev] = '4.0' unless rev_given
opts[:debug] = (!ENV['RBVMOMI_DEBUG'].empty? rescue false) unless opts.member? :debug
new(opts).tap do |vim|
vim.serviceContent.sessionManager.Login :userName => opts[:user], :password => opts[:password]
unless rev_given
rev = vim.serviceContent.about.apiVersion
vim.rev = [rev, '5.0'].min
end
end
end