mirror of
https://github.com/zulip/zulip.git
synced 2025-11-07 15:33:30 +00:00
transaction: Add durable=True to outermost transaction.atomic decorator.
This commit adds 'durable=True' to the outermost transactions of the following functions: * do_create_multiuse_invite_link * do_revoke_user_invite * do_revoke_multi_use_invite * sync_ldap_user_data * do_reactivate_remote_server * do_deactivate_remote_server * bulk_handle_digest_email * handle_customer_migration_from_server_to_realm * add_reaction * remove_reaction * deactivate_user_group It helps to avoid creating unintended savepoints in the future. This is as a part of our plan to explicitly mark all the transaction.atomic decorators with either 'savepoint=False' or 'durable=True' as required. * 'savepoint=True' is used in special cases.
This commit is contained in:
committed by
Tim Abbott
parent
9371bdb81d
commit
0fb5657131
@@ -5231,7 +5231,7 @@ def ensure_customer_does_not_have_active_plan(customer: Customer) -> None:
|
|||||||
raise UpgradeWithExistingPlanError
|
raise UpgradeWithExistingPlanError
|
||||||
|
|
||||||
|
|
||||||
@transaction.atomic
|
@transaction.atomic(durable=True)
|
||||||
def do_reactivate_remote_server(remote_server: RemoteZulipServer) -> None:
|
def do_reactivate_remote_server(remote_server: RemoteZulipServer) -> None:
|
||||||
"""
|
"""
|
||||||
Utility function for reactivating deactivated registrations.
|
Utility function for reactivating deactivated registrations.
|
||||||
@@ -5253,7 +5253,7 @@ def do_reactivate_remote_server(remote_server: RemoteZulipServer) -> None:
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@transaction.atomic
|
@transaction.atomic(durable=True)
|
||||||
def do_deactivate_remote_server(
|
def do_deactivate_remote_server(
|
||||||
remote_server: RemoteZulipServer, billing_session: RemoteServerBillingSession
|
remote_server: RemoteZulipServer, billing_session: RemoteServerBillingSession
|
||||||
) -> None:
|
) -> None:
|
||||||
|
|||||||
@@ -362,7 +362,7 @@ def do_get_invites_controlled_by_user(user_profile: UserProfile) -> list[dict[st
|
|||||||
return invites
|
return invites
|
||||||
|
|
||||||
|
|
||||||
@transaction.atomic
|
@transaction.atomic(durable=True)
|
||||||
def do_create_multiuse_invite_link(
|
def do_create_multiuse_invite_link(
|
||||||
referred_by: UserProfile,
|
referred_by: UserProfile,
|
||||||
invited_as: int,
|
invited_as: int,
|
||||||
@@ -386,7 +386,7 @@ def do_create_multiuse_invite_link(
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@transaction.atomic
|
@transaction.atomic(durable=True)
|
||||||
def do_revoke_user_invite(prereg_user: PreregistrationUser) -> None:
|
def do_revoke_user_invite(prereg_user: PreregistrationUser) -> None:
|
||||||
email = prereg_user.email
|
email = prereg_user.email
|
||||||
realm = prereg_user.realm
|
realm = prereg_user.realm
|
||||||
@@ -403,7 +403,7 @@ def do_revoke_user_invite(prereg_user: PreregistrationUser) -> None:
|
|||||||
notify_invites_changed(realm, changed_invite_referrer=prereg_user.referred_by)
|
notify_invites_changed(realm, changed_invite_referrer=prereg_user.referred_by)
|
||||||
|
|
||||||
|
|
||||||
@transaction.atomic
|
@transaction.atomic(durable=True)
|
||||||
def do_revoke_multi_use_invite(multiuse_invite: MultiuseInvite) -> None:
|
def do_revoke_multi_use_invite(multiuse_invite: MultiuseInvite) -> None:
|
||||||
realm = multiuse_invite.referred_by.realm
|
realm = multiuse_invite.referred_by.realm
|
||||||
|
|
||||||
|
|||||||
@@ -387,7 +387,7 @@ def get_digest_context(user: UserProfile, cutoff: float) -> dict[str, Any]:
|
|||||||
raise AssertionError("Unreachable")
|
raise AssertionError("Unreachable")
|
||||||
|
|
||||||
|
|
||||||
@transaction.atomic
|
@transaction.atomic(durable=True)
|
||||||
def bulk_handle_digest_email(user_ids: list[int], cutoff: float) -> None:
|
def bulk_handle_digest_email(user_ids: list[int], cutoff: float) -> None:
|
||||||
# We go directly to the database to get user objects,
|
# We go directly to the database to get user objects,
|
||||||
# since inactive users are likely to not be in the cache.
|
# since inactive users are likely to not be in the cache.
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ log_to_file(logger, settings.LDAP_SYNC_LOG_PATH)
|
|||||||
|
|
||||||
|
|
||||||
# Run this on a cron job to pick up on name changes.
|
# Run this on a cron job to pick up on name changes.
|
||||||
@transaction.atomic
|
@transaction.atomic(durable=True)
|
||||||
def sync_ldap_user_data(
|
def sync_ldap_user_data(
|
||||||
user_profiles: QuerySet[UserProfile], deactivation_protection: bool = True
|
user_profiles: QuerySet[UserProfile], deactivation_protection: bool = True
|
||||||
) -> None:
|
) -> None:
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ from zerver.models import Reaction, UserProfile
|
|||||||
|
|
||||||
|
|
||||||
# transaction.atomic is required since we use FOR UPDATE queries in access_message
|
# transaction.atomic is required since we use FOR UPDATE queries in access_message
|
||||||
@transaction.atomic
|
@transaction.atomic(durable=True)
|
||||||
@typed_endpoint
|
@typed_endpoint
|
||||||
def add_reaction(
|
def add_reaction(
|
||||||
request: HttpRequest,
|
request: HttpRequest,
|
||||||
@@ -29,7 +29,7 @@ def add_reaction(
|
|||||||
|
|
||||||
|
|
||||||
# transaction.atomic is required since we use FOR UPDATE queries in access_message
|
# transaction.atomic is required since we use FOR UPDATE queries in access_message
|
||||||
@transaction.atomic
|
@transaction.atomic(durable=True)
|
||||||
@typed_endpoint
|
@typed_endpoint
|
||||||
def remove_reaction(
|
def remove_reaction(
|
||||||
request: HttpRequest,
|
request: HttpRequest,
|
||||||
|
|||||||
@@ -207,7 +207,7 @@ def edit_user_group(
|
|||||||
|
|
||||||
|
|
||||||
@typed_endpoint
|
@typed_endpoint
|
||||||
@transaction.atomic
|
@transaction.atomic(durable=True)
|
||||||
def deactivate_user_group(
|
def deactivate_user_group(
|
||||||
request: HttpRequest,
|
request: HttpRequest,
|
||||||
user_profile: UserProfile,
|
user_profile: UserProfile,
|
||||||
|
|||||||
@@ -1035,7 +1035,7 @@ def get_human_user_realm_uuids(
|
|||||||
return billable_realm_uuids
|
return billable_realm_uuids
|
||||||
|
|
||||||
|
|
||||||
@transaction.atomic
|
@transaction.atomic(durable=True)
|
||||||
def handle_customer_migration_from_server_to_realm(
|
def handle_customer_migration_from_server_to_realm(
|
||||||
server: RemoteZulipServer,
|
server: RemoteZulipServer,
|
||||||
) -> None:
|
) -> None:
|
||||||
|
|||||||
Reference in New Issue
Block a user