55 lines
1.0 KiB
Go
55 lines
1.0 KiB
Go
|
package main
|
||
|
|
||
|
import (
|
||
|
"go.wit.com/lib/protobuf/zoopb"
|
||
|
"go.wit.com/log"
|
||
|
)
|
||
|
|
||
|
// someone sent machine 'u' is it new?
|
||
|
// if not, update the record of it
|
||
|
func updateMachine(u *zoopb.Machine) string {
|
||
|
if u == nil {
|
||
|
return "nil"
|
||
|
}
|
||
|
m := me.machines.FindByName(u.Hostname)
|
||
|
if m == nil {
|
||
|
log.Info("did not find", u.Hostname)
|
||
|
me.machines.Append(u)
|
||
|
return "new"
|
||
|
}
|
||
|
log.Info("updating machine", m.Hostname)
|
||
|
|
||
|
// did the # of cpus change?
|
||
|
if m.Cpus != u.Cpus {
|
||
|
m.Cpus = u.Cpus
|
||
|
log.Info("cpus changed to", m.Cpus)
|
||
|
}
|
||
|
|
||
|
// did the memory change?
|
||
|
if m.Memory != u.Memory {
|
||
|
m.Memory = u.Memory
|
||
|
log.Info("memory changed to", m.Memory)
|
||
|
}
|
||
|
|
||
|
// init these if nil
|
||
|
if m.Packages == nil {
|
||
|
m.Packages = new(zoopb.Packages)
|
||
|
}
|
||
|
if u.Packages == nil {
|
||
|
u.Packages = new(zoopb.Packages)
|
||
|
}
|
||
|
|
||
|
updatePackages(m.Packages, u.Packages)
|
||
|
return "upgrade"
|
||
|
}
|
||
|
|
||
|
// looks to see if any packages:
|
||
|
// changed versions
|
||
|
// were newly installed
|
||
|
// were uninstalled
|
||
|
func updatePackages(p *zoopb.Packages, u *zoopb.Packages) bool {
|
||
|
var changed bool = false
|
||
|
|
||
|
return changed
|
||
|
}
|