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))
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()
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
def release(self, n=1): ASSERT.less_or_equal(self._value + n, self.__upper_bound) return super().release(n)