func LinkToSMS(content string) (string, error) { links := g.Config().Api.Links uri := fmt.Sprintf("%s/store", links) req := httplib.Post(uri).SetTimeout(3*time.Second, 10*time.Second) req.Body([]byte(content)) return req.String() }
func (this *MainController) ConfigReload() { remoteAddr := this.Ctx.Input.Request.RemoteAddr if strings.HasPrefix(remoteAddr, "127.0.0.1") { g.ParseConfig(g.ConfigFile) this.Data["json"] = g.Config() this.ServeJson() } else { this.Ctx.WriteString("no privilege") } }
func Start() { if !g.Config().Http.Enabled { return } addr := g.Config().Http.Listen if addr == "" { return } if g.Config().Debug { beego.RunMode = "dev" } else { beego.RunMode = "prod" } beego.Run(addr) log.Println("http listening", addr) }
func CurlUic(team string) []*User { if team == "" { return []*User{} } uri := fmt.Sprintf("%s/team/users", g.Config().Api.Uic) req := httplib.Get(uri).SetTimeout(2*time.Second, 10*time.Second) req.Param("name", team) req.Param("token", g.Config().UicToken) var usersWrap UsersWrap err := req.ToJson(&usersWrap) if err != nil { log.Printf("curl %s fail: %v", uri, err) return nil } if usersWrap.Msg != "" { log.Printf("curl %s return msg: %v", uri, usersWrap.Msg) return nil } return usersWrap.Users }
func ReadLowEvent() { queues := g.Config().Redis.LowQueues if len(queues) == 0 { return } for { event, err := popEvent(queues) if err != nil { time.Sleep(time.Second) continue } consume(event, false) } }
func CurlAction(id int) *Action { if id <= 0 { return nil } uri := fmt.Sprintf("%s/api/action/%d", g.Config().Api.Portal, id) req := httplib.Get(uri).SetTimeout(5*time.Second, 30*time.Second) var actionWrap ActionWrap err := req.ToJson(&actionWrap) if err != nil { log.Printf("curl %s fail: %v", uri, err) return nil } if actionWrap.Msg != "" { log.Printf("curl %s return msg: %v", uri, actionWrap.Msg) return nil } return actionWrap.Data }
func popEvent(queues []string) (*model.Event, error) { count := len(queues) params := make([]interface{}, count+1) for i := 0; i < count; i++ { params[i] = queues[i] } // set timeout 0 params[count] = 0 rc := g.RedisConnPool.Get() defer rc.Close() reply, err := redis.Strings(rc.Do("BRPOP", params...)) if err != nil { log.Printf("get alarm event from redis fail: %v", err) return nil, err } var event model.Event err = json.Unmarshal([]byte(reply[1]), &event) if err != nil { log.Printf("parse alarm event fail: %v", err) return nil, err } if g.Config().Debug { log.Println("======>>>>") log.Println(event.String()) } // save in memory. display in dashboard g.Events.Put(&event) return &event, nil }