Browse Source

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

Former-commit-id: 6b8598fe77
pull/9/head
zhangwei 2 years ago
parent
commit
0190b9e204
10 changed files with 242 additions and 25 deletions
  1. +25
    -0
      api/desc/core/pcm-core.api
  2. +15
    -12
      api/desc/pcm.api
  3. +17
    -0
      api/internal/handler/core/gethashcathandler.go
  4. +25
    -0
      api/internal/handler/core/savehashcathandler.go
  5. +10
    -0
      api/internal/handler/routes.go
  6. +38
    -0
      api/internal/logic/core/gethashcatlogic.go
  7. +37
    -0
      api/internal/logic/core/savehashcatlogic.go
  8. +25
    -0
      api/internal/types/types.go
  9. +13
    -13
      model/cloudmodel_gen.go
  10. +37
    -0
      model/thashcat.go

+ 25
- 0
api/desc/core/pcm-core.api View File

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

+ 15
- 12
api/desc/pcm.api View File

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

+ 17
- 0
api/internal/handler/core/gethashcathandler.go 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)
}
}

+ 25
- 0
api/internal/handler/core/savehashcathandler.go 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)
}
}

+ 10
- 0
api/internal/handler/routes.go View File

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


+ 38
- 0
api/internal/logic/core/gethashcatlogic.go 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
}

+ 37
- 0
api/internal/logic/core/savehashcatlogic.go 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
}

+ 25
- 0
api/internal/types/types.go View File

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


+ 13
- 13
model/cloudmodel_gen.go View File

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



+ 37
- 0
model/thashcat.go 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`",
}
}

Loading…
Cancel
Save