github.com/pf-qiu/concourse/v6@v6.7.3-0.20201207032516-1f455d73275f/atc/api/workerserver/retire.go (about)

     1  package workerserver
     2  
     3  import "net/http"
     4  
     5  func (s *Server) RetireWorker(w http.ResponseWriter, r *http.Request) {
     6  	logger := s.logger.Session("retiring-worker")
     7  	workerName := r.FormValue(":worker_name")
     8  
     9  	worker, found, err := s.dbWorkerFactory.GetWorker(workerName)
    10  
    11  	if err != nil {
    12  		logger.Error("failed-finding-worker-to-retire", err)
    13  		w.WriteHeader(http.StatusInternalServerError)
    14  		return
    15  	}
    16  
    17  	if !found {
    18  		logger.Error("failed-to-find-worker", err)
    19  		w.WriteHeader(http.StatusNotFound)
    20  		return
    21  	}
    22  
    23  	err = worker.Retire()
    24  
    25  	if err != nil {
    26  		logger.Error("failed-to-retire-worker", err)
    27  		w.WriteHeader(http.StatusInternalServerError)
    28  		return
    29  	}
    30  
    31  	w.WriteHeader(http.StatusOK)
    32  }