def _create_tenant_impl(tr, tenant_name, existence_check_marker, force_existence_check_maybe_committed=False):
    tr.options.set_special_key_space_enable_writes()
    key = b'%s%s' % (_tenant_map_prefix, tenant_name)

    if _check_tenant_existence(tr, key, existence_check_marker, force_existence_check_maybe_committed) is True:
        raise _impl.FDBError(2132) # tenant_already_exists

    tr[key] = b''
def _delete_tenant_impl(tr, tenant_name, existence_check_marker, force_existence_check_maybe_committed=False):
    tr.options.set_special_key_space_enable_writes()
    key = b'%s%s' % (_tenant_map_prefix, tenant_name)

    if _check_tenant_existence(tr, key, existence_check_marker, force_existence_check_maybe_committed) is False:
        raise _impl.FDBError(2131) # tenant_not_found

    del tr[key]
def _check_tenant_existence(tr, key, existence_check_marker, force_maybe_commited):
    if not existence_check_marker:
        existing_tenant = tr[key].wait()
        existence_check_marker.append(None)
        if force_maybe_commited:
            raise _impl.FDBError(1021) # maybe_committed
        return existing_tenant != None

    return None