Updates simple scheduler to allow strict availability_zone scheduling
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
This commit is contained in:
parent
fcef1e944d
commit
3b29258ed3
2
Authors
2
Authors
@ -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>
|
||||
@ -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>
|
||||
|
@ -34,6 +34,8 @@ flags.DEFINE_integer("max_gigabytes", 10000,
|
||||
"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):
|
||||
@ -45,7 +47,7 @@ class SimpleScheduler(chance.ChanceScheduler):
|
||||
|
||||
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(':')
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user