func readFiles(fileIdLineChan chan string, s *stat) { defer wait.Done() for fid := range fileIdLineChan { if len(fid) == 0 { continue } if fid[0] == '#' { continue } if *cmdBenchmark.IsDebug { fmt.Printf("reading file %s\n", fid) } parts := strings.SplitN(fid, ",", 2) vid := parts[0] start := time.Now() ret, err := operation.Lookup(*b.server, vid) if err != nil || len(ret.Locations) == 0 { s.failed++ println("!!!! volume id ", vid, " location not found!!!!!") continue } server := ret.Locations[rand.Intn(len(ret.Locations))].Url url := "http://" + server + "/" + fid if bytesRead, err := util.Get(url); err == nil { s.completed++ s.transferred += int64(len(bytesRead)) readStats.addSample(time.Now().Sub(start)) } else { s.failed++ fmt.Printf("Failed to read %s error:%v\n", url, err) } } }
func (ms *MasterServer) collectionDeleteHandler(w http.ResponseWriter, r *http.Request) { collection, ok := ms.Topo.GetCollection(r.FormValue("collection")) if !ok { writeJsonError(w, r, http.StatusBadRequest, fmt.Errorf("collection %s does not exist", r.FormValue("collection"))) return } for _, server := range collection.ListVolumeServers() { _, err := util.Get("http://" + server.Ip + ":" + strconv.Itoa(server.Port) + "/admin/delete_collection?collection=" + r.FormValue("collection")) if err != nil { writeJsonError(w, r, http.StatusInternalServerError, err) return } } ms.Topo.DeleteCollection(r.FormValue("collection")) }
func ListMasters(server string) ([]string, error) { jsonBlob, err := util.Get("http://" + server + "/cluster/status") glog.V(2).Info("list masters result :", string(jsonBlob)) if err != nil { return nil, err } var ret ClusterStatusResult err = json.Unmarshal(jsonBlob, &ret) if err != nil { return nil, err } masters := ret.Peers if ret.IsLeader { masters = append(masters, ret.Leader) } return masters, nil }