def create_daily_digest_bg(): """Create daily digest background task.""" models.background_task.create_task( name="send_daily_digest_bg", url=flask.url_for("send_daily_digest_bg"), queued_callback=send_daily_digest_bg, ) db.session.commit() return utils.make_simple_response()
def create_daily_digest_bg(): """Create daily digest background task.""" models.background_task.create_task( name="send_daily_digest_bg", url=flask.url_for("send_daily_digest_bg"), queued_callback=send_daily_digest_bg, ) db.session.commit() return utils.make_simple_response()
def send_daily_digest_bg(task): # pylint: disable=unused-argument """Send emails for today's or overdue notifications.""" error_msg = None try: send_daily_digest_notifications() except Exception as exp: # pylint: disable=broad-except error_msg = ("Sending of daily digest has failed " "with the following error {}".format(exp.message)) logger.exception(error_msg) return utils.make_simple_response(error_msg)
def send_daily_digest_bg(task): # pylint: disable=unused-argument """Send emails for today's or overdue notifications.""" error_msg = None try: send_daily_digest_notifications() except Exception as exp: # pylint: disable=broad-except error_msg = ("Sending of daily digest has failed " "with the following error {}".format(exp.message)) logger.exception(error_msg) return utils.make_simple_response(error_msg)
def send_calendar_events(): """Sends calendar events.""" error_msg = None try: with benchmark("Send calendar events"): builder = calendar_event_builder.CalendarEventBuilder() builder.build_cycle_tasks() sync = calendar_event_sync.CalendarEventsSync() sync.sync_cycle_tasks_events() except Exception as exp: # pylint: disable=broad-except logger.error(exp.message) error_msg = exp.message return utils.make_simple_response(error_msg)
def send_calendar_events(): """Sends calendar events.""" error_msg = None try: with benchmark("Send calendar events"): builder = calendar_event_builder.CalendarEventBuilder() builder.build_cycle_tasks() sync = calendar_event_sync.CalendarEventsSync() sync.sync_cycle_tasks_events() except Exception as exp: # pylint: disable=broad-except logger.error(exp.message) error_msg = exp.message return utils.make_simple_response(error_msg)
def run_export(task): """Run export""" user = get_current_user() ie_id = task.parameters.get("ie_id") objects = task.parameters.get("objects") exportable_objects = task.parameters.get("exportable_objects") try: ie = import_export.get(ie_id) check_for_previous_run() content, _ = make_export(objects, exportable_objects) db.session.refresh(ie) if ie.status == "Stopped": return utils.make_simple_response() ie.status = "Finished" ie.end_at = datetime.utcnow() ie.content = content db.session.commit() job_emails.send_email(job_emails.EXPORT_COMPLETED, user.email, ie.title, ie_id) except Exception as e: # pylint: disable=broad-except logger.exception("Export failed: %s", e.message) ie = import_export.get(ie_id) try: ie.status = "Failed" ie.end_at = datetime.utcnow() db.session.commit() job_emails.send_email(job_emails.EXPORT_FAILED, user.email) return utils.make_simple_response(e.message) except Exception as e: # pylint: disable=broad-except logger.exception("%s: %s", app_errors.STATUS_SET_FAILED, e.message) return utils.make_simple_response(e.message) return utils.make_simple_response()
def run_export(task): """Run export""" user = login.get_current_user() ie_id = task.parameters.get("ie_id") objects = task.parameters.get("objects") exportable_objects = task.parameters.get("exportable_objects") try: ie_job = import_export.get(ie_id) content, _ = make_export(objects, exportable_objects, ie_job) db.session.refresh(ie_job) if ie_job.status == "Stopped": return utils.make_simple_response() ie_job.status = "Finished" ie_job.end_at = datetime.utcnow() ie_job.content = content db.session.commit() job_emails.send_email(job_emails.EXPORT_COMPLETED, user.email, ie_job.title, ie_id) except models_exceptions.ExportStoppedException: logger.info("Export was stopped by user.") except Exception as e: # pylint: disable=broad-except logger.exception("Export failed: %s", e.message) ie_job = import_export.get(ie_id) try: ie_job.status = "Failed" ie_job.end_at = datetime.utcnow() db.session.commit() job_emails.send_email(job_emails.EXPORT_CRASHED, user.email) return utils.make_simple_response(e.message) except Exception as e: # pylint: disable=broad-except logger.exception("%s: %s", app_errors.STATUS_SET_FAILED, e.message) return utils.make_simple_response(e.message) return utils.make_simple_response()
def send_mentions_bg(task): """Run sending email mentions for specified comments list in bg.""" from ggrc.notifications import people_mentions error_msg = None try: with utils.benchmark("Send people mentions"): people_mentions.send_mentions( comments_data=task.parameters.get("comments_data"), object_name=task.parameters.get("object_name"), href=task.parameters.get("href"), ) except Exception as exp: # pylint: disable=broad-except error_msg = ("Sending of people mentions has failed " "with the following error {}".format(exp.message)) logger.exception(error_msg) return utils.make_simple_response(error_msg)
def send_mentions_bg(task): """Run sending email mentions for specified comments list in bg.""" from ggrc.notifications import people_mentions error_msg = None try: with utils.benchmark("Send people mentions"): people_mentions.send_mentions( comments_data=task.parameters.get("comments_data"), object_name=task.parameters.get("object_name"), href=task.parameters.get("href"), ) except Exception as exp: # pylint: disable=broad-except error_msg = ("Sending of people mentions has failed " "with the following error {}".format(exp.message)) logger.exception(error_msg) return utils.make_simple_response(error_msg)
def run_import_phases(task): """Execute import phases""" ie_id = task.parameters.get("ie_id") user = login.get_current_user() try: ie_job = import_export.get(ie_id) csv_data = import_helper.read_csv_file( StringIO(ie_job.content.encode("utf-8")) ) if ie_job.status == "Analysis": info = make_import(csv_data, True, ie_job) db.session.rollback() db.session.refresh(ie_job) if ie_job.status == "Stopped": return utils.make_simple_response() ie_job.results = json.dumps(info) for block_info in info: if block_info["block_errors"] or block_info["row_errors"]: ie_job.status = "Analysis Failed" ie_job.end_at = datetime.utcnow() db.session.commit() job_emails.send_email(job_emails.IMPORT_FAILED, user.email, ie_job.title) return utils.make_simple_response() for block_info in info: if block_info["block_warnings"] or block_info["row_warnings"]: ie_job.status = "Blocked" db.session.commit() job_emails.send_email(job_emails.IMPORT_BLOCKED, user.email, ie_job.title) return utils.make_simple_response() ie_job.status = "In Progress" db.session.commit() if ie_job.status == "In Progress": info = make_import(csv_data, False, ie_job) ie_job.results = json.dumps(info) for block_info in info: if block_info["block_errors"] or block_info["row_errors"]: ie_job.status = "Analysis Failed" ie_job.end_at = datetime.utcnow() job_emails.send_email(job_emails.IMPORT_FAILED, user.email, ie_job.title) db.session.commit() return utils.make_simple_response() ie_job.status = "Finished" ie_job.end_at = datetime.utcnow() db.session.commit() job_emails.send_email(job_emails.IMPORT_COMPLETED, user.email, ie_job.title) except Exception as e: # pylint: disable=broad-except logger.exception(e.message) ie_job = import_export.get(ie_id) try: ie_job.status = "Failed" ie_job.end_at = datetime.utcnow() db.session.commit() job_emails.send_email(job_emails.IMPORT_FAILED, user.email, ie_job.title) return utils.make_simple_response(e.message) except Exception as e: # pylint: disable=broad-except logger.exception("%s: %s", app_errors.STATUS_SET_FAILED, e.message) return utils.make_simple_response(e.message) return utils.make_simple_response()