private void doSendMail(KylinConfig kylinConfig, List<String> users, Pair<String, String> email) { if (email == null) { logger.warn("no need to send email, content is null"); return; } logger.info("prepare to send email to:{}", users); logger.info("job name:{}", getName()); logger.info("submitter:{}", getSubmitter()); logger.info("notify list:{}", users); new MailService(kylinConfig).sendMail(users, email.getFirst(), email.getSecond()); }
protected void handleMetadataPersistException(ExecutableContext context, Throwable exception) { final String[] adminDls = context.getConfig().getAdminDls(); if (adminDls == null || adminDls.length < 1) { logger.warn(NO_NEED_TO_SEND_EMAIL_USER_LIST_IS_EMPTY); return; } List<String> users = Lists.newArrayList(adminDls); Map<String, Object> dataMap = Maps.newHashMap(); dataMap.put("job_name", getName()); dataMap.put("env_name", context.getConfig().getDeployEnv()); dataMap.put(SUBMITTER, StringUtil.noBlank(getSubmitter(), "missing submitter")); dataMap.put("job_engine", MailNotificationUtil.getLocalHostName()); dataMap.put("error_log", Matcher.quoteReplacement(StringUtil.noBlank(exception.getMessage(), "no error message"))); String content = MailNotificationUtil.getMailContent(MailNotificationUtil.METADATA_PERSIST_FAIL, dataMap); String title = MailNotificationUtil.getMailTitle("METADATA PERSIST", "FAIL", context.getConfig().getDeployEnv()); new MailService(context.getConfig()).sendMail(users, title, content); }
protected JobInstance getCheckpointJobInstance(AbstractExecutable job) { Message msg = MsgPicker.getMsg(); if (job == null) { return null; } if (!(job instanceof CheckpointExecutable)) { throw new BadRequestException(String.format(Locale.ROOT, msg.getILLEGAL_JOB_TYPE(), job.getId())); } CheckpointExecutable checkpointExecutable = (CheckpointExecutable) job; Output output = checkpointExecutable.getOutput(); final JobInstance result = new JobInstance(); result.setName(job.getName()); result.setRelatedCube(CubingExecutableUtil.getCubeName(job.getParams())); result.setDisplayCubeName(CubingExecutableUtil.getCubeName(job.getParams())); result.setLastModified(job.getLastModified()); result.setSubmitter(job.getSubmitter()); result.setUuid(job.getId()); result.setType(CubeBuildTypeEnum.CHECKPOINT); result.setStatus(JobInfoConverter.parseToJobStatus(job.getStatus())); result.setBuildInstance(AbstractExecutable.getBuildInstance(output)); result.setDuration(job.getDuration() / 1000); for (int i = 0; i < checkpointExecutable.getTasks().size(); ++i) { AbstractExecutable task = checkpointExecutable.getTasks().get(i); result.addStep(JobInfoConverter.parseToJobStep(task, i, getExecutableManager().getOutput(task.getId()))); } return result; }
protected final void notifyUserStatusChange(ExecutableState state) { try { List<String> users = Lists.newArrayList(); users.addAll(getNotifyList()); final String adminDls = KylinConfig.getInstanceFromEnv().getAdminDls(); if (null != adminDls) { for (String adminDl : adminDls.split(",")) { users.add(adminDl); } } if (users.isEmpty()) { return; } final Pair<String, String> email = formatNotifications(state); if (email == null) { return; } logger.info("prepare to send email to:" + users); logger.info("job name:" + getName()); logger.info("submitter:" + getSubmitter()); logger.info("notify list:" + users); new MailService().sendMail(users, email.getLeft(), email.getRight()); } catch (Exception e) { logger.error(e.getLocalizedMessage(), e); } }
private void doSendMail(KylinConfig kylinConfig, List<String> users, Pair<String, String> email) { if (email == null) { logger.warn("no need to send email, content is null"); return; } logger.info("prepare to send email to:{}", users); logger.info("job name:{}", getName()); logger.info("submitter:{}", getSubmitter()); logger.info("notify list:{}", users); new MailService(kylinConfig).sendMail(users, email.getFirst(), email.getSecond()); }
protected final void notifyUserStatusChange(ExecutableState state) { try { List<String> users = Lists.newArrayList(); users.addAll(getNotifyList()); final String adminDls = KylinConfig.getInstanceFromEnv().getAdminDls(); if (null != adminDls) { for (String adminDl : adminDls.split(",")) { users.add(adminDl); } } if (users.isEmpty()) { return; } final Pair<String, String> email = formatNotifications(state); if (email == null) { return; } logger.info("prepare to send email to:" + users); logger.info("job name:" + getName()); logger.info("submitter:" + getSubmitter()); logger.info("notify list:" + users); new MailService().sendMail(users, email.getLeft(), email.getRight()); } catch (Exception e) { logger.error(e.getLocalizedMessage(), e); } }
protected void handleMetadataPersistException(ExecutableContext context, Throwable exception) { final String[] adminDls = context.getConfig().getAdminDls(); if (adminDls == null || adminDls.length < 1) { logger.warn(NO_NEED_TO_SEND_EMAIL_USER_LIST_IS_EMPTY); return; } List<String> users = Lists.newArrayList(adminDls); Map<String, Object> dataMap = Maps.newHashMap(); dataMap.put("job_name", getName()); dataMap.put("env_name", context.getConfig().getDeployEnv()); dataMap.put(SUBMITTER, StringUtil.noBlank(getSubmitter(), "missing submitter")); dataMap.put("job_engine", MailNotificationUtil.getLocalHostName()); dataMap.put("error_log", Matcher.quoteReplacement(StringUtil.noBlank(exception.getMessage(), "no error message"))); String content = MailNotificationUtil.getMailContent(MailNotificationUtil.METADATA_PERSIST_FAIL, dataMap); String title = MailNotificationUtil.getMailTitle("METADATA PERSIST", "FAIL", context.getConfig().getDeployEnv()); new MailService(context.getConfig()).sendMail(users, title, content); }