Пример #1
0
 def __post_init__(self):
     ASSERT.in_(self.kind, ('range', 'values'))
     if self.kind == 'range':
         ASSERT.equal(len(self.args), 2)
         ASSERT.all(self.args, lambda arg: isinstance(arg, int))
         ASSERT.less_or_equal(self.args[0], self.args[1])
     else:
         ASSERT.equal(self.kind, 'values')
         ASSERT.all(self.args, lambda arg: isinstance(arg, str))
Пример #2
0
def cmd_remove(pod_id):
    """Remove a pod, or no-op if pod does not exist."""
    oses.assert_root_privilege()
    pod_dir_path = _get_pod_dir_path(pod_id)
    with locks.acquiring_exclusive(_get_active_path()):
        if not pod_dir_path.is_dir():
            LOG.debug('pod does not exist: %s', pod_id)
            return
        ASSERT.less_or_equal(_get_ref_count(pod_dir_path), 1)
        pod_dir_lock = locks.acquire_exclusive(pod_dir_path)
    try:
        with locks.acquiring_exclusive(_get_graveyard_path()):
            grave_path = _move_pod_dir_to_graveyard(pod_dir_path)
        journals.remove_journal_dir(pod_id)
        _remove_pod_dir(grave_path)
    finally:
        pod_dir_lock.release()
        pod_dir_lock.close()
Пример #3
0
 def _append(self, data):
     end = ASSERT.less_or_equal(self._pos + len(data), len(self._buffer))
     self._buffer[self._pos:end] = data
     self._pos = end
Пример #4
0
 def release(self, n=1):
     ASSERT.less_or_equal(self._value + n, self.__upper_bound)
     return super().release(n)