On Thu, Nov 20, 2014 at 9:18 AM, 'Aaron Karper' via ganeti-devel <ganeti-devel@googlegroups.com> wrote: > Currently disks with heterogeneous layouts mixing drbd and externally > mirrored storage is disallowed, because this changes the logic further. > This change checks and forbids this, a later change will provide the > functionality for heterogeneous layouts. > > Signed-off-by: Aaron Karper <akar...@google.com> > --- > lib/cmdlib/instance_migration.py | 9 +++++++-- > 1 file changed, 7 insertions(+), 2 deletions(-) > > diff --git a/lib/cmdlib/instance_migration.py > b/lib/cmdlib/instance_migration.py > index 3ae40ea..52261fb 100644 > --- a/lib/cmdlib/instance_migration.py > +++ b/lib/cmdlib/instance_migration.py > @@ -350,7 +350,8 @@ class TLMigrateInstance(Tasklet): > " %s" % (utils.CommaJoin(invalid_disks), > text), > errors.ECODE_STATE) > > - if self.instance.disk_template in constants.DTS_EXT_MIRROR: > + # TODO allow heterogeneous disk types if all are mirrored in some way. > + if utils.AllDiskOfType(disks, constants.DTS_EXT_MIRROR): > CheckIAllocatorOrNode(self.lu, "iallocator", "target_node") > > if self.lu.op.iallocator: > @@ -386,7 +387,7 @@ class TLMigrateInstance(Tasklet): > keep=[self.instance.primary_node, > self.target_node_uuid]) > ReleaseLocks(self.lu, locking.LEVEL_NODE_ALLOC) > > - else: > + elif utils.AllDiskOfType(disks, constants.DTS_INT_MIRROR): > secondary_node_uuids = \ > self.cfg.GetInstanceSecondaryNodes(self.instance.uuid) > if not secondary_node_uuids: > @@ -414,6 +415,10 @@ class TLMigrateInstance(Tasklet): > CheckTargetNodeIPolicy(self.lu, ipolicy, self.instance, nodeinfo, > self.cfg, ignore=self.ignore_ipolicy) > > + else: > + raise errors.OpPrereqError("Instance mixes internal and external " > + "mirroring. This is not currently > supported.") > + > i_be = cluster.FillBE(self.instance) > > # check memory requirements on the secondary node > -- > 2.1.0.rc2.206.gedb03e5 >
LGTM, thanks. Michele -- Google Germany GmbH Dienerstr. 12 80331 München Registergericht und -nummer: Hamburg, HRB 86891 Sitz der Gesellschaft: Hamburg Geschäftsführer: Graham Law, Christine Elizabeth Flores