This will be used for locking during node evacuation.
---
lib/config.py | 11 +++++++++++
1 files changed, 11 insertions(+), 0 deletions(-)
diff --git a/lib/config.py b/lib/config.py
index b5a3c68..0253a23 100644
--- a/lib/config.py
+++ b/lib/config.py
@@ -1071,6 +1071,17 @@ class ConfigWriter:
"""
return self._config_data.nodegroups.keys()
+ @locking.ssynchronized(_config_lock, shared=1)
+ def GetNodeGroupMembersByNodes(self, nodes):
+ """Get nodes which are member in the same nodegroups as the given nodes.
+
+ """
+ ngfn = lambda node_name: self._UnlockedGetNodeInfo(node_name).group
+ return frozenset(member_name
+ for node_name in nodes
+ for member_name in
+ self._UnlockedGetNodeGroup(ngfn(node_name)).members)
+
@locking.ssynchronized(_config_lock)
def AddInstance(self, instance, ec_id):
"""Add an instance to the config.
--
1.7.3.5