From 864a2826cab8a0375e423c176348bd18dedb1ba3 Mon Sep 17 00:00:00 2001 From: Sven Eberth Date: Wed, 29 Jan 2025 21:51:15 +0100 Subject: [PATCH 1/4] fix: E-Mail methods has been renamed * Add name mapping in viur-migrate * Rename calls in core itself --- src/viur/core/__init__.py | 2 +- src/viur/core/config.py | 5 +++-- src/viur/core/modules/user.py | 2 +- src/viur/core/scripts/viur_migrate.py | 2 ++ src/viur/core/tasks.py | 2 +- 5 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/viur/core/__init__.py b/src/viur/core/__init__.py index af99a0877..451924130 100644 --- a/src/viur/core/__init__.py +++ b/src/viur/core/__init__.py @@ -254,7 +254,7 @@ def setup(modules: ModuleType | object, render: ModuleType | object = None, de and (not conf.instance.is_dev_server or conf.debug.dev_server_cloud_logging)): from viur.core import email try: - email.sendEMailToAdmins( + email.send_emailToAdmins( "Debug mode enabled", "ViUR just started a new Instance with call tracing enabled! This might log sensitive information!" ) diff --git a/src/viur/core/config.py b/src/viur/core/config.py index e3f7d5f24..76f361200 100644 --- a/src/viur/core/config.py +++ b/src/viur/core/config.py @@ -545,7 +545,7 @@ class Email(ConfigType): recipient_override: str | list[str] | t.Callable[[], str | list[str]] | t.Literal[False] = None """If set, all outgoing emails will be sent to this address - (overriding the 'dests'-parameter in email.sendEmail) + (overriding the 'dests'-parameter in :meth:`core.email.send_email`) """ sender_default: str = f"viur@{_project_id}.appspotmail.com" @@ -558,7 +558,8 @@ class Email(ConfigType): """If set, this sender will be used, regardless of what the templates advertise as sender""" admin_recipients: str | list[str] | t.Callable[[], str | list[str]] = None - """Sets recipients for mails send with email.sendEMailToAdmins. If not set, all root users will be used.""" + """Sets recipients for mails send with :meth:`email.send_emailToAdmins`. + If not set, all root users will be used.""" _mapping = { "logRetention": "log_retention", diff --git a/src/viur/core/modules/user.py b/src/viur/core/modules/user.py index 9d5b62307..30974599f 100644 --- a/src/viur/core/modules/user.py +++ b/src/viur/core/modules/user.py @@ -1620,7 +1620,7 @@ def createNewUserIfNotExists(): msg = f"ViUR created a new admin-user for you!\nUsername: {uname}\nPassword: {pw}" logging.warning(msg) - email.sendEMailToAdmins("New ViUR password", msg) + email.send_emailToAdmins("New ViUR password", msg) # DEPRECATED ATTRIBUTES HANDLING diff --git a/src/viur/core/scripts/viur_migrate.py b/src/viur/core/scripts/viur_migrate.py index 11a069bd6..0bd2ab216 100755 --- a/src/viur/core/scripts/viur_migrate.py +++ b/src/viur/core/scripts/viur_migrate.py @@ -42,6 +42,8 @@ "toDB": "write", "fromDB": "read", re.compile(r"\bsubSkel\b"): "subskel", + "sendEMail": "send_email", + "sendEMailToAdmins": "send_email_to_admins", # WARNING: THESE MUST BE KEPT AT THE END, THE ORDER MATTERS!!!! "projectID": "conf.instance.project_id", diff --git a/src/viur/core/tasks.py b/src/viur/core/tasks.py index 217e3625b..723296640 100644 --- a/src/viur/core/tasks.py +++ b/src/viur/core/tasks.py @@ -190,7 +190,7 @@ def deferred(self, *args, **kwargs): retryCount = req.headers.get("X-Appengine-Taskretrycount", None) if retryCount and int(retryCount) == self.retryCountWarningThreshold: from viur.core import email - email.sendEMailToAdmins( + email.send_emailToAdmins( "Deferred task retry counter exceeded warning threshold", f"""Task {req.headers.get("X-Appengine-Taskname", "")} is retried for the {retryCount}th time.""" ) From 651d53aa45af02ada4daba3fb25712db867832a8 Mon Sep 17 00:00:00 2001 From: Sven Eberth Date: Wed, 29 Jan 2025 21:57:40 +0100 Subject: [PATCH 2/4] fix: order is relevant ... --- src/viur/core/__init__.py | 2 +- src/viur/core/config.py | 2 +- src/viur/core/modules/user.py | 2 +- src/viur/core/scripts/viur_migrate.py | 2 +- src/viur/core/tasks.py | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/viur/core/__init__.py b/src/viur/core/__init__.py index 451924130..c171ee775 100644 --- a/src/viur/core/__init__.py +++ b/src/viur/core/__init__.py @@ -254,7 +254,7 @@ def setup(modules: ModuleType | object, render: ModuleType | object = None, de and (not conf.instance.is_dev_server or conf.debug.dev_server_cloud_logging)): from viur.core import email try: - email.send_emailToAdmins( + email.send_email_to_admins( "Debug mode enabled", "ViUR just started a new Instance with call tracing enabled! This might log sensitive information!" ) diff --git a/src/viur/core/config.py b/src/viur/core/config.py index 76f361200..158454a73 100644 --- a/src/viur/core/config.py +++ b/src/viur/core/config.py @@ -558,7 +558,7 @@ class Email(ConfigType): """If set, this sender will be used, regardless of what the templates advertise as sender""" admin_recipients: str | list[str] | t.Callable[[], str | list[str]] = None - """Sets recipients for mails send with :meth:`email.send_emailToAdmins`. + """Sets recipients for mails send with :meth:`email.send_email_to_admins`. If not set, all root users will be used.""" _mapping = { diff --git a/src/viur/core/modules/user.py b/src/viur/core/modules/user.py index 30974599f..35ef012e6 100644 --- a/src/viur/core/modules/user.py +++ b/src/viur/core/modules/user.py @@ -1620,7 +1620,7 @@ def createNewUserIfNotExists(): msg = f"ViUR created a new admin-user for you!\nUsername: {uname}\nPassword: {pw}" logging.warning(msg) - email.send_emailToAdmins("New ViUR password", msg) + email.send_email_to_admins("New ViUR password", msg) # DEPRECATED ATTRIBUTES HANDLING diff --git a/src/viur/core/scripts/viur_migrate.py b/src/viur/core/scripts/viur_migrate.py index 0bd2ab216..a65dfcaed 100755 --- a/src/viur/core/scripts/viur_migrate.py +++ b/src/viur/core/scripts/viur_migrate.py @@ -42,8 +42,8 @@ "toDB": "write", "fromDB": "read", re.compile(r"\bsubSkel\b"): "subskel", - "sendEMail": "send_email", "sendEMailToAdmins": "send_email_to_admins", + "sendEMail": "send_email", # WARNING: THESE MUST BE KEPT AT THE END, THE ORDER MATTERS!!!! "projectID": "conf.instance.project_id", diff --git a/src/viur/core/tasks.py b/src/viur/core/tasks.py index 723296640..a58eaebfd 100644 --- a/src/viur/core/tasks.py +++ b/src/viur/core/tasks.py @@ -190,7 +190,7 @@ def deferred(self, *args, **kwargs): retryCount = req.headers.get("X-Appengine-Taskretrycount", None) if retryCount and int(retryCount) == self.retryCountWarningThreshold: from viur.core import email - email.send_emailToAdmins( + email.send_email_to_admins( "Deferred task retry counter exceeded warning threshold", f"""Task {req.headers.get("X-Appengine-Taskname", "")} is retried for the {retryCount}th time.""" ) From 6afe8305d5f51f9db00d4d95d32006895aac9c45 Mon Sep 17 00:00:00 2001 From: Sven Eberth Date: Wed, 29 Jan 2025 22:00:10 +0100 Subject: [PATCH 3/4] sphinx ref --- src/viur/core/config.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/viur/core/config.py b/src/viur/core/config.py index 158454a73..457174361 100644 --- a/src/viur/core/config.py +++ b/src/viur/core/config.py @@ -535,7 +535,7 @@ class Email(ConfigType): transport_class: "EmailTransport" = None """EmailTransport instance that actually delivers the email using the service provider - of choice. See email.py for more details + of choice. See :module:`core.email` for more details """ send_from_local_development_server: bool = False @@ -558,7 +558,7 @@ class Email(ConfigType): """If set, this sender will be used, regardless of what the templates advertise as sender""" admin_recipients: str | list[str] | t.Callable[[], str | list[str]] = None - """Sets recipients for mails send with :meth:`email.send_email_to_admins`. + """Sets recipients for mails send with :meth:`core.email.send_email_to_admins`. If not set, all root users will be used.""" _mapping = { From f7c6e497cc1b9eb491e88b5f911d43200ceaca61 Mon Sep 17 00:00:00 2001 From: Sven Eberth Date: Wed, 29 Jan 2025 22:02:01 +0100 Subject: [PATCH 4/4] another replace --- src/viur/core/email.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/viur/core/email.py b/src/viur/core/email.py index 0502e9b09..056aae7ee 100644 --- a/src/viur/core/email.py +++ b/src/viur/core/email.py @@ -622,7 +622,7 @@ def check_sib_quota() -> None: logging.info(f"Already send an email for {limit = }.") break - sendEMailToAdmins( + send_email_to_admins( f"SendInBlue email budget {credits} ({idx}. warning)", f"The SendInBlue email budget reached {credits} credits " f"for {data['email']}. Please increase soon.",