package cluster import ( goContext "context" "fmt" "github.com/KubeOperator/kubepi/internal/service/v1/common" "github.com/KubeOperator/kubepi/pkg/kubernetes" "github.com/kataras/iris/v12" "github.com/kataras/iris/v12/context" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) func (h *Handler) ListNamespace() iris.Handler { return func(ctx *context.Context) { name := ctx.Params().GetString("name") c, err := h.clusterService.Get(name, common.DBOptions{}) if err != nil { ctx.StatusCode(iris.StatusInternalServerError) ctx.Values().Set("message", fmt.Sprintf("get cluster failed: %s", err.Error())) return } k := kubernetes.NewKubernetes(c) client, err := k.Client() if err != nil { ctx.StatusCode(iris.StatusInternalServerError) ctx.Values().Set("message", fmt.Sprintf("get k8s client failed: %s", err.Error())) return } ns, err := client.CoreV1().Namespaces().List(goContext.TODO(), metav1.ListOptions{}) if err != nil { ctx.StatusCode(iris.StatusInternalServerError) ctx.Values().Set("message", fmt.Sprintf("get k8s client failed: %s", err.Error())) return } ctx.Values().Set("data", ns.Items) } }