func (uis *UIServer) hostPage(w http.ResponseWriter, r *http.Request) { projCtx := MustHaveProjectContext(r) vars := mux.Vars(r) id := vars["host_id"] h, err := host.FindOne(host.ById(id)) if err != nil { uis.LoggedError(w, r, http.StatusInternalServerError, err) return } if h == nil { http.Error(w, "Host not found", http.StatusNotFound) return } events, err := event.Find(event.MostRecentHostEvents(id, 50)) if err != nil { uis.LoggedError(w, r, http.StatusInternalServerError, err) return } flashes := PopFlashes(uis.CookieStore, r, w) uis.WriteHTML(w, http.StatusOK, struct { Flashes []interface{} Events []event.Event Host *host.Host User *user.DBUser ProjectData projectContext }{flashes, events, h, GetUser(r), projCtx}, "base", "host.html", "base_angular.html", "menu.html") }
func (uis *UIServer) taskLog(w http.ResponseWriter, r *http.Request) { projCtx := MustHaveProjectContext(r) if projCtx.Task == nil { http.Error(w, "Not found", http.StatusNotFound) return } execution, err := strconv.Atoi(mux.Vars(r)["execution"]) if err != nil { http.Error(w, "Invalid execution number", http.StatusBadRequest) return } logType := r.FormValue("type") wrapper := &taskLogsWrapper{} if logType == "EV" { loggedEvents, err := event.Find(event.MostRecentTaskEvents(projCtx.Task.Id, DefaultLogMessages)) if err != nil { http.Error(w, err.Error(), http.StatusInternalServerError) return } uis.WriteJSON(w, http.StatusOK, loggedEvents) return } else { taskLogs, err := getTaskLogs(projCtx.Task.Id, execution, DefaultLogMessages, logType, GetUser(r) != nil) if err != nil { http.Error(w, err.Error(), http.StatusInternalServerError) return } wrapper.LogMessages = taskLogs uis.WriteJSON(w, http.StatusOK, wrapper) } }
func (uis *UIServer) fullEventLogs(w http.ResponseWriter, r *http.Request) { resourceType := strings.ToUpper(mux.Vars(r)["resource_type"]) resourceId := mux.Vars(r)["resource_id"] projCtx := MustHaveProjectContext(r) var eventQuery db.Q switch resourceType { case event.ResourceTypeTask: eventQuery = event.MostRecentTaskEvents(resourceId, 100) case event.ResourceTypeHost: eventQuery = event.MostRecentHostEvents(resourceId, 100) default: http.Error(w, fmt.Sprintf("Unknown resource: %v", resourceType), http.StatusBadRequest) return } loggedEvents, err := event.Find(eventQuery) if err != nil { uis.LoggedError(w, r, http.StatusInternalServerError, err) return } uis.WriteHTML(w, http.StatusOK, struct { ProjectData projectContext User *user.DBUser Data []event.Event }{projCtx, GetUser(r), loggedEvents}, "base", "event_log.html", "base_angular.html") }
func (uis *UIServer) getSchedulerLogs(w http.ResponseWriter, r *http.Request) { distroId := mux.Vars(r)["distro_id"] loggedEvents, err := event.Find(event.RecentSchedulerEvents(distroId, 500)) if err != nil { uis.LoggedError(w, r, http.StatusInternalServerError, err) return } uis.WriteJSON(w, http.StatusOK, loggedEvents) }