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