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
+34
View File
@@ -19,7 +19,9 @@ package v1
import (
"encoding/json"
"fmt"
"net/url"
apiv1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
fv1 "github.com/fission/fission/pkg/apis/core/v1"
@@ -38,6 +40,7 @@ type (
Update(f *fv1.Function) (*metav1.ObjectMeta, error)
Delete(m *metav1.ObjectMeta) error
List(functionNamespace string) ([]fv1.Function, error)
ListPods(m *metav1.ObjectMeta) ([]apiv1.Pod, error)
}
Function struct {
@@ -176,3 +179,34 @@ func (c *Function) List(functionNamespace string) ([]fv1.Function, error) {
return funcs, nil
}
func (c *Function) ListPods(m *metav1.ObjectMeta) ([]apiv1.Pod, error) {
relativeUrl := fmt.Sprintf("functions/%s/pods", m.Name)
values := url.Values{}
if len(m.Labels) != 0 {
if fns, ok := m.Labels[fv1.FUNCTION_NAMESPACE]; ok && len(fns) != 0 {
values.Add(fv1.FUNCTION_NAMESPACE, fns)
}
}
relativeUrl = fmt.Sprintf("%s?%s", relativeUrl, values.Encode())
resp, err := c.client.Get(relativeUrl)
if err != nil {
return nil, err
}
defer resp.Body.Close()
body, err := handleResponse(resp)
if err != nil {
return nil, err
}
pods := make([]apiv1.Pod, 0)
err = json.Unmarshal(body, &pods)
if err != nil {
return nil, err
}
return pods, nil
}