init_app.py 949 B

1234567891011121314151617181920212223242526272829303132
  1. """Initial loading script"""
  2. from app.models import Mailbox
  3. from app.log import LOG
  4. from app.extensions import db
  5. from app.pgp_utils import load_public_key
  6. from server import create_app
  7. def load_pgp_public_keys(app):
  8. """Load PGP public key to keyring"""
  9. with app.app_context():
  10. for mailbox in Mailbox.query.filter(Mailbox.pgp_public_key != None).all():
  11. LOG.d("Load PGP key for mailbox %s", mailbox)
  12. fingerprint = load_public_key(mailbox.pgp_public_key)
  13. # sanity check
  14. if fingerprint != mailbox.pgp_finger_print:
  15. LOG.error(
  16. "fingerprint %s different for mailbox %s", fingerprint, mailbox
  17. )
  18. mailbox.pgp_finger_print = fingerprint
  19. db.session.commit()
  20. LOG.d("Finish load_pgp_public_keys")
  21. if __name__ == "__main__":
  22. app = create_app()
  23. with app.app_context():
  24. load_pgp_public_keys(app)