hashcat 进度反馈和列表查询接口

Former-commit-id: 6b8598fe77e056b5ce614fed0294d3e395a23459
This commit is contained in:
zhangwei 2023-09-01 20:03:02 +08:00
parent 38e1416a6e
commit 0190b9e204
10 changed files with 242 additions and 25 deletions

View File

@ -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"` // 结果
} }

View File

@ -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)
} }

View File

@ -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)
}
}

View File

@ -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)
}
}

View File

@ -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"),
) )

View File

@ -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
}

View File

@ -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
}

View File

@ -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"`

View File

@ -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"` ApiVersion string `db:"api_version"` //api版本
Name string `db:"name"` // 名称 Name string `db:"name"` // 名称
Namespace string `db:"namespace"` // 命名空间 Namespace string `db:"namespace"` // 命名空间
Kind string `db:"kind"` // 种类 Kind string `db:"kind"` // 种类
Status string `db:"status"` // 状态 Status string `db:"status"` // 状态
StartTime string `db:"start_time"` // 开始时间 StartTime string `db:"start_time"` // 开始时间
RunningTime int64 `db:"running_time"` // 运行时长 RunningTime int64 `db:"running_time"` // 运行时长
CreatedBy int64 `db:"created_by"` // 创建人 CreatedBy int64 `db:"created_by"` // 创建人
CreatedTime sql.NullTime `db:"created_time"` // 创建时间 CreatedTime sql.NullTime `db:"created_time"` // 创建时间
UpdatedBy int64 `db:"updated_by"` // 更新人 UpdatedBy int64 `db:"updated_by"` // 更新人
UpdatedTime sql.NullTime `db:"updated_time"` // 更新时间 UpdatedTime sql.NullTime `db:"updated_time"` // 更新时间
DeletedFlag int64 `db:"deleted_flag"` // 是否删除0-否1-是) 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"` // 运行结果
} }
) )

37
model/thashcat.go Normal file
View File

@ -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`",
}
}