'Fetches a list of all floating IPs.
:returns: List of FloatingIp object'

@profiler.trace
def list(self, all_tenants=False, **search_opts):

    if (not all_tenants):
        tenant_id = self.request.user.tenant_id
        search_opts['tenant_id'] = tenant_id
        port_search_opts = {'tenant_id': tenant_id}
    else:
        port_search_opts = {}
    fips = self.client.list_floatingips(**search_opts)
    fips = fips.get('floatingips')
    ports = port_list(self.request, **port_search_opts)
    port_dict = collections.OrderedDict([(p['id'], p) for p in ports])
    for fip in fips:
        self._set_instance_info(fip, port_dict.get(fip['port_id']))
    return [FloatingIp(fip) for fip in fips]
