def pool_list(transport, request, **kwargs):
    """Gets a list of pools

    :param transport: Transport instance to use
    :type transport: `transport.base.Transport`
    :param request: Request instance ready to be sent.
    :type request: `transport.request.Request`
    :param kwargs: Optional arguments for this operation.
        - marker: Where to start getting pools from.
        - limit: Maximum number of pools to get.
    """

    request.operation = 'pool_list'
    request.params.update(kwargs)

    resp = transport.send(request)

    if not resp.content:
        return {'links': [], 'pools': []}

    return resp.deserialized_content