func (s *LogSuite) TestLogRemoveByApp(c *gocheck.C) { a := app.App{ Name: "words", Teams: []string{s.team.Name}, } err := s.conn.Apps().Insert(a) c.Assert(err, gocheck.IsNil) defer s.conn.Apps().Remove(bson.M{"name": a.Name}) err = a.Log("last log msg", "tsuru") c.Assert(err, gocheck.IsNil) a2 := app.App{Name: "words2"} err = s.conn.Apps().Insert(a2) c.Assert(err, gocheck.IsNil) defer s.conn.Apps().Remove(bson.M{"name": a2.Name}) err = a2.Log("last log msg2", "tsuru") c.Assert(err, gocheck.IsNil) url := fmt.Sprintf("/logs?app=%s", a.Name) request, err := http.NewRequest("DELETE", url, nil) c.Assert(err, gocheck.IsNil) recorder := httptest.NewRecorder() err = logRemove(recorder, request, s.token) c.Assert(err, gocheck.IsNil) count, err := s.conn.Logs().Find(nil).Count() c.Assert(err, gocheck.IsNil) c.Assert(count, gocheck.Equals, 1) }
func addLog(w http.ResponseWriter, r *http.Request, t *auth.Token) error { queryValues := r.URL.Query() app := app.App{Name: queryValues.Get(":app")} err := app.Get() if err != nil { return err } defer r.Body.Close() body, err := ioutil.ReadAll(r.Body) if err != nil { return err } var logs []string err = json.Unmarshal(body, &logs) source := queryValues.Get("source") if len(source) == 0 { source = "app" } for _, log := range logs { err := app.Log(log, source) if err != nil { return err } } w.WriteHeader(http.StatusOK) return nil }
func (s *LogSuite) TestLogRemoveAll(c *gocheck.C) { a := app.App{Name: "words"} request, err := http.NewRequest("DELETE", "/logs", nil) c.Assert(err, gocheck.IsNil) recorder := httptest.NewRecorder() err = s.conn.Apps().Insert(a) c.Assert(err, gocheck.IsNil) defer s.conn.Apps().Remove(bson.M{"name": a.Name}) err = a.Log("last log msg", "tsuru") c.Assert(err, gocheck.IsNil) err = logRemove(recorder, request, s.token) c.Assert(err, gocheck.IsNil) count, err := s.conn.Logs().Find(nil).Count() c.Assert(err, gocheck.IsNil) c.Assert(count, gocheck.Equals, 0) }
func AddLogHandler(w http.ResponseWriter, r *http.Request) error { app := app.App{Name: r.URL.Query().Get(":name")} err := app.Get() if err != nil { return err } defer r.Body.Close() body, err := ioutil.ReadAll(r.Body) if err != nil { return err } var logs []string err = json.Unmarshal(body, &logs) for _, log := range logs { err := app.Log(log, "app") if err != nil { return err } } w.WriteHeader(http.StatusOK) return nil }