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  }