Module locking
source code
Module implementing the Ganeti locking code.
|
_EXCLUSIVE_TEXT = "exclusive"
|
|
_SHARED_TEXT = "shared"
|
|
_DELETED_TEXT = "deleted"
|
|
_DEFAULT_PRIORITY = 0
|
|
ALL_SET = None
|
|
LEVEL_CLUSTER = 0
|
|
LEVEL_INSTANCE = 1
|
|
LEVEL_NODEGROUP = 2
|
|
LEVEL_NODE = 3
|
|
LEVEL_NODE_RES = 4
|
|
LEVELS = [LEVEL_CLUSTER, LEVEL_INSTANCE, LEVEL_NODEGROUP, LEVE...
|
|
LEVELS_MOD = frozenset([LEVEL_NODE_RES, LEVEL_NODE, LEVEL_NODE...
|
|
LEVEL_NAMES = {LEVEL_CLUSTER: "cluster", LEVEL_INSTANCE: "inst...
Lock level names (make sure to use singular form)
|
|
BGL = "BGL"
|
Imports:
os,
select,
threading,
errno,
weakref,
logging,
heapq,
itertools,
time,
errors,
utils,
compat,
query
Shared Synchronization decorator.
Calls the function holding the given lock, either in exclusive or
shared mode. It requires the passed lock to be a SharedLock (or support
its semantics).
- Parameters:
mylock (lockable object or string) - lock to acquire or class member name of the lock to acquire
|
Sorting key function.
Sort by name, registration order and then order of information. This
provides a stable sort order over different providers, even if they
return the same name.
|
LEVELS
- Value:
[LEVEL_CLUSTER, LEVEL_INSTANCE, LEVEL_NODEGROUP, LEVEL_NODE, LEVEL_NOD
E_RES,]
|
|
LEVELS_MOD
- Value:
frozenset([LEVEL_NODE_RES, LEVEL_NODE, LEVEL_NODEGROUP, LEVEL_INSTANCE
,])
|
|
LEVEL_NAMES
Lock level names (make sure to use singular form)
- Value:
{LEVEL_CLUSTER: "cluster", LEVEL_INSTANCE: "instance", LEVEL_NODEGROUP
: "nodegroup", LEVEL_NODE: "node", LEVEL_NODE_RES: "node-res",}
|
|