コード例 #1
0
ファイル: host_manager.py プロジェクト: vefimova/cinder
    def _choose_host_filters(self, filter_cls_names):
        """Return a list of available filter names.

        This function checks input filter names against a predefined set
        of acceptable filterss (all loaded filters).  If input is None,
        it uses CONF.scheduler_default_filters instead.
        """
        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 _choose_host_filters(self, filter_cls_names):
     """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 = FLAGS.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