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 }