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 }