func downloadServiceStateLogs(w *rest.ResponseWriter, r *rest.Request, client *node.ControlClient) { serviceStateID, err := url.QueryUnescape(r.PathParam("serviceStateId")) if err != nil { w.WriteHeader(http.StatusInternalServerError) w.Write([]byte(fmt.Sprintf("Bad Request: %v", err))) return } serviceID, err := url.QueryUnescape(r.PathParam("serviceId")) if err != nil { w.WriteHeader(http.StatusInternalServerError) w.Write([]byte(fmt.Sprintf("Bad Request: %v", err))) return } request := dao.ServiceStateRequest{serviceID, serviceStateID} var logs string err = client.GetServiceStateLogs(request, &logs) if err != nil { glog.Errorf("Unexpected error getting service state logs: %v", err) w.WriteHeader(http.StatusInternalServerError) w.Write([]byte(fmt.Sprintf("Internal Server Error: %v", err))) return } var filename = serviceID + time.Now().Format("2006-01-02-15-04-05") + ".log" w.Header().Set("Content-Disposition", "attachment; filename="+filename) w.Header().Set("Content-Type", r.Header.Get("Content-Type")) w.Write([]byte(logs)) }
func restGetServiceStateLogs(w *rest.ResponseWriter, r *rest.Request, client *node.ControlClient) { serviceStateID, err := url.QueryUnescape(r.PathParam("serviceStateId")) if err != nil { restBadRequest(w, err) return } serviceID, err := url.QueryUnescape(r.PathParam("serviceId")) if err != nil { restBadRequest(w, err) return } request := dao.ServiceStateRequest{serviceID, serviceStateID} var logs string err = client.GetServiceStateLogs(request, &logs) if err != nil { glog.Errorf("Unexpected error getting service state logs: %v", err) restServerError(w, err) return } w.WriteJson(&simpleResponse{logs, servicesLinks()}) }