'Override filter_all() which operates on the full list
of cells...'

def filter_all(self, cells, filter_properties):

    scheduler_hints = filter_properties.get('scheduler_hints')
    if (not scheduler_hints):
        return cells
    cell_routes = scheduler_hints.get('different_cell')
    if (not cell_routes):
        return cells
    if isinstance(cell_routes, six.string_types):
        cell_routes = [cell_routes]
    if (not self.authorized(filter_properties['context'])):
        return cells
    routing_path = filter_properties['routing_path']
    filtered_cells = []
    for cell in cells:
        if (not self._cell_state_matches(cell, routing_path, cell_routes)):
            filtered_cells.append(cell)
    return filtered_cells
