示例#1
0
    def _choose_host_filters(self, filter_cls_names):
        """Choose acceptable filters.

        Since the caller may specify which filters to use we need to
        have an authoritative list of what is permissible. This
        function checks the filter names against a predefined set of
        acceptable filters.
        """
        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:
            msg = ", ".join(bad_filters)
            raise exception.SchedulerHostFilterNotFound(filter_name=msg)
        return good_filters
示例#2
0
 def test_scheduler_host_filter_not_found(self):
     # Verify response code for exception.SchedulerHostFilterNotFound
     filter_name = "fake_filter_name"
     e = exception.SchedulerHostFilterNotFound(filter_name=filter_name)
     self.assertEqual(404, e.code)
     self.assertIn(filter_name, e.msg)