| @@ -441,4 +441,29 @@ type NodeAsset { | |||||
| GpuTotal int64 `json:"GpuTotal"` // gpu总数 | GpuTotal int64 `json:"GpuTotal"` // gpu总数 | ||||
| GpuAvail int64 `json:"GpuAvail"` // gpu可用数 | GpuAvail int64 `json:"GpuAvail"` // gpu可用数 | ||||
| ParticipantId int64 `json:"ParticipantId"` // 集群动态信息id | 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 | @handler nodeAssetsHandler | ||||
| get /core/assets () returns (NodeAssetsResp) | get /core/assets () returns (NodeAssetsResp) | ||||
| @handler saveHashcatHandler | |||||
| post /core/saveHashcat (SaveHashcatReq) returns () | |||||
| @handler getHashcatHandler | |||||
| get /core/getHashcat/:crackTaskId (getHashcatHandlerReq) returns (getHashcatHandlerResp) | |||||
| } | } | ||||
| //hpc二级接口 | //hpc二级接口 | ||||
| @@ -97,7 +102,6 @@ service pcm { | |||||
| @handler deleteYamlHandler | @handler deleteYamlHandler | ||||
| get /cloud/DeleteYaml (ApplyReq) returns (DeleteResp) | get /cloud/DeleteYaml (ApplyReq) returns (DeleteResp) | ||||
| } | } | ||||
| //智算二级接口 | //智算二级接口 | ||||
| @@ -132,16 +136,16 @@ service pcm { | |||||
| // ListAlgorithms 查询创建算法列表 | // ListAlgorithms 查询创建算法列表 | ||||
| @handler ListAlgorithms | @handler ListAlgorithms | ||||
| //get /ai/ListAlgorithms (ListAlgorithmsReq) returns (ListAlgorithmsResp) | //get /ai/ListAlgorithms (ListAlgorithmsReq) returns (ListAlgorithmsResp) | ||||
| get /ai/ListAlgorithms/:projectId (ListAlgorithmsReq) returns (ListAlgorithmsResp) | |||||
| get /ai/ListAlgorithms/:projectId (ListAlgorithmsReq) returns (ListAlgorithmsResp) | |||||
| // DeleteAlgorithm 删除算法 | // DeleteAlgorithm 删除算法 | ||||
| @handler DeleteAlgorithm | @handler DeleteAlgorithm | ||||
| delete /ai/DeleteAlgorithm/:projectId/:algorithmId (DeleteAlgorithmReq) returns (DeleteAlgorithmResp) | |||||
| delete /ai/DeleteAlgorithm/:projectId/:algorithmId (DeleteAlgorithmReq) returns (DeleteAlgorithmResp) | |||||
| // CreateTrainingJob 创建训练作业 | // CreateTrainingJob 创建训练作业 | ||||
| @handler CreateTrainingJobHandler | @handler CreateTrainingJobHandler | ||||
| post /ai/CreateTrainingJob/:projectId (CreateTrainingJobReq) returns (CreateTrainingJobResp) | post /ai/CreateTrainingJob/:projectId (CreateTrainingJobReq) returns (CreateTrainingJobResp) | ||||
| // ShowAlgorithmByUuid 展示算法详情 | // ShowAlgorithmByUuid 展示算法详情 | ||||
| @handler ShowAlgorithmByUuid | @handler ShowAlgorithmByUuid | ||||
| get /ai/ShowAlgorithmByUuid/:projectId/:algorithmId (ShowAlgorithmByUuidReq) returns (ShowAlgorithmByUuidResp) | |||||
| get /ai/ShowAlgorithmByUuid/:projectId/:algorithmId (ShowAlgorithmByUuidReq) returns (ShowAlgorithmByUuidResp) | |||||
| // creat export task 创建导出任务 | // creat export task 创建导出任务 | ||||
| @handler CreateExportTaskHandler | @handler CreateExportTaskHandler | ||||
| @@ -166,7 +170,7 @@ service pcm { | |||||
| get /ai/ShowService/:projectId/:serviceId (ShowServiceReq) returns (ShowServiceResp) | get /ai/ShowService/:projectId/:serviceId (ShowServiceReq) returns (ShowServiceResp) | ||||
| // Delete service 删除服务 | // Delete service 删除服务 | ||||
| @handler DeleteServiceHandler | @handler DeleteServiceHandler | ||||
| delete /ai/DeleteService/:projectId/:serviceId (DeleteServiceReq) returns (DeleteServiceResp) | |||||
| delete /ai/DeleteService/:projectId/:serviceId (DeleteServiceReq) returns (DeleteServiceResp) | |||||
| // ListClusters查询专属资源池列表 | // ListClusters查询专属资源池列表 | ||||
| @handler ListClustersHandler | @handler ListClustersHandler | ||||
| get /ai/ListClusters (ListClustersReq) returns (ListClustersResp) | get /ai/ListClusters (ListClustersReq) returns (ListClustersResp) | ||||
| @@ -236,7 +240,6 @@ service pcm { | |||||
| group : vm | group : vm | ||||
| ) | ) | ||||
| service pcm { | service pcm { | ||||
| @handler GetComputeLimitsHandler | @handler GetComputeLimitsHandler | ||||
| get /vm/getComputeLimits (GetComputeLimitsReq) returns (GetComputeLimitsResp) | get /vm/getComputeLimits (GetComputeLimitsReq) returns (GetComputeLimitsResp) | ||||
| @handler GetVolumeLimitsHandler | @handler GetVolumeLimitsHandler | ||||
| @@ -256,17 +259,17 @@ service pcm { | |||||
| @handler DeleteNetworkHandler | @handler DeleteNetworkHandler | ||||
| delete /vm/deleteNetwork (DeleteNetworkReq) returns (DeleteNetworkResp) | delete /vm/deleteNetwork (DeleteNetworkReq) returns (DeleteNetworkResp) | ||||
| @handler CreateNetworkHandler | @handler CreateNetworkHandler | ||||
| post /vm/createNetwork (CreateNetworkReq) returns (CreateNetworkResp) | |||||
| post /vm/createNetwork (CreateNetworkReq) returns (CreateNetworkResp) | |||||
| @handler CreateSubnetHandler | @handler CreateSubnetHandler | ||||
| post /vm/createSubnet (CreateSubnetReq) returns (CreateSubnetResp) | |||||
| post /vm/createSubnet (CreateSubnetReq) returns (CreateSubnetResp) | |||||
| @handler ListVolumesDetailHandler | @handler ListVolumesDetailHandler | ||||
| get /vm/listVolumesDetail (ListVolumesDetailReq) returns (ListVolumesDetailResp) | |||||
| get /vm/listVolumesDetail (ListVolumesDetailReq) returns (ListVolumesDetailResp) | |||||
| @handler DeleteVolumeHandler | @handler DeleteVolumeHandler | ||||
| delete /vm/deleteVolume (DeleteVolumeReq) returns (DeleteVolumeResp) | delete /vm/deleteVolume (DeleteVolumeReq) returns (DeleteVolumeResp) | ||||
| @handler CreateVolumeHandler | @handler CreateVolumeHandler | ||||
| post /vm/createVolume (CreateVolumeReq) returns (CreateVolumeResp) | |||||
| post /vm/createVolume (CreateVolumeReq) returns (CreateVolumeResp) | |||||
| @handler ListFlavorsDetailHandler | @handler ListFlavorsDetailHandler | ||||
| get /vm/listFlavorsDetail (ListFlavorsDetailReq) returns (ListFlavorsDetailResp) | |||||
| get /vm/listFlavorsDetail (ListFlavorsDetailReq) returns (ListFlavorsDetailResp) | |||||
| @handler CreateServerHandler | @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", | Path: "/core/assets", | ||||
| Handler: core.NodeAssetsHandler(serverCtx), | 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"), | 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 | 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 { | type Job struct { | ||||
| SlurmVersion string `json:"slurmVersion"` | SlurmVersion string `json:"slurmVersion"` | ||||
| Name string `json:"name"` | Name string `json:"name"` | ||||
| @@ -37,20 +37,20 @@ type ( | |||||
| Id int64 `db:"id"` // id | Id int64 `db:"id"` // id | ||||
| TaskId int64 `db:"task_id"` // 任务id | TaskId int64 `db:"task_id"` // 任务id | ||||
| ParticipantId int64 `db:"participant_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"` | 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`", | |||||
| } | |||||
| } | |||||