You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
47 lines
1.2 KiB
47 lines
1.2 KiB
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) |
|
}
|
|
|