github.com/Heebron/moby@v0.0.0-20221111184709-6eab4f55faf7/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" 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 types.CheckpointCreateOptions 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"], types.CheckpointListOptions{ 36 CheckpointDir: r.Form.Get("dir"), 37 }) 38 39 if err != nil { 40 return err 41 } 42 43 return httputils.WriteJSON(w, http.StatusOK, checkpoints) 44 } 45 46 func (s *checkpointRouter) deleteContainerCheckpoint(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error { 47 if err := httputils.ParseForm(r); err != nil { 48 return err 49 } 50 51 err := s.backend.CheckpointDelete(vars["name"], types.CheckpointDeleteOptions{ 52 CheckpointDir: r.Form.Get("dir"), 53 CheckpointID: vars["checkpoint"], 54 }) 55 56 if err != nil { 57 return err 58 } 59 60 w.WriteHeader(http.StatusNoContent) 61 return nil 62 }