func (vd *volApi) snap(w http.ResponseWriter, r *http.Request) { var snapReq api.SnapCreateRequest var snapRes api.SnapCreateResponse method := "snap" if err := json.NewDecoder(r.Body).Decode(&snapReq); err != nil { vd.sendError(vd.name, method, w, err.Error(), http.StatusBadRequest) return } d, err := volume.Get(vd.name) if err != nil { notFound(w, r) return } vd.logRequest(method, string(snapReq.Id)).Infoln("") id, err := d.Snapshot(snapReq.Id, snapReq.Readonly, snapReq.Locator) snapRes.VolumeCreateResponse = &api.VolumeCreateResponse{ Id: id, VolumeResponse: &api.VolumeResponse{ Error: responseStatus(err), }, } json.NewEncoder(w).Encode(&snapRes) }
func (vd *volDriver) snap(w http.ResponseWriter, r *http.Request) { var snapReq api.SnapCreateRequest var snapRes api.SnapCreateResponse method := "snap" if err := json.NewDecoder(r.Body).Decode(&snapReq); err != nil { vd.sendError(vd.name, method, w, err.Error(), http.StatusBadRequest) return } d, err := volume.Get(vd.name) if err != nil { vd.notFound(w, r) return } ID, err := d.Snapshot(snapReq.ID, snapReq.Labels) snapRes.VolumeResponse = api.VolumeResponse{Error: responseStatus(err)} snapRes.ID = ID json.NewEncoder(w).Encode(&snapRes) }