feature: Added command to list pods managed by fission for environment/function (#2207)

This commit is contained in:
Pradeep Lakshmi Narasimha
2021-10-10 10:52:42 +05:30
committed by GitHub
parent e930a2922c
commit c9da527d37
16 changed files with 403 additions and 32 deletions
+43
View File
@@ -27,8 +27,10 @@ import (
"github.com/gorilla/mux"
"go.uber.org/zap"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/labels"
fv1 "github.com/fission/fission/pkg/apis/core/v1"
v1 "github.com/fission/fission/pkg/apis/core/v1"
ferror "github.com/fission/fission/pkg/error"
)
@@ -237,3 +239,44 @@ func (a *API) EnvironmentApiDelete(w http.ResponseWriter, r *http.Request) {
a.respondWithSuccess(w, []byte(""))
}
// EnvironmentApiPodList: Get list of pods currently available in environment
func (a *API) EnvironmentApiPodList(w http.ResponseWriter, r *http.Request) {
vars := mux.Vars(r)
envName, ok := vars["environment"]
if !ok {
a.respondWithError(w, ferror.MakeError(http.StatusInternalServerError, "Error retrieving environment name"))
return
}
// label selector
selector := map[string]string{
fv1.ENVIRONMENT_NAME: envName,
}
ens := a.extractQueryParamFromRequest(r, v1.ENVIRONMENT_NAMESPACE)
if len(ens) != 0 {
selector[fv1.ENVIRONMENT_NAMESPACE] = ens
}
et := a.extractQueryParamFromRequest(r, v1.EXECUTOR_TYPE)
if len(et) != 0 {
selector[fv1.EXECUTOR_TYPE] = et
}
pods, err := a.kubernetesClient.CoreV1().Pods(metav1.NamespaceAll).List(r.Context(), metav1.ListOptions{
LabelSelector: labels.Set(selector).AsSelector().String(),
})
if err != nil {
a.respondWithError(w, err)
return
}
resp, err := json.Marshal(pods.Items)
if err != nil {
a.respondWithError(w, err)
return
}
a.respondWithSuccess(w, resp)
}