From 4ffd8de0a202a9abc0c564e52301b7ff2f4d3ada Mon Sep 17 00:00:00 2001 From: liugq Date: Fri, 21 Jul 2023 16:17:16 +0800 Subject: [PATCH] fake commit (uncomplete) --- main.go | 8 ---- plugin/api/email/api.go | 61 +++++++++++++---------------- plugin/api/email/common/pipeline.go | 29 +++++++++++++- plugin/api/email/server.go | 4 +- 4 files changed, 58 insertions(+), 44 deletions(-) diff --git a/main.go b/main.go index 9f47c0e7..2d2a1f4a 100644 --- a/main.go +++ b/main.go @@ -4,7 +4,6 @@ import ( "context" "errors" _ "expvar" - "infini.sh/console/plugin/api/email" _ "time/tzdata" log "github.com/cihub/seelog" @@ -152,13 +151,6 @@ func main() { } return err }) - task1.RunWithinGroup("initialize_email_server", func(ctx context.Context) error { - err := email.InitEmailServer() - if err != nil { - log.Errorf("init email server error: %v", err) - } - return err - }) } if !global.Env().SetupRequired() { diff --git a/plugin/api/email/api.go b/plugin/api/email/api.go index 36403c43..da7da481 100644 --- a/plugin/api/email/api.go +++ b/plugin/api/email/api.go @@ -5,12 +5,7 @@ package email import ( - "infini.sh/console/model" - "infini.sh/console/plugin/api/email/common" "infini.sh/framework/core/api" - "infini.sh/framework/core/orm" - "infini.sh/framework/core/util" - log "src/github.com/cihub/seelog" ) type EmailAPI struct { @@ -26,31 +21,31 @@ func InitAPI() { api.HandleAPIMethod(api.GET, "/email/server/_search", email.searchEmailServer) } -func InitEmailServer() error { - q := orm.Query{ - Size: 10, - } - q.Conds = orm.And(orm.Eq("enabled", true)) - err, result := orm.Search(model.EmailServer{}, &q ) - if err != nil { - return err - } - if len(result.Result) == 0 { - return nil - } - for _, row := range result.Result { - emailServer := model.EmailServer{} - buf := util.MustToJSONBytes(row) - util.MustFromJSONBytes(buf, &emailServer) - err = emailServer.Validate(false) - if err != nil { - log.Error(err) - continue - } - err = common.StartEmailServer(&emailServer) - if err != nil { - log.Error(err) - } - } - return nil -} \ No newline at end of file +//func InitEmailServer() error { +// q := orm.Query{ +// Size: 10, +// } +// q.Conds = orm.And(orm.Eq("enabled", true)) +// err, result := orm.Search(model.EmailServer{}, &q ) +// if err != nil { +// return err +// } +// if len(result.Result) == 0 { +// return nil +// } +// for _, row := range result.Result { +// emailServer := model.EmailServer{} +// buf := util.MustToJSONBytes(row) +// util.MustFromJSONBytes(buf, &emailServer) +// err = emailServer.Validate(false) +// if err != nil { +// log.Error(err) +// continue +// } +// err = common.StartEmailServer(&emailServer) +// if err != nil { +// log.Error(err) +// } +// } +// return nil +//} \ No newline at end of file diff --git a/plugin/api/email/common/pipeline.go b/plugin/api/email/common/pipeline.go index 0d1c1a05..c6cf773a 100644 --- a/plugin/api/email/common/pipeline.go +++ b/plugin/api/email/common/pipeline.go @@ -8,19 +8,44 @@ import ( "fmt" "infini.sh/console/model" "infini.sh/framework/core/global" + "infini.sh/framework/core/orm" "infini.sh/framework/core/util" "os" "path" ) -func StartEmailServer(serv *model.EmailServer) error { +const emailServerConfigFile = "send_email.yml" +func RefreshEmailServer() error { + q := orm.Query{ + Size: 10, + } + q.Conds = orm.And(orm.Eq("enabled", true)) + err, result := orm.Search(model.EmailServer{}, &q ) + if err != nil { + return err + } + if len(result.Result) == 0 { + //todo delete email server config file + return nil + } + servers := map[string]model.EmailServer{} + for _, row := range result.Result { + emailServer := model.EmailServer{} + buf := util.MustToJSONBytes(row) + util.MustFromJSONBytes(buf, &emailServer) + err = emailServer.Validate(false) + if err != nil { + return err + } + servers[emailServer.ID] = emailServer + } pipeCfgStr := GeneratePipelineConfig(serv) //cfg, err := yaml.NewConfig([]byte(pipeCfgStr)) //if err != nil { // return fmt.Errorf("new config error: %w", err) //} cfgDir := global.Env().GetConfigDir() - sendEmailCfgFile := path.Join(cfgDir, "send_email.yml") + sendEmailCfgFile := path.Join(cfgDir, emailServerConfigFile) _, err := util.FilePutContent(sendEmailCfgFile, pipeCfgStr) return err //pipeCfg := pipeline.PipelineConfigV2{} diff --git a/plugin/api/email/server.go b/plugin/api/email/server.go index 3aab8136..62cc4a4e 100644 --- a/plugin/api/email/server.go +++ b/plugin/api/email/server.go @@ -64,7 +64,9 @@ func (h *EmailAPI) createEmailServer(w http.ResponseWriter, req *http.Request, p return } - err = orm.Create(nil, obj) + err = orm.Create(&orm.Context{ + Refresh: "wait_for", + }, obj) if err != nil { h.WriteError(w, err.Error(), http.StatusInternalServerError) log.Error(err)