Coverage for frappe_manager / ssl_manager / certificate_exceptions.py: 43%
30 statements
« prev ^ index » next coverage.py v7.13.5, created at 2026-07-02 18:35 +0530
« prev ^ index » next coverage.py v7.13.5, created at 2026-07-02 18:35 +0530
1from datetime import datetime
3from frappe_manager import CLI_FM_CONFIG_PATH
4from frappe_manager.utils.helpers import format_ssl_certificate_time_remaining
7class SSLCertificateNotFoundError(Exception):
8 """Exception raised when a certificate is not found."""
10 def __init__(self, domain, message="No ssl certificate is issued for {}."):
11 self.domain = domain
12 self.message = message.format(self.domain)
13 super().__init__(self.message)
16class SSLDNSChallengeCredentailsNotFound(Exception):
17 """Exception raised for dns method required credential not found."""
19 def __init__(self, message: str = f"Cloudflare dns credentials not found in {CLI_FM_CONFIG_PATH}"):
20 self.message = message
21 super().__init__(message)
24class SSLCertificateChallengeFailed(Exception):
25 """Exception raised when a certificate generation failed."""
27 def __init__(
28 self,
29 challenge: str,
30 ):
31 self.challenge = challenge
32 msg = f"{self.challenge} challenge failed."
33 super().__init__(msg)
36class SSLCertificateGenerateFailed(Exception):
37 """Exception raised when a certificate generation failed."""
39 def __init__(
40 self,
41 domain: str | None = None,
42 ):
43 if domain:
44 self.message = f"Certificate generation failed for {domain}."
45 else:
46 self.message = "Certificate generation failed."
47 super().__init__(self.message)
50class SSLCertificateNotDueForRenewalError(Exception):
51 """Exception raised when attempting to renew a certificate that is not due for renewal."""
53 def __init__(
54 self,
55 domain,
56 expiry_date: datetime,
57 message="[blue]{}:[/blue] Certificate is not due for renewal will expire in {}.",
58 ):
59 self.domain = domain
60 self.expiry_date = expiry_date
61 self.time_remaining_txt = format_ssl_certificate_time_remaining(self.expiry_date)
62 self.message = message.format(self.domain, self.time_remaining_txt)
63 super().__init__(self.message)