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.PickForRead().Url if bytesRead, err := util.Get(server, "/"+fid, nil); err == nil { s.completed++ s.transferred += int64(len(bytesRead)) readStats.addSample(time.Now().Sub(start)) } else { s.failed++ fmt.Printf("Failed to read %s/%s error:%v\n", server, fid, 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(net.JoinHostPort(server.Ip, strconv.Itoa(server.Port)), "/admin/delete_collection", url.Values{"collection": r.Form["collection"]}) if err != nil { writeJsonError(w, r, http.StatusInternalServerError, err) return } } ms.Topo.DeleteCollection(r.FormValue("collection")) }
func (ms *MasterServer) collectionDeleteHandler(w http.ResponseWriter, r *http.Request) { collection, ok := ms.Topo.FindCollection(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 }
func checkMaster(masterNode string) error { statUrl := "http://" + masterNode + "/stats" glog.V(4).Infof("Connecting to %s ...", statUrl) _, e := util.Get(statUrl) return e }