mirror of
https://github.com/komodorio/helm-dashboard.git
synced 2026-03-24 03:38:04 +00:00
* Repo block shows * repository update * API progress * Fix problem of stopping after uninstall * Upgrade preview backend * Upgrade preview displays fine * Install flow works * Weird check for updates * Update action * Fix action * Still trying * Fix lint error * Refactor out helm handlers * refactor out kube handlers * save * Change icon collection * Reworked upgrade check
70 lines
1.8 KiB
Go
70 lines
1.8 KiB
Go
package dashboard
|
|
|
|
import (
|
|
"github.com/gin-gonic/gin"
|
|
"k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
v12 "k8s.io/apimachinery/pkg/apis/testapigroup/v1"
|
|
"net/http"
|
|
)
|
|
|
|
type KubeHandler struct {
|
|
Data *DataLayer
|
|
}
|
|
|
|
func (h *KubeHandler) GetContexts(c *gin.Context) {
|
|
res, err := h.Data.ListContexts()
|
|
if err != nil {
|
|
_ = c.AbortWithError(http.StatusInternalServerError, err)
|
|
return
|
|
}
|
|
c.IndentedJSON(http.StatusOK, res)
|
|
}
|
|
|
|
func (h *KubeHandler) GetResourceInfo(c *gin.Context) {
|
|
qp, err := getQueryProps(c, false)
|
|
if err != nil {
|
|
_ = c.AbortWithError(http.StatusBadRequest, err)
|
|
return
|
|
}
|
|
|
|
res, err := h.Data.GetResource(qp.Namespace, &GenericResource{
|
|
TypeMeta: v1.TypeMeta{Kind: c.Param("kind")},
|
|
ObjectMeta: v1.ObjectMeta{Name: qp.Name},
|
|
})
|
|
if err != nil {
|
|
_ = c.AbortWithError(http.StatusInternalServerError, err)
|
|
return
|
|
}
|
|
|
|
if res.Status.Phase == "Active" || res.Status.Phase == "Error" {
|
|
_ = res.Name + ""
|
|
} else if res.Status.Phase == "" && len(res.Status.Conditions) > 0 {
|
|
res.Status.Phase = v12.CarpPhase(res.Status.Conditions[len(res.Status.Conditions)-1].Type)
|
|
res.Status.Message = res.Status.Conditions[len(res.Status.Conditions)-1].Message
|
|
res.Status.Reason = res.Status.Conditions[len(res.Status.Conditions)-1].Reason
|
|
if res.Status.Conditions[len(res.Status.Conditions)-1].Status == "False" {
|
|
res.Status.Phase = "Not" + res.Status.Phase
|
|
}
|
|
} else if res.Status.Phase == "" {
|
|
res.Status.Phase = "Exists"
|
|
}
|
|
|
|
c.IndentedJSON(http.StatusOK, res)
|
|
}
|
|
|
|
func (h *KubeHandler) Describe(c *gin.Context) {
|
|
qp, err := getQueryProps(c, false)
|
|
if err != nil {
|
|
_ = c.AbortWithError(http.StatusBadRequest, err)
|
|
return
|
|
}
|
|
|
|
res, err := h.Data.DescribeResource(qp.Namespace, c.Param("kind"), qp.Name)
|
|
if err != nil {
|
|
_ = c.AbortWithError(http.StatusInternalServerError, err)
|
|
return
|
|
}
|
|
|
|
c.String(http.StatusOK, res)
|
|
}
|