opentofu/internal/cloud/backend_run_warning.go
2023-05-02 15:33:06 +00:00

50 lines
1.0 KiB
Go

// Copyright (c) HashiCorp, Inc.
// SPDX-License-Identifier: MPL-2.0
package cloud
import (
"context"
"fmt"
"strings"
tfe "github.com/hashicorp/go-tfe"
)
const (
changedPolicyEnforcementAction = "changed_policy_enforcements"
changedTaskEnforcementAction = "changed_task_enforcements"
ignoredPolicySetAction = "ignored_policy_sets"
)
func (b *Cloud) renderRunWarnings(ctx context.Context, client *tfe.Client, runId string) error {
if b.CLI == nil {
return nil
}
result, err := client.RunEvents.List(ctx, runId, nil)
if err != nil {
return err
}
if result == nil {
return nil
}
// We don't have to worry about paging as the API doesn't support it yet
for _, re := range result.Items {
switch re.Action {
case changedPolicyEnforcementAction, changedTaskEnforcementAction, ignoredPolicySetAction:
if re.Description != "" {
b.CLI.Warn(b.Colorize().Color(strings.TrimSpace(fmt.Sprintf(
runWarningHeader, re.Description)) + "\n"))
}
}
}
return nil
}
const runWarningHeader = `
[reset][yellow]Warning:[reset] %s
`