summaryrefslogtreecommitdiff
path: root/machine.go
diff options
context:
space:
mode:
Diffstat (limited to 'machine.go')
-rw-r--r--machine.go38
1 files changed, 26 insertions, 12 deletions
diff --git a/machine.go b/machine.go
index 8fc6ba6..a5946b8 100644
--- a/machine.go
+++ b/machine.go
@@ -60,6 +60,7 @@ func handleMachine(r *http.Request, w http.ResponseWriter, hostname string, data
} else {
fmt.Fprintln(w, m.UpgradeCmd)
}
+ m.UpgradeCmd = ""
m.Upgrade = false
} else {
fmt.Fprintln(w, "good")
@@ -112,7 +113,9 @@ func updateMachine(u *zoopb.Machine) string {
}
m.Laststamp = timestamppb.New(time.Now())
- updatePackages(m, u.Packages)
+ if updatePackages(m, u.Packages) {
+ // trigger save pb
+ }
return "upgrade"
}
@@ -127,20 +130,31 @@ func updatePackages(m *zoopb.Machine, newp *zoopb.Packages) bool {
for loop.Scan() {
p := loop.Next()
if p.Name == "zood" {
- if pold := m.Packages.FindByName("zood"); pold == nil {
+ if updatePackageVersion(m, p) {
+ changed = true
+ }
+ }
+ if p.Name == "virtigod" {
+ if updatePackageVersion(m, p) {
changed = true
- log.Log(ZOOD, "updatePackages() new package", p.Name, "version", p.Version, "machine", m.Hostname)
- m.Packages.Append(p)
- } else {
- if p.Version == pold.Version {
- log.Log(ZOOD, "updatePackages() unchanged", p.Version, "machine", m.Hostname)
- } else {
- changed = true
- log.Log(NOW, "updatePackages() package", p.Name, "version changed", pold.Version, "to", p.Version, "machine", m.Hostname)
- pold.Version = p.Version
- }
}
}
}
return changed
}
+
+func updatePackageVersion(m *zoopb.Machine, pnew *zoopb.Package) bool {
+ pold := m.Packages.FindByName(pnew.Name)
+ if pold == nil {
+ log.Log(NOW, "updatePackages() new package", pnew.Name, "version", pnew.Version, "machine", m.Hostname)
+ m.Packages.Append(pnew)
+ return true
+ }
+ if pold.Version == pnew.Version {
+ log.Log(ZOOD, "updatePackages() unchanged", pold.Version, "machine", m.Hostname)
+ return false
+ }
+ log.Log(NOW, "updatePackages() package", pnew.Name, "version changed", pold.Version, "to", pnew.Version, "machine", m.Hostname)
+ pold.Version = pnew.Version
+ return true
+}