github.com/pf-qiu/concourse/v6@v6.7.3-0.20201207032516-1f455d73275f/atc/api/containerserver/list_destroying_containers.go (about) 1 package containerserver 2 3 import ( 4 "encoding/json" 5 "net/http" 6 7 "code.cloudfoundry.org/lager" 8 ) 9 10 func (s *Server) ListDestroyingContainers(w http.ResponseWriter, r *http.Request) { 11 workerName := r.URL.Query().Get("worker_name") 12 13 logger := s.logger.Session("list-destroying-containers", lager.Data{"worker": workerName}) 14 15 if workerName == "" { 16 logger.Info("no-worker-specified") 17 w.WriteHeader(http.StatusBadRequest) 18 return 19 } 20 21 containerHandles, err := s.containerRepository.FindDestroyingContainers(workerName) 22 if err != nil { 23 logger.Error("failed-to-find-destroying-worker", err) 24 w.WriteHeader(http.StatusInternalServerError) 25 return 26 } 27 28 logger.Debug("containers-to-destroy", lager.Data{"count": len(containerHandles)}) 29 30 w.Header().Set("Content-Type", "application/json") 31 err = json.NewEncoder(w).Encode(containerHandles) 32 if err != nil { 33 logger.Error("failed-to-marshall-container-handles-for-worker", err) 34 w.WriteHeader(http.StatusInternalServerError) 35 } 36 }