func (r *Releaser) execute(inst *instance.Instance, actions []ReleaseAction, kind flux.ReleaseKind, updateJob func(string, ...interface{})) error { rc := NewReleaseContext(inst) defer rc.Clean() for i, action := range actions { updateJob(action.Description) inst.Log("description", action.Description) if action.Do == nil { continue } if kind == flux.ReleaseKindExecute { result, err := action.Do(rc) if err != nil { updateJob(err.Error()) inst.Log("err", err) actions[i].Result = "Failed: " + err.Error() return err } if result != "" { updateJob(result) } actions[i].Result = result } } return nil }
func recordAutomated(inst *instance.Instance, service flux.ServiceID, automated bool) error { return inst.UpdateConfig(func(conf instance.Config) (instance.Config, error) { if serviceConf, found := conf.Services[service]; found { serviceConf.Automated = automated conf.Services[service] = serviceConf } else if automated { conf.Services[service] = instance.ServiceConfig{ Automated: true, } } return conf, nil }) }
// Get set of all locked services func lockedServices(inst *instance.Instance) ([]flux.ServiceID, error) { config, err := inst.GetConfig() if err != nil { return nil, err } ids := []flux.ServiceID{} for id, s := range config.Services { if s.Locked { ids = append(ids, id) } } return ids, nil }
func recordLock(inst *instance.Instance, service flux.ServiceID, locked bool) error { if err := inst.UpdateConfig(func(conf instance.Config) (instance.Config, error) { if serviceConf, found := conf.Services[service]; found { serviceConf.Locked = locked conf.Services[service] = serviceConf } else if locked { conf.Services[service] = instance.ServiceConfig{ Locked: true, } } return conf, nil }); err != nil { return err } return nil }
func allLatestImages(h *instance.Instance, services []platform.Service) (instance.ImageMap, error) { return h.CollectAvailableImages(services) }