JCC-CSScheduler/common/pkgs/db/image.go

58 lines
1.4 KiB
Go

package db
import (
"time"
schsdk "gitlink.org.cn/cloudream/common/sdks/scheduler"
cdssdk "gitlink.org.cn/cloudream/common/sdks/storage"
schmod "gitlink.org.cn/cloudream/scheduler/common/models"
)
type ImageDB struct {
*DB
}
func (db *DB) Image() *ImageDB {
return &ImageDB{DB: db}
}
//func (*ImageDB) GetByPackageID(ctx SQLContext, id schsdk.ImageID) (schmod.Image, error) {
// var ret schmod.Image
// err := sqlx.Get(ctx, &ret, "select * from Image where ImageID = ?", id)
// return ret, err
//}
func (*ImageDB) GetByID(ctx SQLContext, id schsdk.ImageID) (schmod.Image, error) {
var ret schmod.Image
err := ctx.Table("Image").Where("ImageID = ?", id).First(&ret).Error
return ret, err
}
//func (*ImageDB) Create(ctx SQLContext, cdsPackageID *cdssdk.PackageID, name string, createTime time.Time) (schsdk.ImageID, error) {
// ret, err := ctx.Exec("insert into Image(CDSPackageID, Name, CreateTime) values(?, ?, ?)", cdsPackageID, name, createTime)
// if err != nil {
// return 0, err
// }
//
// id, err := ret.LastInsertId()
// if err != nil {
// return 0, err
// }
//
// return schsdk.ImageID(id), nil
//}
func (*ImageDB) Create(ctx SQLContext, cdsPackageID *cdssdk.PackageID, name string, createTime time.Time) (schsdk.ImageID, error) {
image := schmod.Image{
CDSPackageID: cdsPackageID,
Name: name,
CreateTime: createTime,
}
if err := ctx.Table("Image").Create(&image).Error; err != nil {
return 0, err
}
return image.ImageID, nil
}