github.com/vieux/docker@v0.6.3-0.20161004191708-e097c2a938c7/api/server/router/checkpoint/checkpoint_routes.go (about) 1 // +build experimental 2 3 package checkpoint 4 5 import ( 6 "encoding/json" 7 "net/http" 8 9 "github.com/docker/docker/api/server/httputils" 10 "github.com/docker/docker/api/types" 11 "golang.org/x/net/context" 12 ) 13 14 func (s *checkpointRouter) postContainerCheckpoint(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error { 15 if err := httputils.ParseForm(r); err != nil { 16 return err 17 } 18 19 var options types.CheckpointCreateOptions 20 21 decoder := json.NewDecoder(r.Body) 22 if err := decoder.Decode(&options); err != nil { 23 return err 24 } 25 26 err := s.backend.CheckpointCreate(vars["name"], options) 27 if err != nil { 28 return err 29 } 30 31 w.WriteHeader(http.StatusCreated) 32 return nil 33 } 34 35 func (s *checkpointRouter) getContainerCheckpoints(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error { 36 if err := httputils.ParseForm(r); err != nil { 37 return err 38 } 39 40 checkpoints, err := s.backend.CheckpointList(vars["name"]) 41 if err != nil { 42 return err 43 } 44 45 return httputils.WriteJSON(w, http.StatusOK, checkpoints) 46 } 47 48 func (s *checkpointRouter) deleteContainerCheckpoint(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error { 49 if err := httputils.ParseForm(r); err != nil { 50 return err 51 } 52 53 err := s.backend.CheckpointDelete(vars["name"], vars["checkpoint"]) 54 if err != nil { 55 return err 56 } 57 58 w.WriteHeader(http.StatusNoContent) 59 return nil 60 }