summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--doc/source/devref/filter_scheduler.rst (renamed from doc/source/devref/distributed_scheduler.rst)14
-rw-r--r--doc/source/devref/index.rst2
-rw-r--r--nova/scheduler/filter_scheduler.py (renamed from nova/scheduler/distributed_scheduler.py)6
-rw-r--r--nova/scheduler/multi.py2
-rw-r--r--nova/tests/scheduler/fakes.py6
-rw-r--r--nova/tests/scheduler/test_filter_scheduler.py (renamed from nova/tests/scheduler/test_distributed_scheduler.py)16
6 files changed, 23 insertions, 23 deletions
diff --git a/doc/source/devref/distributed_scheduler.rst b/doc/source/devref/filter_scheduler.rst
index 89004ddf4..64efb77b6 100644
--- a/doc/source/devref/distributed_scheduler.rst
+++ b/doc/source/devref/filter_scheduler.rst
@@ -18,14 +18,14 @@
(OpenOffice Impress format) Illustrations are "exported" to png and then scaled
to 400x300 or 640x480 as needed and placed in the doc/source/images directory.
-Distributed Scheduler
+Filter Scheduler
=====================
-The Scheduler is akin to a Dating Service. Requests for the creation of new instances come in and the most applicable Compute nodes are selected from a large pool of potential candidates. In a small deployment we may be happy with the currently available Chance Scheduler which randomly selects a Host from the available pool. Or if you need something a little more fancy you may want to use the Distributed Scheduler, which selects Compute hosts from a logical partitioning of available hosts (within a single Zone).
+The Scheduler is akin to a Dating Service. Requests for the creation of new instances come in and the most applicable Compute nodes are selected from a large pool of potential candidates. In a small deployment we may be happy with the currently available Chance Scheduler which randomly selects a Host from the available pool. Or if you need something a little more fancy you may want to use the Filter Scheduler, which selects Compute hosts from a logical partitioning of available hosts.
.. image:: /images/dating_service.png
-The Distributed Scheduler (DS) supports filtering and weighing to make informed decisions on where a new instance should be created.
+The Filter Scheduler supports filtering and weighing to make informed decisions on where a new instance should be created.
So, how does this all work?
@@ -48,14 +48,14 @@ This Weight is computed for each Instance requested. If the customer asked for 1
Filtering and Weighing
----------------------
-The filtering (excluding compute nodes incapable of fulfilling the request) and weighing (computing the relative "fitness" of a compute node to fulfill the request) rules used are very subjective operations ... Service Providers will probably have a very different set of filtering and weighing rules than private cloud administrators. The filtering and weighing aspects of the `DistributedScheduler` are flexible and extensible.
+The filtering (excluding compute nodes incapable of fulfilling the request) and weighing (computing the relative "fitness" of a compute node to fulfill the request) rules used are very subjective operations ... Service Providers will probably have a very different set of filtering and weighing rules than private cloud administrators. The filtering and weighing aspects of the `FilterScheduler` are flexible and extensible.
.. image:: /images/filtering.png
Host Filter
-----------
-As we mentioned earlier, filtering hosts is a very deployment-specific process. Service Providers may have a different set of criteria for filtering Compute nodes than a University. To facilitate this, the `DistributedScheduler` supports a variety of filtering strategies as well as an easy means for plugging in your own algorithms. Specifying filters involves 2 settings. One makes filters available for use. The second specifies which filters to use by default (out of the filters available). The reason for this second option is that there may be support to allow end-users to specify specific filters during a build at some point in the future.
+As we mentioned earlier, filtering hosts is a very deployment-specific process. Service Providers may have a different set of criteria for filtering Compute nodes than a University. To facilitate this, the `FilterScheduler` supports a variety of filtering strategies as well as an easy means for plugging in your own algorithms. Specifying filters involves 2 settings. One makes filters available for use. The second specifies which filters to use by default (out of the filters available). The reason for this second option is that there may be support to allow end-users to specify specific filters during a build at some point in the future.
Making filters available:
@@ -85,12 +85,12 @@ Here are some of the main flags you should set in your `nova.conf` file:
::
- --scheduler_driver=nova.scheduler.distributed_scheduler.DistributedScheduler
+ --scheduler_driver=nova.scheduler.filter_scheduler.FilterScheduler
--scheduler_available_filters=nova.scheduler.filters.standard_filters
# --scheduler_available_filters=myfilter.MyOwnFilter
--scheduler_default_filters=RamFilter,ComputeFilter,MyOwnFilter
-`scheduler_driver` is the real workhorse of the operation. For Distributed Scheduler, you need to specify a class derived from `nova.scheduler.distributed_scheduler.DistributedScheduler`.
+`scheduler_driver` is the real workhorse of the operation. For Filter Scheduler, you need to specify a class derived from `nova.scheduler.filter_scheduler.FilterScheduler`.
`scheduler_default_filters` are the host filters to be used for filtering candidate Compute nodes.
Some optional flags which are handy for debugging are:
diff --git a/doc/source/devref/index.rst b/doc/source/devref/index.rst
index cfbde6209..7caf21eb4 100644
--- a/doc/source/devref/index.rst
+++ b/doc/source/devref/index.rst
@@ -38,7 +38,7 @@ Background Concepts for Nova
threading
il8n
- distributed_scheduler
+ filter_scheduler
multinic
zone
rabbit
diff --git a/nova/scheduler/distributed_scheduler.py b/nova/scheduler/filter_scheduler.py
index e841eb5fd..f16c39be9 100644
--- a/nova/scheduler/distributed_scheduler.py
+++ b/nova/scheduler/filter_scheduler.py
@@ -14,7 +14,7 @@
# under the License.
"""
-The DistributedScheduler is for creating instances locally.
+The FilterScheduler is for creating instances locally.
You can customize this scheduler by specifying your own Host Filters and
Weighing Functions.
"""
@@ -35,10 +35,10 @@ FLAGS = flags.FLAGS
LOG = logging.getLogger(__name__)
-class DistributedScheduler(driver.Scheduler):
+class FilterScheduler(driver.Scheduler):
"""Scheduler that can be used for filtering and weighing."""
def __init__(self, *args, **kwargs):
- super(DistributedScheduler, self).__init__(*args, **kwargs)
+ super(FilterScheduler, self).__init__(*args, **kwargs)
self.cost_function_cache = {}
self.options = scheduler_options.SchedulerOptions()
diff --git a/nova/scheduler/multi.py b/nova/scheduler/multi.py
index e5e1d7362..3bec060ab 100644
--- a/nova/scheduler/multi.py
+++ b/nova/scheduler/multi.py
@@ -30,7 +30,7 @@ from nova.scheduler import driver
multi_scheduler_opts = [
cfg.StrOpt('compute_scheduler_driver',
default='nova.scheduler.'
- 'distributed_scheduler.DistributedScheduler',
+ 'filter_scheduler.FilterScheduler',
help='Driver to use for scheduling compute calls'),
cfg.StrOpt('volume_scheduler_driver',
default='nova.scheduler.chance.ChanceScheduler',
diff --git a/nova/tests/scheduler/fakes.py b/nova/tests/scheduler/fakes.py
index fb514c540..c2d9e4288 100644
--- a/nova/tests/scheduler/fakes.py
+++ b/nova/tests/scheduler/fakes.py
@@ -21,7 +21,7 @@ import mox
from nova import db
from nova.compute import instance_types
from nova.compute import vm_states
-from nova.scheduler import distributed_scheduler
+from nova.scheduler import filter_scheduler
from nova.scheduler import host_manager
@@ -56,9 +56,9 @@ INSTANCES = [
]
-class FakeDistributedScheduler(distributed_scheduler.DistributedScheduler):
+class FakeFilterScheduler(filter_scheduler.FilterScheduler):
def __init__(self, *args, **kwargs):
- super(FakeDistributedScheduler, self).__init__(*args, **kwargs)
+ super(FakeFilterScheduler, self).__init__(*args, **kwargs)
self.host_manager = host_manager.HostManager()
diff --git a/nova/tests/scheduler/test_distributed_scheduler.py b/nova/tests/scheduler/test_filter_scheduler.py
index 2aa55de0d..9c0fbb919 100644
--- a/nova/tests/scheduler/test_distributed_scheduler.py
+++ b/nova/tests/scheduler/test_filter_scheduler.py
@@ -22,7 +22,7 @@ from nova import context
from nova import exception
from nova.scheduler import least_cost
from nova.scheduler import host_manager
-from nova.scheduler import distributed_scheduler
+from nova.scheduler import filter_scheduler
from nova import test
from nova.tests.scheduler import fakes
from nova.tests.scheduler import test_scheduler
@@ -32,10 +32,10 @@ def fake_filter_hosts(hosts, filter_properties):
return list(hosts)
-class DistributedSchedulerTestCase(test_scheduler.SchedulerTestCase):
+class FilterSchedulerTestCase(test_scheduler.SchedulerTestCase):
"""Test case for Distributed Scheduler."""
- driver_cls = distributed_scheduler.DistributedScheduler
+ driver_cls = filter_scheduler.FilterScheduler
def test_run_instance_no_hosts(self):
"""
@@ -44,7 +44,7 @@ class DistributedSchedulerTestCase(test_scheduler.SchedulerTestCase):
def _fake_empty_call_zone_method(*args, **kwargs):
return []
- sched = fakes.FakeDistributedScheduler()
+ sched = fakes.FakeFilterScheduler()
fake_context = context.RequestContext('user', 'project')
request_spec = {'instance_type': {'memory_mb': 1, 'root_gb': 1,
@@ -64,7 +64,7 @@ class DistributedSchedulerTestCase(test_scheduler.SchedulerTestCase):
self.was_admin = context.is_admin
return {}
- sched = fakes.FakeDistributedScheduler()
+ sched = fakes.FakeFilterScheduler()
self.stubs.Set(sched.host_manager, 'get_all_host_states', fake_get)
fake_context = context.RequestContext('user', 'project')
@@ -77,7 +77,7 @@ class DistributedSchedulerTestCase(test_scheduler.SchedulerTestCase):
def test_schedule_bad_topic(self):
"""Parameter checking."""
- sched = fakes.FakeDistributedScheduler()
+ sched = fakes.FakeFilterScheduler()
fake_context = context.RequestContext('user', 'project')
self.assertRaises(NotImplementedError, sched._schedule, fake_context,
"foo", {})
@@ -139,7 +139,7 @@ class DistributedSchedulerTestCase(test_scheduler.SchedulerTestCase):
return least_cost.WeightedHost(self.next_weight,
host_state=host_state)
- sched = fakes.FakeDistributedScheduler()
+ sched = fakes.FakeFilterScheduler()
fake_context = context.RequestContext('user', 'project',
is_admin=True)
@@ -166,7 +166,7 @@ class DistributedSchedulerTestCase(test_scheduler.SchedulerTestCase):
def test_get_cost_functions(self):
self.flags(reserved_host_memory_mb=128)
- fixture = fakes.FakeDistributedScheduler()
+ fixture = fakes.FakeFilterScheduler()
fns = fixture.get_cost_functions()
self.assertEquals(len(fns), 1)
weight, fn = fns[0]