mirror of
https://github.com/zulip/zulip.git
synced 2025-10-23 04:52:12 +00:00
stripe: Raise 'MissingDataError' while fetching license count.
If the RemoteRealmAuditLog has stale data, it means the server stopped or never uploaded data. We raise MissingDataError in such cases when a user action led to calculating licenses count from stale data.
This commit is contained in:
committed by
Tim Abbott
parent
40621478cb
commit
ed9b0d330d
@@ -2,7 +2,7 @@
|
||||
# mypy: disable-error-code="explicit-override"
|
||||
|
||||
from dataclasses import dataclass
|
||||
from datetime import datetime
|
||||
from datetime import datetime, timedelta
|
||||
from typing import List, Tuple
|
||||
|
||||
from django.conf import settings
|
||||
@@ -67,6 +67,9 @@ class RemoteZulipServer(models.Model):
|
||||
choices=[(t["id"], t["name"]) for t in Realm.ORG_TYPES.values()],
|
||||
)
|
||||
|
||||
# The last time 'RemoteRealmAuditlog' was updated for this server.
|
||||
last_audit_log_update = models.DateTimeField(null=True)
|
||||
|
||||
@override
|
||||
def __str__(self) -> str:
|
||||
return f"{self.hostname} {str(self.uuid)[0:12]}"
|
||||
@@ -399,7 +402,7 @@ def get_remote_server_guest_and_non_guest_count(
|
||||
|
||||
def get_remote_realm_guest_and_non_guest_count(
|
||||
remote_realm: RemoteRealm, event_time: datetime = timezone_now()
|
||||
) -> RemoteCustomerUserCount: # nocoverage
|
||||
) -> RemoteCustomerUserCount:
|
||||
latest_audit_log = (
|
||||
RemoteRealmAuditLog.objects.filter(
|
||||
remote_realm=remote_realm,
|
||||
@@ -430,3 +433,13 @@ def get_remote_realm_guest_and_non_guest_count(
|
||||
return RemoteCustomerUserCount(
|
||||
non_guest_user_count=non_guest_count, guest_user_count=guest_count
|
||||
)
|
||||
|
||||
|
||||
def has_stale_audit_log(server: RemoteZulipServer) -> bool:
|
||||
if server.last_audit_log_update is None:
|
||||
return True
|
||||
|
||||
if timezone_now() - server.last_audit_log_update > timedelta(days=2):
|
||||
return True
|
||||
|
||||
return False
|
||||
|
Reference in New Issue
Block a user