DKube v1.0
This commit is contained in:
		
							
								
								
									
										130
									
								
								controller/configmap.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										130
									
								
								controller/configmap.go
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,130 @@
 | 
			
		||||
package controller
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"dkube/service"
 | 
			
		||||
	"github.com/gin-gonic/gin"
 | 
			
		||||
	"github.com/wonderivan/logger"
 | 
			
		||||
	"net/http"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
var ConfigMap configMap
 | 
			
		||||
 | 
			
		||||
type configMap struct{}
 | 
			
		||||
 | 
			
		||||
func (c *configMap) GetConfigMaps(ctx *gin.Context) {
 | 
			
		||||
	params := new(struct {
 | 
			
		||||
		FilterName string `form:"filter_name"`
 | 
			
		||||
		Namespace  string `form:"namespace"`
 | 
			
		||||
		Page       int    `form:"page"`
 | 
			
		||||
		Limit      int    `form:"limit"`
 | 
			
		||||
	})
 | 
			
		||||
	if err := ctx.Bind(params); err != nil {
 | 
			
		||||
		logger.Error("Bind请求参数失败, " + err.Error())
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
			"msg":  err.Error(),
 | 
			
		||||
			"data": nil,
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	data, err := service.ConfigMap.GetConfigMaps(params.FilterName, params.Namespace, params.Limit, params.Page)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
			"msg":  err.Error(),
 | 
			
		||||
			"data": nil,
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	ctx.JSON(http.StatusOK, gin.H{
 | 
			
		||||
		"msg":  "获取ConfigMap列表成功",
 | 
			
		||||
		"data": data,
 | 
			
		||||
	})
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *configMap) GetConfigMapDetail(ctx *gin.Context) {
 | 
			
		||||
	params := new(struct {
 | 
			
		||||
		ConfigMapName string `form:"configmap_name"`
 | 
			
		||||
		Namespace     string `form:"namespace"`
 | 
			
		||||
	})
 | 
			
		||||
	if err := ctx.Bind(params); err != nil {
 | 
			
		||||
		logger.Error("Bind请求参数失败, " + err.Error())
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
			"msg":  err.Error(),
 | 
			
		||||
			"data": nil,
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	data, err := service.ConfigMap.GetConfigMapDetail(params.ConfigMapName, params.Namespace)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
			"msg":  err.Error(),
 | 
			
		||||
			"data": nil,
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	ctx.JSON(http.StatusOK, gin.H{
 | 
			
		||||
		"msg":  "获取ConfigMap详情成功",
 | 
			
		||||
		"data": data,
 | 
			
		||||
	})
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *configMap) DeleteConfigMap(ctx *gin.Context) {
 | 
			
		||||
	params := new(struct {
 | 
			
		||||
		ConfigMapName string `json:"configmap_name"`
 | 
			
		||||
		Namespace     string `json:"namespace"`
 | 
			
		||||
	})
 | 
			
		||||
 | 
			
		||||
	if err := ctx.ShouldBindJSON(params); err != nil {
 | 
			
		||||
		logger.Error("Bind请求参数失败, " + err.Error())
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
			"msg":  err.Error(),
 | 
			
		||||
			"data": nil,
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	err := service.ConfigMap.DeleteConfigMap(params.ConfigMapName, params.Namespace)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
			"msg":  err.Error(),
 | 
			
		||||
			"data": nil,
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	ctx.JSON(http.StatusOK, gin.H{
 | 
			
		||||
		"msg":  "删除ConfigMap成功",
 | 
			
		||||
		"data": nil,
 | 
			
		||||
	})
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *configMap) UpdateConfigMap(ctx *gin.Context) {
 | 
			
		||||
	params := new(struct {
 | 
			
		||||
		Namespace string `json:"namespace"`
 | 
			
		||||
		Content   string `json:"content"`
 | 
			
		||||
	})
 | 
			
		||||
 | 
			
		||||
	if err := ctx.ShouldBindJSON(params); err != nil {
 | 
			
		||||
		logger.Error("Bind请求参数失败, " + err.Error())
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
			"msg":  err.Error(),
 | 
			
		||||
			"data": nil,
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	err := service.ConfigMap.UpdateConfigMap(params.Namespace, params.Content)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
			"msg":  err.Error(),
 | 
			
		||||
			"data": nil,
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	ctx.JSON(http.StatusOK, gin.H{
 | 
			
		||||
		"msg":  "更新ConfigMap成功",
 | 
			
		||||
		"data": nil,
 | 
			
		||||
	})
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										130
									
								
								controller/daemonset.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										130
									
								
								controller/daemonset.go
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,130 @@
 | 
			
		||||
package controller
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"dkube/service"
 | 
			
		||||
	"github.com/gin-gonic/gin"
 | 
			
		||||
	"github.com/wonderivan/logger"
 | 
			
		||||
	"net/http"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
var DaemonSet daemonSet
 | 
			
		||||
 | 
			
		||||
type daemonSet struct{}
 | 
			
		||||
 | 
			
		||||
func (d *daemonSet) GetDaemonSets(ctx *gin.Context) {
 | 
			
		||||
	params := new(struct {
 | 
			
		||||
		FilterName string `form:"filter_name"`
 | 
			
		||||
		Namespace  string `form:"namespace"`
 | 
			
		||||
		Page       int    `form:"page"`
 | 
			
		||||
		Limit      int    `form:"limit"`
 | 
			
		||||
	})
 | 
			
		||||
	if err := ctx.Bind(params); err != nil {
 | 
			
		||||
		logger.Error("Bind请求参数失败, " + err.Error())
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
			"msg":  err.Error(),
 | 
			
		||||
			"data": nil,
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	data, err := service.DaemonSet.GetDaemonSets(params.FilterName, params.Namespace, params.Limit, params.Page)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
			"msg":  err.Error(),
 | 
			
		||||
			"data": nil,
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	ctx.JSON(http.StatusOK, gin.H{
 | 
			
		||||
		"msg":  "获取DaemonSet列表成功",
 | 
			
		||||
		"data": data,
 | 
			
		||||
	})
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (d *daemonSet) GetDaemonSetDetail(ctx *gin.Context) {
 | 
			
		||||
	params := new(struct {
 | 
			
		||||
		DaemonSetName string `form:"daemonset_name"`
 | 
			
		||||
		Namespace     string `form:"namespace"`
 | 
			
		||||
	})
 | 
			
		||||
	if err := ctx.Bind(params); err != nil {
 | 
			
		||||
		logger.Error("Bind请求参数失败, " + err.Error())
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
			"msg":  err.Error(),
 | 
			
		||||
			"data": nil,
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	data, err := service.DaemonSet.GetDaemonSetDetail(params.DaemonSetName, params.Namespace)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
			"msg":  err.Error(),
 | 
			
		||||
			"data": nil,
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	ctx.JSON(http.StatusOK, gin.H{
 | 
			
		||||
		"msg":  "获取DaemonSet详情成功",
 | 
			
		||||
		"data": data,
 | 
			
		||||
	})
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (d *daemonSet) DeleteDaemonSet(ctx *gin.Context) {
 | 
			
		||||
	params := new(struct {
 | 
			
		||||
		DaemonSetName string `json:"daemonset_name"`
 | 
			
		||||
		Namespace     string `json:"namespace"`
 | 
			
		||||
	})
 | 
			
		||||
 | 
			
		||||
	if err := ctx.ShouldBindJSON(params); err != nil {
 | 
			
		||||
		logger.Error("Bind请求参数失败, " + err.Error())
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
			"msg":  err.Error(),
 | 
			
		||||
			"data": nil,
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	err := service.DaemonSet.DeleteDaemonSet(params.DaemonSetName, params.Namespace)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
			"msg":  err.Error(),
 | 
			
		||||
			"data": nil,
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	ctx.JSON(http.StatusOK, gin.H{
 | 
			
		||||
		"msg":  "删除DaemonSet成功",
 | 
			
		||||
		"data": nil,
 | 
			
		||||
	})
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (d *daemonSet) UpdateDaemonSet(ctx *gin.Context) {
 | 
			
		||||
	params := new(struct {
 | 
			
		||||
		Namespace string `json:"namespace"`
 | 
			
		||||
		Content   string `json:"content"`
 | 
			
		||||
	})
 | 
			
		||||
 | 
			
		||||
	if err := ctx.ShouldBindJSON(params); err != nil {
 | 
			
		||||
		logger.Error("Bind请求参数失败, " + err.Error())
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
			"msg":  err.Error(),
 | 
			
		||||
			"data": nil,
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	err := service.DaemonSet.UpdateDaemonSet(params.Namespace, params.Content)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
			"msg":  err.Error(),
 | 
			
		||||
			"data": nil,
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	ctx.JSON(http.StatusOK, gin.H{
 | 
			
		||||
		"msg":  "更新DaemonSet成功",
 | 
			
		||||
		"data": nil,
 | 
			
		||||
	})
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										232
									
								
								controller/deployment.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										232
									
								
								controller/deployment.go
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,232 @@
 | 
			
		||||
package controller
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"dkube/service"
 | 
			
		||||
	"fmt"
 | 
			
		||||
	"github.com/gin-gonic/gin"
 | 
			
		||||
	"github.com/wonderivan/logger"
 | 
			
		||||
	"net/http"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
var Deployment deployment
 | 
			
		||||
 | 
			
		||||
type deployment struct{}
 | 
			
		||||
 | 
			
		||||
func (d *deployment) GetDeployments(ctx *gin.Context) {
 | 
			
		||||
	params := new(struct {
 | 
			
		||||
		FilterName string `form:"filter_name"`
 | 
			
		||||
		Namespace  string `form:"namespace"`
 | 
			
		||||
		Page       int    `form:"page"`
 | 
			
		||||
		Limit      int    `form:"limit"`
 | 
			
		||||
	})
 | 
			
		||||
	if err := ctx.Bind(params); err != nil {
 | 
			
		||||
		logger.Error("Bind请求参数失败, " + err.Error())
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
			"msg":  err.Error(),
 | 
			
		||||
			"data": nil,
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	data, err := service.Deployment.GetDeployments(params.FilterName, params.Namespace, params.Limit, params.Page)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
			"msg":  err.Error(),
 | 
			
		||||
			"data": nil,
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	ctx.JSON(http.StatusOK, gin.H{
 | 
			
		||||
		"msg":  "获取Deployment列表成功",
 | 
			
		||||
		"data": data,
 | 
			
		||||
	})
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (d *deployment) GetDeploymentDetail(ctx *gin.Context) {
 | 
			
		||||
	params := new(struct {
 | 
			
		||||
		DeploymentName string `form:"deployment_name"`
 | 
			
		||||
		Namespace      string `form:"namespace"`
 | 
			
		||||
	})
 | 
			
		||||
	if err := ctx.Bind(params); err != nil {
 | 
			
		||||
		logger.Error("Bind请求参数失败, " + err.Error())
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
			"msg":  err.Error(),
 | 
			
		||||
			"data": nil,
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	data, err := service.Deployment.GetDeploymentDetail(params.DeploymentName, params.Namespace)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
			"msg":  err.Error(),
 | 
			
		||||
			"data": nil,
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	ctx.JSON(http.StatusOK, gin.H{
 | 
			
		||||
		"msg":  "获取Deployment详情成功",
 | 
			
		||||
		"data": data,
 | 
			
		||||
	})
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (d *deployment) CreateDeployment(ctx *gin.Context) {
 | 
			
		||||
	var (
 | 
			
		||||
		deployCreate = new(service.DeployCreate)
 | 
			
		||||
		err          error
 | 
			
		||||
	)
 | 
			
		||||
 | 
			
		||||
	if err = ctx.ShouldBindJSON(deployCreate); err != nil {
 | 
			
		||||
		logger.Error("Bind请求参数失败, " + err.Error())
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
			"msg":  err.Error(),
 | 
			
		||||
			"data": nil,
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if err = service.Deployment.CreateDeployment(deployCreate); err != nil {
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
			"msg":  err.Error(),
 | 
			
		||||
			"data": nil,
 | 
			
		||||
		})
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	ctx.JSON(http.StatusOK, gin.H{
 | 
			
		||||
		"msg":  "创建Deployment成功",
 | 
			
		||||
		"data": nil,
 | 
			
		||||
	})
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (d *deployment) ScaleDeployment(ctx *gin.Context) {
 | 
			
		||||
	params := new(struct {
 | 
			
		||||
		DeploymentName string `json:"deployment_name"`
 | 
			
		||||
		Namespace      string `json:"namespace"`
 | 
			
		||||
		ScaleNum       int    `json:"scale_num"`
 | 
			
		||||
	})
 | 
			
		||||
 | 
			
		||||
	if err := ctx.ShouldBindJSON(params); err != nil {
 | 
			
		||||
		logger.Error("Bind请求参数失败, " + err.Error())
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
			"msg":  err.Error(),
 | 
			
		||||
			"data": nil,
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	data, err := service.Deployment.ScaleDeployment(params.DeploymentName, params.Namespace, params.ScaleNum)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
			"msg":  err.Error(),
 | 
			
		||||
			"data": nil,
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	ctx.JSON(http.StatusOK, gin.H{
 | 
			
		||||
		"msg":  "设置Deployment副本数成功",
 | 
			
		||||
		"data": fmt.Sprintf("最新副本数: %d", data),
 | 
			
		||||
	})
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (d *deployment) DeleteDeployment(ctx *gin.Context) {
 | 
			
		||||
	params := new(struct {
 | 
			
		||||
		DeploymentName string `json:"deployment_name"`
 | 
			
		||||
		Namespace      string `json:"namespace"`
 | 
			
		||||
	})
 | 
			
		||||
 | 
			
		||||
	if err := ctx.ShouldBindJSON(params); err != nil {
 | 
			
		||||
		logger.Error("Bind请求参数失败, " + err.Error())
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
			"msg":  err.Error(),
 | 
			
		||||
			"data": nil,
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	err := service.Deployment.DeleteDeployment(params.DeploymentName, params.Namespace)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
			"msg":  err.Error(),
 | 
			
		||||
			"data": nil,
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	ctx.JSON(http.StatusOK, gin.H{
 | 
			
		||||
		"msg":  "删除Deployment成功",
 | 
			
		||||
		"data": nil,
 | 
			
		||||
	})
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (d *deployment) RestartDeployment(ctx *gin.Context) {
 | 
			
		||||
	params := new(struct {
 | 
			
		||||
		DeploymentName string `json:"deployment_name"`
 | 
			
		||||
		Namespace      string `json:"namespace"`
 | 
			
		||||
	})
 | 
			
		||||
 | 
			
		||||
	if err := ctx.ShouldBindJSON(params); err != nil {
 | 
			
		||||
		logger.Error("Bind请求参数失败, " + err.Error())
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
			"msg":  err.Error(),
 | 
			
		||||
			"data": nil,
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	err := service.Deployment.RestartDeployment(params.DeploymentName, params.Namespace)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
			"msg":  err.Error(),
 | 
			
		||||
			"data": nil,
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	ctx.JSON(http.StatusOK, gin.H{
 | 
			
		||||
		"msg":  "重启Deployment成功",
 | 
			
		||||
		"data": nil,
 | 
			
		||||
	})
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (d *deployment) UpdateDeployment(ctx *gin.Context) {
 | 
			
		||||
	params := new(struct {
 | 
			
		||||
		Namespace string `json:"namespace"`
 | 
			
		||||
		Content   string `json:"content"`
 | 
			
		||||
	})
 | 
			
		||||
 | 
			
		||||
	if err := ctx.ShouldBindJSON(params); err != nil {
 | 
			
		||||
		logger.Error("Bind请求参数失败, " + err.Error())
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
			"msg":  err.Error(),
 | 
			
		||||
			"data": nil,
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	err := service.Deployment.UpdateDeployment(params.Namespace, params.Content)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
			"msg":  err.Error(),
 | 
			
		||||
			"data": nil,
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	ctx.JSON(http.StatusOK, gin.H{
 | 
			
		||||
		"msg":  "更新Deployment成功",
 | 
			
		||||
		"data": nil,
 | 
			
		||||
	})
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (d *deployment) GetDeployNumPerNp(ctx *gin.Context) {
 | 
			
		||||
	data, err := service.Deployment.GetDeployNumPerNp()
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
			"msg":  err.Error(),
 | 
			
		||||
			"data": nil,
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	ctx.JSON(http.StatusOK, gin.H{
 | 
			
		||||
		"msg":  "获取每个namespace的deployment数量成功",
 | 
			
		||||
		"data": data,
 | 
			
		||||
	})
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										159
									
								
								controller/ingress.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										159
									
								
								controller/ingress.go
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,159 @@
 | 
			
		||||
package controller
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"dkube/service"
 | 
			
		||||
	"github.com/gin-gonic/gin"
 | 
			
		||||
	"github.com/wonderivan/logger"
 | 
			
		||||
	"net/http"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
var Ingress ingress
 | 
			
		||||
 | 
			
		||||
type ingress struct{}
 | 
			
		||||
 | 
			
		||||
func (i *ingress) GetIngresses(ctx *gin.Context) {
 | 
			
		||||
	params := new(struct {
 | 
			
		||||
		FilterName string `form:"filter_name"`
 | 
			
		||||
		Namespace  string `form:"namespace"`
 | 
			
		||||
		Page       int    `form:"page"`
 | 
			
		||||
		Limit      int    `form:"limit"`
 | 
			
		||||
	})
 | 
			
		||||
	if err := ctx.Bind(params); err != nil {
 | 
			
		||||
		logger.Error("Bind请求参数失败, " + err.Error())
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
			"msg":  err.Error(),
 | 
			
		||||
			"data": nil,
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	data, err := service.Ingress.GetIngresses(params.FilterName, params.Namespace, params.Limit, params.Page)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
			"msg":  err.Error(),
 | 
			
		||||
			"data": nil,
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	ctx.JSON(http.StatusOK, gin.H{
 | 
			
		||||
		"msg":  "获取Ingresst列表成功",
 | 
			
		||||
		"data": data,
 | 
			
		||||
	})
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (i *ingress) GetIngressDetail(ctx *gin.Context) {
 | 
			
		||||
	params := new(struct {
 | 
			
		||||
		IngressName string `form:"ingress_name"`
 | 
			
		||||
		Namespace   string `form:"namespace"`
 | 
			
		||||
	})
 | 
			
		||||
	if err := ctx.Bind(params); err != nil {
 | 
			
		||||
		logger.Error("Bind请求参数失败, " + err.Error())
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
			"msg":  err.Error(),
 | 
			
		||||
			"data": nil,
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	data, err := service.Ingress.GetIngresstDetail(params.IngressName, params.Namespace)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
			"msg":  err.Error(),
 | 
			
		||||
			"data": nil,
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	ctx.JSON(http.StatusOK, gin.H{
 | 
			
		||||
		"msg":  "获取Ingress详情成功",
 | 
			
		||||
		"data": data,
 | 
			
		||||
	})
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (i *ingress) DeleteIngress(ctx *gin.Context) {
 | 
			
		||||
	params := new(struct {
 | 
			
		||||
		IngressName string `json:"ingress_name"`
 | 
			
		||||
		Namespace   string `json:"namespace"`
 | 
			
		||||
	})
 | 
			
		||||
 | 
			
		||||
	if err := ctx.ShouldBindJSON(params); err != nil {
 | 
			
		||||
		logger.Error("Bind请求参数失败, " + err.Error())
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
			"msg":  err.Error(),
 | 
			
		||||
			"data": nil,
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	err := service.Ingress.DeleteIngress(params.IngressName, params.Namespace)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
			"msg":  err.Error(),
 | 
			
		||||
			"data": nil,
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	ctx.JSON(http.StatusOK, gin.H{
 | 
			
		||||
		"msg":  "删除Ingress成功",
 | 
			
		||||
		"data": nil,
 | 
			
		||||
	})
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (i *ingress) CreateIngress(ctx *gin.Context) {
 | 
			
		||||
	var (
 | 
			
		||||
		ingressCreate = new(service.IngressCreate)
 | 
			
		||||
		err           error
 | 
			
		||||
	)
 | 
			
		||||
 | 
			
		||||
	if err = ctx.ShouldBindJSON(ingressCreate); err != nil {
 | 
			
		||||
		logger.Error("Bind请求参数失败, " + err.Error())
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
			"msg":  err.Error(),
 | 
			
		||||
			"data": nil,
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if err = service.Ingress.CreateIngress(ingressCreate); err != nil {
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
			"msg":  err.Error(),
 | 
			
		||||
			"data": nil,
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	ctx.JSON(http.StatusOK, gin.H{
 | 
			
		||||
		"msg":  "创建Ingress成功",
 | 
			
		||||
		"data": nil,
 | 
			
		||||
	})
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (i *ingress) UpdateIngress(ctx *gin.Context) {
 | 
			
		||||
	params := new(struct {
 | 
			
		||||
		Namespace string `json:"namespace"`
 | 
			
		||||
		Content   string `json:"content"`
 | 
			
		||||
	})
 | 
			
		||||
 | 
			
		||||
	if err := ctx.ShouldBindJSON(params); err != nil {
 | 
			
		||||
		logger.Error("Bind请求参数失败, " + err.Error())
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
			"msg":  err.Error(),
 | 
			
		||||
			"data": nil,
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	err := service.Ingress.UpdateIngress(params.Namespace, params.Content)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
			"msg":  err.Error(),
 | 
			
		||||
			"data": nil,
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	ctx.JSON(http.StatusOK, gin.H{
 | 
			
		||||
		"msg":  "更新Ingress成功",
 | 
			
		||||
		"data": nil,
 | 
			
		||||
	})
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										41
									
								
								controller/login.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										41
									
								
								controller/login.go
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,41 @@
 | 
			
		||||
package controller
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"dkube/service"
 | 
			
		||||
	"github.com/gin-gonic/gin"
 | 
			
		||||
	"github.com/wonderivan/logger"
 | 
			
		||||
	"net/http"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
var Login login
 | 
			
		||||
 | 
			
		||||
type login struct{}
 | 
			
		||||
 | 
			
		||||
func (l *login) Auth(ctx *gin.Context) {
 | 
			
		||||
	params := new(struct {
 | 
			
		||||
		UserName string `json:"username"`
 | 
			
		||||
		Password string `json:"password"`
 | 
			
		||||
	})
 | 
			
		||||
	if err := ctx.ShouldBindJSON(params); err != nil {
 | 
			
		||||
		logger.Error("Bind请求参数失败, " + err.Error())
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
			"msg":  err.Error(),
 | 
			
		||||
			"data": nil,
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	err := service.Login.Auth(params.UserName, params.Password)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
			"msg":  err.Error(),
 | 
			
		||||
			"data": nil,
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	ctx.JSON(http.StatusOK, gin.H{
 | 
			
		||||
		"msg":  "登录成功",
 | 
			
		||||
		"data": nil,
 | 
			
		||||
	})
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										98
									
								
								controller/namespace.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										98
									
								
								controller/namespace.go
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,98 @@
 | 
			
		||||
package controller
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"dkube/service"
 | 
			
		||||
	"github.com/gin-gonic/gin"
 | 
			
		||||
	"github.com/wonderivan/logger"
 | 
			
		||||
	"net/http"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
var Namespace namespace
 | 
			
		||||
 | 
			
		||||
type namespace struct{}
 | 
			
		||||
 | 
			
		||||
func (n *namespace) GetNamespaces(ctx *gin.Context) {
 | 
			
		||||
	params := new(struct {
 | 
			
		||||
		FilterName string `form:"filter_name"`
 | 
			
		||||
		Page       int    `form:"page"`
 | 
			
		||||
		Limit      int    `form:"limit"`
 | 
			
		||||
	})
 | 
			
		||||
	if err := ctx.Bind(params); err != nil {
 | 
			
		||||
		logger.Error("Bind请求参数失败, " + err.Error())
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
			"msg":  err.Error(),
 | 
			
		||||
			"data": nil,
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	data, err := service.Namespace.GetNamespaces(params.FilterName, params.Limit, params.Page)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
			"msg":  err.Error(),
 | 
			
		||||
			"data": nil,
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	ctx.JSON(http.StatusOK, gin.H{
 | 
			
		||||
		"msg":  "获取Namespace列表成功",
 | 
			
		||||
		"data": data,
 | 
			
		||||
	})
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (n *namespace) GetNamespaceDetail(ctx *gin.Context) {
 | 
			
		||||
	params := new(struct {
 | 
			
		||||
		NamespaceName string `form:"namespace_name"`
 | 
			
		||||
	})
 | 
			
		||||
	if err := ctx.Bind(params); err != nil {
 | 
			
		||||
		logger.Error("Bind请求参数失败, " + err.Error())
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
			"msg":  err.Error(),
 | 
			
		||||
			"data": nil,
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	data, err := service.Namespace.GetNamespaceDetail(params.NamespaceName)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
			"msg":  err.Error(),
 | 
			
		||||
			"data": nil,
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	ctx.JSON(http.StatusOK, gin.H{
 | 
			
		||||
		"msg":  "获取Namespace详情成功",
 | 
			
		||||
		"data": data,
 | 
			
		||||
	})
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (n *namespace) DeleteNamespace(ctx *gin.Context) {
 | 
			
		||||
	params := new(struct {
 | 
			
		||||
		NamespaceName string `json:"namespace_name"`
 | 
			
		||||
	})
 | 
			
		||||
 | 
			
		||||
	if err := ctx.ShouldBindJSON(params); err != nil {
 | 
			
		||||
		logger.Error("Bind请求参数失败, " + err.Error())
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
			"msg":  err.Error(),
 | 
			
		||||
			"data": nil,
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	err := service.Namespace.DeleteNamespace(params.NamespaceName)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
			"msg":  err.Error(),
 | 
			
		||||
			"data": nil,
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	ctx.JSON(http.StatusOK, gin.H{
 | 
			
		||||
		"msg":  "删除Namespace成功",
 | 
			
		||||
		"data": nil,
 | 
			
		||||
	})
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										70
									
								
								controller/node.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										70
									
								
								controller/node.go
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,70 @@
 | 
			
		||||
package controller
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"dkube/service"
 | 
			
		||||
	"github.com/gin-gonic/gin"
 | 
			
		||||
	"github.com/wonderivan/logger"
 | 
			
		||||
	"net/http"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
var Node node
 | 
			
		||||
 | 
			
		||||
type node struct{}
 | 
			
		||||
 | 
			
		||||
func (n *node) GetNodes(ctx *gin.Context) {
 | 
			
		||||
	params := new(struct {
 | 
			
		||||
		FilterName string `form:"filter_name"`
 | 
			
		||||
		Page       int    `form:"page"`
 | 
			
		||||
		Limit      int    `form:"limit"`
 | 
			
		||||
	})
 | 
			
		||||
	if err := ctx.Bind(params); err != nil {
 | 
			
		||||
		logger.Error("Bind请求参数失败, " + err.Error())
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
			"msg":  err.Error(),
 | 
			
		||||
			"data": nil,
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	data, err := service.Node.GetNodes(params.FilterName, params.Limit, params.Page)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
			"msg":  err.Error(),
 | 
			
		||||
			"data": nil,
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	ctx.JSON(http.StatusOK, gin.H{
 | 
			
		||||
		"msg":  "获取Node列表成功",
 | 
			
		||||
		"data": data,
 | 
			
		||||
	})
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (n *node) GetNodeDetail(ctx *gin.Context) {
 | 
			
		||||
	params := new(struct {
 | 
			
		||||
		NodeName string `form:"node_name"`
 | 
			
		||||
	})
 | 
			
		||||
	if err := ctx.Bind(params); err != nil {
 | 
			
		||||
		logger.Error("Bind请求参数失败, " + err.Error())
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
			"msg":  err.Error(),
 | 
			
		||||
			"data": nil,
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	data, err := service.Node.GetNodeDetail(params.NodeName)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
			"msg":  err.Error(),
 | 
			
		||||
			"data": nil,
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	ctx.JSON(http.StatusOK, gin.H{
 | 
			
		||||
		"msg":  "获取Node详情成功",
 | 
			
		||||
		"data": data,
 | 
			
		||||
	})
 | 
			
		||||
}
 | 
			
		||||
@ -11,7 +11,6 @@ var Pod pod
 | 
			
		||||
 | 
			
		||||
type pod struct{}
 | 
			
		||||
 | 
			
		||||
// GetPods 获取Pod列表,支持分页、过滤、排序
 | 
			
		||||
func (p *pod) GetPods(ctx *gin.Context) {
 | 
			
		||||
	params := new(struct {
 | 
			
		||||
		FilterName string `form:"filter_name"`
 | 
			
		||||
@ -19,15 +18,15 @@ func (p *pod) GetPods(ctx *gin.Context) {
 | 
			
		||||
		Limit      int    `form:"limit"`
 | 
			
		||||
		Page       int    `form:"page"`
 | 
			
		||||
	})
 | 
			
		||||
 | 
			
		||||
	if err := ctx.Bind(params); err != nil {
 | 
			
		||||
		logger.Error("Bind绑定参数失败" + err.Error())
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
			"msg":  "Bind参数绑定失败" + err.Error(),
 | 
			
		||||
			"msg":  "Bind绑定参数失败" + err.Error(),
 | 
			
		||||
			"data": nil,
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	data, err := service.Pod.GetPods(params.FilterName, params.Namespace, params.Limit, params.Page)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
@ -36,27 +35,27 @@ func (p *pod) GetPods(ctx *gin.Context) {
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	ctx.JSON(http.StatusOK, gin.H{
 | 
			
		||||
		"msg":  "获取Pod列表成功",
 | 
			
		||||
		"data": data,
 | 
			
		||||
	})
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//获取Pod详情
 | 
			
		||||
func (p *pod) GetPodDetail(ctx *gin.Context) {
 | 
			
		||||
	params := new(struct {
 | 
			
		||||
		PodName   string `form:"pod_name"`
 | 
			
		||||
		Namespace string `form:"namespace"`
 | 
			
		||||
	})
 | 
			
		||||
 | 
			
		||||
	if err := ctx.Bind(params); err != nil {
 | 
			
		||||
		logger.Error("Bind绑定参数失败" + err.Error())
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
			"msg":  "Bind参数绑定失败" + err.Error(),
 | 
			
		||||
			"msg":  "Bind绑定参数失败" + err.Error(),
 | 
			
		||||
			"data": nil,
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	data, err := service.Pod.GetPodDetail(params.PodName, params.Namespace)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
@ -65,13 +64,13 @@ func (p *pod) GetPodDetail(ctx *gin.Context) {
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	ctx.JSON(http.StatusOK, gin.H{
 | 
			
		||||
		"msg":  "获取Pod列表成功",
 | 
			
		||||
		"data": data,
 | 
			
		||||
	})
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//删除Pod
 | 
			
		||||
func (p *pod) DeletePod(ctx *gin.Context) {
 | 
			
		||||
	params := new(struct {
 | 
			
		||||
		PodName   string `json:"pod_name"`
 | 
			
		||||
@ -81,12 +80,11 @@ func (p *pod) DeletePod(ctx *gin.Context) {
 | 
			
		||||
	if err := ctx.ShouldBindJSON(params); err != nil {
 | 
			
		||||
		logger.Error("Bind绑定参数失败" + err.Error())
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
			"msg":  "Bind参数绑定失败" + err.Error(),
 | 
			
		||||
			"msg":  "Bind绑定参数失败" + err.Error(),
 | 
			
		||||
			"data": nil,
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	err := service.Pod.DeletePod(params.PodName, params.Namespace)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
@ -95,13 +93,13 @@ func (p *pod) DeletePod(ctx *gin.Context) {
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	ctx.JSON(http.StatusOK, gin.H{
 | 
			
		||||
		"msg":  "删除Pod成功",
 | 
			
		||||
		"data": nil,
 | 
			
		||||
	})
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//更新Pod
 | 
			
		||||
func (p *pod) UpdatePod(ctx *gin.Context) {
 | 
			
		||||
	params := new(struct {
 | 
			
		||||
		Namespace string `json:"namespace"`
 | 
			
		||||
@ -109,14 +107,13 @@ func (p *pod) UpdatePod(ctx *gin.Context) {
 | 
			
		||||
	})
 | 
			
		||||
 | 
			
		||||
	if err := ctx.ShouldBindJSON(params); err != nil {
 | 
			
		||||
		logger.Error("Bind绑定参数失败" + err.Error())
 | 
			
		||||
		logger.Error("Bind请求参数失败, " + err.Error())
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
			"msg":  "Bind参数绑定失败" + err.Error(),
 | 
			
		||||
			"msg":  err.Error(),
 | 
			
		||||
			"data": nil,
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	err := service.Pod.UpdatePod(params.Namespace, params.Content)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
@ -131,21 +128,20 @@ func (p *pod) UpdatePod(ctx *gin.Context) {
 | 
			
		||||
	})
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//获取Pod容器
 | 
			
		||||
func (p *pod) GetPodContainer(ctx *gin.Context) {
 | 
			
		||||
	params := new(struct {
 | 
			
		||||
		PodName   string `form:"pod_name"`
 | 
			
		||||
		Namespace string `form:"namespace"`
 | 
			
		||||
	})
 | 
			
		||||
 | 
			
		||||
	if err := ctx.Bind(params); err != nil {
 | 
			
		||||
		logger.Error("Bind请求参数失败" + err.Error())
 | 
			
		||||
		logger.Error("Bind请求参数失败, " + err.Error())
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
			"msg":  err.Error(),
 | 
			
		||||
			"data": nil,
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	data, err := service.Pod.GetPodContainer(params.PodName, params.Namespace)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
@ -160,22 +156,21 @@ func (p *pod) GetPodContainer(ctx *gin.Context) {
 | 
			
		||||
	})
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//获取Pod容器日志
 | 
			
		||||
func (p *pod) GetPodLog(ctx *gin.Context) {
 | 
			
		||||
	params := new(struct {
 | 
			
		||||
		ContainerName string `form:"container_name"`
 | 
			
		||||
		PodName       string `form:"pod_name"`
 | 
			
		||||
		Namespace     string `form:"namespace"`
 | 
			
		||||
	})
 | 
			
		||||
 | 
			
		||||
	if err := ctx.Bind(params); err != nil {
 | 
			
		||||
		logger.Error("Bind请求参数失败" + err.Error())
 | 
			
		||||
		logger.Error("Bind请求参数失败, " + err.Error())
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
			"msg":  err.Error(),
 | 
			
		||||
			"data": nil,
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	data, err := service.Pod.GetPodLog(params.ContainerName, params.PodName, params.Namespace)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
@ -185,12 +180,11 @@ func (p *pod) GetPodLog(ctx *gin.Context) {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	ctx.JSON(http.StatusOK, gin.H{
 | 
			
		||||
		"msg":  "获取Pod容器日志成功",
 | 
			
		||||
		"msg":  "获取Pod中容器日志成功",
 | 
			
		||||
		"data": data,
 | 
			
		||||
	})
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//获取每个Namespace的Pod数量
 | 
			
		||||
func (p *pod) GetPodNumPerNp(ctx *gin.Context) {
 | 
			
		||||
	data, err := service.Pod.GetPodNumPerNp()
 | 
			
		||||
	if err != nil {
 | 
			
		||||
@ -200,8 +194,9 @@ func (p *pod) GetPodNumPerNp(ctx *gin.Context) {
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	ctx.JSON(http.StatusOK, gin.H{
 | 
			
		||||
		"msg":  "获取每个namespace的Pod数量成功",
 | 
			
		||||
		"msg":  "获取每个namespace的pod数量成功",
 | 
			
		||||
		"data": data,
 | 
			
		||||
	})
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										98
									
								
								controller/pv.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										98
									
								
								controller/pv.go
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,98 @@
 | 
			
		||||
package controller
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"dkube/service"
 | 
			
		||||
	"github.com/gin-gonic/gin"
 | 
			
		||||
	"github.com/wonderivan/logger"
 | 
			
		||||
	"net/http"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
var Pv pv
 | 
			
		||||
 | 
			
		||||
type pv struct{}
 | 
			
		||||
 | 
			
		||||
func (p *pv) GetPvs(ctx *gin.Context) {
 | 
			
		||||
	params := new(struct {
 | 
			
		||||
		FilterName string `form:"filter_name"`
 | 
			
		||||
		Page       int    `form:"page"`
 | 
			
		||||
		Limit      int    `form:"limit"`
 | 
			
		||||
	})
 | 
			
		||||
	if err := ctx.Bind(params); err != nil {
 | 
			
		||||
		logger.Error("Bind请求参数失败, " + err.Error())
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
			"msg":  err.Error(),
 | 
			
		||||
			"data": nil,
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	data, err := service.Pv.GetPvs(params.FilterName, params.Limit, params.Page)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
			"msg":  err.Error(),
 | 
			
		||||
			"data": nil,
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	ctx.JSON(http.StatusOK, gin.H{
 | 
			
		||||
		"msg":  "获取Pv列表成功",
 | 
			
		||||
		"data": data,
 | 
			
		||||
	})
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (p *pv) GetPvDetail(ctx *gin.Context) {
 | 
			
		||||
	params := new(struct {
 | 
			
		||||
		PvName string `form:"pv_name"`
 | 
			
		||||
	})
 | 
			
		||||
	if err := ctx.Bind(params); err != nil {
 | 
			
		||||
		logger.Error("Bind请求参数失败, " + err.Error())
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
			"msg":  err.Error(),
 | 
			
		||||
			"data": nil,
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	data, err := service.Pv.GetPvDetail(params.PvName)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
			"msg":  err.Error(),
 | 
			
		||||
			"data": nil,
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	ctx.JSON(http.StatusOK, gin.H{
 | 
			
		||||
		"msg":  "获取Pv详情成功",
 | 
			
		||||
		"data": data,
 | 
			
		||||
	})
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (p *pv) DeletePv(ctx *gin.Context) {
 | 
			
		||||
	params := new(struct {
 | 
			
		||||
		PvName string `json:"pv_name"`
 | 
			
		||||
	})
 | 
			
		||||
 | 
			
		||||
	if err := ctx.ShouldBindJSON(params); err != nil {
 | 
			
		||||
		logger.Error("Bind请求参数失败, " + err.Error())
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
			"msg":  err.Error(),
 | 
			
		||||
			"data": nil,
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	err := service.Pv.DeletePv(params.PvName)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
			"msg":  err.Error(),
 | 
			
		||||
			"data": nil,
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	ctx.JSON(http.StatusOK, gin.H{
 | 
			
		||||
		"msg":  "删除Pv成功",
 | 
			
		||||
		"data": nil,
 | 
			
		||||
	})
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										130
									
								
								controller/pvc.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										130
									
								
								controller/pvc.go
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,130 @@
 | 
			
		||||
package controller
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"dkube/service"
 | 
			
		||||
	"github.com/gin-gonic/gin"
 | 
			
		||||
	"github.com/wonderivan/logger"
 | 
			
		||||
	"net/http"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
var Pvc pvc
 | 
			
		||||
 | 
			
		||||
type pvc struct{}
 | 
			
		||||
 | 
			
		||||
func (p *pvc) GetPvcs(ctx *gin.Context) {
 | 
			
		||||
	params := new(struct {
 | 
			
		||||
		FilterName string `form:"filter_name"`
 | 
			
		||||
		Namespace  string `form:"namespace"`
 | 
			
		||||
		Page       int    `form:"page"`
 | 
			
		||||
		Limit      int    `form:"limit"`
 | 
			
		||||
	})
 | 
			
		||||
	if err := ctx.Bind(params); err != nil {
 | 
			
		||||
		logger.Error("Bind请求参数失败, " + err.Error())
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
			"msg":  err.Error(),
 | 
			
		||||
			"data": nil,
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	data, err := service.Pvc.GetPvcs(params.FilterName, params.Namespace, params.Limit, params.Page)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
			"msg":  err.Error(),
 | 
			
		||||
			"data": nil,
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	ctx.JSON(http.StatusOK, gin.H{
 | 
			
		||||
		"msg":  "获取Pvc列表成功",
 | 
			
		||||
		"data": data,
 | 
			
		||||
	})
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (p *pvc) GetPvcDetail(ctx *gin.Context) {
 | 
			
		||||
	params := new(struct {
 | 
			
		||||
		PvcName   string `form:"pvc_name"`
 | 
			
		||||
		Namespace string `form:"namespace"`
 | 
			
		||||
	})
 | 
			
		||||
	if err := ctx.Bind(params); err != nil {
 | 
			
		||||
		logger.Error("Bind请求参数失败, " + err.Error())
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
			"msg":  err.Error(),
 | 
			
		||||
			"data": nil,
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	data, err := service.Pvc.GetPvcDetail(params.PvcName, params.Namespace)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
			"msg":  err.Error(),
 | 
			
		||||
			"data": nil,
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	ctx.JSON(http.StatusOK, gin.H{
 | 
			
		||||
		"msg":  "获取Pvc详情成功",
 | 
			
		||||
		"data": data,
 | 
			
		||||
	})
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (p *pvc) DeletePvc(ctx *gin.Context) {
 | 
			
		||||
	params := new(struct {
 | 
			
		||||
		PvcName   string `json:"pvc_name"`
 | 
			
		||||
		Namespace string `json:"namespace"`
 | 
			
		||||
	})
 | 
			
		||||
 | 
			
		||||
	if err := ctx.ShouldBindJSON(params); err != nil {
 | 
			
		||||
		logger.Error("Bind请求参数失败, " + err.Error())
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
			"msg":  err.Error(),
 | 
			
		||||
			"data": nil,
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	err := service.Pvc.DeletePvc(params.PvcName, params.Namespace)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
			"msg":  err.Error(),
 | 
			
		||||
			"data": nil,
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	ctx.JSON(http.StatusOK, gin.H{
 | 
			
		||||
		"msg":  "删除Pvc成功",
 | 
			
		||||
		"data": nil,
 | 
			
		||||
	})
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (p *pvc) UpdatePvc(ctx *gin.Context) {
 | 
			
		||||
	params := new(struct {
 | 
			
		||||
		Namespace string `json:"namespace"`
 | 
			
		||||
		Content   string `json:"content"`
 | 
			
		||||
	})
 | 
			
		||||
 | 
			
		||||
	if err := ctx.ShouldBindJSON(params); err != nil {
 | 
			
		||||
		logger.Error("Bind请求参数失败, " + err.Error())
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
			"msg":  err.Error(),
 | 
			
		||||
			"data": nil,
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	err := service.Pvc.UpdatePvc(params.Namespace, params.Content)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
			"msg":  err.Error(),
 | 
			
		||||
			"data": nil,
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	ctx.JSON(http.StatusOK, gin.H{
 | 
			
		||||
		"msg":  "更新Pvc成功",
 | 
			
		||||
		"data": nil,
 | 
			
		||||
	})
 | 
			
		||||
}
 | 
			
		||||
@ -6,18 +6,62 @@ import (
 | 
			
		||||
 | 
			
		||||
var Router router
 | 
			
		||||
 | 
			
		||||
//声明router结构体
 | 
			
		||||
type router struct{}
 | 
			
		||||
 | 
			
		||||
// InitApiRouter 初始化路由规则,创建api测试接口
 | 
			
		||||
func (r *router) InitApiRouter(router *gin.Engine) {
 | 
			
		||||
	router.
 | 
			
		||||
		//pod操作
 | 
			
		||||
		POST("/api/login", Login.Auth).
 | 
			
		||||
		POST("/api/k8s/workflow/create", Workflow.Create).
 | 
			
		||||
		GET("/api/k8s/pods", Pod.GetPods).
 | 
			
		||||
		GET("/api/k8s/pod/detail", Pod.GetPodDetail).
 | 
			
		||||
		DELETE("/api/k8s/pod/del", Pod.DeletePod).
 | 
			
		||||
		PUT("/api/k8s/pod/update", Pod.UpdatePod).
 | 
			
		||||
		GET("/api/k8s/pod/container", Pod.GetPodContainer).
 | 
			
		||||
		GET("/api/k8s/pod/log", Pod.GetPodLog).
 | 
			
		||||
		GET("/api/k8s/pod/numnp", Pod.GetPodNumPerNp)
 | 
			
		||||
		GET("/api/k8s/pod/numnp", Pod.GetPodNumPerNp).
 | 
			
		||||
		GET("/api/k8s/deployments", Deployment.GetDeployments).
 | 
			
		||||
		GET("/api/k8s/deployment/detail", Deployment.GetDeploymentDetail).
 | 
			
		||||
		PUT("/api/k8s/deployment/scale", Deployment.ScaleDeployment).
 | 
			
		||||
		DELETE("/api/k8s/deployment/del", Deployment.DeleteDeployment).
 | 
			
		||||
		PUT("/api/k8s/deployment/restart", Deployment.RestartDeployment).
 | 
			
		||||
		PUT("/api/k8s/deployment/update", Deployment.UpdateDeployment).
 | 
			
		||||
		GET("/api/k8s/deployment/numnp", Deployment.GetDeployNumPerNp).
 | 
			
		||||
		POST("/api/k8s/deployment/create", Deployment.CreateDeployment).
 | 
			
		||||
		GET("/api/k8s/daemonsets", DaemonSet.GetDaemonSets).
 | 
			
		||||
		GET("/api/k8s/daemonset/detail", DaemonSet.GetDaemonSetDetail).
 | 
			
		||||
		DELETE("/api/k8s/daemonset/del", DaemonSet.DeleteDaemonSet).
 | 
			
		||||
		PUT("/api/k8s/daemonset/update", DaemonSet.UpdateDaemonSet).
 | 
			
		||||
		GET("/api/k8s/statefulsets", StatefulSet.GetStatefulSets).
 | 
			
		||||
		GET("/api/k8s/statefulset/detail", StatefulSet.GetStatefulSetDetail).
 | 
			
		||||
		DELETE("/api/k8s/statefulset/del", StatefulSet.DeleteStatefulSet).
 | 
			
		||||
		PUT("/api/k8s/statefulset/update", StatefulSet.UpdateStatefulSet).
 | 
			
		||||
		GET("/api/k8s/services", Servicev1.GetServices).
 | 
			
		||||
		GET("/api/k8s/service/detail", Servicev1.GetServiceDetail).
 | 
			
		||||
		DELETE("/api/k8s/service/del", Servicev1.DeleteService).
 | 
			
		||||
		PUT("/api/k8s/service/update", Servicev1.UpdateService).
 | 
			
		||||
		POST("/api/k8s/service/create", Servicev1.CreateService).
 | 
			
		||||
		GET("/api/k8s/ingresses", Ingress.GetIngresses).
 | 
			
		||||
		GET("/api/k8s/ingress/detail", Ingress.GetIngressDetail).
 | 
			
		||||
		DELETE("/api/k8s/ingress/del", Ingress.DeleteIngress).
 | 
			
		||||
		PUT("/api/k8s/ingress/update", Ingress.UpdateIngress).
 | 
			
		||||
		POST("/api/k8s/ingress/create", Ingress.CreateIngress).
 | 
			
		||||
		GET("/api/k8s/configmaps", ConfigMap.GetConfigMaps).
 | 
			
		||||
		GET("/api/k8s/configmap/detail", ConfigMap.GetConfigMapDetail).
 | 
			
		||||
		DELETE("/api/k8s/configmap/del", ConfigMap.DeleteConfigMap).
 | 
			
		||||
		PUT("/api/k8s/configmap/update", ConfigMap.UpdateConfigMap).
 | 
			
		||||
		GET("/api/k8s/secrets", Secret.GetSecrets).
 | 
			
		||||
		GET("/api/k8s/secret/detail", Secret.GetSecretDetail).
 | 
			
		||||
		DELETE("/api/k8s/secret/del", Secret.DeleteSecret).
 | 
			
		||||
		PUT("/api/k8s/secret/update", Secret.UpdateSecret).
 | 
			
		||||
		GET("/api/k8s/pvcs", Pvc.GetPvcs).
 | 
			
		||||
		GET("/api/k8s/pvc/detail", Pvc.GetPvcDetail).
 | 
			
		||||
		DELETE("/api/k8s/pvc/del", Pvc.DeletePvc).
 | 
			
		||||
		PUT("/api/k8s/pvc/update", Pvc.UpdatePvc).
 | 
			
		||||
		GET("/api/k8s/nodes", Node.GetNodes).
 | 
			
		||||
		GET("/api/k8s/node/detail", Node.GetNodeDetail).
 | 
			
		||||
		GET("/api/k8s/namespaces", Namespace.GetNamespaces).
 | 
			
		||||
		GET("/api/k8s/namespace/detail", Namespace.GetNamespaceDetail).
 | 
			
		||||
		GET("/api/k8s/namespace/del", Namespace.DeleteNamespace).
 | 
			
		||||
		GET("/api/k8s/pvs", Pv.GetPvs).
 | 
			
		||||
		GET("/api/k8s/pv/detail", Pv.GetPvDetail)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										130
									
								
								controller/secret.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										130
									
								
								controller/secret.go
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,130 @@
 | 
			
		||||
package controller
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"dkube/service"
 | 
			
		||||
	"github.com/gin-gonic/gin"
 | 
			
		||||
	"github.com/wonderivan/logger"
 | 
			
		||||
	"net/http"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
var Secret secret
 | 
			
		||||
 | 
			
		||||
type secret struct{}
 | 
			
		||||
 | 
			
		||||
func (s *secret) GetSecrets(ctx *gin.Context) {
 | 
			
		||||
	params := new(struct {
 | 
			
		||||
		FilterName string `form:"filter_name"`
 | 
			
		||||
		Namespace  string `form:"namespace"`
 | 
			
		||||
		Page       int    `form:"page"`
 | 
			
		||||
		Limit      int    `form:"limit"`
 | 
			
		||||
	})
 | 
			
		||||
	if err := ctx.Bind(params); err != nil {
 | 
			
		||||
		logger.Error("Bind请求参数失败, " + err.Error())
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
			"msg":  err.Error(),
 | 
			
		||||
			"data": nil,
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	data, err := service.Secret.GetSecrets(params.FilterName, params.Namespace, params.Limit, params.Page)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
			"msg":  err.Error(),
 | 
			
		||||
			"data": nil,
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	ctx.JSON(http.StatusOK, gin.H{
 | 
			
		||||
		"msg":  "获取Secret列表成功",
 | 
			
		||||
		"data": data,
 | 
			
		||||
	})
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (s *secret) GetSecretDetail(ctx *gin.Context) {
 | 
			
		||||
	params := new(struct {
 | 
			
		||||
		SecretName string `form:"secret_name"`
 | 
			
		||||
		Namespace  string `form:"namespace"`
 | 
			
		||||
	})
 | 
			
		||||
	if err := ctx.Bind(params); err != nil {
 | 
			
		||||
		logger.Error("Bind请求参数失败, " + err.Error())
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
			"msg":  err.Error(),
 | 
			
		||||
			"data": nil,
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	data, err := service.Secret.GetSecretDetail(params.SecretName, params.Namespace)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
			"msg":  err.Error(),
 | 
			
		||||
			"data": nil,
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	ctx.JSON(http.StatusOK, gin.H{
 | 
			
		||||
		"msg":  "获取Secret详情成功",
 | 
			
		||||
		"data": data,
 | 
			
		||||
	})
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (s *secret) DeleteSecret(ctx *gin.Context) {
 | 
			
		||||
	params := new(struct {
 | 
			
		||||
		SecretName string `json:"secret_name"`
 | 
			
		||||
		Namespace  string `json:"namespace"`
 | 
			
		||||
	})
 | 
			
		||||
 | 
			
		||||
	if err := ctx.ShouldBindJSON(params); err != nil {
 | 
			
		||||
		logger.Error("Bind请求参数失败, " + err.Error())
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
			"msg":  err.Error(),
 | 
			
		||||
			"data": nil,
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	err := service.Secret.DeleteSecret(params.SecretName, params.Namespace)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
			"msg":  err.Error(),
 | 
			
		||||
			"data": nil,
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	ctx.JSON(http.StatusOK, gin.H{
 | 
			
		||||
		"msg":  "删除Secret成功",
 | 
			
		||||
		"data": nil,
 | 
			
		||||
	})
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (s *secret) UpdateSecret(ctx *gin.Context) {
 | 
			
		||||
	params := new(struct {
 | 
			
		||||
		Namespace string `json:"namespace"`
 | 
			
		||||
		Content   string `json:"content"`
 | 
			
		||||
	})
 | 
			
		||||
 | 
			
		||||
	if err := ctx.ShouldBindJSON(params); err != nil {
 | 
			
		||||
		logger.Error("Bind请求参数失败, " + err.Error())
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
			"msg":  err.Error(),
 | 
			
		||||
			"data": nil,
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	err := service.Secret.UpdateSecret(params.Namespace, params.Content)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
			"msg":  err.Error(),
 | 
			
		||||
			"data": nil,
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	ctx.JSON(http.StatusOK, gin.H{
 | 
			
		||||
		"msg":  "更新Secret成功",
 | 
			
		||||
		"data": nil,
 | 
			
		||||
	})
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										158
									
								
								controller/service.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										158
									
								
								controller/service.go
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,158 @@
 | 
			
		||||
package controller
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"dkube/service"
 | 
			
		||||
	"github.com/gin-gonic/gin"
 | 
			
		||||
	"github.com/wonderivan/logger"
 | 
			
		||||
	"net/http"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
var Servicev1 servicev1
 | 
			
		||||
 | 
			
		||||
type servicev1 struct{}
 | 
			
		||||
 | 
			
		||||
func (s *servicev1) GetServices(ctx *gin.Context) {
 | 
			
		||||
	params := new(struct {
 | 
			
		||||
		FilterName string `form:"filter_name"`
 | 
			
		||||
		Namespace  string `form:"namespace"`
 | 
			
		||||
		Page       int    `form:"page"`
 | 
			
		||||
		Limit      int    `form:"limit"`
 | 
			
		||||
	})
 | 
			
		||||
	if err := ctx.Bind(params); err != nil {
 | 
			
		||||
		logger.Error("Bind请求参数失败, " + err.Error())
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
			"msg":  err.Error(),
 | 
			
		||||
			"data": nil,
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	data, err := service.Servicev1.GetServices(params.FilterName, params.Namespace, params.Limit, params.Page)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
			"msg":  err.Error(),
 | 
			
		||||
			"data": nil,
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	ctx.JSON(http.StatusOK, gin.H{
 | 
			
		||||
		"msg":  "获取Servicet列表成功",
 | 
			
		||||
		"data": data,
 | 
			
		||||
	})
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (s *servicev1) GetServiceDetail(ctx *gin.Context) {
 | 
			
		||||
	params := new(struct {
 | 
			
		||||
		ServiceName string `form:"service_name"`
 | 
			
		||||
		Namespace   string `form:"namespace"`
 | 
			
		||||
	})
 | 
			
		||||
	if err := ctx.Bind(params); err != nil {
 | 
			
		||||
		logger.Error("Bind请求参数失败, " + err.Error())
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
			"msg":  err.Error(),
 | 
			
		||||
			"data": nil,
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	data, err := service.Servicev1.GetServicetDetail(params.ServiceName, params.Namespace)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
			"msg":  err.Error(),
 | 
			
		||||
			"data": nil,
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	ctx.JSON(http.StatusOK, gin.H{
 | 
			
		||||
		"msg":  "获取Service详情成功",
 | 
			
		||||
		"data": data,
 | 
			
		||||
	})
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (s *servicev1) CreateService(ctx *gin.Context) {
 | 
			
		||||
	var (
 | 
			
		||||
		serviceCreate = new(service.ServiceCreate)
 | 
			
		||||
		err           error
 | 
			
		||||
	)
 | 
			
		||||
 | 
			
		||||
	if err = ctx.ShouldBindJSON(serviceCreate); err != nil {
 | 
			
		||||
		logger.Error("Bind请求参数失败, " + err.Error())
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
			"msg":  err.Error(),
 | 
			
		||||
			"data": nil,
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if err = service.Servicev1.CreateService(serviceCreate); err != nil {
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
			"msg":  err.Error(),
 | 
			
		||||
			"data": nil,
 | 
			
		||||
		})
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	ctx.JSON(http.StatusOK, gin.H{
 | 
			
		||||
		"msg":  "创建Service成功",
 | 
			
		||||
		"data": nil,
 | 
			
		||||
	})
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (s *servicev1) DeleteService(ctx *gin.Context) {
 | 
			
		||||
	params := new(struct {
 | 
			
		||||
		ServiceName string `json:"service_name"`
 | 
			
		||||
		Namespace   string `json:"namespace"`
 | 
			
		||||
	})
 | 
			
		||||
 | 
			
		||||
	if err := ctx.ShouldBindJSON(params); err != nil {
 | 
			
		||||
		logger.Error("Bind请求参数失败, " + err.Error())
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
			"msg":  err.Error(),
 | 
			
		||||
			"data": nil,
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	err := service.Servicev1.DeleteService(params.ServiceName, params.Namespace)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
			"msg":  err.Error(),
 | 
			
		||||
			"data": nil,
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	ctx.JSON(http.StatusOK, gin.H{
 | 
			
		||||
		"msg":  "删除Service成功",
 | 
			
		||||
		"data": nil,
 | 
			
		||||
	})
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (s *servicev1) UpdateService(ctx *gin.Context) {
 | 
			
		||||
	params := new(struct {
 | 
			
		||||
		Namespace string `json:"namespace"`
 | 
			
		||||
		Content   string `json:"content"`
 | 
			
		||||
	})
 | 
			
		||||
 | 
			
		||||
	if err := ctx.ShouldBindJSON(params); err != nil {
 | 
			
		||||
		logger.Error("Bind请求参数失败, " + err.Error())
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
			"msg":  err.Error(),
 | 
			
		||||
			"data": nil,
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	err := service.Servicev1.UpdateService(params.Namespace, params.Content)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
			"msg":  err.Error(),
 | 
			
		||||
			"data": nil,
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	ctx.JSON(http.StatusOK, gin.H{
 | 
			
		||||
		"msg":  "更新Service成功",
 | 
			
		||||
		"data": nil,
 | 
			
		||||
	})
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										130
									
								
								controller/statefulset.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										130
									
								
								controller/statefulset.go
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,130 @@
 | 
			
		||||
package controller
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"dkube/service"
 | 
			
		||||
	"github.com/gin-gonic/gin"
 | 
			
		||||
	"github.com/wonderivan/logger"
 | 
			
		||||
	"net/http"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
var StatefulSet statefulSet
 | 
			
		||||
 | 
			
		||||
type statefulSet struct{}
 | 
			
		||||
 | 
			
		||||
func (s *statefulSet) GetStatefulSets(ctx *gin.Context) {
 | 
			
		||||
	params := new(struct {
 | 
			
		||||
		FilterName string `form:"filter_name"`
 | 
			
		||||
		Namespace  string `form:"namespace"`
 | 
			
		||||
		Page       int    `form:"page"`
 | 
			
		||||
		Limit      int    `form:"limit"`
 | 
			
		||||
	})
 | 
			
		||||
	if err := ctx.Bind(params); err != nil {
 | 
			
		||||
		logger.Error("Bind请求参数失败, " + err.Error())
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
			"msg":  err.Error(),
 | 
			
		||||
			"data": nil,
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	data, err := service.StatefulSet.GetStatefulSets(params.FilterName, params.Namespace, params.Limit, params.Page)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
			"msg":  err.Error(),
 | 
			
		||||
			"data": nil,
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	ctx.JSON(http.StatusOK, gin.H{
 | 
			
		||||
		"msg":  "获取StatefulSet列表成功",
 | 
			
		||||
		"data": data,
 | 
			
		||||
	})
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (s *statefulSet) GetStatefulSetDetail(ctx *gin.Context) {
 | 
			
		||||
	params := new(struct {
 | 
			
		||||
		StatefulSetName string `form:"statefulset_name"`
 | 
			
		||||
		Namespace       string `form:"namespace"`
 | 
			
		||||
	})
 | 
			
		||||
	if err := ctx.Bind(params); err != nil {
 | 
			
		||||
		logger.Error("Bind请求参数失败, " + err.Error())
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
			"msg":  err.Error(),
 | 
			
		||||
			"data": nil,
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	data, err := service.StatefulSet.GetStatefulSetDetail(params.StatefulSetName, params.Namespace)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
			"msg":  err.Error(),
 | 
			
		||||
			"data": nil,
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	ctx.JSON(http.StatusOK, gin.H{
 | 
			
		||||
		"msg":  "获取StatefulSet详情成功",
 | 
			
		||||
		"data": data,
 | 
			
		||||
	})
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (s *statefulSet) DeleteStatefulSet(ctx *gin.Context) {
 | 
			
		||||
	params := new(struct {
 | 
			
		||||
		StatefulSetName string `json:"statefulset_name"`
 | 
			
		||||
		Namespace       string `json:"namespace"`
 | 
			
		||||
	})
 | 
			
		||||
 | 
			
		||||
	if err := ctx.ShouldBindJSON(params); err != nil {
 | 
			
		||||
		logger.Error("Bind请求参数失败, " + err.Error())
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
			"msg":  err.Error(),
 | 
			
		||||
			"data": nil,
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	err := service.StatefulSet.DeleteStatefulSet(params.StatefulSetName, params.Namespace)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
			"msg":  err.Error(),
 | 
			
		||||
			"data": nil,
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	ctx.JSON(http.StatusOK, gin.H{
 | 
			
		||||
		"msg":  "删除StatefulSet成功",
 | 
			
		||||
		"data": nil,
 | 
			
		||||
	})
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (s *statefulSet) UpdateStatefulSet(ctx *gin.Context) {
 | 
			
		||||
	params := new(struct {
 | 
			
		||||
		Namespace string `json:"namespace"`
 | 
			
		||||
		Content   string `json:"content"`
 | 
			
		||||
	})
 | 
			
		||||
 | 
			
		||||
	if err := ctx.ShouldBindJSON(params); err != nil {
 | 
			
		||||
		logger.Error("Bind请求参数失败, " + err.Error())
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
			"msg":  err.Error(),
 | 
			
		||||
			"data": nil,
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	err := service.StatefulSet.UpdateStatefulSet(params.Namespace, params.Content)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
			"msg":  err.Error(),
 | 
			
		||||
			"data": nil,
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	ctx.JSON(http.StatusOK, gin.H{
 | 
			
		||||
		"msg":  "更新StatefulSet成功",
 | 
			
		||||
		"data": nil,
 | 
			
		||||
	})
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										131
									
								
								controller/workflow.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										131
									
								
								controller/workflow.go
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,131 @@
 | 
			
		||||
package controller
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"dkube/service"
 | 
			
		||||
	"github.com/gin-gonic/gin"
 | 
			
		||||
	"github.com/wonderivan/logger"
 | 
			
		||||
	"net/http"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
var Workflow workflow
 | 
			
		||||
 | 
			
		||||
type workflow struct{}
 | 
			
		||||
 | 
			
		||||
func (w *workflow) GetList(ctx *gin.Context) {
 | 
			
		||||
	params := new(struct {
 | 
			
		||||
		Name      string `form:"name"`
 | 
			
		||||
		Namespace string `form:"namespace"`
 | 
			
		||||
		Page      int    `form:"page"`
 | 
			
		||||
		Limit     int    `form:"limit"`
 | 
			
		||||
	})
 | 
			
		||||
	if err := ctx.Bind(params); err != nil {
 | 
			
		||||
		logger.Error("Bind请求参数失败, " + err.Error())
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
			"msg":  err.Error(),
 | 
			
		||||
			"data": nil,
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	data, err := service.Workflow.GetList(params.Name, params.Namespace, params.Limit, params.Page)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		logger.Error("获取Workflow列表失败, " + err.Error())
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
			"msg":  err.Error(),
 | 
			
		||||
			"data": nil,
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	ctx.JSON(http.StatusOK, gin.H{
 | 
			
		||||
		"msg":  "获取Workflow列表成功",
 | 
			
		||||
		"data": data,
 | 
			
		||||
	})
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (w *workflow) GetById(ctx *gin.Context) {
 | 
			
		||||
	params := new(struct {
 | 
			
		||||
		ID int `form:"id"`
 | 
			
		||||
	})
 | 
			
		||||
	if err := ctx.Bind(params); err != nil {
 | 
			
		||||
		logger.Error("Bind请求参数失败, " + err.Error())
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
			"msg":  err.Error(),
 | 
			
		||||
			"data": nil,
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	data, err := service.Workflow.GetById(params.ID)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		logger.Error("查询Workflow单条数据失败, " + err.Error())
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
			"msg":  err.Error(),
 | 
			
		||||
			"data": nil,
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	ctx.JSON(http.StatusOK, gin.H{
 | 
			
		||||
		"msg":  "查询Workflow单条数据成功",
 | 
			
		||||
		"data": data,
 | 
			
		||||
	})
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (w *workflow) Create(ctx *gin.Context) {
 | 
			
		||||
	var (
 | 
			
		||||
		wc  = &service.WorkflowCreate{}
 | 
			
		||||
		err error
 | 
			
		||||
	)
 | 
			
		||||
 | 
			
		||||
	if err = ctx.ShouldBindJSON(wc); err != nil {
 | 
			
		||||
		logger.Error("Bind请求参数dc失败, " + err.Error())
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
			"msg":  err.Error(),
 | 
			
		||||
			"data": nil,
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	if err = service.Workflow.CreateWorkFlow(wc); err != nil {
 | 
			
		||||
		logger.Error("创建Workflow失败, " + err.Error())
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
			"msg":  err.Error(),
 | 
			
		||||
			"data": nil,
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	ctx.JSON(http.StatusOK, gin.H{
 | 
			
		||||
		"msg":  "创建Workflow成功",
 | 
			
		||||
		"data": nil,
 | 
			
		||||
	})
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (w *workflow) DelById(ctx *gin.Context) {
 | 
			
		||||
	params := new(struct {
 | 
			
		||||
		ID int `json:"id"`
 | 
			
		||||
	})
 | 
			
		||||
	if err := ctx.ShouldBindJSON(params); err != nil {
 | 
			
		||||
		logger.Error("Bind请求参数失败, " + err.Error())
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
			"msg":  err.Error(),
 | 
			
		||||
			"data": nil,
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if err := service.Workflow.DelById(params.ID); err != nil {
 | 
			
		||||
		logger.Error("删除Workflow失败, " + err.Error())
 | 
			
		||||
		ctx.JSON(http.StatusInternalServerError, gin.H{
 | 
			
		||||
			"msg":  err.Error(),
 | 
			
		||||
			"data": nil,
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	ctx.JSON(http.StatusOK, gin.H{
 | 
			
		||||
		"msg":  "删除Workflow成功",
 | 
			
		||||
		"data": nil,
 | 
			
		||||
	})
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user