Skip to content

Commit

Permalink
Updates simple scheduler to allow strict availability_zone scheduling
Browse files Browse the repository at this point in the history
This update adds strict availability_zone scheduling of new instances when
an availabity_zone option is not present in the creation call.  This patch
does not change the expected default behavior.

Previous behavior was to default the zone to None and only update the zone
in the scheduler if an availability_zone was supplied.  This incorrectly
allowed the scheduler to place new instances created without an
availability_zone onto compute nodes where the availability_zone had been
changed to something other than the default of 'nova'.

Setting default_schedule_zone to 'nova' will prevent new instance scheduling
into availability_zones other than the default 'nova' zone.  This change
defaults the zone to None but allows the user to override this with the
default_schedule_flag.

In practice, if you have 2 availability_zones (nova, megazone) you can
configure default_schedule_zone on the API node to 'nova' and any instances
created will be created into the 'nova' availability_zone if one was not
supplied.  Instances created with an availability_zone will be created as
normal into the availability_zone supplied.

Change-Id: Id23bac8448ea7ce6a1e1227d046c921328dbfe33
  • Loading branch information
breu committed Dec 1, 2011
1 parent fcef1e9 commit 3b29258
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 1 deletion.
2 changes: 2 additions & 0 deletions Authors
Expand Up @@ -68,6 +68,7 @@ John Tran <jtran@attinteractive.com>
Jonathan Bryce <jbryce@jbryce.com>
Jordan Rinke <jordan@openstack.org>
Joseph Suh <jsuh@isi.edu>
Joseph W. Breu <breu@breu.org>
Josh Durgin <joshd@hq.newdream.net>
Josh Kearney <josh@jk0.org>
Josh Kleinpeter <josh@kleinpeter.org>
Expand Down Expand Up @@ -133,6 +134,7 @@ Vasiliy Shlykov <vash@vasiliyshlykov.org>
Vishvananda Ishaya <vishvananda@gmail.com>
Vivek Y S <vivek.ys@gmail.com>
Vladimir Popovski <vladimir@zadarastorage.com>
William Kelly <william.kelly@rackspace.com>
William Wolf <throughnothing@gmail.com>
Yoshiaki Tamura <yoshi@midokura.jp>
Youcef Laribi <Youcef.Laribi@eu.citrix.com>
Expand Down
4 changes: 3 additions & 1 deletion nova/scheduler/simple.py
Expand Up @@ -34,6 +34,8 @@
"maximum number of volume gigabytes to allow per host")
flags.DEFINE_integer("max_networks", 1000,
"maximum number of networks to allow per host")
flags.DEFINE_string('default_schedule_zone', None,
'zone to use when user doesnt specify one')


class SimpleScheduler(chance.ChanceScheduler):
Expand All @@ -45,7 +47,7 @@ def _schedule_instance(self, context, instance_opts, *_args, **_kwargs):

availability_zone = instance_opts.get('availability_zone')

zone, host = None, None
zone, host = FLAGS.default_schedule_zone, None
if availability_zone:
zone, _x, host = availability_zone.partition(':')

Expand Down

0 comments on commit 3b29258

Please sign in to comment.