diff --git a/lib/locking.py b/lib/locking.py index 03441408a24043acf5ce1e224a3293ef6b795e01..854429eefb9b1fa9a11ce508d6b75a9536f754c7 100644 --- a/lib/locking.py +++ b/lib/locking.py @@ -1407,12 +1407,13 @@ LEVELS_MOD = frozenset([ LEVEL_INSTANCE, ]) +#: Lock level names (make sure to use singular form) LEVEL_NAMES = { LEVEL_CLUSTER: "cluster", LEVEL_INSTANCE: "instance", LEVEL_NODEGROUP: "nodegroup", LEVEL_NODE: "node", - LEVEL_NODE_RES: "nodes-res", + LEVEL_NODE_RES: "node-res", } # Constant for the big ganeti lock @@ -1451,14 +1452,17 @@ class GanetiLockManager: # The keyring contains all the locks, at their level and in the correct # locking order. self.__keyring = { - LEVEL_CLUSTER: LockSet([BGL], "BGL", monitor=self._monitor), - LEVEL_NODE: LockSet(nodes, "nodes", monitor=self._monitor), - LEVEL_NODE_RES: LockSet(nodes, "nodes-res", monitor=self._monitor), - LEVEL_NODEGROUP: LockSet(nodegroups, "nodegroups", monitor=self._monitor), - LEVEL_INSTANCE: LockSet(instances, "instances", + LEVEL_CLUSTER: LockSet([BGL], "cluster", monitor=self._monitor), + LEVEL_NODE: LockSet(nodes, "node", monitor=self._monitor), + LEVEL_NODE_RES: LockSet(nodes, "node-res", monitor=self._monitor), + LEVEL_NODEGROUP: LockSet(nodegroups, "nodegroup", monitor=self._monitor), + LEVEL_INSTANCE: LockSet(instances, "instance", monitor=self._monitor), } + assert compat.all(ls.name == LEVEL_NAMES[level] + for (level, ls) in self.__keyring.items()) + def AddToLockMonitor(self, provider): """Registers a new lock with the monitor.