Merge pull request #32115 from hashicorp/jbardin/apply-refresh-plan

don't lose checks from refresh-only plan
This commit is contained in:
James Bardin 2022-11-02 11:05:15 -04:00 committed by GitHub
commit 52d724d1d0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -25,10 +25,6 @@ func (c *Context) Apply(plan *plans.Plan, config *configs.Config) (*states.State
log.Printf("[DEBUG] Building and walking apply graph for %s plan", plan.UIMode)
// FIXME: refresh plans still store outputs as changes, so we can't use
// Empty()
possibleRefresh := len(plan.Changes.Resources) == 0
graph, operation, diags := c.applyGraph(plan, config, true)
if diags.HasErrors() {
return nil, diags
@ -81,7 +77,10 @@ Note that the -target option is not suitable for routine use, and is provided on
// cleanup is going to be needed to make the plan state match what apply
// would do. For now we can copy the checks over which were overwritten
// during the apply walk.
if possibleRefresh {
// Despite the intent of UIMode, it must still be used for apply-time
// differences in destroy plans too, so we can make use of that here as
// well.
if plan.UIMode == plans.RefreshOnlyMode {
newState.CheckResults = plan.Checks.DeepCopy()
}