From 3a7c308e1b0d6716d6bb16bc8af30a85616f2976 Mon Sep 17 00:00:00 2001 From: Guido Trotter <ultrotter@google.com> Date: Thu, 19 Jul 2007 14:41:21 +0000 Subject: [PATCH] Check for memory size requirements before failing over an instance. Reviewed-By: iustinp --- lib/cmdlib.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/lib/cmdlib.py b/lib/cmdlib.py index 12419376b..9f90a3b4d 100644 --- a/lib/cmdlib.py +++ b/lib/cmdlib.py @@ -2059,6 +2059,19 @@ class LUFailoverInstance(LogicalUnit): raise errors.OpPrereqError, ("Instance '%s' not known" % self.op.instance_name) + # check memory requirements on the secondary node + target_node = instance.secondary_nodes[0] + nodeinfo = rpc.call_node_info([target_node], self.cfg.GetVGName()) + info = nodeinfo.get(target_node, None) + if not info: + raise errors.OpPrereqError, ("Cannot get current information" + " from node '%s'" % nodeinfo) + if instance.memory > info['memory_free']: + raise errors.OpPrereqError, ("Not enough memory on target node %s." + " %d MB available, %d MB required" % + (target_node, info['memory_free'], + instance.memory)) + # check bridge existance brlist = [nic.bridge for nic in instance.nics] if not rpc.call_bridges_exist(instance.primary_node, brlist): -- GitLab