fix: template yaml
feature: compute center overview interface
This commit is contained in:
parent
7ccfe1d97f
commit
81bbde3ae8
|
@ -10,7 +10,7 @@ ScheduleHpcConf:
|
|||
CloudTopic: Schedule-Cloud-Topic
|
||||
|
||||
DB:
|
||||
DataSource: root:uJpLd6u-J?HC1@(106.53.150.192:3306)/pcm?parseTime=true
|
||||
DataSource:
|
||||
|
||||
Redis:
|
||||
Host: localhost:6379
|
|
@ -0,0 +1,21 @@
|
|||
package handler
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
|
||||
"PCM/adaptor/PCM-CORE/api/internal/logic"
|
||||
"PCM/adaptor/PCM-CORE/api/internal/svc"
|
||||
"github.com/zeromicro/go-zero/rest/httpx"
|
||||
)
|
||||
|
||||
func listCenterHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
|
||||
return func(w http.ResponseWriter, r *http.Request) {
|
||||
l := logic.NewListCenterLogic(r.Context(), svcCtx)
|
||||
resp, err := l.ListCenter()
|
||||
if err != nil {
|
||||
httpx.ErrorCtx(r.Context(), w, err)
|
||||
} else {
|
||||
httpx.OkJsonCtx(r.Context(), w, resp)
|
||||
}
|
||||
}
|
||||
}
|
|
@ -22,6 +22,11 @@ func RegisterHandlers(server *rest.Server, serverCtx *svc.ServiceContext) {
|
|||
Path: "/taskList",
|
||||
Handler: TaskListHandler(serverCtx),
|
||||
},
|
||||
{
|
||||
Method: http.MethodGet,
|
||||
Path: "/listCenter",
|
||||
Handler: listCenterHandler(serverCtx),
|
||||
},
|
||||
},
|
||||
)
|
||||
}
|
||||
|
|
|
@ -0,0 +1,85 @@
|
|||
package logic
|
||||
|
||||
import (
|
||||
"PCM/adaptor/PCM-CORE/api/internal/svc"
|
||||
"PCM/adaptor/PCM-CORE/api/internal/types"
|
||||
"PCM/adaptor/PCM-CORE/model"
|
||||
"context"
|
||||
"github.com/zeromicro/go-zero/core/logx"
|
||||
)
|
||||
|
||||
type ListCenterLogic struct {
|
||||
logx.Logger
|
||||
ctx context.Context
|
||||
svcCtx *svc.ServiceContext
|
||||
}
|
||||
|
||||
func NewListCenterLogic(ctx context.Context, svcCtx *svc.ServiceContext) *ListCenterLogic {
|
||||
return &ListCenterLogic{
|
||||
Logger: logx.WithContext(ctx),
|
||||
ctx: ctx,
|
||||
svcCtx: svcCtx,
|
||||
}
|
||||
}
|
||||
|
||||
func (l *ListCenterLogic) ListCenter() (*types.ListCenterResp, error) {
|
||||
var centers []types.Center
|
||||
var centersModel *[]model.CenterOverview
|
||||
|
||||
//var centersModel []model.ComputeCenter
|
||||
var resp types.ListCenterResp
|
||||
|
||||
centersModel, _ = l.svcCtx.CenterOverviewModel.FindAll(l.ctx)
|
||||
|
||||
var centerModelV = *centersModel
|
||||
|
||||
for _, overview := range centerModelV {
|
||||
var center types.Center
|
||||
center.Id = overview.Id.Int64
|
||||
center.CenterSource = overview.CenterSource.String
|
||||
center.SourceId = overview.SourceId.String
|
||||
center.Name = overview.Name.String
|
||||
center.Description = overview.Description.String
|
||||
center.Type = overview.Type.String
|
||||
center.Area = overview.Area.String
|
||||
center.City = overview.City.String
|
||||
center.Longitude = overview.Longitude.Float64
|
||||
center.Latitude = overview.Latitude.Float64
|
||||
center.Status = overview.Status.String
|
||||
center.UserNum = overview.UserNum.Int64
|
||||
center.CloudClusterNum = overview.CloudClusterNum.Int64
|
||||
center.AiClusterNum = overview.AiClusterNum.Int64
|
||||
center.HpcClusterNum = overview.HpcClusterNum.Int64
|
||||
center.CloudNodeNum = overview.CloudNodeNum.Int64
|
||||
center.AiNodeNum = overview.AiNodeNum.Int64
|
||||
center.HpcNodeNum = overview.HpcNodeNum.Int64
|
||||
center.CloudCpuNum = overview.CloudCpuNum.Int64
|
||||
center.AiCpuNum = overview.AiCpuNum.Int64
|
||||
center.HpcCpuNum = overview.HpcCpuNum.Int64
|
||||
center.CloudGpuNum = overview.CloudGpuNum.Int64
|
||||
center.AiGpuNum = overview.AiGpuNum.Int64
|
||||
center.HpcGpuNum = overview.HpcGpuNum.Int64
|
||||
center.CloudMngFlops = overview.CloudMngFlops.Int64
|
||||
center.AiMngFlops = overview.AiMngFlops.Int64
|
||||
center.HpcMngFlops = overview.HpcMngFlops.Int64
|
||||
center.CloudUmngFlops = overview.CloudUmngFlops.Int64
|
||||
center.AiUmngFlops = overview.AiUmngFlops.Int64
|
||||
center.HpcUmngFlops = overview.HpcUmngFlops.Int64
|
||||
center.CloudMngStorage = overview.CloudMngStorage.Int64
|
||||
center.AiMngStorage = overview.AiMngStorage.Int64
|
||||
center.HpcMngStorage = overview.HpcMngStorage.Int64
|
||||
center.CloudUmngStorage = overview.CloudUmngStorage.Int64
|
||||
center.AiUmngStorage = overview.AiUmngStorage.Int64
|
||||
center.HpcUmngStorage = overview.HpcUmngStorage.Int64
|
||||
center.Edwc = overview.Edwc.Bool
|
||||
center.Ydyl = overview.Ydyl.Bool
|
||||
center.DeletedFlag = overview.DeletedFlag.Int64
|
||||
centers = append(centers, center)
|
||||
}
|
||||
|
||||
resp.Code = 200
|
||||
resp.Msg = "success"
|
||||
resp.Data.TotalCount = len(centers)
|
||||
resp.Data.Centers = centers
|
||||
return &resp, nil
|
||||
}
|
|
@ -15,6 +15,7 @@ type ServiceContext struct {
|
|||
RedisClient *redis.Client
|
||||
ScheduleCloudClient *kq.Pusher
|
||||
TaskModel model.TaskModel
|
||||
CenterOverviewModel model.CenterOverviewModel
|
||||
SqlConn sqlx.SqlConn
|
||||
Db *sql.DB
|
||||
}
|
||||
|
@ -30,6 +31,7 @@ func NewServiceContext(c config.Config) *ServiceContext {
|
|||
}),
|
||||
SqlConn: sqlx.NewMysql(c.DB.DataSource),
|
||||
TaskModel: model.NewTaskModel(sqlConn, c.Cache),
|
||||
CenterOverviewModel: model.NewCenterOverviewModel(sqlConn, c.Cache),
|
||||
ScheduleHpcClient: kq.NewPusher(c.ScheduleHpcConf.Brokers, c.ScheduleHpcConf.HpcTopic),
|
||||
ScheduleCloudClient: kq.NewPusher(c.ScheduleHpcConf.Brokers, c.ScheduleHpcConf.CloudTopic),
|
||||
}
|
||||
|
|
|
@ -34,3 +34,56 @@ type Task struct {
|
|||
ServiceName string `json:"serviceName"`
|
||||
SynergyStatus string `json:"synergyStatus"`
|
||||
}
|
||||
|
||||
type ListCenterResp struct {
|
||||
Code int32 `json:"code"`
|
||||
Msg string `json:"msg"`
|
||||
Data CenterData `json:"data"`
|
||||
}
|
||||
|
||||
type CenterData struct {
|
||||
TotalCount int `json:"totalCount"`
|
||||
Centers []Center `json:"centers"`
|
||||
}
|
||||
|
||||
type Center struct {
|
||||
Id int64 `json:"id"`
|
||||
CenterSource string `json:"centerSource"`
|
||||
SourceId string `json:"sourceId"`
|
||||
Name string `json:"name"`
|
||||
Description string `json:"description"`
|
||||
Type string `json:"type"`
|
||||
Area string `json:"area"`
|
||||
City string `json:"city"`
|
||||
Longitude float64 `json:"longitude"`
|
||||
Latitude float64 `json:"latitude"`
|
||||
Status string `json:"status"`
|
||||
UserNum int64 `json:"userNum"`
|
||||
DeletedFlag int64 `json:"deletedFlag"`
|
||||
CloudClusterNum int64 `json:"cloudClusterNum"`
|
||||
CloudNodeNum int64 `json:"cloudNodeNum"`
|
||||
CloudCpuNum int64 `json:"cloudCpuNum"`
|
||||
CloudGpuNum int64 `json:"cloudGpuNum"`
|
||||
CloudMngFlops int64 `json:"cloudMngFlops"`
|
||||
CloudUmngFlops int64 `json:"cloudUmngFlops"`
|
||||
CloudMngStorage int64 `json:"cloudMngStorage"`
|
||||
CloudUmngStorage int64 `json:"cloudUmngStorage"`
|
||||
AiClusterNum int64 `json:"aiClusterNum"`
|
||||
AiNodeNum int64 `json:"aiNodeNum"`
|
||||
AiCpuNum int64 `json:"aiCpuNum"`
|
||||
AiGpuNum int64 `json:"aiGpuNum"`
|
||||
AiMngFlops int64 `json:"aiMngFlops"`
|
||||
AiUmngFlops int64 `json:"aiUmngFlops"`
|
||||
AiMngStorage int64 `json:"aiMngStorage"`
|
||||
AiUmngStorage int64 `json:"aiUmngStorage"`
|
||||
HpcClusterNum int64 `json:"hpcClusterNum"`
|
||||
HpcNodeNum int64 `json:"hpcNodeNum"`
|
||||
HpcCpuNum int64 `json:"hpcCpuNum"`
|
||||
HpcGpuNum int64 `json:"hpcGpuNum"`
|
||||
HpcMngFlops int64 `json:"hpcMngFlops"`
|
||||
HpcUmngFlops int64 `json:"hpcUmngFlops"`
|
||||
HpcMngStorage int64 `json:"hpcMngStorage"`
|
||||
HpcUmngStorage int64 `json:"hpcUmngStorage"`
|
||||
Edwc bool `json:"edwc"`
|
||||
Ydyl bool `json:"ydyl"`
|
||||
}
|
||||
|
|
|
@ -42,10 +42,66 @@ type (
|
|||
}
|
||||
)
|
||||
|
||||
type (
|
||||
listCenterResp {
|
||||
Code int32 `json:"code"`
|
||||
Msg string `json:"msg"`
|
||||
Data CenterData `json:"data"`
|
||||
}
|
||||
CenterData {
|
||||
TotalCount int `json:"totalCount"`
|
||||
Centers []Center `json:"centers"`
|
||||
}
|
||||
Center {
|
||||
Id int64 `json:"id"`
|
||||
CenterSource string `json:"centerSource"`
|
||||
SourceId string `json:"sourceId"`
|
||||
Name string `json:"name"`
|
||||
Description string `json:"description"`
|
||||
Type string `json:"type"`
|
||||
Area string `json:"area"`
|
||||
City string `json:"city"`
|
||||
Longitude float64 `json:"longitude"`
|
||||
Latitude float64 `json:"latitude"`
|
||||
Status string `json:"status"`
|
||||
UserNum int64 `json:"userNum"`
|
||||
DeletedFlag int64 `json:"deletedFlag"`
|
||||
CloudClusterNum int64 `json:"cloudClusterNum"`
|
||||
CloudNodeNum int64 `json:"cloudNodeNum"`
|
||||
CloudCpuNum int64 `json:"cloudCpuNum"`
|
||||
CloudGpuNum int64 `json:"cloudGpuNum"`
|
||||
CloudMngFlops int64 `json:"cloudMngFlops"`
|
||||
CloudUmngFlops int64 `json:"cloudUmngFlops"`
|
||||
CloudMngStorage int64 `json:"cloudMngStorage"`
|
||||
CloudUmngStorage int64 `json:"cloudUmngStorage"`
|
||||
AiClusterNum int64 `json:"aiClusterNum"`
|
||||
AiNodeNum int64 `json:"aiNodeNum"`
|
||||
AiCpuNum int64 `json:"aiCpuNum"`
|
||||
AiGpuNum int64 `json:"aiGpuNum"`
|
||||
AiMngFlops int64 `json:"aiMngFlops"`
|
||||
AiUmngFlops int64 `json:"aiUmngFlops"`
|
||||
AiMngStorage int64 `json:"aiMngStorage"`
|
||||
AiUmngStorage int64 `json:"aiUmngStorage"`
|
||||
HpcClusterNum int64 `json:"hpcClusterNum"`
|
||||
HpcNodeNum int64 `json:"hpcNodeNum"`
|
||||
HpcCpuNum int64 `json:"hpcCpuNum"`
|
||||
HpcGpuNum int64 `json:"hpcGpuNum"`
|
||||
HpcMngFlops int64 `json:"hpcMngFlops"`
|
||||
HpcUmngFlops int64 `json:"hpcUmngFlops"`
|
||||
HpcMngStorage int64 `json:"hpcMngStorage"`
|
||||
HpcUmngStorage int64 `json:"hpcUmngStorage"`
|
||||
Edwc bool `json:"edwc"`
|
||||
Ydyl bool `json:"ydyl"`
|
||||
}
|
||||
)
|
||||
|
||||
service pcmcore-api {
|
||||
@handler scheduleTaskHandler
|
||||
post /scheduleTask (scheduleTaskReq) returns (scheduleTaskResp)
|
||||
|
||||
@handler TaskListHandler
|
||||
get /taskList () returns (taskListResp)
|
||||
|
||||
@handler listCenterHandler
|
||||
get /listCenter () returns (listCenterResp)
|
||||
}
|
|
@ -0,0 +1,27 @@
|
|||
package model
|
||||
|
||||
import (
|
||||
"github.com/zeromicro/go-zero/core/stores/cache"
|
||||
"github.com/zeromicro/go-zero/core/stores/sqlx"
|
||||
)
|
||||
|
||||
var _ AiCenterModel = (*customAiCenterModel)(nil)
|
||||
|
||||
type (
|
||||
// AiCenterModel is an interface to be customized, add more methods here,
|
||||
// and implement the added methods in customAiCenterModel.
|
||||
AiCenterModel interface {
|
||||
aiCenterModel
|
||||
}
|
||||
|
||||
customAiCenterModel struct {
|
||||
*defaultAiCenterModel
|
||||
}
|
||||
)
|
||||
|
||||
// NewAiCenterModel returns a model for the database table.
|
||||
func NewAiCenterModel(conn sqlx.SqlConn, c cache.CacheConf) AiCenterModel {
|
||||
return &customAiCenterModel{
|
||||
defaultAiCenterModel: newAiCenterModel(conn, c),
|
||||
}
|
||||
}
|
|
@ -0,0 +1,115 @@
|
|||
// Code generated by goctl. DO NOT EDIT.
|
||||
|
||||
package model
|
||||
|
||||
import (
|
||||
"context"
|
||||
"database/sql"
|
||||
"fmt"
|
||||
"strings"
|
||||
|
||||
"github.com/zeromicro/go-zero/core/stores/builder"
|
||||
"github.com/zeromicro/go-zero/core/stores/cache"
|
||||
"github.com/zeromicro/go-zero/core/stores/sqlc"
|
||||
"github.com/zeromicro/go-zero/core/stores/sqlx"
|
||||
"github.com/zeromicro/go-zero/core/stringx"
|
||||
)
|
||||
|
||||
var (
|
||||
aiCenterFieldNames = builder.RawFieldNames(&AiCenter{})
|
||||
aiCenterRows = strings.Join(aiCenterFieldNames, ",")
|
||||
aiCenterRowsExpectAutoSet = strings.Join(stringx.Remove(aiCenterFieldNames, "`create_at`", "`create_time`", "`created_at`", "`update_at`", "`update_time`", "`updated_at`"), ",")
|
||||
aiCenterRowsWithPlaceHolder = strings.Join(stringx.Remove(aiCenterFieldNames, "`id`", "`create_at`", "`create_time`", "`created_at`", "`update_at`", "`update_time`", "`updated_at`"), "=?,") + "=?"
|
||||
|
||||
cachePcmAiCenterIdPrefix = "cache:pcm:aiCenter:id:"
|
||||
)
|
||||
|
||||
type (
|
||||
aiCenterModel interface {
|
||||
Insert(ctx context.Context, data *AiCenter) (sql.Result, error)
|
||||
FindOne(ctx context.Context, id int64) (*AiCenter, error)
|
||||
Update(ctx context.Context, data *AiCenter) error
|
||||
Delete(ctx context.Context, id int64) error
|
||||
}
|
||||
|
||||
defaultAiCenterModel struct {
|
||||
sqlc.CachedConn
|
||||
table string
|
||||
}
|
||||
|
||||
AiCenter struct {
|
||||
Id int64 `db:"id"` // 平台唯一id
|
||||
ClusterNum sql.NullInt64 `db:"cluster_num"` // 集群数量
|
||||
NodeNum sql.NullInt64 `db:"node_num"` // 节点数量
|
||||
CpuNum sql.NullInt64 `db:"cpu_num"` // CPU核数
|
||||
GpuNum sql.NullInt64 `db:"gpu_num"` // GPU卡数
|
||||
ManagedFlops sql.NullString `db:"managed_flops"` // 已接入算力
|
||||
UnmanagedFlops sql.NullString `db:"unmanaged_flops"` // 未接入算力
|
||||
ManagedStorage sql.NullString `db:"managed_storage"` // 已接入存储
|
||||
UnmanagedStorage sql.NullString `db:"unmanaged_storage"` // 未接入存储
|
||||
}
|
||||
)
|
||||
|
||||
func newAiCenterModel(conn sqlx.SqlConn, c cache.CacheConf) *defaultAiCenterModel {
|
||||
return &defaultAiCenterModel{
|
||||
CachedConn: sqlc.NewConn(conn, c),
|
||||
table: "`ai_center`",
|
||||
}
|
||||
}
|
||||
|
||||
func (m *defaultAiCenterModel) Delete(ctx context.Context, id int64) error {
|
||||
pcmAiCenterIdKey := fmt.Sprintf("%s%v", cachePcmAiCenterIdPrefix, id)
|
||||
_, err := m.ExecCtx(ctx, func(ctx context.Context, conn sqlx.SqlConn) (result sql.Result, err error) {
|
||||
query := fmt.Sprintf("delete from %s where `id` = ?", m.table)
|
||||
return conn.ExecCtx(ctx, query, id)
|
||||
}, pcmAiCenterIdKey)
|
||||
return err
|
||||
}
|
||||
|
||||
func (m *defaultAiCenterModel) FindOne(ctx context.Context, id int64) (*AiCenter, error) {
|
||||
pcmAiCenterIdKey := fmt.Sprintf("%s%v", cachePcmAiCenterIdPrefix, id)
|
||||
var resp AiCenter
|
||||
err := m.QueryRowCtx(ctx, &resp, pcmAiCenterIdKey, func(ctx context.Context, conn sqlx.SqlConn, v interface{}) error {
|
||||
query := fmt.Sprintf("select %s from %s where `id` = ? limit 1", aiCenterRows, m.table)
|
||||
return conn.QueryRowCtx(ctx, v, query, id)
|
||||
})
|
||||
switch err {
|
||||
case nil:
|
||||
return &resp, nil
|
||||
case sqlc.ErrNotFound:
|
||||
return nil, ErrNotFound
|
||||
default:
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
|
||||
func (m *defaultAiCenterModel) Insert(ctx context.Context, data *AiCenter) (sql.Result, error) {
|
||||
pcmAiCenterIdKey := fmt.Sprintf("%s%v", cachePcmAiCenterIdPrefix, data.Id)
|
||||
ret, err := m.ExecCtx(ctx, func(ctx context.Context, conn sqlx.SqlConn) (result sql.Result, err error) {
|
||||
query := fmt.Sprintf("insert into %s (%s) values (?, ?, ?, ?, ?, ?, ?, ?, ?)", m.table, aiCenterRowsExpectAutoSet)
|
||||
return conn.ExecCtx(ctx, query, data.Id, data.ClusterNum, data.NodeNum, data.CpuNum, data.GpuNum, data.ManagedFlops, data.UnmanagedFlops, data.ManagedStorage, data.UnmanagedStorage)
|
||||
}, pcmAiCenterIdKey)
|
||||
return ret, err
|
||||
}
|
||||
|
||||
func (m *defaultAiCenterModel) Update(ctx context.Context, data *AiCenter) error {
|
||||
pcmAiCenterIdKey := fmt.Sprintf("%s%v", cachePcmAiCenterIdPrefix, data.Id)
|
||||
_, err := m.ExecCtx(ctx, func(ctx context.Context, conn sqlx.SqlConn) (result sql.Result, err error) {
|
||||
query := fmt.Sprintf("update %s set %s where `id` = ?", m.table, aiCenterRowsWithPlaceHolder)
|
||||
return conn.ExecCtx(ctx, query, data.ClusterNum, data.NodeNum, data.CpuNum, data.GpuNum, data.ManagedFlops, data.UnmanagedFlops, data.ManagedStorage, data.UnmanagedStorage, data.Id)
|
||||
}, pcmAiCenterIdKey)
|
||||
return err
|
||||
}
|
||||
|
||||
func (m *defaultAiCenterModel) formatPrimary(primary interface{}) string {
|
||||
return fmt.Sprintf("%s%v", cachePcmAiCenterIdPrefix, primary)
|
||||
}
|
||||
|
||||
func (m *defaultAiCenterModel) queryPrimary(ctx context.Context, conn sqlx.SqlConn, v, primary interface{}) error {
|
||||
query := fmt.Sprintf("select %s from %s where `id` = ? limit 1", aiCenterRows, m.table)
|
||||
return conn.QueryRowCtx(ctx, v, query, primary)
|
||||
}
|
||||
|
||||
func (m *defaultAiCenterModel) tableName() string {
|
||||
return m.table
|
||||
}
|
|
@ -0,0 +1,27 @@
|
|||
package model
|
||||
|
||||
import (
|
||||
"github.com/zeromicro/go-zero/core/stores/cache"
|
||||
"github.com/zeromicro/go-zero/core/stores/sqlx"
|
||||
)
|
||||
|
||||
var _ CenterOverviewModel = (*customCenterOverviewModel)(nil)
|
||||
|
||||
type (
|
||||
// CenterOverviewModel is an interface to be customized, add more methods here,
|
||||
// and implement the added methods in customCenterOverviewModel.
|
||||
CenterOverviewModel interface {
|
||||
centerOverviewModel
|
||||
}
|
||||
|
||||
customCenterOverviewModel struct {
|
||||
*defaultCenterOverviewModel
|
||||
}
|
||||
)
|
||||
|
||||
// NewCenterOverviewModel returns a model for the database table.
|
||||
func NewCenterOverviewModel(conn sqlx.SqlConn, c cache.CacheConf) CenterOverviewModel {
|
||||
return &customCenterOverviewModel{
|
||||
defaultCenterOverviewModel: newCenterOverviewModel(conn, c),
|
||||
}
|
||||
}
|
|
@ -0,0 +1,91 @@
|
|||
package model
|
||||
|
||||
import (
|
||||
"context"
|
||||
"database/sql"
|
||||
"github.com/Masterminds/squirrel"
|
||||
"github.com/zeromicro/go-zero/core/stores/cache"
|
||||
"github.com/zeromicro/go-zero/core/stores/sqlc"
|
||||
"github.com/zeromicro/go-zero/core/stores/sqlx"
|
||||
)
|
||||
|
||||
type (
|
||||
centerOverviewModel interface {
|
||||
FindAll(ctx context.Context) (*[]CenterOverview, error)
|
||||
}
|
||||
|
||||
defaultCenterOverviewModel struct {
|
||||
sqlc.CachedConn
|
||||
table string
|
||||
}
|
||||
|
||||
CenterOverview struct {
|
||||
Id sql.NullInt64 `json:"id"`
|
||||
CenterSource sql.NullString `json:"centerSource"`
|
||||
SourceId sql.NullString `json:"sourceId"`
|
||||
Name sql.NullString `json:"name"`
|
||||
Description sql.NullString `json:"description"`
|
||||
Type sql.NullString `json:"type"`
|
||||
Area sql.NullString `json:"area"`
|
||||
City sql.NullString `json:"city"`
|
||||
Longitude sql.NullFloat64 `json:"longitude"`
|
||||
Latitude sql.NullFloat64 `json:"latitude"`
|
||||
Status sql.NullString `json:"status"`
|
||||
UserNum sql.NullInt64 `json:"userNum"`
|
||||
DeletedFlag sql.NullInt64 `json:"deletedFlag"`
|
||||
CloudClusterNum sql.NullInt64 `json:"cloudClusterNum"`
|
||||
CloudNodeNum sql.NullInt64 `json:"cloudNodeNum"`
|
||||
CloudCpuNum sql.NullInt64 `json:"cloudCpuNum"`
|
||||
CloudGpuNum sql.NullInt64 `json:"cloudGpuNum"`
|
||||
CloudMngFlops sql.NullInt64 `json:"cloudMngFlops"`
|
||||
CloudUmngFlops sql.NullInt64 `json:"cloudUmngFlops"`
|
||||
CloudMngStorage sql.NullInt64 `json:"CloudMngStorage"`
|
||||
CloudUmngStorage sql.NullInt64 `json:"CloudUmngStorage"`
|
||||
AiClusterNum sql.NullInt64 `json:"aiClusterNum"`
|
||||
AiNodeNum sql.NullInt64 `json:"aiNodeNum"`
|
||||
AiCpuNum sql.NullInt64 `json:"aiCpuNum"`
|
||||
AiGpuNum sql.NullInt64 `json:"aiGpuNum"`
|
||||
AiMngFlops sql.NullInt64 `json:"aiMngFlops"`
|
||||
AiUmngFlops sql.NullInt64 `json:"aiUmngFlops"`
|
||||
AiMngStorage sql.NullInt64 `json:"aiMngStorage"`
|
||||
AiUmngStorage sql.NullInt64 `json:"aiUmngStorage"`
|
||||
HpcClusterNum sql.NullInt64 `json:"hpcClusterNum"`
|
||||
HpcNodeNum sql.NullInt64 `json:"hpcNodeNum"`
|
||||
HpcCpuNum sql.NullInt64 `json:"hpcCpuNum"`
|
||||
HpcGpuNum sql.NullInt64 `json:"hpcGpuNum"`
|
||||
HpcMngFlops sql.NullInt64 `json:"hpcMngFlops"`
|
||||
HpcUmngFlops sql.NullInt64 `json:"hpcUmngFlops"`
|
||||
HpcMngStorage sql.NullInt64 `json:"hpcMngStorage"`
|
||||
HpcUmngStorage sql.NullInt64 `json:"hpcUmngStorage"`
|
||||
Edwc sql.NullBool `json:"edwc"`
|
||||
Ydyl sql.NullBool `json:"ydyl"`
|
||||
}
|
||||
)
|
||||
|
||||
func newCenterOverviewModel(conn sqlx.SqlConn, c cache.CacheConf) *defaultCenterOverviewModel {
|
||||
return &defaultCenterOverviewModel{
|
||||
CachedConn: sqlc.NewConn(conn, c),
|
||||
table: "`compute_center`",
|
||||
}
|
||||
}
|
||||
|
||||
func (m *defaultCenterOverviewModel) FindAll(ctx context.Context) (*[]CenterOverview, error) {
|
||||
var centers []CenterOverview
|
||||
|
||||
centerSelect := squirrel.Select(`cc.*`, `ac.cluster_num`, `ac.node_num`, `ac.cpu_num`, `ac.gpu_num`, `ac.managed_flops`, `ac.unmanaged_flops`, `ac.managed_storage`, `ac.unmanaged_storage`, `hc.cluster_num`, `c.node_num`, `hc.cpu_num`, `hc.gpu_num`, `hc.managed_flops`, `hc.unmanaged_flops`, `hc.managed_storage`, `hc.unmanaged_storage`, `c.cluster_num`, `c.node_num`, `c.cpu_num`, `c.gpu_num`, `c.managed_flops`, `c.unmanaged_flops`, `c.managed_storage`, `c.unmanaged_storage`, `ct.edwc`, `ct.ydyl`).
|
||||
From("compute_center cc").
|
||||
LeftJoin(`ai_center ac on cc.id = ac.id`).
|
||||
LeftJoin(`hpc_center hc on cc.id = hc.id`).
|
||||
LeftJoin(`cloud_center c on cc.id = c.id`).
|
||||
LeftJoin(`center_tag ct on cc.id = ct.id`).
|
||||
Where(`cc.deleted_flag = 0`)
|
||||
query, values, _ := centerSelect.ToSql()
|
||||
|
||||
err := m.QueryRowsNoCacheCtx(ctx, ¢ers, query, values...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return ¢ers, nil
|
||||
|
||||
}
|
|
@ -0,0 +1,27 @@
|
|||
package model
|
||||
|
||||
import (
|
||||
"github.com/zeromicro/go-zero/core/stores/cache"
|
||||
"github.com/zeromicro/go-zero/core/stores/sqlx"
|
||||
)
|
||||
|
||||
var _ CenterTagModel = (*customCenterTagModel)(nil)
|
||||
|
||||
type (
|
||||
// CenterTagModel is an interface to be customized, add more methods here,
|
||||
// and implement the added methods in customCenterTagModel.
|
||||
CenterTagModel interface {
|
||||
centerTagModel
|
||||
}
|
||||
|
||||
customCenterTagModel struct {
|
||||
*defaultCenterTagModel
|
||||
}
|
||||
)
|
||||
|
||||
// NewCenterTagModel returns a model for the database table.
|
||||
func NewCenterTagModel(conn sqlx.SqlConn, c cache.CacheConf) CenterTagModel {
|
||||
return &customCenterTagModel{
|
||||
defaultCenterTagModel: newCenterTagModel(conn, c),
|
||||
}
|
||||
}
|
|
@ -0,0 +1,109 @@
|
|||
// Code generated by goctl. DO NOT EDIT.
|
||||
|
||||
package model
|
||||
|
||||
import (
|
||||
"context"
|
||||
"database/sql"
|
||||
"fmt"
|
||||
"strings"
|
||||
|
||||
"github.com/zeromicro/go-zero/core/stores/builder"
|
||||
"github.com/zeromicro/go-zero/core/stores/cache"
|
||||
"github.com/zeromicro/go-zero/core/stores/sqlc"
|
||||
"github.com/zeromicro/go-zero/core/stores/sqlx"
|
||||
"github.com/zeromicro/go-zero/core/stringx"
|
||||
)
|
||||
|
||||
var (
|
||||
centerTagFieldNames = builder.RawFieldNames(&CenterTag{})
|
||||
centerTagRows = strings.Join(centerTagFieldNames, ",")
|
||||
centerTagRowsExpectAutoSet = strings.Join(stringx.Remove(centerTagFieldNames, "`create_at`", "`create_time`", "`created_at`", "`update_at`", "`update_time`", "`updated_at`"), ",")
|
||||
centerTagRowsWithPlaceHolder = strings.Join(stringx.Remove(centerTagFieldNames, "`id`", "`create_at`", "`create_time`", "`created_at`", "`update_at`", "`update_time`", "`updated_at`"), "=?,") + "=?"
|
||||
|
||||
cachePcmCenterTagIdPrefix = "cache:pcm:centerTag:id:"
|
||||
)
|
||||
|
||||
type (
|
||||
centerTagModel interface {
|
||||
Insert(ctx context.Context, data *CenterTag) (sql.Result, error)
|
||||
FindOne(ctx context.Context, id int64) (*CenterTag, error)
|
||||
Update(ctx context.Context, data *CenterTag) error
|
||||
Delete(ctx context.Context, id int64) error
|
||||
}
|
||||
|
||||
defaultCenterTagModel struct {
|
||||
sqlc.CachedConn
|
||||
table string
|
||||
}
|
||||
|
||||
CenterTag struct {
|
||||
Id int64 `db:"id"` // 平台唯一id
|
||||
Ydyl sql.NullInt64 `db:"ydyl"` // 一带一路标识
|
||||
Edwc sql.NullInt64 `db:"edwc"` // 东数西算标识
|
||||
}
|
||||
)
|
||||
|
||||
func newCenterTagModel(conn sqlx.SqlConn, c cache.CacheConf) *defaultCenterTagModel {
|
||||
return &defaultCenterTagModel{
|
||||
CachedConn: sqlc.NewConn(conn, c),
|
||||
table: "`center_tag`",
|
||||
}
|
||||
}
|
||||
|
||||
func (m *defaultCenterTagModel) Delete(ctx context.Context, id int64) error {
|
||||
pcmCenterTagIdKey := fmt.Sprintf("%s%v", cachePcmCenterTagIdPrefix, id)
|
||||
_, err := m.ExecCtx(ctx, func(ctx context.Context, conn sqlx.SqlConn) (result sql.Result, err error) {
|
||||
query := fmt.Sprintf("delete from %s where `id` = ?", m.table)
|
||||
return conn.ExecCtx(ctx, query, id)
|
||||
}, pcmCenterTagIdKey)
|
||||
return err
|
||||
}
|
||||
|
||||
func (m *defaultCenterTagModel) FindOne(ctx context.Context, id int64) (*CenterTag, error) {
|
||||
pcmCenterTagIdKey := fmt.Sprintf("%s%v", cachePcmCenterTagIdPrefix, id)
|
||||
var resp CenterTag
|
||||
err := m.QueryRowCtx(ctx, &resp, pcmCenterTagIdKey, func(ctx context.Context, conn sqlx.SqlConn, v interface{}) error {
|
||||
query := fmt.Sprintf("select %s from %s where `id` = ? limit 1", centerTagRows, m.table)
|
||||
return conn.QueryRowCtx(ctx, v, query, id)
|
||||
})
|
||||
switch err {
|
||||
case nil:
|
||||
return &resp, nil
|
||||
case sqlc.ErrNotFound:
|
||||
return nil, ErrNotFound
|
||||
default:
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
|
||||
func (m *defaultCenterTagModel) Insert(ctx context.Context, data *CenterTag) (sql.Result, error) {
|
||||
pcmCenterTagIdKey := fmt.Sprintf("%s%v", cachePcmCenterTagIdPrefix, data.Id)
|
||||
ret, err := m.ExecCtx(ctx, func(ctx context.Context, conn sqlx.SqlConn) (result sql.Result, err error) {
|
||||
query := fmt.Sprintf("insert into %s (%s) values (?, ?, ?)", m.table, centerTagRowsExpectAutoSet)
|
||||
return conn.ExecCtx(ctx, query, data.Id, data.Ydyl, data.Edwc)
|
||||
}, pcmCenterTagIdKey)
|
||||
return ret, err
|
||||
}
|
||||
|
||||
func (m *defaultCenterTagModel) Update(ctx context.Context, data *CenterTag) error {
|
||||
pcmCenterTagIdKey := fmt.Sprintf("%s%v", cachePcmCenterTagIdPrefix, data.Id)
|
||||
_, err := m.ExecCtx(ctx, func(ctx context.Context, conn sqlx.SqlConn) (result sql.Result, err error) {
|
||||
query := fmt.Sprintf("update %s set %s where `id` = ?", m.table, centerTagRowsWithPlaceHolder)
|
||||
return conn.ExecCtx(ctx, query, data.Ydyl, data.Edwc, data.Id)
|
||||
}, pcmCenterTagIdKey)
|
||||
return err
|
||||
}
|
||||
|
||||
func (m *defaultCenterTagModel) formatPrimary(primary interface{}) string {
|
||||
return fmt.Sprintf("%s%v", cachePcmCenterTagIdPrefix, primary)
|
||||
}
|
||||
|
||||
func (m *defaultCenterTagModel) queryPrimary(ctx context.Context, conn sqlx.SqlConn, v, primary interface{}) error {
|
||||
query := fmt.Sprintf("select %s from %s where `id` = ? limit 1", centerTagRows, m.table)
|
||||
return conn.QueryRowCtx(ctx, v, query, primary)
|
||||
}
|
||||
|
||||
func (m *defaultCenterTagModel) tableName() string {
|
||||
return m.table
|
||||
}
|
|
@ -0,0 +1,27 @@
|
|||
package model
|
||||
|
||||
import (
|
||||
"github.com/zeromicro/go-zero/core/stores/cache"
|
||||
"github.com/zeromicro/go-zero/core/stores/sqlx"
|
||||
)
|
||||
|
||||
var _ CloudCenterModel = (*customCloudCenterModel)(nil)
|
||||
|
||||
type (
|
||||
// CloudCenterModel is an interface to be customized, add more methods here,
|
||||
// and implement the added methods in customCloudCenterModel.
|
||||
CloudCenterModel interface {
|
||||
cloudCenterModel
|
||||
}
|
||||
|
||||
customCloudCenterModel struct {
|
||||
*defaultCloudCenterModel
|
||||
}
|
||||
)
|
||||
|
||||
// NewCloudCenterModel returns a model for the database table.
|
||||
func NewCloudCenterModel(conn sqlx.SqlConn, c cache.CacheConf) CloudCenterModel {
|
||||
return &customCloudCenterModel{
|
||||
defaultCloudCenterModel: newCloudCenterModel(conn, c),
|
||||
}
|
||||
}
|
|
@ -0,0 +1,115 @@
|
|||
// Code generated by goctl. DO NOT EDIT.
|
||||
|
||||
package model
|
||||
|
||||
import (
|
||||
"context"
|
||||
"database/sql"
|
||||
"fmt"
|
||||
"strings"
|
||||
|
||||
"github.com/zeromicro/go-zero/core/stores/builder"
|
||||
"github.com/zeromicro/go-zero/core/stores/cache"
|
||||
"github.com/zeromicro/go-zero/core/stores/sqlc"
|
||||
"github.com/zeromicro/go-zero/core/stores/sqlx"
|
||||
"github.com/zeromicro/go-zero/core/stringx"
|
||||
)
|
||||
|
||||
var (
|
||||
cloudCenterFieldNames = builder.RawFieldNames(&CloudCenter{})
|
||||
cloudCenterRows = strings.Join(cloudCenterFieldNames, ",")
|
||||
cloudCenterRowsExpectAutoSet = strings.Join(stringx.Remove(cloudCenterFieldNames, "`create_at`", "`create_time`", "`created_at`", "`update_at`", "`update_time`", "`updated_at`"), ",")
|
||||
cloudCenterRowsWithPlaceHolder = strings.Join(stringx.Remove(cloudCenterFieldNames, "`id`", "`create_at`", "`create_time`", "`created_at`", "`update_at`", "`update_time`", "`updated_at`"), "=?,") + "=?"
|
||||
|
||||
cachePcmCloudCenterIdPrefix = "cache:pcm:cloudCenter:id:"
|
||||
)
|
||||
|
||||
type (
|
||||
cloudCenterModel interface {
|
||||
Insert(ctx context.Context, data *CloudCenter) (sql.Result, error)
|
||||
FindOne(ctx context.Context, id int64) (*CloudCenter, error)
|
||||
Update(ctx context.Context, data *CloudCenter) error
|
||||
Delete(ctx context.Context, id int64) error
|
||||
}
|
||||
|
||||
defaultCloudCenterModel struct {
|
||||
sqlc.CachedConn
|
||||
table string
|
||||
}
|
||||
|
||||
CloudCenter struct {
|
||||
Id int64 `db:"id"` // 平台唯一id
|
||||
ClusterNum sql.NullInt64 `db:"cluster_num"` // 集群数量
|
||||
NodeNum sql.NullInt64 `db:"node_num"` // 节点数量
|
||||
CpuNum sql.NullInt64 `db:"cpu_num"` // CPU核数
|
||||
GpuNum sql.NullInt64 `db:"gpu_num"` // GPU卡数
|
||||
ManagedFlops sql.NullString `db:"managed_flops"` // 已接入算力
|
||||
UnmanagedFlops sql.NullString `db:"unmanaged_flops"` // 未接入算力
|
||||
ManagedStorage sql.NullString `db:"managed_storage"` // 已接入存储
|
||||
UnmanagedStorage sql.NullString `db:"unmanaged_storage"` // 未接入存储
|
||||
}
|
||||
)
|
||||
|
||||
func newCloudCenterModel(conn sqlx.SqlConn, c cache.CacheConf) *defaultCloudCenterModel {
|
||||
return &defaultCloudCenterModel{
|
||||
CachedConn: sqlc.NewConn(conn, c),
|
||||
table: "`cloud_center`",
|
||||
}
|
||||
}
|
||||
|
||||
func (m *defaultCloudCenterModel) Delete(ctx context.Context, id int64) error {
|
||||
pcmCloudCenterIdKey := fmt.Sprintf("%s%v", cachePcmCloudCenterIdPrefix, id)
|
||||
_, err := m.ExecCtx(ctx, func(ctx context.Context, conn sqlx.SqlConn) (result sql.Result, err error) {
|
||||
query := fmt.Sprintf("delete from %s where `id` = ?", m.table)
|
||||
return conn.ExecCtx(ctx, query, id)
|
||||
}, pcmCloudCenterIdKey)
|
||||
return err
|
||||
}
|
||||
|
||||
func (m *defaultCloudCenterModel) FindOne(ctx context.Context, id int64) (*CloudCenter, error) {
|
||||
pcmCloudCenterIdKey := fmt.Sprintf("%s%v", cachePcmCloudCenterIdPrefix, id)
|
||||
var resp CloudCenter
|
||||
err := m.QueryRowCtx(ctx, &resp, pcmCloudCenterIdKey, func(ctx context.Context, conn sqlx.SqlConn, v interface{}) error {
|
||||
query := fmt.Sprintf("select %s from %s where `id` = ? limit 1", cloudCenterRows, m.table)
|
||||
return conn.QueryRowCtx(ctx, v, query, id)
|
||||
})
|
||||
switch err {
|
||||
case nil:
|
||||
return &resp, nil
|
||||
case sqlc.ErrNotFound:
|
||||
return nil, ErrNotFound
|
||||
default:
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
|
||||
func (m *defaultCloudCenterModel) Insert(ctx context.Context, data *CloudCenter) (sql.Result, error) {
|
||||
pcmCloudCenterIdKey := fmt.Sprintf("%s%v", cachePcmCloudCenterIdPrefix, data.Id)
|
||||
ret, err := m.ExecCtx(ctx, func(ctx context.Context, conn sqlx.SqlConn) (result sql.Result, err error) {
|
||||
query := fmt.Sprintf("insert into %s (%s) values (?, ?, ?, ?, ?, ?, ?, ?, ?)", m.table, cloudCenterRowsExpectAutoSet)
|
||||
return conn.ExecCtx(ctx, query, data.Id, data.ClusterNum, data.NodeNum, data.CpuNum, data.GpuNum, data.ManagedFlops, data.UnmanagedFlops, data.ManagedStorage, data.UnmanagedStorage)
|
||||
}, pcmCloudCenterIdKey)
|
||||
return ret, err
|
||||
}
|
||||
|
||||
func (m *defaultCloudCenterModel) Update(ctx context.Context, data *CloudCenter) error {
|
||||
pcmCloudCenterIdKey := fmt.Sprintf("%s%v", cachePcmCloudCenterIdPrefix, data.Id)
|
||||
_, err := m.ExecCtx(ctx, func(ctx context.Context, conn sqlx.SqlConn) (result sql.Result, err error) {
|
||||
query := fmt.Sprintf("update %s set %s where `id` = ?", m.table, cloudCenterRowsWithPlaceHolder)
|
||||
return conn.ExecCtx(ctx, query, data.ClusterNum, data.NodeNum, data.CpuNum, data.GpuNum, data.ManagedFlops, data.UnmanagedFlops, data.ManagedStorage, data.UnmanagedStorage, data.Id)
|
||||
}, pcmCloudCenterIdKey)
|
||||
return err
|
||||
}
|
||||
|
||||
func (m *defaultCloudCenterModel) formatPrimary(primary interface{}) string {
|
||||
return fmt.Sprintf("%s%v", cachePcmCloudCenterIdPrefix, primary)
|
||||
}
|
||||
|
||||
func (m *defaultCloudCenterModel) queryPrimary(ctx context.Context, conn sqlx.SqlConn, v, primary interface{}) error {
|
||||
query := fmt.Sprintf("select %s from %s where `id` = ? limit 1", cloudCenterRows, m.table)
|
||||
return conn.QueryRowCtx(ctx, v, query, primary)
|
||||
}
|
||||
|
||||
func (m *defaultCloudCenterModel) tableName() string {
|
||||
return m.table
|
||||
}
|
|
@ -0,0 +1,27 @@
|
|||
package model
|
||||
|
||||
import (
|
||||
"github.com/zeromicro/go-zero/core/stores/cache"
|
||||
"github.com/zeromicro/go-zero/core/stores/sqlx"
|
||||
)
|
||||
|
||||
var _ ComputeCenterModel = (*customComputeCenterModel)(nil)
|
||||
|
||||
type (
|
||||
// ComputeCenterModel is an interface to be customized, add more methods here,
|
||||
// and implement the added methods in customComputeCenterModel.
|
||||
ComputeCenterModel interface {
|
||||
computeCenterModel
|
||||
}
|
||||
|
||||
customComputeCenterModel struct {
|
||||
*defaultComputeCenterModel
|
||||
}
|
||||
)
|
||||
|
||||
// NewComputeCenterModel returns a model for the database table.
|
||||
func NewComputeCenterModel(conn sqlx.SqlConn, c cache.CacheConf) ComputeCenterModel {
|
||||
return &customComputeCenterModel{
|
||||
defaultComputeCenterModel: newComputeCenterModel(conn, c),
|
||||
}
|
||||
}
|
|
@ -0,0 +1,119 @@
|
|||
// Code generated by goctl. DO NOT EDIT.
|
||||
|
||||
package model
|
||||
|
||||
import (
|
||||
"context"
|
||||
"database/sql"
|
||||
"fmt"
|
||||
"strings"
|
||||
|
||||
"github.com/zeromicro/go-zero/core/stores/builder"
|
||||
"github.com/zeromicro/go-zero/core/stores/cache"
|
||||
"github.com/zeromicro/go-zero/core/stores/sqlc"
|
||||
"github.com/zeromicro/go-zero/core/stores/sqlx"
|
||||
"github.com/zeromicro/go-zero/core/stringx"
|
||||
)
|
||||
|
||||
var (
|
||||
computeCenterFieldNames = builder.RawFieldNames(&ComputeCenter{})
|
||||
computeCenterRows = strings.Join(computeCenterFieldNames, ",")
|
||||
computeCenterRowsExpectAutoSet = strings.Join(stringx.Remove(computeCenterFieldNames, "`create_at`", "`create_time`", "`created_at`", "`update_at`", "`update_time`", "`updated_at`"), ",")
|
||||
computeCenterRowsWithPlaceHolder = strings.Join(stringx.Remove(computeCenterFieldNames, "`id`", "`create_at`", "`create_time`", "`created_at`", "`update_at`", "`update_time`", "`updated_at`"), "=?,") + "=?"
|
||||
|
||||
cachePcmComputeCenterIdPrefix = "cache:pcm:computeCenter:id:"
|
||||
)
|
||||
|
||||
type (
|
||||
computeCenterModel interface {
|
||||
Insert(ctx context.Context, data *ComputeCenter) (sql.Result, error)
|
||||
FindOne(ctx context.Context, id int64) (*ComputeCenter, error)
|
||||
Update(ctx context.Context, data *ComputeCenter) error
|
||||
Delete(ctx context.Context, id int64) error
|
||||
}
|
||||
|
||||
defaultComputeCenterModel struct {
|
||||
sqlc.CachedConn
|
||||
table string
|
||||
}
|
||||
|
||||
ComputeCenter struct {
|
||||
Id int64 `db:"id"` // 平台唯一id
|
||||
CenterSource sql.NullString `db:"center_source"` // 中心来源(鹏城,nudt,公有云等)
|
||||
SourceId sql.NullString `db:"source_id"` // 数据来源原id
|
||||
Name sql.NullString `db:"name"` // 中心名称
|
||||
Description sql.NullString `db:"description"` // 详细描述
|
||||
Type sql.NullString `db:"type"` // 中心类型(云算、智算 or 超算)
|
||||
Area sql.NullString `db:"area"` // 资源区域
|
||||
City sql.NullString `db:"city"` // 所在城市
|
||||
Longitude sql.NullFloat64 `db:"longitude"` // 经度
|
||||
Latitude sql.NullFloat64 `db:"latitude"` // 纬度
|
||||
Status sql.NullString `db:"status"` // 接入状态
|
||||
UserNum sql.NullInt64 `db:"user_num"` // 用户数量
|
||||
DeletedFlag sql.NullInt64 `db:"deleted_flag"` // 是否删除(0-否,1-是)
|
||||
}
|
||||
)
|
||||
|
||||
func newComputeCenterModel(conn sqlx.SqlConn, c cache.CacheConf) *defaultComputeCenterModel {
|
||||
return &defaultComputeCenterModel{
|
||||
CachedConn: sqlc.NewConn(conn, c),
|
||||
table: "`compute_center`",
|
||||
}
|
||||
}
|
||||
|
||||
func (m *defaultComputeCenterModel) Delete(ctx context.Context, id int64) error {
|
||||
pcmComputeCenterIdKey := fmt.Sprintf("%s%v", cachePcmComputeCenterIdPrefix, id)
|
||||
_, err := m.ExecCtx(ctx, func(ctx context.Context, conn sqlx.SqlConn) (result sql.Result, err error) {
|
||||
query := fmt.Sprintf("delete from %s where `id` = ?", m.table)
|
||||
return conn.ExecCtx(ctx, query, id)
|
||||
}, pcmComputeCenterIdKey)
|
||||
return err
|
||||
}
|
||||
|
||||
func (m *defaultComputeCenterModel) FindOne(ctx context.Context, id int64) (*ComputeCenter, error) {
|
||||
pcmComputeCenterIdKey := fmt.Sprintf("%s%v", cachePcmComputeCenterIdPrefix, id)
|
||||
var resp ComputeCenter
|
||||
err := m.QueryRowCtx(ctx, &resp, pcmComputeCenterIdKey, func(ctx context.Context, conn sqlx.SqlConn, v interface{}) error {
|
||||
query := fmt.Sprintf("select %s from %s where `id` = ? limit 1", computeCenterRows, m.table)
|
||||
return conn.QueryRowCtx(ctx, v, query, id)
|
||||
})
|
||||
switch err {
|
||||
case nil:
|
||||
return &resp, nil
|
||||
case sqlc.ErrNotFound:
|
||||
return nil, ErrNotFound
|
||||
default:
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
|
||||
func (m *defaultComputeCenterModel) Insert(ctx context.Context, data *ComputeCenter) (sql.Result, error) {
|
||||
pcmComputeCenterIdKey := fmt.Sprintf("%s%v", cachePcmComputeCenterIdPrefix, data.Id)
|
||||
ret, err := m.ExecCtx(ctx, func(ctx context.Context, conn sqlx.SqlConn) (result sql.Result, err error) {
|
||||
query := fmt.Sprintf("insert into %s (%s) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", m.table, computeCenterRowsExpectAutoSet)
|
||||
return conn.ExecCtx(ctx, query, data.Id, data.CenterSource, data.SourceId, data.Name, data.Description, data.Type, data.Area, data.City, data.Longitude, data.Latitude, data.Status, data.UserNum, data.DeletedFlag)
|
||||
}, pcmComputeCenterIdKey)
|
||||
return ret, err
|
||||
}
|
||||
|
||||
func (m *defaultComputeCenterModel) Update(ctx context.Context, data *ComputeCenter) error {
|
||||
pcmComputeCenterIdKey := fmt.Sprintf("%s%v", cachePcmComputeCenterIdPrefix, data.Id)
|
||||
_, err := m.ExecCtx(ctx, func(ctx context.Context, conn sqlx.SqlConn) (result sql.Result, err error) {
|
||||
query := fmt.Sprintf("update %s set %s where `id` = ?", m.table, computeCenterRowsWithPlaceHolder)
|
||||
return conn.ExecCtx(ctx, query, data.CenterSource, data.SourceId, data.Name, data.Description, data.Type, data.Area, data.City, data.Longitude, data.Latitude, data.Status, data.UserNum, data.DeletedFlag, data.Id)
|
||||
}, pcmComputeCenterIdKey)
|
||||
return err
|
||||
}
|
||||
|
||||
func (m *defaultComputeCenterModel) formatPrimary(primary interface{}) string {
|
||||
return fmt.Sprintf("%s%v", cachePcmComputeCenterIdPrefix, primary)
|
||||
}
|
||||
|
||||
func (m *defaultComputeCenterModel) queryPrimary(ctx context.Context, conn sqlx.SqlConn, v, primary interface{}) error {
|
||||
query := fmt.Sprintf("select %s from %s where `id` = ? limit 1", computeCenterRows, m.table)
|
||||
return conn.QueryRowCtx(ctx, v, query, primary)
|
||||
}
|
||||
|
||||
func (m *defaultComputeCenterModel) tableName() string {
|
||||
return m.table
|
||||
}
|
|
@ -0,0 +1,27 @@
|
|||
package model
|
||||
|
||||
import (
|
||||
"github.com/zeromicro/go-zero/core/stores/cache"
|
||||
"github.com/zeromicro/go-zero/core/stores/sqlx"
|
||||
)
|
||||
|
||||
var _ HpcCenterModel = (*customHpcCenterModel)(nil)
|
||||
|
||||
type (
|
||||
// HpcCenterModel is an interface to be customized, add more methods here,
|
||||
// and implement the added methods in customHpcCenterModel.
|
||||
HpcCenterModel interface {
|
||||
hpcCenterModel
|
||||
}
|
||||
|
||||
customHpcCenterModel struct {
|
||||
*defaultHpcCenterModel
|
||||
}
|
||||
)
|
||||
|
||||
// NewHpcCenterModel returns a model for the database table.
|
||||
func NewHpcCenterModel(conn sqlx.SqlConn, c cache.CacheConf) HpcCenterModel {
|
||||
return &customHpcCenterModel{
|
||||
defaultHpcCenterModel: newHpcCenterModel(conn, c),
|
||||
}
|
||||
}
|
|
@ -0,0 +1,115 @@
|
|||
// Code generated by goctl. DO NOT EDIT.
|
||||
|
||||
package model
|
||||
|
||||
import (
|
||||
"context"
|
||||
"database/sql"
|
||||
"fmt"
|
||||
"strings"
|
||||
|
||||
"github.com/zeromicro/go-zero/core/stores/builder"
|
||||
"github.com/zeromicro/go-zero/core/stores/cache"
|
||||
"github.com/zeromicro/go-zero/core/stores/sqlc"
|
||||
"github.com/zeromicro/go-zero/core/stores/sqlx"
|
||||
"github.com/zeromicro/go-zero/core/stringx"
|
||||
)
|
||||
|
||||
var (
|
||||
hpcCenterFieldNames = builder.RawFieldNames(&HpcCenter{})
|
||||
hpcCenterRows = strings.Join(hpcCenterFieldNames, ",")
|
||||
hpcCenterRowsExpectAutoSet = strings.Join(stringx.Remove(hpcCenterFieldNames, "`create_at`", "`create_time`", "`created_at`", "`update_at`", "`update_time`", "`updated_at`"), ",")
|
||||
hpcCenterRowsWithPlaceHolder = strings.Join(stringx.Remove(hpcCenterFieldNames, "`id`", "`create_at`", "`create_time`", "`created_at`", "`update_at`", "`update_time`", "`updated_at`"), "=?,") + "=?"
|
||||
|
||||
cachePcmHpcCenterIdPrefix = "cache:pcm:hpcCenter:id:"
|
||||
)
|
||||
|
||||
type (
|
||||
hpcCenterModel interface {
|
||||
Insert(ctx context.Context, data *HpcCenter) (sql.Result, error)
|
||||
FindOne(ctx context.Context, id int64) (*HpcCenter, error)
|
||||
Update(ctx context.Context, data *HpcCenter) error
|
||||
Delete(ctx context.Context, id int64) error
|
||||
}
|
||||
|
||||
defaultHpcCenterModel struct {
|
||||
sqlc.CachedConn
|
||||
table string
|
||||
}
|
||||
|
||||
HpcCenter struct {
|
||||
Id int64 `db:"id"` // 平台唯一id
|
||||
ClusterNum sql.NullInt64 `db:"cluster_num"` // 集群数量
|
||||
NodeNum sql.NullInt64 `db:"node_num"` // 节点数量
|
||||
CpuNum sql.NullInt64 `db:"cpu_num"` // CPU核数
|
||||
GpuNum sql.NullInt64 `db:"gpu_num"` // GPU卡数
|
||||
ManagedFlops sql.NullString `db:"managed_flops"` // 已接入算力
|
||||
UnmanagedFlops sql.NullString `db:"unmanaged_flops"` // 未接入算力
|
||||
ManagedStorage sql.NullString `db:"managed_storage"` // 已接入存储
|
||||
UnmanagedStorage sql.NullString `db:"unmanaged_storage"` // 未接入存储
|
||||
}
|
||||
)
|
||||
|
||||
func newHpcCenterModel(conn sqlx.SqlConn, c cache.CacheConf) *defaultHpcCenterModel {
|
||||
return &defaultHpcCenterModel{
|
||||
CachedConn: sqlc.NewConn(conn, c),
|
||||
table: "`hpc_center`",
|
||||
}
|
||||
}
|
||||
|
||||
func (m *defaultHpcCenterModel) Delete(ctx context.Context, id int64) error {
|
||||
pcmHpcCenterIdKey := fmt.Sprintf("%s%v", cachePcmHpcCenterIdPrefix, id)
|
||||
_, err := m.ExecCtx(ctx, func(ctx context.Context, conn sqlx.SqlConn) (result sql.Result, err error) {
|
||||
query := fmt.Sprintf("delete from %s where `id` = ?", m.table)
|
||||
return conn.ExecCtx(ctx, query, id)
|
||||
}, pcmHpcCenterIdKey)
|
||||
return err
|
||||
}
|
||||
|
||||
func (m *defaultHpcCenterModel) FindOne(ctx context.Context, id int64) (*HpcCenter, error) {
|
||||
pcmHpcCenterIdKey := fmt.Sprintf("%s%v", cachePcmHpcCenterIdPrefix, id)
|
||||
var resp HpcCenter
|
||||
err := m.QueryRowCtx(ctx, &resp, pcmHpcCenterIdKey, func(ctx context.Context, conn sqlx.SqlConn, v interface{}) error {
|
||||
query := fmt.Sprintf("select %s from %s where `id` = ? limit 1", hpcCenterRows, m.table)
|
||||
return conn.QueryRowCtx(ctx, v, query, id)
|
||||
})
|
||||
switch err {
|
||||
case nil:
|
||||
return &resp, nil
|
||||
case sqlc.ErrNotFound:
|
||||
return nil, ErrNotFound
|
||||
default:
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
|
||||
func (m *defaultHpcCenterModel) Insert(ctx context.Context, data *HpcCenter) (sql.Result, error) {
|
||||
pcmHpcCenterIdKey := fmt.Sprintf("%s%v", cachePcmHpcCenterIdPrefix, data.Id)
|
||||
ret, err := m.ExecCtx(ctx, func(ctx context.Context, conn sqlx.SqlConn) (result sql.Result, err error) {
|
||||
query := fmt.Sprintf("insert into %s (%s) values (?, ?, ?, ?, ?, ?, ?, ?, ?)", m.table, hpcCenterRowsExpectAutoSet)
|
||||
return conn.ExecCtx(ctx, query, data.Id, data.ClusterNum, data.NodeNum, data.CpuNum, data.GpuNum, data.ManagedFlops, data.UnmanagedFlops, data.ManagedStorage, data.UnmanagedStorage)
|
||||
}, pcmHpcCenterIdKey)
|
||||
return ret, err
|
||||
}
|
||||
|
||||
func (m *defaultHpcCenterModel) Update(ctx context.Context, data *HpcCenter) error {
|
||||
pcmHpcCenterIdKey := fmt.Sprintf("%s%v", cachePcmHpcCenterIdPrefix, data.Id)
|
||||
_, err := m.ExecCtx(ctx, func(ctx context.Context, conn sqlx.SqlConn) (result sql.Result, err error) {
|
||||
query := fmt.Sprintf("update %s set %s where `id` = ?", m.table, hpcCenterRowsWithPlaceHolder)
|
||||
return conn.ExecCtx(ctx, query, data.ClusterNum, data.NodeNum, data.CpuNum, data.GpuNum, data.ManagedFlops, data.UnmanagedFlops, data.ManagedStorage, data.UnmanagedStorage, data.Id)
|
||||
}, pcmHpcCenterIdKey)
|
||||
return err
|
||||
}
|
||||
|
||||
func (m *defaultHpcCenterModel) formatPrimary(primary interface{}) string {
|
||||
return fmt.Sprintf("%s%v", cachePcmHpcCenterIdPrefix, primary)
|
||||
}
|
||||
|
||||
func (m *defaultHpcCenterModel) queryPrimary(ctx context.Context, conn sqlx.SqlConn, v, primary interface{}) error {
|
||||
query := fmt.Sprintf("select %s from %s where `id` = ? limit 1", hpcCenterRows, m.table)
|
||||
return conn.QueryRowCtx(ctx, v, query, primary)
|
||||
}
|
||||
|
||||
func (m *defaultHpcCenterModel) tableName() string {
|
||||
return m.table
|
||||
}
|
|
@ -8,8 +8,8 @@ ListenOn: 127.0.0.1:2001
|
|||
ClusterUrl: "https://api01.hpccube.com:65106/hpc/openapi/v2/cluster"
|
||||
TokenUrl: "https://api01.hpccube.com:65102/ac/openapi/v2/tokens"
|
||||
StateUrl: "https://api01.hpccube.com:65102/ac/openapi/v2/tokens/state"
|
||||
User: "zhijiang"
|
||||
Password: "111111a"
|
||||
OrgId: "313ae32df03bc116255e6808949fcf57"
|
||||
User: ""
|
||||
Password: ""
|
||||
OrgId: ""
|
||||
Layout: "2006-01-02 15:04:05"
|
||||
EndPoint: https://api01.hpccube.com:65106
|
|
@ -10,7 +10,7 @@ import (
|
|||
"github.com/zeromicro/go-zero/rest"
|
||||
)
|
||||
|
||||
var configFile = flag.String("f", "adaptor/PCM-HPC/PCM-HPC-CORE/api/etc/hpccore.yaml", "the config file")
|
||||
var configFile = flag.String("f", "adaptor/PCM-HPC/PCM-HPC-CORE/api/etc/hpc-core-api-template.yaml", "the config file")
|
||||
|
||||
func main() {
|
||||
flag.Parse()
|
||||
|
|
|
@ -28,4 +28,4 @@ THRpcConf:
|
|||
Key: hpcth.rpc
|
||||
|
||||
DB:
|
||||
DataSource: root:uJpLd6u-J?HC1@(106.53.150.192:3306)/pcm
|
||||
DataSource:
|
|
@ -19,7 +19,7 @@ import (
|
|||
"google.golang.org/grpc/reflection"
|
||||
)
|
||||
|
||||
var configFile = flag.String("f", "adaptor/PCM-HPC/PCM-HPC-CORE/rpc/etc/pcmhpccore.yaml", "the config file")
|
||||
var configFile = flag.String("f", "adaptor/PCM-HPC/PCM-HPC-CORE/rpc/etc/hpc-core-rpc-template.yaml", "the config file")
|
||||
|
||||
func main() {
|
||||
flag.Parse()
|
||||
|
|
|
@ -0,0 +1,6 @@
|
|||
Name: hpcth.rpc
|
||||
ListenOn: 0.0.0.0:8881
|
||||
Etcd:
|
||||
Hosts:
|
||||
- localhost:2379
|
||||
Key: hpcth.rpc
|
|
@ -1,2 +0,0 @@
|
|||
Name: hpcth.rpc
|
||||
ListenOn: 0.0.0.0:2002
|
|
@ -16,7 +16,7 @@ import (
|
|||
"google.golang.org/grpc/reflection"
|
||||
)
|
||||
|
||||
var configFile = flag.String("f", "adaptor/PCM-HPC/PCM-TH/rpc/etc/hpcth.yaml", "the config file")
|
||||
var configFile = flag.String("f", "adaptor/PCM-HPC/PCM-TH/rpc/etc/hpc-th-template.yaml", "the config file")
|
||||
|
||||
func main() {
|
||||
flag.Parse()
|
||||
|
|
3
go.mod
3
go.mod
|
@ -3,6 +3,7 @@ module PCM
|
|||
go 1.19
|
||||
|
||||
require (
|
||||
github.com/Masterminds/squirrel v1.5.4
|
||||
github.com/bitly/go-simplejson v0.5.0
|
||||
github.com/go-redis/redis/v8 v8.11.5
|
||||
github.com/go-resty/resty/v2 v2.7.0
|
||||
|
@ -57,6 +58,8 @@ require (
|
|||
github.com/josharian/intern v1.0.0 // indirect
|
||||
github.com/json-iterator/go v1.1.12 // indirect
|
||||
github.com/klauspost/compress v1.15.15 // indirect
|
||||
github.com/lann/builder v0.0.0-20180802200727-47ae307949d0 // indirect
|
||||
github.com/lann/ps v0.0.0-20150810152359-62de8c46ede0 // indirect
|
||||
github.com/mailru/easyjson v0.7.6 // indirect
|
||||
github.com/mattn/go-colorable v0.1.13 // indirect
|
||||
github.com/mattn/go-isatty v0.0.17 // indirect
|
||||
|
|
6
go.sum
6
go.sum
|
@ -373,6 +373,8 @@ github.com/ClickHouse/clickhouse-go v1.5.4/go.mod h1:EaI/sW7Azgz9UATzd5ZdZHRUhHg
|
|||
github.com/ClickHouse/clickhouse-go/v2 v2.0.14/go.mod h1:iq2DUGgpA4BBki2CVwrF8x43zqBjdgHtbexkFkh5a6M=
|
||||
github.com/DATA-DOG/go-sqlmock v1.5.0 h1:Shsta01QNfFxHCfpW6YH2STWB0MudeXXEWMr20OEh60=
|
||||
github.com/DATA-DOG/go-sqlmock v1.5.0/go.mod h1:f/Ixk793poVmq4qj/V1dPUg2JEAKC73Q5eFN3EC/SaM=
|
||||
github.com/Masterminds/squirrel v1.5.4 h1:uUcX/aBc8O7Fg9kaISIUsHXdKuqehiXAMQTYX8afzqM=
|
||||
github.com/Masterminds/squirrel v1.5.4/go.mod h1:NNaOrjSoIDfDA40n7sr2tPNZRfjzjA400rg+riTZj10=
|
||||
github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ=
|
||||
github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU=
|
||||
github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=
|
||||
|
@ -697,6 +699,10 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
|
|||
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
|
||||
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
|
||||
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
|
||||
github.com/lann/builder v0.0.0-20180802200727-47ae307949d0 h1:SOEGU9fKiNWd/HOJuq6+3iTQz8KNCLtVX6idSoTLdUw=
|
||||
github.com/lann/builder v0.0.0-20180802200727-47ae307949d0/go.mod h1:dXGbAdH5GtBTC4WfIxhKZfyBF/HBFgRZSWwZ9g/He9o=
|
||||
github.com/lann/ps v0.0.0-20150810152359-62de8c46ede0 h1:P6pPBnrTSX3DEVR4fDembhRWSsG5rVo6hYhAB/ADZrk=
|
||||
github.com/lann/ps v0.0.0-20150810152359-62de8c46ede0/go.mod h1:vmVJ0l/dxyfGW6FmdpVm2joNMFikkuWg0EoCKLGUMNw=
|
||||
github.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=
|
||||
github.com/lib/pq v1.2.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=
|
||||
github.com/lib/pq v1.10.7 h1:p7ZhMD+KsSRozJr34udlUrhboJwWAgCg34+/ZZNvZZw=
|
||||
|
|
Loading…
Reference in New Issue