go-common/app/admin/ep/merlin/dao/mysql_machineV2.go
2019-04-22 18:49:16 +08:00

48 lines
1.2 KiB
Go

package dao
import (
"go-common/app/admin/ep/merlin/model"
pkgerr "github.com/pkg/errors"
)
// InsertMachinesV2 insert machines for v2.
func (d *Dao) InsertMachinesV2(u string, gmr *model.GenMachinesRequest, pgmr *model.PaasGenMachineRequest) (ms []*model.Machine, err error) {
tx := d.db.Begin()
if err = tx.Error; err != nil {
return
}
for _, pm := range pgmr.Machines {
m := pm.ToMachine(u, gmr)
if err = tx.Create(m).Error; err != nil {
tx.Rollback()
return
}
for _, n := range gmr.ToMachineNode(m.ID) {
if err = tx.Create(n).Error; err != nil {
tx.Rollback()
return
}
}
if err = tx.Create(m.ToMachineLog()).Error; err != nil {
tx.Rollback()
return
}
ms = append(ms, m)
}
if err = tx.Commit().Error; err != nil {
tx.Rollback()
}
return
}
// UpdateStatusForMachines update status for machines.
func (d *Dao) UpdateStatusForMachines(status int, ids []int64) (err error) {
return pkgerr.WithStack(d.db.Model(&model.Machine{}).Where("id IN (?)", ids).Update("status", status).Error)
}
// UpdateMachineStatusByName update status by name.
func (d *Dao) UpdateMachineStatusByName(status int, n string) error {
return pkgerr.WithStack(d.db.Model(&model.Machine{}).Where("name = ?", n).Update("status", status).Error)
}