Exemplo n.º 1
0
 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)
Exemplo n.º 2
0
 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)
Exemplo n.º 3
0
    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)
Exemplo n.º 4
0
    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)
Exemplo n.º 5
0
 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()
Exemplo n.º 6
0
        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()
Exemplo n.º 7
0
        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()
Exemplo n.º 8
0
    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')
Exemplo n.º 9
0
def _get_lock(uuid):
    """Get lock object for a given node UUID."""
    return lockutils.internal_lock(_LOCK_TEMPLATE % uuid,
                                   semaphores=_SEMAPHORES)
Exemplo n.º 10
0
 def __init__(self):
     """Create an empty provider tree."""
     self.lock = lockutils.internal_lock(_LOCK_NAME)
     self.roots = []
Exemplo n.º 11
0
def _get_lock(uuid):
    """Get lock object for a given node UUID."""
    return lockutils.internal_lock(_LOCK_TEMPLATE % uuid,
                                   semaphores=_SEMAPHORES)
Exemplo n.º 12
0
 def __init__(self):
     """Create an empty provider tree."""
     self.lock = lockutils.internal_lock(_LOCK_NAME)
     self.roots = []
Exemplo n.º 13
0
 def __init__(self, uuid):
     self._lock = lockutils.internal_lock(_LOCK_TEMPLATE % uuid,
                                          semaphores=_SEMAPHORES)
     self._locked = False