Browse Source

#2624

update
tags/v1.22.8.2^2
chenyifan01 3 years ago
parent
commit
ae2dfd235d
3 changed files with 61 additions and 18 deletions
  1. +34
    -14
      models/resource_specification.go
  2. +6
    -2
      routers/admin/resources.go
  3. +21
    -2
      services/cloudbrain/resource/resource_specification.go

+ 34
- 14
models/resource_specification.go View File

@@ -7,8 +7,8 @@ import (


const ( const (
SpecNotVerified int = iota + 1 SpecNotVerified int = iota + 1
SpecEffective
SpecNotEffective
SpecOnShelf
SpecOffShelf
) )


type ResourceSpecification struct { type ResourceSpecification struct {
@@ -16,8 +16,9 @@ type ResourceSpecification struct {
QueueId int64 `xorm:"INDEX"` QueueId int64 `xorm:"INDEX"`
SourceSpecId string `xorm:"INDEX"` SourceSpecId string `xorm:"INDEX"`
AccCardsNum int AccCardsNum int
CpuNum int
CpuCores int
MemMiB int MemMiB int
GPUMemMiB int
ShareMemMiB int ShareMemMiB int
UnitPrice int UnitPrice int
Status int Status int
@@ -33,9 +34,10 @@ func (r ResourceSpecification) ConvertToRes() *ResourceSpecificationRes {
ID: r.ID, ID: r.ID,
SourceSpecId: r.SourceSpecId, SourceSpecId: r.SourceSpecId,
AccCardsNum: r.AccCardsNum, AccCardsNum: r.AccCardsNum,
CpuNum: r.CpuNum,
MemMiB: r.MemMiB,
CpuCores: r.CpuCores,
MemMiB: r.GPUMemMiB,
ShareMemMiB: r.ShareMemMiB, ShareMemMiB: r.ShareMemMiB,
GPUMemMiB: r.GPUMemMiB,
UnitPrice: r.UnitPrice, UnitPrice: r.UnitPrice,
Status: r.Status, Status: r.Status,
} }
@@ -44,9 +46,10 @@ func (r ResourceSpecification) ConvertToRes() *ResourceSpecificationRes {
type ResourceSpecificationReq struct { type ResourceSpecificationReq struct {
QueueId int64 `binding:"Required"` QueueId int64 `binding:"Required"`
AccCardsNum int AccCardsNum int
CpuNum int
MemGiB int
ShareMemGiB int
CpuCores int
MemMiB int
GPUMemMiB int
ShareMemMiB int
UnitPrice int UnitPrice int
Status int Status int
IsAutomaticSync bool IsAutomaticSync bool
@@ -57,9 +60,10 @@ func (r ResourceSpecificationReq) ToDTO() ResourceSpecification {
return ResourceSpecification{ return ResourceSpecification{
QueueId: r.QueueId, QueueId: r.QueueId,
AccCardsNum: r.AccCardsNum, AccCardsNum: r.AccCardsNum,
CpuNum: r.CpuNum,
MemMiB: r.MemGiB * 1024,
ShareMemMiB: r.ShareMemGiB * 1024,
CpuCores: r.CpuCores,
MemMiB: r.MemMiB,
GPUMemMiB: r.GPUMemMiB,
ShareMemMiB: r.ShareMemMiB,
UnitPrice: r.UnitPrice, UnitPrice: r.UnitPrice,
Status: r.Status, Status: r.Status,
IsAutomaticSync: r.IsAutomaticSync, IsAutomaticSync: r.IsAutomaticSync,
@@ -94,8 +98,9 @@ type ResourceSpecificationRes struct {
ID int64 ID int64
SourceSpecId string SourceSpecId string
AccCardsNum int AccCardsNum int
CpuNum int
CpuCores int
MemMiB int MemMiB int
GPUMemMiB int
ShareMemMiB int ShareMemMiB int
UnitPrice int UnitPrice int
Status int Status int
@@ -122,8 +127,8 @@ func (r ResourceSpecAndQueue) ConvertToRes() *ResourceSpecAndQueueRes {
} }
} }


func InsertResourceSpecification(queue ResourceSpecification) (int64, error) {
return x.Insert(&queue)
func InsertResourceSpecification(r ResourceSpecification) (int64, error) {
return x.Insert(&r)
} }


func UpdateResourceSpecificationById(queueId int64, queue ResourceSpecification) (int64, error) { func UpdateResourceSpecificationById(queueId int64, queue ResourceSpecification) (int64, error) {
@@ -157,3 +162,18 @@ func SearchResourceSpecification(opts SearchResourceSpecificationOptions) (int64
} }
return n, r, nil return n, r, nil
} }

func ResourceSpecOnShelf(id int64) (int64, error) {
param := ResourceSpecification{
Status: SpecOnShelf,
}
return x.Where("id = ? and status in (?,?)", id, SpecOffShelf, SpecNotVerified).Update(&param)
}

func ResourceSpecOffShelf(id int64) (int64, error) {
//todo delete scene
param := ResourceSpecification{
Status: SpecOffShelf,
}
return x.Where("id = ? and status = ?", id, SpecOnShelf).Update(&param)
}

+ 6
- 2
routers/admin/resources.go View File

@@ -132,8 +132,12 @@ func UpdateResourceSpecification(ctx *context.Context, req models.ResourceSpecif
ctx.JSON(http.StatusOK, response.ServerError("param error")) ctx.JSON(http.StatusOK, response.ServerError("param error"))
return return
} }
//only UnitPrice permitted to change
err = resource.UpdateUnitPrice(id, req.UnitPrice)
//only UnitPrice and permitted to change
err = resource.UpdateResourceSpecification(id, req)
case "on-shelf":
err = resource.ResourceSpecOnShelf(id)
case "off-shelf":
err = resource.ResourceSpecOffShelf(id)
} }


if err != nil { if err != nil {


+ 21
- 2
services/cloudbrain/resource/resource_specification.go View File

@@ -14,8 +14,10 @@ func AddResourceSpecification(req models.ResourceSpecificationReq) error {
return nil return nil
} }


func UpdateUnitPrice(specId int64, unitPrice int) error {
if _, err := models.UpdateResourceSpecificationById(specId, models.ResourceSpecification{UnitPrice: unitPrice}); err != nil {
func UpdateResourceSpecification(specId int64, req models.ResourceSpecificationReq) error {
if _, err := models.UpdateResourceSpecificationById(specId, models.ResourceSpecification{
UnitPrice: req.UnitPrice,
}); err != nil {
return err return err
} }
return nil return nil
@@ -29,3 +31,20 @@ func GetResourceSpecificationList(opts models.SearchResourceSpecificationOptions


return models.NewResourceSpecAndQueueListRes(n, r), nil return models.NewResourceSpecAndQueueListRes(n, r), nil
} }

func ResourceSpecOnShelf(id int64) error {
_, err := models.ResourceSpecOnShelf(id)
if err != nil {
return err
}
return nil

}
func ResourceSpecOffShelf(id int64) error {
_, err := models.ResourceSpecOffShelf(id)
if err != nil {
return err
}
return nil

}

Loading…
Cancel
Save