github.com/opentofu/opentofu@v1.7.1/internal/backend/remote-state/s3/diags.go (about)

     1  // Copyright (c) The OpenTofu Authors
     2  // SPDX-License-Identifier: MPL-2.0
     3  // Copyright (c) 2023 HashiCorp, Inc.
     4  // SPDX-License-Identifier: MPL-2.0
     5  
     6  package s3
     7  
     8  import (
     9  	"strings"
    10  
    11  	"github.com/hashicorp/aws-sdk-go-base/v2/diag"
    12  
    13  	"github.com/opentofu/opentofu/internal/tfdiags"
    14  )
    15  
    16  func diagnosticString(d tfdiags.Diagnostic) string {
    17  	var buffer strings.Builder
    18  	buffer.WriteString(d.Severity().String() + ": ")
    19  	buffer.WriteString(d.Description().Summary)
    20  	if d.Description().Detail != "" {
    21  		buffer.WriteString("\n\n")
    22  		buffer.WriteString(d.Description().Detail)
    23  	}
    24  	return buffer.String()
    25  }
    26  
    27  func diagnosticsString(d tfdiags.Diagnostics) string {
    28  	l := len(d)
    29  	if l == 0 {
    30  		return ""
    31  	}
    32  
    33  	var buffer strings.Builder
    34  	for i, v := range d {
    35  		buffer.WriteString(diagnosticString(v))
    36  		if i < l-1 {
    37  			buffer.WriteString(",\n")
    38  		}
    39  	}
    40  	return buffer.String()
    41  }
    42  
    43  func baseSeverityToTofuSeverity(s diag.Severity) tfdiags.Severity {
    44  	switch s {
    45  	case diag.SeverityWarning:
    46  		return tfdiags.Warning
    47  	case diag.SeverityError:
    48  		return tfdiags.Error
    49  	default:
    50  		return -1
    51  	}
    52  }