github.com/rsampaio/docker@v0.7.2-0.20150827203920-fdc73cc3fc31/api/server/volume.go (about)

     1  package server
     2  
     3  import (
     4  	"encoding/json"
     5  	"net/http"
     6  
     7  	"github.com/docker/docker/api/types"
     8  	"github.com/docker/docker/pkg/version"
     9  )
    10  
    11  func (s *Server) getVolumesList(version version.Version, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
    12  	if err := parseForm(r); err != nil {
    13  		return err
    14  	}
    15  
    16  	volumes, err := s.daemon.Volumes(r.Form.Get("filters"))
    17  	if err != nil {
    18  		return err
    19  	}
    20  	return writeJSON(w, http.StatusOK, &types.VolumesListResponse{Volumes: volumes})
    21  }
    22  
    23  func (s *Server) getVolumeByName(version version.Version, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
    24  	if err := parseForm(r); err != nil {
    25  		return err
    26  	}
    27  
    28  	v, err := s.daemon.VolumeInspect(vars["name"])
    29  	if err != nil {
    30  		return err
    31  	}
    32  	return writeJSON(w, http.StatusOK, v)
    33  }
    34  
    35  func (s *Server) postVolumesCreate(version version.Version, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
    36  	if err := parseForm(r); err != nil {
    37  		return err
    38  	}
    39  
    40  	if err := checkForJSON(r); err != nil {
    41  		return err
    42  	}
    43  
    44  	var req types.VolumeCreateRequest
    45  	if err := json.NewDecoder(r.Body).Decode(&req); err != nil {
    46  		return err
    47  	}
    48  
    49  	volume, err := s.daemon.VolumeCreate(req.Name, req.Driver, req.DriverOpts)
    50  	if err != nil {
    51  		return err
    52  	}
    53  	return writeJSON(w, http.StatusCreated, volume)
    54  }
    55  
    56  func (s *Server) deleteVolumes(version version.Version, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
    57  	if err := parseForm(r); err != nil {
    58  		return err
    59  	}
    60  	if err := s.daemon.VolumeRm(vars["name"]); err != nil {
    61  		return err
    62  	}
    63  	w.WriteHeader(http.StatusNoContent)
    64  	return nil
    65  }