コード例 #1
0
ファイル: volume.go プロジェクト: portworx/openstorage
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)
}