package handlers import ( "fmt" "net/http" ) func (zr *Handlers) handleRebootWorkerPool(resp http.ResponseWriter, req *http.Request) { resp.Header().Set("Refresh", "2; url=/") zr.log.Infof("Rebooting worker pool") zr.workerPool.Release() zr.workerPool.Reboot() fmt.Fprint(resp, "Worker pool rebooted") } func (zr *Handlers) handleRebootRefreshWorker(resp http.ResponseWriter, req *http.Request) { resp.Header().Set("Refresh", "2; url=/") zr.log.Infof("Rebooting refresh worker") zr.torMgr.RefreshWorkerKillSwitch <- struct{}{} zr.torMgr.StartRefreshJob() fmt.Fprint(resp, "Refresh worker rebooted") } func (zr *Handlers) handleRebootRepairWorker(resp http.ResponseWriter, req *http.Request) { resp.Header().Set("Refresh", "2; url=/") zr.log.Infof("Rebooting repair worker") zr.torMgr.RepairWorkerKillSwitch <- struct{}{} zr.torMgr.StartRepairJob() fmt.Fprint(resp, "Repair worker rebooted") } func (zr *Handlers) handleRemountDownloads(resp http.ResponseWriter, req *http.Request) { resp.Header().Set("Refresh", "2; url=/") zr.log.Infof("Triggering remount of downloads") zr.torMgr.RemountTrigger <- struct{}{} fmt.Fprint(resp, "Triggered remount of downloads") } func (zr *Handlers) handleDumpTorrents(resp http.ResponseWriter, req *http.Request) { resp.Header().Set("Refresh", "2; url=/") zr.log.Infof("Triggering dump of torrents") zr.torMgr.DumpTrigger <- struct{}{} fmt.Fprint(resp, "Triggered dump of torrents") } func (zr *Handlers) handleAnalyzeTorrents(resp http.ResponseWriter, req *http.Request) { resp.Header().Set("Refresh", "2; url=/") zr.log.Infof("Triggered analysis of all torrents") zr.torMgr.AnalyzeTrigger <- struct{}{} fmt.Fprint(resp, "Triggered analysis of all torrents") } func (zr *Handlers) handleTriggerRepairAll(resp http.ResponseWriter, req *http.Request) { resp.Header().Set("Refresh", "2; url=/") zr.log.Infof("Triggering repair of all torrents") zr.torMgr.EnqueueForRepair(nil) fmt.Fprint(resp, "Triggered repair of all torrents") } func (zr *Handlers) handleResetRepairState(resp http.ResponseWriter, req *http.Request) { resp.Header().Set("Refresh", "2; url=/") zr.log.Infof("Resetting repair state of all torrents") zr.torMgr.ResetRepairState() fmt.Fprint(resp, "Repair state of all torrents has been reset") }