# File lib/deltacloud/drivers/gogrid/gogrid_driver.rb, line 193
 def create_load_balancer(credentials, opts={})
    gogrid = new_client(credentials)
    balancer, l_instance = nil, nil
    safely do
      virtip = get_free_ip_from_realm(credentials, opts['realm_id'])
      if opts['instance_id']
        l_instance = instance(credentials, :id => opts['instance_id'])
        real_ip = {
          'realiplist.0.port' => opts['listener_inst_port'],
          'realiplist.0.ip' => l_instance ? l_instance.public_addresses.first : ""
        }
      else
        real_ip = false
      end
      request = {
        'name' => opts['name'],
        'virtualip.ip' => virtip,
        'virtualip.port' => opts['listener_lbr_port'],
      }
      request.merge!(real_ip) if real_ip
      balancer = gogrid.request('grid/loadbalancer/add', request)['list'].first
    end
    balancer = convert_load_balancer(credentials, balancer)
    balancer.instances = [l_instance] if l_instance
    balancer
  end