func getImages(eng *engine.Engine, version version.Version, w http.ResponseWriter, r *http.Request, vars map[string]string) error { if err := r.ParseForm(); err != nil { return nil } job := eng.Job("images", r.Form.Get("all")) stdoutBuf := bytes.NewBuffer(nil) job.Stdout.Add(stdoutBuf) if err := job.Run(); err != nil { return err } str := engine.Tail(stdoutBuf, 1) type response struct { Images []string `json:"imagesList"` } var res response if err := json.Unmarshal([]byte(str), &res); err != nil { return err } var env engine.Env env.SetList("imagesList", res.Images) return writeJSONEnv(w, http.StatusOK, env) }
func postImagesRemove(eng *engine.Engine, version version.Version, w http.ResponseWriter, r *http.Request, vars map[string]string) error { if err := r.ParseForm(); err != nil { return nil } glog.V(1).Infof("Image(%s) is process to be removed", r.Form.Get("imageId")) var ( force string = "yes" noprune string = "yes" ) if r.Form.Get("force") != "" { force = r.Form.Get("force") } if r.Form.Get("noprune") != "" { noprune = r.Form.Get("noprune") } job := eng.Job("imagesremove", r.Form.Get("imageId"), force, noprune) stdoutBuf := bytes.NewBuffer(nil) job.Stdout.Add(stdoutBuf) if err := job.Run(); err != nil { return err } str := engine.Tail(stdoutBuf, 1) type response struct { Images []string `json:"imagesList"` } var res response if err := json.Unmarshal([]byte(str), &res); err != nil { return err } var env engine.Env env.SetList("imagesList", res.Images) return writeJSONEnv(w, http.StatusOK, env) }
func getList(eng *engine.Engine, version version.Version, w http.ResponseWriter, r *http.Request, vars map[string]string) error { if err := parseForm(r); err != nil { return err } item := r.Form.Get("item") auxiliary := r.Form.Get("auxiliary") pod := r.Form.Get("pod") vm := r.Form.Get("vm") glog.V(1).Infof("List type is %s, specified pod: [%s], specified vm: [%s], list auxiliary pod: %s", item, pod, vm, auxiliary) job := eng.Job("list", item, pod, vm, auxiliary) stdoutBuf := bytes.NewBuffer(nil) job.Stdout.Add(stdoutBuf) if err := job.Run(); err != nil { return err } str := engine.Tail(stdoutBuf, 1) type listResponse struct { Item string `json:"item"` PodData []string `json:"podData"` VmData []string `json:"vmData"` CData []string `json:"cData"` } var res listResponse if err := json.Unmarshal([]byte(str), &res); err != nil { return err } var env engine.Env env.Set("Item", res.Item) if res.Item == "pod" { env.SetList("podData", res.PodData) } if res.Item == "vm" { env.SetList("vmData", res.VmData) } if res.Item == "container" { env.SetList("cData", res.CData) } return writeJSONEnv(w, http.StatusOK, env) }