Esempio n. 1
0
 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),
         )
Esempio n. 2
0
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
Esempio n. 3
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,
     )