@@ -57,7 +57,7 @@ def parse_args():
57
57
return ap .parse_args ()
58
58
59
59
def sendmail (emailto , subject , body ):
60
- FROM = 'gitbuilder@ ceph.com'
60
+ FROM = 'ceph-infra-admins@redhat .com'
61
61
TO = emailto # must be a list
62
62
SUBJECT = subject
63
63
TEXT = body
@@ -85,25 +85,29 @@ def main():
85
85
86
86
warned = False
87
87
for domain in domains :
88
+ errstr = None
89
+ certerr = False
88
90
warn = datetime .timedelta (days = DAYS_BEFORE_WARN )
89
91
try :
90
92
with socket .create_connection ((domain , 443 )) as sock :
91
93
with context .wrap_socket (sock , server_hostname = domain ) as ssock :
92
94
cert = ssock .getpeercert ()
93
95
except (ssl .CertificateError , ssl .SSLError ) as e :
94
- print (f'{ domain } cert error: { e } ' , file = sys .stderr )
95
- continue
96
- expire = datetime .datetime .strptime (cert ['notAfter' ],
97
- '%b %d %H:%M:%S %Y %Z' )
98
- now = datetime .datetime .utcnow ()
99
- left = expire - now
100
-
101
- leftstr = f'{ domain :30s} cert: { str (left ).rsplit ("." ,1 )[0 ]} left until it expires'
96
+ certerr = True
97
+ errstr = f'{ domain } cert error: { e } '
98
+
99
+ if not certerr :
100
+ expire = datetime .datetime .strptime (cert ['notAfter' ],
101
+ '%b %d %H:%M:%S %Y %Z' )
102
+ now = datetime .datetime .utcnow ()
103
+ left = expire - now
104
+
105
+ errstr = f'{ domain :30s} cert: { str (left ).rsplit ("." ,1 )[0 ]} left until it expires'
102
106
if not args .quiet :
103
- print (leftstr , file = sys .stderr )
104
- if left < warn and args .email :
105
- subject = f'{ domain } \' s SSL Cert is expiring soon. '
106
- body = leftstr
107
+ print (errstr , file = sys .stderr )
108
+ if ( certerr or ( left < warn )) and args .email :
109
+ subject = f'Certificate problem with { domain } '
110
+ body = errstr
107
111
email = args .email
108
112
if email == []:
109
113
email = DEFAULT_EMAIL
0 commit comments