From 2210db4d3cfac5086bb3b25d3c16fd0c6d7d3a8f Mon Sep 17 00:00:00 2001 From: zhangwei <894646498@qq.com> Date: Fri, 26 Apr 2024 16:27:26 +0800 Subject: [PATCH] adapter info Former-commit-id: c717f0f1d0eabd7121ed7d43a8e22e82603b8d64 --- api/desc/monitoring/pcm-monitoring.api | 10 ++++++ api/desc/pcm.api | 3 ++ .../handler/monitoring/adapterinfohandler.go | 25 +++++++++++++++ api/internal/handler/routes.go | 5 +++ .../logic/monitoring/adapterinfologic.go | 31 +++++++++++++++++++ api/internal/types/types.go | 9 ++++++ 6 files changed, 83 insertions(+) create mode 100644 api/internal/handler/monitoring/adapterinfohandler.go create mode 100644 api/internal/logic/monitoring/adapterinfologic.go diff --git a/api/desc/monitoring/pcm-monitoring.api b/api/desc/monitoring/pcm-monitoring.api index cdd39fdc..8dc7cdd9 100644 --- a/api/desc/monitoring/pcm-monitoring.api +++ b/api/desc/monitoring/pcm-monitoring.api @@ -70,4 +70,14 @@ type ( history int `json:"history"` failed int `json:"failed"` } +) + +type ( + adapterInfoReq{ + clusterId string `form:"clusterId"` + } + adapterInfoResp{ + name string `json:"name"` + version string `json:"version"` + } ) \ No newline at end of file diff --git a/api/desc/pcm.api b/api/desc/pcm.api index 51e5502c..de215d2f 100644 --- a/api/desc/pcm.api +++ b/api/desc/pcm.api @@ -995,4 +995,7 @@ service pcm { @handler taskNumHandler get /monitoring/task/num (taskNumReq) returns (taskNumResp) + + @handler adapterInfoHandler + get /monitoring/adapter/info (adapterInfoReq) returns (adapterInfoResp) } \ No newline at end of file diff --git a/api/internal/handler/monitoring/adapterinfohandler.go b/api/internal/handler/monitoring/adapterinfohandler.go new file mode 100644 index 00000000..4869213f --- /dev/null +++ b/api/internal/handler/monitoring/adapterinfohandler.go @@ -0,0 +1,25 @@ +package monitoring + +import ( + "gitlink.org.cn/JointCloud/pcm-coordinator/pkg/repository/result" + "net/http" + + "github.com/zeromicro/go-zero/rest/httpx" + "gitlink.org.cn/JointCloud/pcm-coordinator/api/internal/logic/monitoring" + "gitlink.org.cn/JointCloud/pcm-coordinator/api/internal/svc" + "gitlink.org.cn/JointCloud/pcm-coordinator/api/internal/types" +) + +func AdapterInfoHandler(svcCtx *svc.ServiceContext) http.HandlerFunc { + return func(w http.ResponseWriter, r *http.Request) { + var req types.AdapterInfoReq + if err := httpx.Parse(r, &req); err != nil { + httpx.ErrorCtx(r.Context(), w, err) + return + } + + l := monitoring.NewAdapterInfoLogic(r.Context(), svcCtx) + resp, err := l.AdapterInfo(&req) + result.HttpResult(r, w, resp, err) + } +} diff --git a/api/internal/handler/routes.go b/api/internal/handler/routes.go index 9fe292b5..599422d5 100644 --- a/api/internal/handler/routes.go +++ b/api/internal/handler/routes.go @@ -1252,6 +1252,11 @@ func RegisterHandlers(server *rest.Server, serverCtx *svc.ServiceContext) { Path: "/monitoring/task/num", Handler: monitoring.TaskNumHandler(serverCtx), }, + { + Method: http.MethodGet, + Path: "/monitoring/adapter/info", + Handler: monitoring.AdapterInfoHandler(serverCtx), + }, }, rest.WithPrefix("/pcm/v1"), ) diff --git a/api/internal/logic/monitoring/adapterinfologic.go b/api/internal/logic/monitoring/adapterinfologic.go new file mode 100644 index 00000000..1afc91e4 --- /dev/null +++ b/api/internal/logic/monitoring/adapterinfologic.go @@ -0,0 +1,31 @@ +package monitoring + +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 AdapterInfoLogic struct { + logx.Logger + ctx context.Context + svcCtx *svc.ServiceContext +} + +func NewAdapterInfoLogic(ctx context.Context, svcCtx *svc.ServiceContext) *AdapterInfoLogic { + return &AdapterInfoLogic{ + Logger: logx.WithContext(ctx), + ctx: ctx, + svcCtx: svcCtx, + } +} + +func (l *AdapterInfoLogic) AdapterInfo(req *types.AdapterInfoReq) (resp *types.AdapterInfoResp, err error) { + // todo: add your logic here and delete this line + resp = &types.AdapterInfoResp{} + l.svcCtx.DbEngin.Raw("select ta.name , ta.version from t_adapter ta,t_cluster tc where tc.id = ? and tc.adapter_id = ta.id", req.ClusterId).Scan(resp) + return resp, nil +} diff --git a/api/internal/types/types.go b/api/internal/types/types.go index b4e691db..ab192993 100644 --- a/api/internal/types/types.go +++ b/api/internal/types/types.go @@ -5602,3 +5602,12 @@ type TaskNumResp struct { History int `json:"history"` Failed int `json:"failed"` } + +type AdapterInfoReq struct { + ClusterId string `form:"clusterId"` +} + +type AdapterInfoResp struct { + Name string `json:"name"` + Version string `json:"version"` +}