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 (
SpecNotVerified int = iota + 1
SpecEffective
SpecNotEffective
SpecOnShelf
SpecOffShelf
)

type ResourceSpecification struct {
@@ -16,8 +16,9 @@ type ResourceSpecification struct {
QueueId int64 `xorm:"INDEX"`
SourceSpecId string `xorm:"INDEX"`
AccCardsNum int
CpuNum int
CpuCores int
MemMiB int
GPUMemMiB int
ShareMemMiB int
UnitPrice int
Status int
@@ -33,9 +34,10 @@ func (r ResourceSpecification) ConvertToRes() *ResourceSpecificationRes {
ID: r.ID,
SourceSpecId: r.SourceSpecId,
AccCardsNum: r.AccCardsNum,
CpuNum: r.CpuNum,
MemMiB: r.MemMiB,
CpuCores: r.CpuCores,
MemMiB: r.GPUMemMiB,
ShareMemMiB: r.ShareMemMiB,
GPUMemMiB: r.GPUMemMiB,
UnitPrice: r.UnitPrice,
Status: r.Status,
}
@@ -44,9 +46,10 @@ func (r ResourceSpecification) ConvertToRes() *ResourceSpecificationRes {
type ResourceSpecificationReq struct {
QueueId int64 `binding:"Required"`
AccCardsNum int
CpuNum int
MemGiB int
ShareMemGiB int
CpuCores int
MemMiB int
GPUMemMiB int
ShareMemMiB int
UnitPrice int
Status int
IsAutomaticSync bool
@@ -57,9 +60,10 @@ func (r ResourceSpecificationReq) ToDTO() ResourceSpecification {
return ResourceSpecification{
QueueId: r.QueueId,
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,
Status: r.Status,
IsAutomaticSync: r.IsAutomaticSync,
@@ -94,8 +98,9 @@ type ResourceSpecificationRes struct {
ID int64
SourceSpecId string
AccCardsNum int
CpuNum int
CpuCores int
MemMiB int
GPUMemMiB int
ShareMemMiB int
UnitPrice 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) {
@@ -157,3 +162,18 @@ func SearchResourceSpecification(opts SearchResourceSpecificationOptions) (int64
}
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"))
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 {


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

@@ -14,8 +14,10 @@ func AddResourceSpecification(req models.ResourceSpecificationReq) error {
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 nil
@@ -29,3 +31,20 @@ func GetResourceSpecificationList(opts models.SearchResourceSpecificationOptions

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