func update(units []provision.Unit) { log.Print("updating status from provisioner") var l AppList for _, unit := range units { a, index := l.Search(unit.AppName) if index > -1 { err := a.Get() if err != nil { log.Printf("collector: app %q not found. Skipping.\n", unit.AppName) continue } } u := app.Unit{} u.Name = unit.Name u.Type = unit.Type u.Machine = unit.Machine u.InstanceId = unit.InstanceId u.Ip = unit.Ip u.State = string(unit.Status) a.State = string(unit.Status) a.Ip = unit.Ip a.AddUnit(&u) if index > -1 { l.Add(a, index) } } for _, a := range l { db.Session.Apps().Update(bson.M{"name": a.Name}, a) } }
func update(units []provision.Unit) { log.Print("updating status from provisioner") var l AppList for _, unit := range units { a, index := l.Search(unit.AppName) if index > -1 { err := a.Get() if err != nil { log.Printf("collector: app %q not found. Skipping.\n", unit.AppName) continue } } u := app.Unit{} u.Name = unit.Name u.Type = unit.Type u.Machine = unit.Machine u.InstanceId = unit.InstanceId u.Ip = unit.Ip u.State = string(unit.Status) a.AddUnit(&u) if index > -1 { l.Add(a, index) } } conn, err := db.Conn() if err != nil { log.Printf("collector failed to connect to the database: %s", err) return } defer conn.Close() for _, a := range l { a.Ip, _ = app.Provisioner.Addr(a) conn.Apps().Update(bson.M{"name": a.Name}, a) } }
func update(units []provision.Unit) { log.Debug("updating status from provisioner") var l AppList var err error for _, unit := range units { a, index := l.Search(unit.AppName) if index > -1 { a, err = app.GetByName(unit.AppName) if err != nil { log.Errorf("collector: app %q not found. Skipping.\n", unit.AppName) continue } a.Units = nil l.Add(a, index) } u := app.Unit{} u.Name = unit.Name u.Type = unit.Type u.Machine = unit.Machine u.InstanceId = unit.InstanceId u.Ip = unit.Ip if unit.Status == provision.StatusStarted && a.State == "" { a.State = "ready" } u.State = string(unit.Status) a.AddUnit(&u) } conn, err := db.Conn() if err != nil { log.Errorf("collector failed to connect to the database: %s", err) return } defer conn.Close() for _, a := range l { a.Ip, err = app.Provisioner.Addr(a) if err != nil { log.Errorf("collector failed to get app (%q) address: %s", a.Name, err) } conn.Apps().Update(bson.M{"name": a.Name}, a) } }