in lemur/common/celery.py [0:0]
def certificate_reissue():
"""
This celery task reissues certificates which are pending reissue
:return:
"""
function = f"{__name__}.{sys._getframe().f_code.co_name}"
task_id = None
if celery.current_task:
task_id = celery.current_task.request.id
log_data = {
"function": function,
"message": "reissuing certificates",
"task_id": task_id,
}
if task_id and is_task_active(function, task_id, None):
log_data["message"] = "Skipping task: Task is already active"
current_app.logger.debug(log_data)
return
current_app.logger.debug(log_data)
# set the lemur identity
identity_changed.send(current_app._get_current_object(), identity=Identity(1))
for certificate in certificate_service.get_all_pending_reissue():
log_data["message"] = f"{certificate.name} is eligible for re-issuance"
current_app.logger.info(log_data)
details = certificate_service.get_certificate_primitives(certificate)
details, errors = CertificateOutputSchema().dump(details)
current_app.logger.info(
"Re-issuing certificate",
extra=dict(
certificate={
"common_name": details["commonName"],
"sans": ",".join(
x["value"]
for x in details["extensions"]["subAltNames"]["names"]
),
"authority_name": details["authority"]["name"],
"validity_start": details["validityStart"],
"validity_end": details["validityEnd"],
}
),
)
new_cert = certificate_service.reissue_certificate(certificate, replace=True)
log_data["message"] = f"New certificate named:{new_cert.name}"
current_app.logger.info(log_data)
log_data["message"] = "reissuance completed"
current_app.logger.info(log_data)
metrics.send(f"{function}.success", "counter", 1)
return log_data