def f(name, semaphores, pull_trigger): with lockutils.internal_lock('testing', semaphores=semaphores): if pull_trigger: trigger.set() else: trigger.wait() who_ran.append(name)
def __init__(self, cns=None): """Create a provider tree from an `objects.ComputeNodeList` object.""" self.lock = lockutils.internal_lock(_LOCK_NAME) self.roots = [] if cns: for cn in cns: # By definition, all compute nodes are root providers... p = _Provider(cn.hypervisor_hostname, cn.uuid) self.roots.append(p)
def inner(*args, **kwargs): lock_str = 'masakarimonitors-%s' % name int_lock = lockutils.internal_lock(lock_str, semaphores=semaphores) msg = "Lock blocking: %s on resource %s " % (lock_str, f.__name__) """Acquiring lock: %(lock_str)s on resource """ if not int_lock.acquire(blocking=blocking): raise Exception(msg) try: return f(*args, **kwargs) finally: """Releasing lock: %(lock_str)s on resource """ int_lock.release()
def inner(*args, **kwargs): lock_name = 'masakari-%s' % name int_lock = lockutils.internal_lock(lock_name, semaphores=semaphores) LOG.debug("Acquiring lock: %(lock_name)s on resource: " "%(resource)s", {'lock_name': lock_name, 'resource': f.__name__}) if not int_lock.acquire(blocking=blocking): raise exception.LockAlreadyAcquired(resource=name) try: return f(*args, **kwargs) finally: LOG.debug("Releasing lock: %(lock_name)s on resource: " "%(resource)s", {'lock_name': lock_name, 'resource': f.__name__}) int_lock.release()
def inner(*args, **kwargs): lock_name = 'masakari-%s' % name int_lock = lockutils.internal_lock(lock_name, semaphores=semaphores) LOG.debug( "Acquiring lock: %(lock_name)s on resource: " "%(resource)s", { 'lock_name': lock_name, 'resource': f.__name__ }) if not int_lock.acquire(blocking=blocking): raise exception.LockAlreadyAcquired(resource=name) try: return f(*args, **kwargs) finally: LOG.debug( "Releasing lock: %(lock_name)s on resource: " "%(resource)s", { 'lock_name': lock_name, 'resource': f.__name__ }) int_lock.release()
def __init__(self, vg_obj=None, *args, **kwargs): # Parent sets db, host, _execute and base config super(LVMVolumeDriver, self).__init__(*args, **kwargs) self.configuration.append_config_values(volume_opts) self.hostname = socket.gethostname() self.vg = vg_obj self.backend_name =\ self.configuration.safe_get('volume_backend_name') or 'LVM' # Target Driver is what handles data-transport # Transport specific code should NOT be in # the driver (control path), this way # different target drivers can be added (iscsi, FC etc) target_driver = \ self.target_mapping[self.configuration.safe_get('iscsi_helper')] LOG.debug( 'Attempting to initialize LVM driver with the ' 'following target_driver: %s', target_driver) self.target_driver = importutils.import_object( target_driver, configuration=self.configuration, db=self.db, executor=self._execute) self.protocol = self.target_driver.protocol self._sparse_copy_volume = False if self.configuration.lvm_max_over_subscription_ratio is not None: self.configuration.max_over_subscription_ratio = \ self.configuration.lvm_max_over_subscription_ratio self.reserved_capacity_gb = 0 self.lock_reserved_capacity_gb = lockutils.internal_lock( 'cinder-reserved-capacity')
def _get_lock(uuid): """Get lock object for a given node UUID.""" return lockutils.internal_lock(_LOCK_TEMPLATE % uuid, semaphores=_SEMAPHORES)
def __init__(self): """Create an empty provider tree.""" self.lock = lockutils.internal_lock(_LOCK_NAME) self.roots = []
def __init__(self, uuid): self._lock = lockutils.internal_lock(_LOCK_TEMPLATE % uuid, semaphores=_SEMAPHORES) self._locked = False