This will be used to lock the instance's nodes in addition to some more.
---
lib/cmdlib.py | 6 +++++-
lib/constants.py | 1 +
2 files changed, 6 insertions(+), 1 deletions(-)
diff --git a/lib/cmdlib.py b/lib/cmdlib.py
index 272f07f..6bd14b8 100644
--- a/lib/cmdlib.py
+++ b/lib/cmdlib.py
@@ -298,7 +298,11 @@ class LogicalUnit(object):
wanted_nodes.append(instance.primary_node)
if not primary_only:
wanted_nodes.extend(instance.secondary_nodes)
- self.needed_locks[locking.LEVEL_NODE] = wanted_nodes
+
+ if self.recalculate_locks[locking.LEVEL_NODE] == constants.LOCKS_REPLACE:
+ self.needed_locks[locking.LEVEL_NODE] = wanted_nodes
+ elif self.recalculate_locks[locking.LEVEL_NODE] == constants.LOCKS_APPEND:
+ self.needed_locks[locking.LEVEL_NODE].extend(wanted_nodes)
del self.recalculate_locks[locking.LEVEL_NODE]
diff --git a/lib/constants.py b/lib/constants.py
index c3863ea..ba0e1d7 100644
--- a/lib/constants.py
+++ b/lib/constants.py
@@ -190,6 +190,7 @@ REPLACE_DISK_ALL = "replace_all"
# lock recalculate mode
LOCKS_REPLACE = 'replace'
+LOCKS_APPEND = 'append'
# instance creation modes
INSTANCE_CREATE = "create"
--
1.5.6.5