From f3cffdcf6d473e7368e9efee063c3c3d23ced407 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E7=A5=A5=E8=B6=85?= Date: Thu, 26 Nov 2020 17:26:49 +0800 Subject: [PATCH] =?UTF-8?q?[SSL=E8=AF=81=E4=B9=A6]ACME=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E4=B8=AD=E5=88=97=E5=87=BA=E6=9C=80=E5=90=8E=E6=89=A7=E8=A1=8C?= =?UTF-8?q?=E7=BB=93=E6=9E=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/db/models/acme_task_dao.go | 2 +- internal/db/models/acme_task_log_dao.go | 14 ++++++++- internal/rpc/services/service_acme_task.go | 34 ++++++++++++++++------ 3 files changed, 39 insertions(+), 11 deletions(-) diff --git a/internal/db/models/acme_task_dao.go b/internal/db/models/acme_task_dao.go index 113a70f9..ea964869 100644 --- a/internal/db/models/acme_task_dao.go +++ b/internal/db/models/acme_task_dao.go @@ -196,7 +196,7 @@ func (this *ACMETaskDAO) RunTask(taskId int64) (isOk bool, errMsg string, result isOk, errMsg, resultCertId = this.runTaskWithoutLog(taskId) // 记录日志 - err := SharedACMETaskLogDAO.CreateACMELog(taskId, isOk, errMsg) + err := SharedACMETaskLogDAO.CreateACMETaskLog(taskId, isOk, errMsg) if err != nil { logs.Error(err) } diff --git a/internal/db/models/acme_task_log_dao.go b/internal/db/models/acme_task_log_dao.go index aa80935d..811879cb 100644 --- a/internal/db/models/acme_task_log_dao.go +++ b/internal/db/models/acme_task_log_dao.go @@ -28,7 +28,7 @@ func init() { } // 生成日志 -func (this *ACMETaskLogDAO) CreateACMELog(taskId int64, isOk bool, errMsg string) error { +func (this *ACMETaskLogDAO) CreateACMETaskLog(taskId int64, isOk bool, errMsg string) error { op := NewACMETaskLogOperator() op.TaskId = taskId op.Error = errMsg @@ -36,3 +36,15 @@ func (this *ACMETaskLogDAO) CreateACMELog(taskId int64, isOk bool, errMsg string _, err := this.Save(op) return err } + +// 取得任务的最后一条执行日志 +func (this *ACMETaskLogDAO) FindLatestACMETasKLog(taskId int64) (*ACMETaskLog, error) { + one, err := this.Query(). + Attr("taskId", taskId). + DescPk(). + Find() + if err != nil || one == nil { + return nil, err + } + return one.(*ACMETaskLog), nil +} diff --git a/internal/rpc/services/service_acme_task.go b/internal/rpc/services/service_acme_task.go index 9c586be3..1d532a37 100644 --- a/internal/rpc/services/service_acme_task.go +++ b/internal/rpc/services/service_acme_task.go @@ -121,16 +121,32 @@ func (this *ACMETaskService) ListEnabledACMETasks(ctx context.Context, req *pb.L } } + // 最近一条日志 + var pbTaskLog *pb.ACMETaskLog = nil + taskLog, err := models.SharedACMETaskLogDAO.FindLatestACMETasKLog(int64(task.Id)) + if err != nil { + return nil, err + } + if taskLog != nil { + pbTaskLog = &pb.ACMETaskLog{ + Id: int64(taskLog.Id), + IsOk: taskLog.IsOk == 1, + Error: taskLog.Error, + CreatedAt: int64(taskLog.CreatedAt), + } + } + result = append(result, &pb.ACMETask{ - Id: int64(task.Id), - IsOn: task.IsOn == 1, - DnsDomain: task.DnsDomain, - Domains: task.DecodeDomains(), - CreatedAt: int64(task.CreatedAt), - AutoRenew: task.AutoRenew == 1, - AcmeUser: pbACMEUser, - DnsProvider: pbProvider, - SslCert: pbCert, + Id: int64(task.Id), + IsOn: task.IsOn == 1, + DnsDomain: task.DnsDomain, + Domains: task.DecodeDomains(), + CreatedAt: int64(task.CreatedAt), + AutoRenew: task.AutoRenew == 1, + AcmeUser: pbACMEUser, + DnsProvider: pbProvider, + SslCert: pbCert, + LatestACMETaskLog: pbTaskLog, }) }