From 88822f5a964c7b04eedbb68fc02da23e8431d75b Mon Sep 17 00:00:00 2001 From: Paul Hinze Date: Tue, 17 May 2022 16:00:38 -0500 Subject: [PATCH] Override provider for all non-active targets Instead of only targets with empty providers. This helps address a problem that @soapy1 found in review where machines that failed to come up would get stuck with the wrong provider. --- internal/core/project.go | 8 ++++++-- internal/core/target.go | 1 - 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/internal/core/project.go b/internal/core/project.go index 2cea8a78b..bdd94031f 100644 --- a/internal/core/project.go +++ b/internal/core/project.go @@ -68,7 +68,7 @@ func (p *Project) ActiveTargets() (activeTargets []core.Target, err error) { if err != nil { return nil, err } - if st == core.CREATED { + if st.IsActive() { activeTargets = append(activeTargets, t) } } @@ -302,7 +302,11 @@ func (p *Project) Target(nameOrId string, provider string) (core.Target, error) // on lookup, but once we know for sure that any Target that exists // already knows what its provider is, this should be able to be // removed. - if t.target.Provider == "" && provider != "" { + st, err := t.State() + if err != nil { + return nil, err + } + if provider != "" && !st.IsActive() { t.target.Provider = provider } return t, nil diff --git a/internal/core/target.go b/internal/core/target.go index 2467019f1..5e3a86b5d 100644 --- a/internal/core/target.go +++ b/internal/core/target.go @@ -114,7 +114,6 @@ func (t *Target) Provider() (p core.Provider, err error) { } // ProviderName implements core.Target -// TODO: Use actual value once provider is set on the go side func (t *Target) ProviderName() (string, error) { return t.target.Provider, nil }