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  }