Commit 275fe091 authored by brent's avatar brent

add

parent a2fb3851
No preview for this file type
appname = ai_developer_admin appname = ai_developer_admin
httpport = 8087 httpport = 8087
runmode = dev runmode = test
copyrequestbody = true copyrequestbody = true
sessionon = true sessionon = true
sessiongcmaxlifetime = 127800 sessiongcmaxlifetime = 127800
......
...@@ -3,6 +3,8 @@ package controllers ...@@ -3,6 +3,8 @@ package controllers
import ( import (
"ai_developer_admin/libs/registry" "ai_developer_admin/libs/registry"
"ai_developer_admin/models" "ai_developer_admin/models"
"encoding/json"
"github.com/beego/beego/v2/core/logs"
"net/http" "net/http"
) )
...@@ -45,3 +47,71 @@ func (server *MonitorController) Schedules() { ...@@ -45,3 +47,71 @@ func (server *MonitorController) Schedules() {
} }
server.respond(http.StatusOK, "", data) server.respond(http.StatusOK, "", data)
} }
func (server *MonitorController) NodeManagersByPage() {
body := server.Ctx.Input.RequestBody
appRequest := models.AppRequest{}
err := json.Unmarshal(body, &appRequest) //解析body中数据
logs.Debug("appRequest", appRequest, string(body))
if appRequest.Size == 0 {
appRequest.Size = 10
}
data, err := registry.NodeManagersByPage(int(appRequest.Size), int(appRequest.Page))
if err != nil {
server.respond(models.BusinessFailed, err.Error())
return
}
server.respond(http.StatusOK, "", data)
}
func (server *MonitorController) GatewaysByPage() {
body := server.Ctx.Input.RequestBody
appRequest := models.AppRequest{}
err := json.Unmarshal(body, &appRequest) //解析body中数据
logs.Debug("appRequest", appRequest, string(body))
if appRequest.Size == 0 {
appRequest.Size = 10
}
data, err := registry.GatewaysByPage(int(appRequest.Size), int(appRequest.Page))
if err != nil {
server.respond(models.BusinessFailed, err.Error())
return
}
server.respond(http.StatusOK, "", data)
}
func (server *MonitorController) WorkersByPage() {
body := server.Ctx.Input.RequestBody
appRequest := models.AppRequest{}
err := json.Unmarshal(body, &appRequest) //解析body中数据
logs.Debug("appRequest", appRequest, string(body))
if appRequest.Size == 0 {
appRequest.Size = 10
}
data, err := registry.WorkersByPage(int(appRequest.Size), int(appRequest.Page))
if err != nil {
server.respond(models.BusinessFailed, err.Error())
return
}
server.respond(http.StatusOK, "", data)
}
func (server *MonitorController) SchedulesByPage() {
body := server.Ctx.Input.RequestBody
appRequest := models.AppRequest{}
err := json.Unmarshal(body, &appRequest) //解析body中数据
logs.Debug("appRequest", appRequest, string(body))
if appRequest.Size == 0 {
appRequest.Size = 10
}
data, err := registry.SchedulesByPage(int(appRequest.Size), int(appRequest.Page))
if err != nil {
server.respond(models.BusinessFailed, err.Error())
return
}
server.respond(http.StatusOK, "", data)
}
...@@ -1270,6 +1270,10 @@ func (server *TaskController) AddTasktype() { ...@@ -1270,6 +1270,10 @@ func (server *TaskController) AddTasktype() {
server.respond(models.MissingParameter, "模型类型 不能为空") server.respond(models.MissingParameter, "模型类型 不能为空")
return return
} }
if appRequest.TaskTypeIn.ResultFileExpires == 0 {
server.respond(models.MissingParameter, "结果存储时长必须 大于0")
return
}
//if &appRequest.Type.Version == nil { //if &appRequest.Type.Version == nil {
// server.respond(models.MissingParameter, "版本 不能为空") // server.respond(models.MissingParameter, "版本 不能为空")
// return // return
...@@ -1315,29 +1319,32 @@ func (server *TaskController) AddTasktype() { ...@@ -1315,29 +1319,32 @@ func (server *TaskController) AddTasktype() {
//} //}
price := int64(appRequest.TaskTypeIn.Price * 1000000) price := int64(appRequest.TaskTypeIn.Price * 1000000)
dbType := models.TaskType{ dbType := models.TaskType{
Name: appRequest.TaskTypeIn.Name, Name: appRequest.TaskTypeIn.Name,
BaseModel: appRequest.TaskTypeIn.BaseModel, BaseModel: appRequest.TaskTypeIn.BaseModel,
Model: appRequest.TaskTypeIn.Model, Model: appRequest.TaskTypeIn.Model,
Version: appRequest.TaskTypeIn.Version, Version: appRequest.TaskTypeIn.Version,
Desc: appRequest.TaskTypeIn.Desc, Desc: appRequest.TaskTypeIn.Desc,
Price: price, Price: price,
PublicKey: appRequest.TaskTypeIn.PublicKey, PublicKey: appRequest.TaskTypeIn.PublicKey,
Complexity: appRequest.TaskTypeIn.Complexity, Complexity: appRequest.TaskTypeIn.Complexity,
Type: int(appRequest.TaskTypeIn.Type), Type: int(appRequest.TaskTypeIn.Type),
Kind: appRequest.TaskTypeIn.Kind, Kind: appRequest.TaskTypeIn.Kind,
HardwareRequire: string(hardwareRequire), HardwareRequire: string(hardwareRequire),
ImageId: appRequest.TaskTypeIn.ImageId, ImageId: appRequest.TaskTypeIn.ImageId,
ImageUrl: appRequest.TaskTypeIn.ImageUrl, ImageUrl: appRequest.TaskTypeIn.ImageUrl,
Cmd: string(cmd), Cmd: string(cmd),
Workload: appRequest.TaskTypeIn.Workload, ResultFileExpires: appRequest.TaskTypeIn.ResultFileExpires,
ApiPath: appRequest.TaskTypeIn.ApiPath, Workload: appRequest.TaskTypeIn.Workload,
ImageName: appRequest.TaskTypeIn.ImageName, ApiPath: appRequest.TaskTypeIn.ApiPath,
SignUrl: appRequest.TaskTypeIn.SignUrl, ImageName: appRequest.TaskTypeIn.ImageName,
Username: appRequest.TaskTypeIn.Username, SignUrl: appRequest.TaskTypeIn.SignUrl,
Password: appRequest.TaskTypeIn.Password, Username: appRequest.TaskTypeIn.Username,
Category: appRequest.TaskTypeIn.Category, Password: appRequest.TaskTypeIn.Password,
CreatedTime: timestamp, Category: appRequest.TaskTypeIn.Category,
UpdatedTime: timestamp, PublishStatus: appRequest.TaskTypeIn.PublishStatus,
AccessStatus: appRequest.TaskTypeIn.AccessStatus,
CreatedTime: timestamp,
UpdatedTime: timestamp,
} }
id, err := ormer.Insert(&dbType) id, err := ormer.Insert(&dbType)
...@@ -1367,6 +1374,7 @@ func (server *TaskController) AddTasktype() { ...@@ -1367,6 +1374,7 @@ func (server *TaskController) AddTasktype() {
HardwareRequire: appRequest.TaskTypeIn.HardwareRequire, HardwareRequire: appRequest.TaskTypeIn.HardwareRequire,
Count: int64(0), Count: int64(0),
Kind: dbType.Kind, Kind: dbType.Kind,
FileExpiresTime: strconv.Itoa(dbType.ResultFileExpires),
} }
response = append(response, retask) response = append(response, retask)
data, err := json.Marshal(response) data, err := json.Marshal(response)
...@@ -1429,6 +1437,10 @@ func (server *TaskController) UpdateTaskType() { ...@@ -1429,6 +1437,10 @@ func (server *TaskController) UpdateTaskType() {
server.respond(models.MissingParameter, "模型类型 不能为空") server.respond(models.MissingParameter, "模型类型 不能为空")
return return
} }
if appRequest.TaskTypeIn.ResultFileExpires == 0 {
server.respond(models.MissingParameter, "结果存储时长必须 大于0")
return
}
if &appRequest.TaskTypeIn.BaseModel == nil { if &appRequest.TaskTypeIn.BaseModel == nil {
server.respond(models.MissingParameter, "模型名称 不能为空") server.respond(models.MissingParameter, "模型名称 不能为空")
return return
...@@ -1457,6 +1469,13 @@ func (server *TaskController) UpdateTaskType() { ...@@ -1457,6 +1469,13 @@ func (server *TaskController) UpdateTaskType() {
// return // return
//} //}
checkType := &models.TaskType{Id: appRequest.TaskTypeIn.Id}
err = mysql.GetMysqlInstace().Ormer.Read(checkType)
if err != nil {
server.respond(models.BusinessFailed, err.Error())
return
}
timestamp := time.Now() timestamp := time.Now()
hardwareRequire, err := json.Marshal(appRequest.TaskTypeIn.HardwareRequire) hardwareRequire, err := json.Marshal(appRequest.TaskTypeIn.HardwareRequire)
...@@ -1471,33 +1490,59 @@ func (server *TaskController) UpdateTaskType() { ...@@ -1471,33 +1490,59 @@ func (server *TaskController) UpdateTaskType() {
//} //}
price := int64(appRequest.TaskTypeIn.Price * 1000000) price := int64(appRequest.TaskTypeIn.Price * 1000000)
dbType := models.TaskType{ dbType := models.TaskType{
Id: appRequest.TaskTypeIn.Id, Id: appRequest.TaskTypeIn.Id,
Name: appRequest.TaskTypeIn.Name, Name: appRequest.TaskTypeIn.Name,
BaseModel: appRequest.TaskTypeIn.BaseModel, BaseModel: appRequest.TaskTypeIn.BaseModel,
Model: appRequest.TaskTypeIn.Model, Model: appRequest.TaskTypeIn.Model,
Version: appRequest.TaskTypeIn.Version, Version: appRequest.TaskTypeIn.Version,
Desc: appRequest.TaskTypeIn.Desc, Desc: appRequest.TaskTypeIn.Desc,
Price: price, Price: price,
PublicKey: appRequest.TaskTypeIn.PublicKey, PublicKey: appRequest.TaskTypeIn.PublicKey,
Complexity: appRequest.TaskTypeIn.Complexity, Complexity: appRequest.TaskTypeIn.Complexity,
HardwareRequire: string(hardwareRequire), HardwareRequire: string(hardwareRequire),
ImageId: appRequest.TaskTypeIn.ImageId, ImageId: appRequest.TaskTypeIn.ImageId,
ImageUrl: appRequest.TaskTypeIn.ImageUrl, ImageUrl: appRequest.TaskTypeIn.ImageUrl,
Type: int(appRequest.TaskTypeIn.Type), Type: int(appRequest.TaskTypeIn.Type),
Kind: appRequest.TaskTypeIn.Kind, Kind: appRequest.TaskTypeIn.Kind,
Cmd: string(cmd), Cmd: string(cmd),
Workload: appRequest.TaskTypeIn.Workload, Workload: appRequest.TaskTypeIn.Workload,
ApiPath: appRequest.TaskTypeIn.ApiPath, ApiPath: appRequest.TaskTypeIn.ApiPath,
ImageName: appRequest.TaskTypeIn.ImageName, ImageName: appRequest.TaskTypeIn.ImageName,
SignUrl: appRequest.TaskTypeIn.SignUrl, SignUrl: appRequest.TaskTypeIn.SignUrl,
Username: appRequest.TaskTypeIn.Username, Username: appRequest.TaskTypeIn.Username,
Password: appRequest.TaskTypeIn.Password, Password: appRequest.TaskTypeIn.Password,
Category: appRequest.TaskTypeIn.Category, Category: appRequest.TaskTypeIn.Category,
CreatedTime: timestamp, ResultFileExpires: appRequest.TaskTypeIn.ResultFileExpires,
UpdatedTime: timestamp, PublishStatus: appRequest.TaskTypeIn.PublishStatus,
} AccessStatus: appRequest.TaskTypeIn.AccessStatus,
UpdatedTime: timestamp,
_, err = ormer.Update(&dbType) }
_, err = ormer.Update(&dbType, "name",
"base_model",
"model",
"version",
"desc",
"price",
"public_key",
"complexity",
"hardware_require",
"image_id",
"image_url",
"type",
"kind",
"cmd",
"workload",
"api_path",
"image_name",
"sign_url",
"username",
"password",
"category",
"result_file_expires",
"updated_time",
"publish_status",
"access_status")
if err != nil { if err != nil {
//ormer.Rollback() //ormer.Rollback()
server.respond(models.BusinessFailed, "更新 task type 失败") server.respond(models.BusinessFailed, "更新 task type 失败")
...@@ -1512,6 +1557,15 @@ func (server *TaskController) UpdateTaskType() { ...@@ -1512,6 +1557,15 @@ func (server *TaskController) UpdateTaskType() {
if err != nil { if err != nil {
logs.Debug("GetDataToString Unmarshal err") logs.Debug("GetDataToString Unmarshal err")
} }
var output interface{}
if checkType.Form != "" {
//var form interface{}
err = json.Unmarshal([]byte(checkType.Form), &output)
if err != nil {
logs.Debug("Form Unmarshal err")
}
}
for _, task := range response { for _, task := range response {
if task.TaskId == dbType.Id { if task.TaskId == dbType.Id {
task.User = dbType.Username task.User = dbType.Username
...@@ -1522,6 +1576,8 @@ func (server *TaskController) UpdateTaskType() { ...@@ -1522,6 +1576,8 @@ func (server *TaskController) UpdateTaskType() {
task.ImageId = dbType.ImageId task.ImageId = dbType.ImageId
task.HardwareRequire = appRequest.TaskTypeIn.HardwareRequire task.HardwareRequire = appRequest.TaskTypeIn.HardwareRequire
task.Kind = dbType.Kind task.Kind = dbType.Kind
task.FileExpiresTime = strconv.Itoa(dbType.ResultFileExpires)
task.OutPutJson = output
} }
} }
data, err := json.Marshal(response) data, err := json.Marshal(response)
...@@ -1900,7 +1956,7 @@ func (server *TaskController) Examples() { ...@@ -1900,7 +1956,7 @@ func (server *TaskController) Examples() {
var types []*models.Model var types []*models.Model
sql := fmt.Sprintf("SELECT count(*) FROM task_type WHERE deleted = 0 %s;", where) sql := fmt.Sprintf("SELECT count(*) FROM task_type WHERE deleted = 0 and publish_status = 1 %s;", where)
var total int64 var total int64
mysql.GetMysqlInstace().Ormer.Raw(sql).QueryRow(&total) mysql.GetMysqlInstace().Ormer.Raw(sql).QueryRow(&total)
logs.Debug("total = %d", total) logs.Debug("total = %d", total)
...@@ -1916,10 +1972,13 @@ func (server *TaskController) Examples() { ...@@ -1916,10 +1972,13 @@ func (server *TaskController) Examples() {
return return
} }
sql = fmt.Sprintf("SELECT id, `name` AS tit,type,`desc` AS content, tags ,examples,codes,base_model,model,api_path,version,category FROM task_type WHERE deleted = 0 %s LIMIT %d,%d;", where, offset, size) sql = fmt.Sprintf("SELECT id, `name` AS tit,type,`desc` AS content, tags ,examples,codes,base_model,model,api_path,version,category,form,access_status FROM task_type WHERE deleted = 0 and publish_status = 1 %s LIMIT %d,%d;", where, offset, size)
mysql.GetMysqlInstace().Ormer.Raw(sql).QueryRows(&types) mysql.GetMysqlInstace().Ormer.Raw(sql).QueryRows(&types)
var remodels []*models.ResonseModel var remodels []*models.ResonseModel
for _, data := range types { for _, data := range types {
//if data.Id == 19 {
// logs.Debug("")
//}
var examples interface{} var examples interface{}
eer := json.Unmarshal([]byte(data.Examples), &examples) eer := json.Unmarshal([]byte(data.Examples), &examples)
if eer != nil { if eer != nil {
...@@ -1934,22 +1993,29 @@ func (server *TaskController) Examples() { ...@@ -1934,22 +1993,29 @@ func (server *TaskController) Examples() {
eer = json.Unmarshal([]byte(data.Tags), &tags) eer = json.Unmarshal([]byte(data.Tags), &tags)
if eer != nil { if eer != nil {
}
var form interface{}
eer = json.Unmarshal([]byte(data.Form), &form)
if eer != nil {
} }
remodel := models.ResonseModel{ remodel := models.ResonseModel{
Id: data.Id, Id: data.Id,
Tit: data.Tit, Tit: data.Tit,
Version: data.Version, Version: data.Version,
Content: data.Content, Content: data.Content,
Type: data.Type, Type: data.Type,
ApiPath: data.ApiPath, ApiPath: data.ApiPath,
BaseModel: data.BaseModel, BaseModel: data.BaseModel,
Model: data.Model, Model: data.Model,
Examples: examples, Examples: examples,
ApiDocUrl: data.ApiDocUrl, ApiDocUrl: data.ApiDocUrl,
ApiDocContent: data.ApiDocContent, ApiDocContent: data.ApiDocContent,
Codes: codes, Codes: codes,
Tags: tags, Tags: tags,
Category: data.Category, Category: data.Category,
Form: form,
ResultFileExpires: data.ResultFileExpires,
} }
remodels = append(remodels, &remodel) remodels = append(remodels, &remodel)
} }
...@@ -2029,6 +2095,26 @@ func (server *TaskController) Enumeration() { ...@@ -2029,6 +2095,26 @@ func (server *TaskController) Enumeration() {
types = append(types, &typeData) types = append(types, &typeData)
} }
var publishStatusEnumS []*models.EnumType
for _, value := range [...]models.PublishStatusEnum{models.Publish, models.UnPublish} {
typeData := models.EnumType{
Id: int(value),
Desc: value.String(),
EnDesc: "",
}
publishStatusEnumS = append(publishStatusEnumS, &typeData)
}
var accessStatusEnums []*models.EnumType
for _, value := range [...]models.AccessStatusEnum{models.Public, models.Private} {
typeData := models.EnumType{
Id: int(value),
Desc: value.String(),
EnDesc: "",
}
accessStatusEnums = append(accessStatusEnums, &typeData)
}
var kinds []*models.EnumType var kinds []*models.EnumType
for _, value := range [...]models.TaskKind{models.SystemTask, models.ComputeTask, models.CustomTask, models.StandardTask} { for _, value := range [...]models.TaskKind{models.SystemTask, models.ComputeTask, models.CustomTask, models.StandardTask} {
typeData := models.EnumType{ typeData := models.EnumType{
...@@ -2053,11 +2139,15 @@ func (server *TaskController) Enumeration() { ...@@ -2053,11 +2139,15 @@ func (server *TaskController) Enumeration() {
Types []*models.EnumType `json:"types,omitempty"` Types []*models.EnumType `json:"types,omitempty"`
Kinds []*models.EnumType `json:"kinds,omitempty"` Kinds []*models.EnumType `json:"kinds,omitempty"`
FeeConditions []*models.EnumType `json:"fee_conditions,omitempty"` FeeConditions []*models.EnumType `json:"fee_conditions,omitempty"`
AccessStatus []*models.EnumType `json:"access_status,omitempty"`
PublishStatus []*models.EnumType `json:"publish_status,omitempty"`
}{ }{
Categorys: categorys, Categorys: categorys,
Types: types, Types: types,
Kinds: kinds, Kinds: kinds,
FeeConditions: feeConditionEnums, FeeConditions: feeConditionEnums,
AccessStatus: accessStatusEnums,
PublishStatus: publishStatusEnumS,
} }
server.respond(http.StatusOK, "", responseData) server.respond(http.StatusOK, "", responseData)
} }
...@@ -2085,6 +2175,13 @@ func initTypeInRedis() []models.TaskHeat { ...@@ -2085,6 +2175,13 @@ func initTypeInRedis() []models.TaskHeat {
eer := json.Unmarshal([]byte(dbType.HardwareRequire), &hardwareRequire) eer := json.Unmarshal([]byte(dbType.HardwareRequire), &hardwareRequire)
if eer != nil { if eer != nil {
}
var output interface{}
if dbType.Form != "" {
err := json.Unmarshal([]byte(dbType.Form), &output)
if err != nil {
logs.Debug("Form Unmarshal err")
}
} }
retask := models.TaskHeat{ retask := models.TaskHeat{
TaskId: dbType.Id, TaskId: dbType.Id,
...@@ -2097,6 +2194,8 @@ func initTypeInRedis() []models.TaskHeat { ...@@ -2097,6 +2194,8 @@ func initTypeInRedis() []models.TaskHeat {
HardwareRequire: hardwareRequire, HardwareRequire: hardwareRequire,
Count: int64(0), Count: int64(0),
Kind: dbType.Kind, Kind: dbType.Kind,
FileExpiresTime: strconv.Itoa(dbType.ResultFileExpires),
OutPutJson: output,
} }
response = append(response, retask) response = append(response, retask)
} }
......
package controllers
import (
"ai_developer_admin/models"
"fmt"
"github.com/beego/beego/v2/core/logs"
"net/http"
"os"
)
type FileController struct {
MainController
}
func (server *FileController) Upload() {
info, err := server.Check()
if err != nil {
server.respond(http.StatusUnauthorized, err.Error())
return
}
if !(info.Role == 1 || info.Role == 2) {
server.respond(http.StatusUnauthorized, "只有管理员才可执行此操作")
return
}
dir := "uploads"
if _, err = os.Stat(dir); err != nil {
if os.IsNotExist(err) {
logs.Debug("Upload 目录不存在")
} else {
logs.Debug("Upload", err.Error())
}
}
_, header, err := server.GetFile("file")
if err != nil {
server.respond(models.BusinessFailed, err.Error())
return
}
path := dir + "/" + header.Filename
err = server.SaveToFile("file", path)
if err != nil {
server.respond(models.BusinessFailed, err.Error())
return
}
responseData := struct {
Url string `json:"url"`
}{
Url: path,
}
server.respond(http.StatusOK, "文件上传成功", responseData)
}
func checkDIR(dir string) (bool, error) {
if _, err := os.Stat("mydir"); err != nil {
if os.IsNotExist(err) {
fmt.Println("目录不存在")
return false, nil
} else {
fmt.Println(err)
return false, err
}
}
return true, nil
}
{"/Users/brent/Documents/wubanWork/ai_developer_admin/controllers":1709633018662460210} {"/Users/brent/Documents/wubanWork/ai_developer_admin/controllers":1709866940530918747}
\ No newline at end of file \ No newline at end of file
...@@ -43,6 +43,22 @@ func Schedules() ([]string, error) { ...@@ -43,6 +43,22 @@ func Schedules() ([]string, error) {
return querier.Select(common.SERVICE_SCHEDULER).List() return querier.Select(common.SERVICE_SCHEDULER).List()
} }
func NodeManagersByPage(pageSize int, pageNum int) ([]string, error) {
return querier.Select(common.SERVICE_NODE_MANAGER).ListByPage(pageSize, pageNum)
}
func GatewaysByPage(pageSize int, pageNum int) ([]string, error) {
return querier.Select(common.SERVICE_API_GATEWAY).ListByPage(pageSize, pageNum)
}
func WorkersByPage(pageSize int, pageNum int) ([]string, error) {
return querier.Select(common.SERVICE_WORKER).ListByPage(pageSize, pageNum)
}
func SchedulesByPage(pageSize int, pageNum int) ([]string, error) {
return querier.Select(common.SERVICE_SCHEDULER).ListByPage(pageSize, pageNum)
}
func (d backendService) ServiceType() common.ServiceType { func (d backendService) ServiceType() common.ServiceType {
return common.SERVICE_BACKEND return common.SERVICE_BACKEND
} }
......
...@@ -20,6 +20,7 @@ func init() { ...@@ -20,6 +20,7 @@ func init() {
ExposeHeaders: []string{"Content-Length", "Access-Control-Allow-Origin", "Access-Control-Allow-Headers", "Content-Type", "X-Xsrf-Token", "Authorization"}, ExposeHeaders: []string{"Content-Length", "Access-Control-Allow-Origin", "Access-Control-Allow-Headers", "Content-Type", "X-Xsrf-Token", "Authorization"},
AllowCredentials: true, AllowCredentials: true,
})) }))
beego.SetStaticPath("/uploads", "uploads")
} }
func main() { func main() {
......
...@@ -56,105 +56,119 @@ type Computility struct { ...@@ -56,105 +56,119 @@ type Computility struct {
} }
type TaskType struct { type TaskType struct {
Id int `orm:"column(id);auto"` Id int `orm:"column(id);auto"`
Name string `json:"name";orm:"column(name);size(20)"` Name string `json:"name";orm:"column(name);size(20)"`
Version string `json:"version,omitempty";orm:"column(version)"` Version string `json:"version,omitempty";orm:"column(version)"`
Desc string `json:"desc";orm:"column(desc);size(20)"` Desc string `json:"desc";orm:"column(desc);size(20)"`
Price int64 `json:"price";orm:"column(price)"` Price int64 `json:"price";orm:"column(price)"`
PublicKey string `json:"public_key";orm:"column(public_key)"` PublicKey string `json:"public_key";orm:"column(public_key)"`
Complexity int `json:"complexity";orm:"column(complexity)"` Complexity int `json:"complexity";orm:"column(complexity)"`
Type int `json:"type";orm:"column(type)"` Type int `json:"type";orm:"column(type)"`
Kind int `json:"kind";orm:"column(kind)"` Kind int `json:"kind";orm:"column(kind)"`
HardwareRequire string `json:"hardware_require";orm:"column(hardware_require)"` HardwareRequire string `json:"hardware_require";orm:"column(hardware_require)"`
ImageId string `json:"image_id";orm:"column(image_id)"` ImageId string `json:"image_id";orm:"column(image_id)"`
ImageUrl string `json:"image_url";orm:"column(image_url)"` ImageUrl string `json:"image_url";orm:"column(image_url)"`
Cmd string `json:"cmd";orm:"column(cmd)"` Cmd string `json:"cmd";orm:"column(cmd)"`
Workload int `json:"workload";orm:"column(workload)"` Workload int `json:"workload";orm:"column(workload)"`
ApiPath string `json:"api_path";orm:"column(api_path)"` ApiPath string `json:"api_path";orm:"column(api_path)"`
ImageName string `json:"image_name";orm:"column(image_name)"` ImageName string `json:"image_name";orm:"column(image_name)"`
SignUrl string `json:"sign_url";orm:"column(sign_url)"` SignUrl string `json:"sign_url";orm:"column(sign_url)"`
Username string `json:"username";orm:"column(username)"` Username string `json:"username";orm:"column(username)"`
Password string `json:"password";orm:"column(password)"` Password string `json:"password";orm:"column(password)"`
Model string `json:"model";orm:"column(model)"` Model string `json:"model";orm:"column(model)"`
BaseModel string `json:"base_model";orm:"column(base_model)"` BaseModel string `json:"base_model";orm:"column(base_model)"`
Examples string `json:"examples";orm:"column(examples)"` Examples string `json:"examples";orm:"column(examples)"`
ApiDocUrl string `json:"api_doc_url";orm:"column(api_doc_url)"` ApiDocUrl string `json:"api_doc_url";orm:"column(api_doc_url)"`
ApiDocContent string `json:"api_doc_content";orm:"column(api_doc_content)"` ApiDocContent string `json:"api_doc_content";orm:"column(api_doc_content)"`
Codes string `json:"codes";orm:"column(codes)"` Codes string `json:"codes";orm:"column(codes)"`
Tags string `json:"tags";orm:"column(tags)"` Tags string `json:"tags";orm:"column(tags)"`
Category int `json:"category";orm:"column(category)"` Category int `json:"category";orm:"column(category)"`
CreatedTime time.Time `json:"created_time";orm:"column(created_time);type(datetime)"` Form string `json:"form";orm:"column(form)"`
UpdatedTime time.Time `json:"updated_time";orm:"column(updated_time);type(datetime)"` ResultFileExpires int `json:"result_file_expires";orm:"column(result_file_expires)"`
Deleted int `json:"deleted";orm:"column(deleted);size(1)"` AccessStatus int `json:"access_status,omitempty"`
PublishStatus int `json:"publish_status,omitempty"`
CreatedTime time.Time `json:"created_time";orm:"column(created_time);type(datetime)"`
UpdatedTime time.Time `json:"updated_time";orm:"column(updated_time);type(datetime)"`
Deleted int `json:"deleted";orm:"column(deleted);size(1)"`
} }
type NewTaskType struct { type NewTaskType struct {
Id int `orm:"column(id);auto"` Id int `orm:"column(id);auto"`
Name string `json:"name";orm:"column(desc)"` Name string `json:"name";orm:"column(desc)"`
BaseModel string `json:"base_model";orm:"column(desc)"` BaseModel string `json:"base_model";orm:"column(desc)"`
Model string `json:"model";orm:"column(model)"` Model string `json:"model";orm:"column(model)"`
Version string `json:"version";orm:"column(desc)"` Version string `json:"version";orm:"column(desc)"`
Desc string `json:"desc";orm:"column(desc);size(20)"` Desc string `json:"desc";orm:"column(desc);size(20)"`
Price float64 `json:"price";orm:"column(price)"` Price float64 `json:"price";orm:"column(price)"`
PublicKey string `json:"public_key";orm:"column(public_key)"` PublicKey string `json:"public_key";orm:"column(public_key)"`
Complexity int `json:"complexity";orm:"column(complexity)"` Complexity int `json:"complexity";orm:"column(complexity)"`
Type ModelType `json:"type,omitempty";orm:"column(type)"` Type ModelType `json:"type,omitempty";orm:"column(type)"`
Kind int `json:"kind";orm:"column(kind)"` Kind int `json:"kind";orm:"column(kind)"`
TypeDesc string `json:"type_desc"` TypeDesc string `json:"type_desc"`
KindDesc string `json:"kind_desc"` KindDesc string `json:"kind_desc"`
HardwareRequire interface{} `json:"hardware_require";orm:"column(hardware_require)"` HardwareRequire interface{} `json:"hardware_require";orm:"column(hardware_require)"`
ImageId string `json:"image_id";orm:"column(image_id)"` ImageId string `json:"image_id";orm:"column(image_id)"`
ImageUrl string `json:"image_url";orm:"column(image_url)"` ImageUrl string `json:"image_url";orm:"column(image_url)"`
Cmd interface{} `json:"cmd";orm:"column(cmd)"` Cmd interface{} `json:"cmd";orm:"column(cmd)"`
Workload int `json:"workload";orm:"column(workload)"` Workload int `json:"workload";orm:"column(workload)"`
ApiPath string `json:"api_path";orm:"column(api_path)"` ApiPath string `json:"api_path";orm:"column(api_path)"`
ImageName string `json:"image_name";orm:"column(image_name)"` ImageName string `json:"image_name";orm:"column(image_name)"`
SignUrl string `json:"sign_url";orm:"column(sign_url)"` SignUrl string `json:"sign_url";orm:"column(sign_url)"`
Username string `json:"username";orm:"column(username)"` Username string `json:"username";orm:"column(username)"`
Password string `json:"password";orm:"column(password)"` Password string `json:"password";orm:"column(password)"`
Examples interface{} `json:"examples,omitempty";orm:"column(examples)"` Examples interface{} `json:"examples,omitempty";orm:"column(examples)"`
ApiDocUrl string `json:"api_doc_url,omitempty";orm:"column(api_doc_url)"` ApiDocUrl string `json:"api_doc_url,omitempty";orm:"column(api_doc_url)"`
ApiDocContent string `json:"api_doc_content,omitempty";orm:"column(api_doc_content)"` ApiDocContent string `json:"api_doc_content,omitempty";orm:"column(api_doc_content)"`
Codes interface{} `json:"codes,omitempty";orm:"column(codes)"` Codes interface{} `json:"codes,omitempty";orm:"column(codes)"`
Tags []string `json:"tags,omitempty";orm:"column(tags)"` Tags []string `json:"tags,omitempty";orm:"column(tags)"`
Category int `json:"category";orm:"column(category)"` Category int `json:"category";orm:"column(category)"`
CreatedTime time.Time `json:"created_time";orm:"column(created_time);type(datetime)"` Form string `json:"form";orm:"column(form)"`
UpdatedTime time.Time `json:"updated_time";orm:"column(updated_time);type(datetime)"` ResultFileExpires int `json:"result_file_expires";orm:"column(result_file_expires)"`
Deleted int `json:"deleted";orm:"column(deleted);size(1)"` AccessStatus int `json:"access_status,omitempty"`
PublishStatus int `json:"publish_status,omitempty"`
CreatedTime time.Time `json:"created_time";orm:"column(created_time);type(datetime)"`
UpdatedTime time.Time `json:"updated_time";orm:"column(updated_time);type(datetime)"`
Deleted int `json:"deleted";orm:"column(deleted);size(1)"`
} }
type Model struct { type Model struct {
Id int `orm:"column(id);auto"` Id int `orm:"column(id);auto"`
Tit string `json:"tit";orm:"column(tit);size(20)"` Tit string `json:"tit";orm:"column(tit);size(20)"`
Version string `json:"version,omitempty";orm:"column(version)"` Version string `json:"version,omitempty";orm:"column(version)"`
Content string `json:"content";orm:"column(content);size(20)"` Content string `json:"content";orm:"column(content);size(20)"`
Type int `json:"type";orm:"column(type)"` Type int `json:"type";orm:"column(type)"`
ApiPath string `json:"api_path";orm:"column(api_path)"` ApiPath string `json:"api_path";orm:"column(api_path)"`
BaseModel string `json:"base_model";orm:"column(base_model)"` BaseModel string `json:"base_model";orm:"column(base_model)"`
Model string `json:"model";orm:"column(model)"` Model string `json:"model";orm:"column(model)"`
Examples string `json:"examples";orm:"column(examples)"` Examples string `json:"examples";orm:"column(examples)"`
ApiDocUrl string `json:"api_doc_url";orm:"column(api_doc_url)"` ApiDocUrl string `json:"api_doc_url";orm:"column(api_doc_url)"`
ApiDocContent string `json:"api_doc_content";orm:"column(api_doc_content)"` ApiDocContent string `json:"api_doc_content";orm:"column(api_doc_content)"`
Codes string `json:"codes";orm:"column(codes)"` Codes string `json:"codes";orm:"column(codes)"`
Tags string `json:"tags";orm:"column(tags)"` Tags string `json:"tags";orm:"column(tags)"`
Category int `json:"category";orm:"column(category)"` Form string `json:"form";orm:"column(form)"`
Category int `json:"category";orm:"column(category)"`
ResultFileExpires int `json:"result_file_expires";orm:"column(result_file_expires)"`
AccessStatus int `json:"access_status,omitempty"`
} }
type ResonseModel struct { type ResonseModel struct {
Id int `json:"id";orm:"column(id)"` Id int `json:"id";orm:"column(id)"`
Tit string `json:"tit";orm:"column(tit);size(20)"` Tit string `json:"tit";orm:"column(tit);size(20)"`
Version string `json:"version,omitempty";orm:"column(version)"` Version string `json:"version,omitempty";orm:"column(version)"`
Content string `json:"content";orm:"column(content);size(20)"` Content string `json:"content";orm:"column(content);size(20)"`
Type int `json:"type";orm:"column(type)"` Type int `json:"type";orm:"column(type)"`
ApiPath string `json:"api_path";orm:"column(api_path)"` ApiPath string `json:"api_path";orm:"column(api_path)"`
BaseModel string `json:"base_model";orm:"column(base_model)"` BaseModel string `json:"base_model";orm:"column(base_model)"`
Model string `json:"model";orm:"column(model)"` Model string `json:"model";orm:"column(model)"`
Examples interface{} `json:"examples";orm:"column(examples)"` Examples interface{} `json:"examples";orm:"column(examples)"`
ApiDocUrl string `json:"api_doc_url,omitempty";orm:"column(api_doc_url)"` ApiDocUrl string `json:"api_doc_url,omitempty";orm:"column(api_doc_url)"`
ApiDocContent string `json:"api_doc_content,omitempty";orm:"column(api_doc_content)"` ApiDocContent string `json:"api_doc_content,omitempty";orm:"column(api_doc_content)"`
Codes interface{} `json:"codes";orm:"column(codes)"` Codes interface{} `json:"codes";orm:"column(codes)"`
Tags interface{} `json:"tags";orm:"column(tags)"` Tags interface{} `json:"tags";orm:"column(tags)"`
Category int `json:"category";orm:"column(category)"` Category int `json:"category";orm:"column(category)"`
Form interface{} `json:"form";orm:"column(form)"`
ResultFileExpires int `json:"result_file_expires";orm:"column(result_file_expires)"`
AccessStatus int `json:"access_status,omitempty"`
} }
type Bills struct { type Bills struct {
...@@ -214,6 +228,8 @@ type TaskHeat struct { ...@@ -214,6 +228,8 @@ type TaskHeat struct {
Pwd string `json:"pwd,omitempty"` Pwd string `json:"pwd,omitempty"`
TaskId int `json:"task_id,omitempty"` TaskId int `json:"task_id,omitempty"`
Kind int `json:"kind";orm:"column(kind)"` Kind int `json:"kind";orm:"column(kind)"`
FileExpiresTime string `json:"file_expires_time";orm:"column(file_expires_time)"`
OutPutJson interface{} `json:"out_put_json";orm:"column(out_put_json)"`
} }
type AddTaskType struct { type AddTaskType struct {
...@@ -332,3 +348,61 @@ func (m FeeConditionEnum) EnString() string { ...@@ -332,3 +348,61 @@ func (m FeeConditionEnum) EnString() string {
return "unknown" return "unknown"
} }
} }
type PublishStatusEnum int
const (
Publish PublishStatusEnum = iota + 1
UnPublish
)
func (m PublishStatusEnum) String() string {
switch m {
case Publish:
return "发布"
case UnPublish:
return "取消发布"
default:
return "未知类型"
}
}
func (m PublishStatusEnum) EnString() string {
switch m {
case Publish:
return "UnPublish"
case UnPublish:
return "UnPublish"
default:
return "unknown"
}
}
type AccessStatusEnum int
const (
Public AccessStatusEnum = iota + 1
Private
)
func (m AccessStatusEnum) String() string {
switch m {
case Public:
return "公开"
case Private:
return "私有"
default:
return "未知"
}
}
func (m AccessStatusEnum) EnString() string {
switch m {
case Public:
return "Public"
case Private:
return "Private"
default:
return "unknown"
}
}
...@@ -14,4 +14,5 @@ func init() { ...@@ -14,4 +14,5 @@ func init() {
beego.AutoPrefix("api", &controllers.TaskController{}) beego.AutoPrefix("api", &controllers.TaskController{})
beego.AutoPrefix("api", &controllers.MonitorController{}) beego.AutoPrefix("api", &controllers.MonitorController{})
beego.AutoPrefix("api", &controllers.WhitelistController{}) beego.AutoPrefix("api", &controllers.WhitelistController{})
beego.AutoPrefix("api", &controllers.FileController{})
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment