github.com/justinjmoses/evergreen@v0.0.0-20170530173719-1d50e381ff0d/service/event_log.go (about) 1 package service 2 3 import ( 4 "fmt" 5 "net/http" 6 "strings" 7 8 "github.com/evergreen-ci/evergreen/db" 9 "github.com/evergreen-ci/evergreen/model/event" 10 "github.com/evergreen-ci/evergreen/model/user" 11 "github.com/gorilla/mux" 12 ) 13 14 func (uis *UIServer) fullEventLogs(w http.ResponseWriter, r *http.Request) { 15 resourceType := strings.ToUpper(mux.Vars(r)["resource_type"]) 16 resourceId := mux.Vars(r)["resource_id"] 17 u := GetUser(r) 18 projCtx := MustHaveProjectContext(r) 19 20 var eventQuery db.Q 21 switch resourceType { 22 case event.ResourceTypeTask: 23 eventQuery = event.MostRecentTaskEvents(resourceId, 100) 24 case event.ResourceTypeScheduler: 25 eventQuery = event.RecentSchedulerEvents(resourceId, 500) 26 case event.ResourceTypeHost: 27 if u == nil { 28 uis.RedirectToLogin(w, r) 29 return 30 } 31 eventQuery = event.MostRecentHostEvents(resourceId, 5000) 32 case event.ResourceTypeDistro: 33 if u == nil { 34 uis.RedirectToLogin(w, r) 35 return 36 } 37 eventQuery = event.MostRecentDistroEvents(resourceId, 200) 38 default: 39 http.Error(w, fmt.Sprintf("Unknown resource: %v", resourceType), http.StatusBadRequest) 40 return 41 } 42 43 loggedEvents, err := event.Find(event.AllLogCollection, eventQuery) 44 if err != nil { 45 uis.LoggedError(w, r, http.StatusInternalServerError, err) 46 return 47 } 48 49 uis.WriteHTML(w, http.StatusOK, struct { 50 ProjectData projectContext 51 User *user.DBUser 52 Data []event.Event 53 }{projCtx, u, loggedEvents}, "base", "event_log.html", "base_angular.html") 54 }