mirror of
https://github.com/zulip/zulip.git
synced 2025-10-23 04:52:12 +00:00
send_zulip_update_announcements: Log updates in the post-deploy hook.
This commit is contained in:
committed by
Tim Abbott
parent
b98d3fc7c4
commit
2909d4917c
@@ -2,4 +2,4 @@
|
||||
|
||||
set -e
|
||||
|
||||
/home/zulip/deployments/current/manage.py send_zulip_update_announcements --automated
|
||||
/home/zulip/deployments/current/manage.py send_zulip_update_announcements --automated --progress
|
||||
|
@@ -632,15 +632,26 @@ def send_messages_and_update_level(
|
||||
realm.save(update_fields=["zulip_update_announcements_level"])
|
||||
|
||||
|
||||
def send_zulip_update_announcements(skip_delay: bool) -> None:
|
||||
def send_zulip_update_announcements(skip_delay: bool, progress: bool = False) -> None:
|
||||
latest_zulip_update_announcements_level = get_latest_zulip_update_announcements_level()
|
||||
for realm in get_realms_behind_zulip_update_announcements_level(
|
||||
realms = get_realms_behind_zulip_update_announcements_level(
|
||||
level=latest_zulip_update_announcements_level
|
||||
):
|
||||
)
|
||||
if len(realms) == 0:
|
||||
return
|
||||
|
||||
if progress: # nocoverage
|
||||
print(f"Sending update announcements to {len(realms)} realms")
|
||||
for i, realm in enumerate(realms, start=1):
|
||||
try:
|
||||
send_zulip_update_announcements_to_realm(realm, skip_delay)
|
||||
except Exception as e: # nocoverage
|
||||
logging.exception(e)
|
||||
finally:
|
||||
if progress and i % 50 == 0: # nocoverage
|
||||
print(f"Processed {i}/{len(realms)} realms...")
|
||||
if progress: # nocoverage
|
||||
print("Done!")
|
||||
|
||||
|
||||
def send_zulip_update_announcements_to_realm(realm: Realm, skip_delay: bool) -> None:
|
||||
|
@@ -14,6 +14,7 @@ class Command(ZulipBaseCommand):
|
||||
|
||||
@override
|
||||
def add_arguments(self, parser: ArgumentParser) -> None:
|
||||
parser.add_argument("--progress", action="store_true", help="Log every 50 completed realms")
|
||||
parser.add_argument(
|
||||
"--skip-delay",
|
||||
action="store_true",
|
||||
@@ -35,4 +36,6 @@ class Command(ZulipBaseCommand):
|
||||
).update(zulip_update_announcements_level=options["reset_level"])
|
||||
return
|
||||
|
||||
send_zulip_update_announcements(skip_delay=options["skip_delay"])
|
||||
send_zulip_update_announcements(
|
||||
skip_delay=options["skip_delay"], progress=options["progress"]
|
||||
)
|
||||
|
@@ -166,6 +166,17 @@ class ZulipUpdateAnnouncementsTest(ZulipTestCase):
|
||||
self.assertEqual(stream_messages[0].content, "Announcement message 5.")
|
||||
self.assertEqual(realm.zulip_update_announcements_level, 5)
|
||||
|
||||
# Calling send_zulip_update_announcements again does nothing
|
||||
with time_machine.travel(now + timedelta(days=20), tick=False):
|
||||
send_zulip_update_announcements(skip_delay=False)
|
||||
realm.refresh_from_db()
|
||||
stream_messages = Message.objects.filter(
|
||||
realm=realm,
|
||||
date_sent__gte=now + timedelta(days=20),
|
||||
).order_by("id")
|
||||
self.assert_length(stream_messages, 0)
|
||||
self.assertEqual(realm.zulip_update_announcements_level, 5)
|
||||
|
||||
def test_send_zulip_update_announcements_with_stream_configured(self) -> None:
|
||||
with mock.patch(
|
||||
"zerver.lib.zulip_update_announcements.zulip_update_announcements",
|
||||
|
Reference in New Issue
Block a user