def check_invariants(self, active_ops_dirs): # We check uniqueness of UUIDs here, but to be honest, UUID is # quite unlikely to conflict. for ops_dir in active_ops_dirs: ASSERT.isdisjoint( self._get_pod_id_set(ops_dir.metadata), self._get_pod_id_set(self.metadata), )
def cmd_undefine(args): oses.assert_root_privilege() active_pod_ids = tokens.load_active_pod_ids(pod_ops_dirs.make_ops_dirs()) with tokens.make_tokens_database().writing() as active_tokens: if not active_tokens.has_definition(args.token_name): LOG.info('skip: tokens undefine: %s', args.token_name) return 0 LOG.info('tokens undefine: %s', args.token_name) ASSERT.isdisjoint(active_pod_ids, active_tokens.iter_pod_ids(args.token_name)) active_tokens.remove_definition(args.token_name) return 0
def __init__( self, table_name, key_column_names_and_types=(), value_column_names_and_types=(('data', LargeBinary), ), *, metadata=None, index_column_names=(), # This is actually a list of names. constraints=(), ): ASSERT.isdisjoint( frozenset(name for name, _ in key_column_names_and_types), frozenset(name for name, _ in value_column_names_and_types), ) # We do not support the valueless use case for now. ASSERT.not_empty(value_column_names_and_types) self.metadata = MetaData() if metadata is None else metadata self.table_name = table_name self.key_column_names = tuple( name for name, _ in key_column_names_and_types) self.key_columns = tuple( Column(*pair, nullable=False, primary_key=True) for pair in key_column_names_and_types) self.value_column_names = tuple( name for name, _ in value_column_names_and_types) self.value_columns = tuple( Column(*pair, nullable=False) for pair in value_column_names_and_types) self.index_column_names = index_column_names self.table = Table( table_name, self.metadata, *self.key_columns, *self.value_columns, *constraints, )