From 1f1d54e7b656bf36b3a7d1e9cbee1f1e7e30ed39 Mon Sep 17 00:00:00 2001 From: Apollon Oikonomopoulos <apollon@noc.grnet.gr> Date: Mon, 28 Feb 2011 13:51:08 +0200 Subject: [PATCH] IAllocator changes to work with shared storage Make cmdlib.IAllocator shared-storage-aware. IAllocator requires secondary nodes only on DTS_NET_MIRROR disk templates and requires no secondaries for DTS_EXT_MIRROR templates. Signed-off-by: Apollon Oikonomopoulos <apollon@noc.grnet.gr> Signed-off-by: Iustin Pop <iustin@google.com> Reviewed-by: Iustin Pop <iustin@google.com> --- lib/cmdlib.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/cmdlib.py b/lib/cmdlib.py index be8e70cf9..ea79b28df 100644 --- a/lib/cmdlib.py +++ b/lib/cmdlib.py @@ -11262,11 +11262,12 @@ class IAllocator(object): raise errors.ProgrammerError("Unknown instance '%s' passed to" " IAllocator" % self.name) - if instance.disk_template not in constants.DTS_NET_MIRROR: + if instance.disk_template not in constants.DTS_MIRRORED: raise errors.OpPrereqError("Can't relocate non-mirrored instances", errors.ECODE_INVAL) - if len(instance.secondary_nodes) != 1: + if instance.disk_template in constants.DTS_NET_MIRROR and \ + len(instance.secondary_nodes) != 1: raise errors.OpPrereqError("Instance has not exactly one secondary node", errors.ECODE_STATE) -- GitLab