'Return a list of available filter names.
This function checks input filter names against a predefined set
of acceptable filters (all loaded filters). If input is None,
it uses CONF.scheduler_default_filters instead.'

def _choose_backend_filters(self, filter_cls_names):

    if (filter_cls_names is None):
        filter_cls_names = CONF.scheduler_default_filters
    if (not isinstance(filter_cls_names, (list, tuple))):
        filter_cls_names = [filter_cls_names]
    good_filters = []
    bad_filters = []
    for filter_name in filter_cls_names:
        found_class = False
        for cls in self.filter_classes:
            if (cls.__name__ == filter_name):
                found_class = True
                good_filters.append(cls)
                break
        if (not found_class):
            bad_filters.append(filter_name)
    if bad_filters:
        raise exception.SchedulerHostFilterNotFound(filter_name=',    '.join(bad_filters))
    return good_filters
