| @@ -441,4 +441,29 @@ type NodeAsset { | |||
| GpuTotal int64 `json:"GpuTotal"` // gpu总数 | |||
| GpuAvail int64 `json:"GpuAvail"` // gpu可用数 | |||
| ParticipantId int64 `json:"ParticipantId"` // 集群动态信息id | |||
| } | |||
| type SaveHashcatReq { | |||
| CrackTaskId int64 `json:"crackTaskId"` // 任务id | |||
| CrackStatus string `json:"crackStatus"` // 状态 | |||
| CrackStartTime string `json:"crackStartTime"` //开始时间 | |||
| CrackEstimatedTime string `json:"crackEstimatedTime"` // 预计时间 | |||
| CrackProgress string `json:"crackProgress"` // 进度 | |||
| CrackResult string `json:"crackResult"` // 结果 | |||
| } | |||
| type getHashcatHandlerReq { | |||
| CrackTaskId int64 `json:"crackTaskId"` // 任务id | |||
| } | |||
| type getHashcatHandlerResp { | |||
| HashCatList []HashCat `json:"hashCatList"` | |||
| } | |||
| type HashCat { | |||
| CrackStatus string `json:"crackStatus"` // 状态 | |||
| CrackStartTime string `json:"crackStartTime"` //开始时间 | |||
| CrackEstimatedTime string `json:"crackEstimatedTime"` // 预计时间 | |||
| CrackProgress string `json:"crackProgress"` // 进度 | |||
| CrackResult string `json:"crackResult"` // 结果 | |||
| } | |||
| @@ -68,6 +68,11 @@ service pcm { | |||
| @handler nodeAssetsHandler | |||
| get /core/assets () returns (NodeAssetsResp) | |||
| @handler saveHashcatHandler | |||
| post /core/saveHashcat (SaveHashcatReq) returns () | |||
| @handler getHashcatHandler | |||
| get /core/getHashcat/:crackTaskId (getHashcatHandlerReq) returns (getHashcatHandlerResp) | |||
| } | |||
| //hpc二级接口 | |||
| @@ -97,7 +102,6 @@ service pcm { | |||
| @handler deleteYamlHandler | |||
| get /cloud/DeleteYaml (ApplyReq) returns (DeleteResp) | |||
| } | |||
| //智算二级接口 | |||
| @@ -132,16 +136,16 @@ service pcm { | |||
| // ListAlgorithms 查询创建算法列表 | |||
| @handler ListAlgorithms | |||
| //get /ai/ListAlgorithms (ListAlgorithmsReq) returns (ListAlgorithmsResp) | |||
| get /ai/ListAlgorithms/:projectId (ListAlgorithmsReq) returns (ListAlgorithmsResp) | |||
| get /ai/ListAlgorithms/:projectId (ListAlgorithmsReq) returns (ListAlgorithmsResp) | |||
| // DeleteAlgorithm 删除算法 | |||
| @handler DeleteAlgorithm | |||
| delete /ai/DeleteAlgorithm/:projectId/:algorithmId (DeleteAlgorithmReq) returns (DeleteAlgorithmResp) | |||
| delete /ai/DeleteAlgorithm/:projectId/:algorithmId (DeleteAlgorithmReq) returns (DeleteAlgorithmResp) | |||
| // CreateTrainingJob 创建训练作业 | |||
| @handler CreateTrainingJobHandler | |||
| post /ai/CreateTrainingJob/:projectId (CreateTrainingJobReq) returns (CreateTrainingJobResp) | |||
| // ShowAlgorithmByUuid 展示算法详情 | |||
| @handler ShowAlgorithmByUuid | |||
| get /ai/ShowAlgorithmByUuid/:projectId/:algorithmId (ShowAlgorithmByUuidReq) returns (ShowAlgorithmByUuidResp) | |||
| get /ai/ShowAlgorithmByUuid/:projectId/:algorithmId (ShowAlgorithmByUuidReq) returns (ShowAlgorithmByUuidResp) | |||
| // creat export task 创建导出任务 | |||
| @handler CreateExportTaskHandler | |||
| @@ -166,7 +170,7 @@ service pcm { | |||
| get /ai/ShowService/:projectId/:serviceId (ShowServiceReq) returns (ShowServiceResp) | |||
| // Delete service 删除服务 | |||
| @handler DeleteServiceHandler | |||
| delete /ai/DeleteService/:projectId/:serviceId (DeleteServiceReq) returns (DeleteServiceResp) | |||
| delete /ai/DeleteService/:projectId/:serviceId (DeleteServiceReq) returns (DeleteServiceResp) | |||
| // ListClusters查询专属资源池列表 | |||
| @handler ListClustersHandler | |||
| get /ai/ListClusters (ListClustersReq) returns (ListClustersResp) | |||
| @@ -236,7 +240,6 @@ service pcm { | |||
| group : vm | |||
| ) | |||
| service pcm { | |||
| @handler GetComputeLimitsHandler | |||
| get /vm/getComputeLimits (GetComputeLimitsReq) returns (GetComputeLimitsResp) | |||
| @handler GetVolumeLimitsHandler | |||
| @@ -256,17 +259,17 @@ service pcm { | |||
| @handler DeleteNetworkHandler | |||
| delete /vm/deleteNetwork (DeleteNetworkReq) returns (DeleteNetworkResp) | |||
| @handler CreateNetworkHandler | |||
| post /vm/createNetwork (CreateNetworkReq) returns (CreateNetworkResp) | |||
| post /vm/createNetwork (CreateNetworkReq) returns (CreateNetworkResp) | |||
| @handler CreateSubnetHandler | |||
| post /vm/createSubnet (CreateSubnetReq) returns (CreateSubnetResp) | |||
| post /vm/createSubnet (CreateSubnetReq) returns (CreateSubnetResp) | |||
| @handler ListVolumesDetailHandler | |||
| get /vm/listVolumesDetail (ListVolumesDetailReq) returns (ListVolumesDetailResp) | |||
| get /vm/listVolumesDetail (ListVolumesDetailReq) returns (ListVolumesDetailResp) | |||
| @handler DeleteVolumeHandler | |||
| delete /vm/deleteVolume (DeleteVolumeReq) returns (DeleteVolumeResp) | |||
| @handler CreateVolumeHandler | |||
| post /vm/createVolume (CreateVolumeReq) returns (CreateVolumeResp) | |||
| post /vm/createVolume (CreateVolumeReq) returns (CreateVolumeResp) | |||
| @handler ListFlavorsDetailHandler | |||
| get /vm/listFlavorsDetail (ListFlavorsDetailReq) returns (ListFlavorsDetailResp) | |||
| get /vm/listFlavorsDetail (ListFlavorsDetailReq) returns (ListFlavorsDetailResp) | |||
| @handler CreateServerHandler | |||
| post /vm/createServer (CreateServerReq) returns (CreateServerResp) | |||
| post /vm/createServer (CreateServerReq) returns (CreateServerResp) | |||
| } | |||
| @@ -0,0 +1,17 @@ | |||
| package core | |||
| import ( | |||
| "gitlink.org.cn/jcce-pcm/utils/result" | |||
| "net/http" | |||
| "gitlink.org.cn/jcce-pcm/pcm-coordinator/api/internal/logic/core" | |||
| "gitlink.org.cn/jcce-pcm/pcm-coordinator/api/internal/svc" | |||
| ) | |||
| func GetHashcatHandler(svcCtx *svc.ServiceContext) http.HandlerFunc { | |||
| return func(w http.ResponseWriter, r *http.Request) { | |||
| l := core.NewGetHashcatLogic(r.Context(), svcCtx) | |||
| resp, err := l.GetHashcat() | |||
| result.HttpResult(r, w, resp, err) | |||
| } | |||
| } | |||
| @@ -0,0 +1,25 @@ | |||
| package core | |||
| import ( | |||
| "gitlink.org.cn/jcce-pcm/utils/result" | |||
| "net/http" | |||
| "github.com/zeromicro/go-zero/rest/httpx" | |||
| "gitlink.org.cn/jcce-pcm/pcm-coordinator/api/internal/logic/core" | |||
| "gitlink.org.cn/jcce-pcm/pcm-coordinator/api/internal/svc" | |||
| "gitlink.org.cn/jcce-pcm/pcm-coordinator/api/internal/types" | |||
| ) | |||
| func SaveHashcatHandler(svcCtx *svc.ServiceContext) http.HandlerFunc { | |||
| return func(w http.ResponseWriter, r *http.Request) { | |||
| var req types.SaveHashcatReq | |||
| if err := httpx.Parse(r, &req); err != nil { | |||
| httpx.ErrorCtx(r.Context(), w, err) | |||
| return | |||
| } | |||
| l := core.NewSaveHashcatLogic(r.Context(), svcCtx) | |||
| err := l.SaveHashcat(&req) | |||
| result.HttpResult(r, w, nil, err) | |||
| } | |||
| } | |||
| @@ -94,6 +94,16 @@ func RegisterHandlers(server *rest.Server, serverCtx *svc.ServiceContext) { | |||
| Path: "/core/assets", | |||
| Handler: core.NodeAssetsHandler(serverCtx), | |||
| }, | |||
| { | |||
| Method: http.MethodPost, | |||
| Path: "/core/saveHashcat", | |||
| Handler: core.SaveHashcatHandler(serverCtx), | |||
| }, | |||
| { | |||
| Method: http.MethodGet, | |||
| Path: "/core/getHashcat/:crackTaskId", | |||
| Handler: core.GetHashcatHandler(serverCtx), | |||
| }, | |||
| }, | |||
| rest.WithPrefix("/pcm/v1"), | |||
| ) | |||
| @@ -0,0 +1,38 @@ | |||
| package core | |||
| import ( | |||
| "context" | |||
| "gitlink.org.cn/jcce-pcm/pcm-coordinator/model" | |||
| "gitlink.org.cn/jcce-pcm/utils/tool" | |||
| "gitlink.org.cn/jcce-pcm/pcm-coordinator/api/internal/svc" | |||
| "gitlink.org.cn/jcce-pcm/pcm-coordinator/api/internal/types" | |||
| "github.com/zeromicro/go-zero/core/logx" | |||
| ) | |||
| type GetHashcatLogic struct { | |||
| logx.Logger | |||
| ctx context.Context | |||
| svcCtx *svc.ServiceContext | |||
| } | |||
| func NewGetHashcatLogic(ctx context.Context, svcCtx *svc.ServiceContext) *GetHashcatLogic { | |||
| return &GetHashcatLogic{ | |||
| Logger: logx.WithContext(ctx), | |||
| ctx: ctx, | |||
| svcCtx: svcCtx, | |||
| } | |||
| } | |||
| func (l *GetHashcatLogic) GetHashcat() (resp *types.GetHashcatHandlerResp, err error) { | |||
| // todo: add your logic here and delete this line | |||
| var hashcatList []*model.THashcat | |||
| tx := l.svcCtx.DbEngin.Find(&hashcatList) | |||
| if tx.Error != nil { | |||
| return nil, tx.Error | |||
| } | |||
| result := types.GetHashcatHandlerResp{} | |||
| tool.Convert(hashcatList, &result.HashCatList) | |||
| return &result, nil | |||
| } | |||
| @@ -0,0 +1,37 @@ | |||
| package core | |||
| import ( | |||
| "context" | |||
| "gitlink.org.cn/jcce-pcm/pcm-coordinator/model" | |||
| "gitlink.org.cn/jcce-pcm/utils/tool" | |||
| "gitlink.org.cn/jcce-pcm/pcm-coordinator/api/internal/svc" | |||
| "gitlink.org.cn/jcce-pcm/pcm-coordinator/api/internal/types" | |||
| "github.com/zeromicro/go-zero/core/logx" | |||
| ) | |||
| type SaveHashcatLogic struct { | |||
| logx.Logger | |||
| ctx context.Context | |||
| svcCtx *svc.ServiceContext | |||
| } | |||
| func NewSaveHashcatLogic(ctx context.Context, svcCtx *svc.ServiceContext) *SaveHashcatLogic { | |||
| return &SaveHashcatLogic{ | |||
| Logger: logx.WithContext(ctx), | |||
| ctx: ctx, | |||
| svcCtx: svcCtx, | |||
| } | |||
| } | |||
| func (l *SaveHashcatLogic) SaveHashcat(req *types.SaveHashcatReq) error { | |||
| var hashcat model.THashcat | |||
| tool.Convert(req, &hashcat) | |||
| hashcat.Id = tool.GenSnowflakeID() | |||
| tx := l.svcCtx.DbEngin.Save(hashcat) | |||
| if tx.Error != nil { | |||
| return tx.Error | |||
| } | |||
| return nil | |||
| } | |||
| @@ -413,6 +413,31 @@ type NodeAsset struct { | |||
| ParticipantId int64 `json:"ParticipantId"` // 集群动态信息id | |||
| } | |||
| type SaveHashcatReq struct { | |||
| CrackTaskId int64 `json:"crackTaskId"` // 任务id | |||
| CrackStatus string `json:"crackStatus"` // 状态 | |||
| CrackStartTime string `json:"crackStartTime"` //开始时间 | |||
| CrackEstimatedTime string `json:"crackEstimatedTime"` // 预计时间 | |||
| CrackProgress string `json:"crackProgress"` // 进度 | |||
| CrackResult string `json:"crackResult"` // 结果 | |||
| } | |||
| type GetHashcatHandlerReq struct { | |||
| CrackTaskId int64 `json:"crackTaskId"` // 任务id | |||
| } | |||
| type GetHashcatHandlerResp struct { | |||
| HashCatList []HashCat `json:"hashCatList"` | |||
| } | |||
| type HashCat struct { | |||
| CrackStatus string `json:"crackStatus"` // 状态 | |||
| CrackStartTime string `json:"crackStartTime"` //开始时间 | |||
| CrackEstimatedTime string `json:"crackEstimatedTime"` // 预计时间 | |||
| CrackProgress string `json:"crackProgress"` // 进度 | |||
| CrackResult string `json:"crackResult"` // 结果 | |||
| } | |||
| type Job struct { | |||
| SlurmVersion string `json:"slurmVersion"` | |||
| Name string `json:"name"` | |||
| @@ -37,20 +37,20 @@ type ( | |||
| Id int64 `db:"id"` // id | |||
| TaskId int64 `db:"task_id"` // 任务id | |||
| ParticipantId int64 `db:"participant_id"` // 集群静态信息id | |||
| ApiVersion string `db:"api_version"` | |||
| Name string `db:"name"` // 名称 | |||
| Namespace string `db:"namespace"` // 命名空间 | |||
| Kind string `db:"kind"` // 种类 | |||
| Status string `db:"status"` // 状态 | |||
| StartTime string `db:"start_time"` // 开始时间 | |||
| RunningTime int64 `db:"running_time"` // 运行时长 | |||
| CreatedBy int64 `db:"created_by"` // 创建人 | |||
| CreatedTime sql.NullTime `db:"created_time"` // 创建时间 | |||
| UpdatedBy int64 `db:"updated_by"` // 更新人 | |||
| UpdatedTime sql.NullTime `db:"updated_time"` // 更新时间 | |||
| DeletedFlag int64 `db:"deleted_flag"` // 是否删除(0-否,1-是) | |||
| ApiVersion string `db:"api_version"` //api版本 | |||
| Name string `db:"name"` // 名称 | |||
| Namespace string `db:"namespace"` // 命名空间 | |||
| Kind string `db:"kind"` // 种类 | |||
| Status string `db:"status"` // 状态 | |||
| StartTime string `db:"start_time"` // 开始时间 | |||
| RunningTime int64 `db:"running_time"` // 运行时长 | |||
| CreatedBy int64 `db:"created_by"` // 创建人 | |||
| CreatedTime sql.NullTime `db:"created_time"` // 创建时间 | |||
| UpdatedBy int64 `db:"updated_by"` // 更新人 | |||
| UpdatedTime sql.NullTime `db:"updated_time"` // 更新时间 | |||
| DeletedFlag int64 `db:"deleted_flag"` // 是否删除(0-否,1-是) | |||
| YamlString string `db:"yaml_string"` | |||
| Result string `db:"result"` | |||
| Result string `db:"result"` // 运行结果 | |||
| } | |||
| ) | |||
| @@ -0,0 +1,37 @@ | |||
| // Code generated by goctl. DO NOT EDIT. | |||
| package model | |||
| import ( | |||
| "database/sql" | |||
| "github.com/zeromicro/go-zero/core/stores/sqlx" | |||
| ) | |||
| type ( | |||
| defaultTHashcatModel struct { | |||
| conn sqlx.SqlConn | |||
| table string | |||
| } | |||
| THashcat struct { | |||
| Id int64 `db:"id"` // id | |||
| CrackTaskId int64 `db:"crack_task_id"` // 任务id | |||
| CrackStatus string `db:"crack_status"` // 状态 | |||
| CrackStartTime string `db:"crack_start_time"` //开始时间 | |||
| CrackEstimatedTime string `db:"crack_estimated_time"` // 预计时间 | |||
| CrackProgress string `db:"crack_progress"` // 进度 | |||
| CrackResult string `db:"crack_result"` // 结果 | |||
| CreatedBy int64 `db:"created_by"` // 创建人 | |||
| CreatedTime sql.NullTime `db:"created_time"` // 创建时间 | |||
| UpdatedBy int64 `db:"updated_by"` // 更新人 | |||
| UpdatedTime sql.NullTime `db:"updated_time"` // 更新时间 | |||
| DeletedFlag int64 `db:"deleted_flag"` // 是否删除(0-否,1-是) | |||
| } | |||
| ) | |||
| func newTHashcatModel(conn sqlx.SqlConn) *defaultCloudModel { | |||
| return &defaultCloudModel{ | |||
| conn: conn, | |||
| table: "`cloud`", | |||
| } | |||
| } | |||