Package ganeti :: Module locking
[hide private]
[frames] | no frames]

Module locking

source code

Module implementing the Ganeti locking code.

Classes [hide private]
  RunningTimeout
Class to calculate remaining timeout when doing several operations.
  _SingleNotifyPipeConditionWaiter
Helper class for SingleNotifyPipeCondition
  _BaseCondition
Base class containing common code for conditions.
  SingleNotifyPipeCondition
Condition which can only be notified once.
  PipeCondition
Group-only non-polling condition with counters.
  _PipeConditionWithMode
  SharedLock
Implements a shared lock.
  _AcquireTimeout
Internal exception to abort an acquire on a timeout.
  LockSet
Implements a set of locks.
  GanetiLockManager
The Ganeti Locking Library
  LockMonitor
Functions [hide private]
 
ssynchronized(mylock, shared=0)
Shared Synchronization decorator.
source code
Variables [hide private]
  _EXCLUSIVE_TEXT = "exclusive"
  _SHARED_TEXT = "shared"
  _DEFAULT_PRIORITY = 0
  ALL_SET = None
  LEVEL_CLUSTER = 0
  LEVEL_INSTANCE = 1
  LEVEL_NODE = 2
  LEVELS = [LEVEL_CLUSTER, LEVEL_INSTANCE, LEVEL_NODE]
  LEVELS_MOD = [LEVEL_NODE, LEVEL_INSTANCE]
  LEVEL_NAMES = {LEVEL_CLUSTER: "cluster", LEVEL_INSTANCE: "inst...
  BGL = 'BGL'

Imports: os, select, threading, time, errno, weakref, logging, heapq, errors, utils, compat


Function Details [hide private]

ssynchronized(mylock, shared=0)

source code 

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

Variables Details [hide private]

LEVEL_NAMES

Value:
{LEVEL_CLUSTER: "cluster", LEVEL_INSTANCE: "instance", LEVEL_NODE: "no\
de",}