updated logic

pull/1097/head
Rhythm 2022-02-25 09:22:36 +05:30
parent b64811a991
commit a8e8d2da06
2 changed files with 5 additions and 9 deletions

View File

@ -547,25 +547,21 @@ func apiAllServicesStatusHandler(w http.ResponseWriter, r *http.Request) {
var srvs []services.ServiceWithDowntime var srvs []services.ServiceWithDowntime
m := make(map[int64]downtimes.Downtime) m := make(map[int64]downtimes.Downtime)
if t == "" { if t == "" {
timeNow := time.Now() dtime := downtimes.FindDowntime2()
dtime:=downtimes.FindDowntime2()
for i := 0; i < len(dtime); i++ { for i := 0; i < len(dtime); i++ {
downtimeVar := dtime[i] downtimeVar := dtime[i]
serviceVar,_ := services.Find(downtimeVar.ServiceId) serviceVar, _ := services.Find(downtimeVar.ServiceId)
checkInterval := time.Duration(serviceVar.Interval) if serviceVar.Online == false {
timeInstance := timeNow.Add(-time.Second * checkInterval)
if downtimeVar.End == nil || timeInstance.Before(*(downtimeVar.End)) || timeInstance.Equal(*(downtimeVar.End)) {
m[downtimeVar.ServiceId] = downtimeVar m[downtimeVar.ServiceId] = downtimeVar
} }
} }
}else{ } else {
dtime := findAllDowntimes(t) dtime := findAllDowntimes(t)
for i := 0; i < len(dtime); i += 1 { for i := 0; i < len(dtime); i += 1 {
m[dtime[i].ServiceId] = dtime[i] m[dtime[i].ServiceId] = dtime[i]
} }
} }
for _, v := range services.AllInOrder() { for _, v := range services.AllInOrder() {
var serviceDowntimeVar services.ServiceWithDowntime var serviceDowntimeVar services.ServiceWithDowntime
serviceDowntimeVar.Service = v serviceDowntimeVar.Service = v

View File

@ -67,7 +67,7 @@ func FindDowntime(timeVar time.Time) []Downtime {
return downtime return downtime
} }
func FindDowntime2()[]Downtime { func FindDowntime2() []Downtime {
var downtime []Downtime var downtime []Downtime
db.Raw("SELECT DISTINCT ON (downtimes.service) downtimes.* FROM downtimes ORDER BY service ASC, start DESC;").Scan(&downtime) db.Raw("SELECT DISTINCT ON (downtimes.service) downtimes.* FROM downtimes ORDER BY service ASC, start DESC;").Scan(&downtime)
//db.Select("downtimes.*").Joins("left join downtimes as d2 on d2.service = downtimes.service AND downtimes.start < d2.start").Where("d2.end = ?",nil).Find(&downtime) //db.Select("downtimes.*").Joins("left join downtimes as d2 on d2.service = downtimes.service AND downtimes.start < d2.start").Where("d2.end = ?",nil).Find(&downtime)