func isController(apiState *apiagent.State, tag names.MachineTag) (bool, error) { machine, err := apiState.Entity(tag) if err != nil { return false, errors.Trace(err) } for _, job := range machine.Jobs() { if job.NeedsState() { return true, nil } } return false, nil }
func isModelManager(a agent.Agent, st *apiagent.State) (bool, error) { cfg := a.CurrentConfig() // Grab the tag and ensure that it's for a machine. tag, ok := cfg.Tag().(names.MachineTag) if !ok { return false, errors.New("this manifold may only be used inside a machine agent") } entity, err := st.Entity(tag) if err != nil { return false, err } for _, job := range entity.Jobs() { if job == multiwatcher.JobManageModel { return true, nil } } return false, nil }