On Tue, Sep 23, 2014 at 12:00:23PM +0200, 'Klaus Aehlig' via ganeti-devel wrote:
....provided we failed to obtain enough resources with opportunistic
locking. In this case, we fall back to full (non-opportunistic) lock
allocation.
Signed-off-by: Klaus Aehlig <[email protected]>
---
lib/cmdlib/instance.py | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/lib/cmdlib/instance.py b/lib/cmdlib/instance.py
index cf7dea9..0ad343d 100644
--- a/lib/cmdlib/instance.py
+++ b/lib/cmdlib/instance.py
@@ -1799,6 +1799,16 @@ class LUInstanceCreate(LogicalUnit):
return self.cfg.GetNodeNames(list(self.cfg.GetInstanceNodes(iobj.uuid)))
+ def PrepareRetry(self, feedback_fn):
+ # A temporary lack of resources can only happen if opportunistic locking
+ # is used.
+ assert self.op.opportunistic_locking
+
+ logging.info("Opportunistic locking did not suceed, falling back to"
+ " full lock allocation")
+ feedback_fn("* falling back to full lock allocation")
+ self.op.opportunistic_locking = False
+
class LUInstanceRename(LogicalUnit):
"""Rename an instance.
--
2.1.0.rc2.206.gedb03e5
LGTM