def test_issued_cert_count_for_authority(authority): from lemur.tests.factories import CertificateFactory from lemur.certificates.service import get_issued_cert_count_for_authority assert get_issued_cert_count_for_authority(authority) == 0 # create a few certs issued by the authority CertificateFactory(authority=authority, name="test_issued_cert_count_for_authority1") CertificateFactory(authority=authority, name="test_issued_cert_count_for_authority2") CertificateFactory(authority=authority, name="test_issued_cert_count_for_authority3") assert get_issued_cert_count_for_authority(authority) == 3
def send_authority_expiration_notifications(): """ This function will check for upcoming certificate authority certificate expiration, and send out notification emails at configured intervals. """ success = failure = 0 # security team gets all security_email = current_app.config.get("LEMUR_SECURITY_TEAM_EMAIL") for owner, owner_cert_groups in get_eligible_authority_certificates().items(): for interval, certificates in owner_cert_groups.items(): notification_data = [] for certificate in certificates: cert_data = certificate_notification_output_schema.dump( certificate ).data cert_data['self_signed'] = is_selfsigned(certificate.parsed_cert) cert_data['issued_cert_count'] = certificates_service.get_issued_cert_count_for_authority(certificate.root_authority) notification_data.append(cert_data) email_recipients = security_email + [owner] if send_default_notification( "authority_expiration", notification_data, email_recipients, notification_options=[{'name': 'interval', 'value': interval}] ): success = len(email_recipients) else: failure = len(email_recipients) return success, failure