diff --git a/api/desc/core/pcm-core.api b/api/desc/core/pcm-core.api index 42ec647a..68aba46d 100644 --- a/api/desc/core/pcm-core.api +++ b/api/desc/core/pcm-core.api @@ -32,6 +32,23 @@ type ( } ) +type ( + HomeOverviewReq { + + } + HomeOverviewResp { + Code int `json:"code"` + Message string `json:"message"` + Data HomeOverviewData `json:"data"` + } + HomeOverviewData{ + AdaptSum int64 `json:"adaptSum"` + ClusterSum int64 `json:"clusterSum"` + StorageSum float32 `json:"storageSum"` + TaskSum int64 `json:"taskSum"` + } +) + type remoteResp { Code int `json:"code"` Message string `json:"message"` diff --git a/api/desc/pcm.api b/api/desc/pcm.api index d7de1f70..6dd7aa4e 100644 --- a/api/desc/pcm.api +++ b/api/desc/pcm.api @@ -136,11 +136,15 @@ service pcm { @doc "Statistical task status" @handler countTaskStatus - get /core/task/countTaskStatus () returns(TaskStatusResp) + get /core/task/countTaskStatus () returns (TaskStatusResp) - @doc "task details" - @handler taskDetails - get /core/task/details (CId) returns(TaskStatusResp) + @doc "Home Page Overview" + @handler homeOverviewHandler + get /core/homeOverview (HomeOverviewReq) returns (HomeOverviewResp) + + @doc "task details" + @handler taskDetails + get /core/task/details (CId) returns(TaskStatusResp) } //hpc二级接口 @@ -214,7 +218,7 @@ service pcm { @doc "Create cloud computing common tasks" @handler commitGeneralTask - post /cloud/task/create (GeneralTaskReq) returns () + post /cloud/task/create (GeneralTaskReq) returns() } //智算二级接口 @@ -982,7 +986,7 @@ service pcm { @doc "alert rules" @handler alertRulesHandler - get /monitoring/alert/rule (AlertRulesReq) returns (AlertRulesResp) + get /monitoring/alert/rule (AlertRulesReq)returns (AlertRulesResp) @doc "cluster resource load" @handler clustersLoadHandler @@ -998,11 +1002,11 @@ service pcm { @doc "Synchronize Cluster alert Information" @handler syncClusterAlertHandler - post /monitoring/syncClusterAlert (SyncClusterAlertReq) + post /core/syncClusterAlert (SyncClusterAlertReq) - @handler taskNumHandler - get /monitoring/task/num (taskNumReq) returns (taskNumResp) + @handler taskNumHandler + get /monitoring/task/num (taskNumReq) returns (taskNumResp) - @handler adapterInfoHandler - get /monitoring/adapter/info (adapterInfoReq) returns (adapterInfoResp) + @handler adapterInfoHandler + get /monitoring/adapter/info (adapterInfoReq) returns (adapterInfoResp) } \ No newline at end of file diff --git a/api/internal/handler/core/homeoverviewhandler.go b/api/internal/handler/core/homeoverviewhandler.go new file mode 100644 index 00000000..3cf4ac59 --- /dev/null +++ b/api/internal/handler/core/homeoverviewhandler.go @@ -0,0 +1,28 @@ +package core + +import ( + "net/http" + + "github.com/zeromicro/go-zero/rest/httpx" + "gitlink.org.cn/JointCloud/pcm-coordinator/api/internal/logic/core" + "gitlink.org.cn/JointCloud/pcm-coordinator/api/internal/svc" + "gitlink.org.cn/JointCloud/pcm-coordinator/api/internal/types" +) + +func HomeOverviewHandler(svcCtx *svc.ServiceContext) http.HandlerFunc { + return func(w http.ResponseWriter, r *http.Request) { + var req types.HomeOverviewReq + if err := httpx.Parse(r, &req); err != nil { + httpx.ErrorCtx(r.Context(), w, err) + return + } + + l := core.NewHomeOverviewLogic(r.Context(), svcCtx) + resp, err := l.HomeOverview(&req) + if err != nil { + httpx.ErrorCtx(r.Context(), w, err) + } else { + httpx.OkJsonCtx(r.Context(), w, resp) + } + } +} diff --git a/api/internal/handler/routes.go b/api/internal/handler/routes.go index 15673c66..65819517 100644 --- a/api/internal/handler/routes.go +++ b/api/internal/handler/routes.go @@ -165,6 +165,11 @@ func RegisterHandlers(server *rest.Server, serverCtx *svc.ServiceContext) { Path: "/core/task/countTaskStatus", Handler: core.CountTaskStatusHandler(serverCtx), }, + { + Method: http.MethodGet, + Path: "/core/homeOverview", + Handler: core.HomeOverviewHandler(serverCtx), + }, { Method: http.MethodGet, Path: "/core/task/details", diff --git a/api/internal/logic/core/homeoverviewlogic.go b/api/internal/logic/core/homeoverviewlogic.go new file mode 100644 index 00000000..927a9f85 --- /dev/null +++ b/api/internal/logic/core/homeoverviewlogic.go @@ -0,0 +1,73 @@ +package core + +import ( + "context" + + "gitlink.org.cn/JointCloud/pcm-coordinator/api/internal/svc" + "gitlink.org.cn/JointCloud/pcm-coordinator/api/internal/types" + + "github.com/zeromicro/go-zero/core/logx" +) + +type HomeOverviewLogic struct { + logx.Logger + ctx context.Context + svcCtx *svc.ServiceContext +} + +func NewHomeOverviewLogic(ctx context.Context, svcCtx *svc.ServiceContext) *HomeOverviewLogic { + return &HomeOverviewLogic{ + Logger: logx.WithContext(ctx), + ctx: ctx, + svcCtx: svcCtx, + } +} + +func (l *HomeOverviewLogic) HomeOverview(req *types.HomeOverviewReq) (resp *types.HomeOverviewResp, err error) { + // todo: add your logic here and delete this line + resp = &types.HomeOverviewResp{} + var AdapterSum int // + var StorageSum float32 // + var ClusterSum int // + var TaskSum int // + //Task + sqlStrTask := "SELECT COUNT(*) FROM `task`" + txTask := l.svcCtx.DbEngin.Raw(sqlStrTask).Scan(&TaskSum) + if txTask.Error != nil { + logx.Error(err) + return nil, txTask.Error + } + + //Storage + sqlStrStorage := "SELECT SUM(t.storage_space) as storageSum FROM `t_storage_device` t" + txStorage := l.svcCtx.DbEngin.Raw(sqlStrStorage).Scan(&StorageSum) + if txTask.Error != nil { + logx.Error(err) + return nil, txStorage.Error + } + + //Cluster + sqlStrCluster := "SELECT COUNT(*) FROM `t_cluster`" + txCluster := l.svcCtx.DbEngin.Raw(sqlStrCluster).Scan(&ClusterSum) + if txTask.Error != nil { + logx.Error(err) + return nil, txCluster.Error + } + + //Adapter + sqlStrAdapter := "SELECT COUNT(*) FROM `t_adapter`" + txAdapter := l.svcCtx.DbEngin.Raw(sqlStrAdapter).Scan(&AdapterSum) + if txTask.Error != nil { + logx.Error(err) + return nil, txAdapter.Error + } + + resp.Data.TaskSum = int64(TaskSum) + resp.Data.StorageSum = StorageSum + resp.Data.AdaptSum = int64(AdapterSum) + resp.Data.ClusterSum = int64(ClusterSum) + + resp.Code = 200 + resp.Message = "Success" + return resp, nil +} diff --git a/api/internal/types/types.go b/api/internal/types/types.go index aa926900..6bf0ef2a 100644 --- a/api/internal/types/types.go +++ b/api/internal/types/types.go @@ -25,6 +25,22 @@ type CenterIndex struct { CenterType string `json:"centerType"` } +type HomeOverviewReq struct { +} + +type HomeOverviewResp struct { + Code int `json:"code"` + Message string `json:"message"` + Data HomeOverviewData `json:"data"` +} + +type HomeOverviewData struct { + AdaptSum int64 `json:"adaptSum"` + ClusterSum int64 `json:"clusterSum"` + StorageSum float32 `json:"storageSum"` + TaskSum int64 `json:"taskSum"` +} + type RemoteResp struct { Code int `json:"code"` Message string `json:"message"` diff --git a/deploy/pcm-yaml.zip b/deploy/pcm-yaml.zip new file mode 100644 index 00000000..2deae592 Binary files /dev/null and b/deploy/pcm-yaml.zip differ