func for droplet migration and change state

Signed-off-by: Jeff Carr <jcarr@wit.com>
This commit is contained in:
Jeff Carr 2024-10-28 05:08:31 -05:00
parent bf46163a87
commit ae69eafee5
1 changed files with 62 additions and 0 deletions

View File

@ -129,3 +129,65 @@ func (d *Droplet) SetMemory(b int64) *Event {
func (d *Droplet) SetCpus(b int64) {
log.Info("Set the number of cpus for the droplet", b)
}
// records an event that the droplet changed state (aka turned on, turned off, etc)
func (c *Cluster) ChangeDropletState(d *Droplet, newState DropletState) error {
if c == nil {
return errors.New("cluster is nil")
}
if d == nil {
return errors.New("droplet is nil")
}
if d.CurrentState == newState {
// droplet status didn't change
return nil
}
var e *Event
e = new(Event)
e.Droplet = d.Hostname
e.OrigVal = convertToString(d.CurrentState)
e.NewVal = convertToString(newState)
e.FieldName = "status"
now := time.Now()
e.Start = timestamppb.New(now)
c.Events = append(c.Events, e)
return nil
}
// records an event that the droplet migrated to another hypervisor
func (c *Cluster) DropletMoved(d *Droplet, newh *Hypervisor) error {
if c == nil {
return errors.New("cluster is nil")
}
if d == nil {
return errors.New("droplet is nil")
}
if newh == nil {
return errors.New("hypervisor is nil")
}
if d.CurrentHypervisor == newh.Hostname {
// droplet didn't move
return nil
}
// make a change event
var e *Event
e = new(Event)
e.Droplet = d.Hostname
e.OrigVal = d.CurrentHypervisor
e.NewVal = newh.Hostname
e.FieldName = "droplet migrate"
now := time.Now()
e.Start = timestamppb.New(now)
c.Events = append(c.Events, e)
// update the droplet record
d.CurrentHypervisor = newh.Hostname
return nil
}