示例#1
0
    def __init__(self):
        self.service_states = {}  # { <host>: {<service>: {cap k : v}}}
        self.host_state_map = {}
        self.filter_handler = filters.HostFilterHandler('cinder.scheduler.'
                                                        'filters')
        self.filter_classes = self.filter_handler.get_all_classes()
        self.weight_handler = weights.HostWeightHandler('cinder.scheduler.'
                                                        'weights')
        self.weight_classes = self.weight_handler.get_all_classes()

        default_filters = [
            'AvailabilityZoneFilter', 'CapacityFilter', 'CapabilitiesFilter'
        ]
        chance = 'cinder.scheduler.chance.ChanceScheduler'
        simple = 'cinder.scheduler.simple.SimpleScheduler'
        if CONF.scheduler_driver == simple:
            CONF.set_override('scheduler_default_filters', default_filters)
            CONF.set_override('scheduler_default_weighers',
                              ['AllocatedCapacityWeigher'])
        elif CONF.scheduler_driver == chance:
            CONF.set_override('scheduler_default_filters', default_filters)
            CONF.set_override('scheduler_default_weighers', ['ChanceWeigher'])
        else:
            # Do nothing when some other scheduler is configured
            pass

        self._no_capabilities_hosts = set()  # Hosts having no capabilities
        self._update_host_state_map(cinder_context.get_admin_context())
示例#2
0
 def __init__(self):
     self.service_states = {}  # { <host>: {<service>: {cap k : v}}}
     self.host_state_map = {}
     self.filter_handler = filters.HostFilterHandler('cinder.scheduler.'
                                                     'filters')
     self.filter_classes = self.filter_handler.get_all_classes()
     self.weight_handler = weights.HostWeightHandler('cinder.scheduler.'
                                                     'weights')
     self.weight_classes = self.weight_handler.get_all_classes()
示例#3
0
 def setUp(self):
     super(HostFiltersTestCase, self).setUp()
     self.context = context.RequestContext('fake', 'fake')
     # This has a side effect of testing 'get_filter_classes'
     # when specifying a method (in this case, our standard filters)
     filter_handler = filters.HostFilterHandler('cinder.scheduler.filters')
     classes = filter_handler.get_all_classes()
     self.class_map = {}
     for cls in classes:
         self.class_map[cls.__name__] = cls
    def __init__(self):
        self.service_states = {}  # { <host>: {<service>: {cap k : v}}}
        self.host_state_map = {}
        self.filter_handler = filters.HostFilterHandler('cinder.scheduler.'
                                                        'filters')
        self.filter_classes = self.filter_handler.get_all_classes()
        self.weight_handler = weights.HostWeightHandler('cinder.scheduler.'
                                                        'weights')
        self.weight_classes = self.weight_handler.get_all_classes()

        self._no_capabilities_hosts = set()  # Hosts having no capabilities
        self._update_host_state_map(cinder_context.get_admin_context())
 def setUp(self):
     super(HostFiltersTestCase, self).setUp()
     self.context = context.RequestContext('fake', 'fake')
     self.json_query = jsonutils.dumps([
         'and', ['>=', '$free_capacity_gb', 1024],
         ['>=', '$total_capacity_gb', 10 * 1024]
     ])
     # This has a side effect of testing 'get_filter_classes'
     # when specifying a method (in this case, our standard filters)
     filter_handler = filters.HostFilterHandler('cinder.scheduler.filters')
     classes = filter_handler.get_all_classes()
     self.class_map = {}
     for cls in classes:
         self.class_map[cls.__name__] = cls