@@ -10,6 +10,7 @@ import (
10
10
"github.com/hashicorp/terraform-plugin-sdk/v2/diag"
11
11
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
12
12
"github.com/hashicorp/terraform-provider-aws/internal/conns"
13
+ "github.com/hashicorp/terraform-provider-aws/internal/errs/sdkdiag"
13
14
tftags "github.com/hashicorp/terraform-provider-aws/internal/tags"
14
15
"github.com/hashicorp/terraform-provider-aws/internal/tfresource"
15
16
)
@@ -45,7 +46,7 @@ func ResourceTag() *schema.Resource {
45
46
}
46
47
}
47
48
48
- func resourceTagCreate(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { {{ if not (eq .ServicePackage "ec2") }}// nosemgrep:ci.semgrep.tags.calling-UpdateTags-in-resource-create{{- end }}
49
+ func resourceTagCreate(ctx context.Context, d *schema.ResourceData, meta interface{}) (diags diag.Diagnostics) { {{ if not (eq .ServicePackage "ec2") }}// nosemgrep:ci.semgrep.tags.calling-UpdateTags-in-resource-create{{- end }}
49
50
conn := meta.(*conns.AWSClient).{{ .AWSServiceUpper }}Conn(ctx)
50
51
51
52
identifier := d.Get("{{ .IDAttribName }}").(string)
@@ -57,67 +58,67 @@ func resourceTagCreate(ctx context.Context, d *schema.ResourceData, meta interfa
57
58
{{- else }}
58
59
if err := {{ .UpdateTagsFunc }}(ctx, conn, identifier, nil, map[string]string{key: value}); err != nil {
59
60
{{- end }}
60
- return diag.Errorf( "creating %s resource (%s) tag (%s): %s", {{ .ServicePackage }}.ServiceID, identifier, key, err)
61
+ return sdkdiag.AppendErrorf(diags, "creating %s resource (%s) tag (%s): %s", {{ .ServicePackage }}.ServiceID, identifier, key, err)
61
62
}
62
63
63
64
d.SetId(tftags.SetResourceID(identifier, key))
64
65
65
- return resourceTagRead(ctx, d, meta)
66
+ return append(diags, resourceTagRead(ctx, d, meta)... )
66
67
}
67
68
68
- func resourceTagRead(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
69
+ func resourceTagRead(ctx context.Context, d *schema.ResourceData, meta interface{}) (diags diag.Diagnostics) {
69
70
conn := meta.(*conns.AWSClient).{{ .AWSServiceUpper }}Conn(ctx)
70
71
identifier, key, err := tftags.GetResourceID(d.Id())
71
72
72
73
if err != nil {
73
- return diag.FromErr( err)
74
+ return sdkdiag.AppendFromErr(diags, err)
74
75
}
75
76
76
77
value, err := {{ .GetTagFunc }}(ctx, conn, identifier, key)
77
78
78
79
if !d.IsNewResource() && tfresource.NotFound(err) {
79
80
log.Printf("[WARN] %s resource (%s) tag (%s) not found, removing from state", {{ .ServicePackage }}.ServiceID, identifier, key)
80
81
d.SetId("")
81
- return nil
82
+ return diags
82
83
}
83
84
84
85
if err != nil {
85
- return diag.Errorf( "reading %s resource (%s) tag (%s): %s", {{ .ServicePackage }}.ServiceID, identifier, key, err)
86
+ return sdkdiag.AppendErrorf(diags, "reading %s resource (%s) tag (%s): %s", {{ .ServicePackage }}.ServiceID, identifier, key, err)
86
87
}
87
88
88
89
d.Set("{{ .IDAttribName }}", identifier)
89
90
d.Set("key", key)
90
91
d.Set("value", value)
91
92
92
- return nil
93
+ return diags
93
94
}
94
95
95
- func resourceTagUpdate(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
96
+ func resourceTagUpdate(ctx context.Context, d *schema.ResourceData, meta interface{}) (diags diag.Diagnostics) {
96
97
conn := meta.(*conns.AWSClient).{{ .AWSServiceUpper }}Conn(ctx)
97
98
identifier, key, err := tftags.GetResourceID(d.Id())
98
99
99
100
if err != nil {
100
- return diag.FromErr( err)
101
+ return sdkdiag.AppendFromErr(diags, err)
101
102
}
102
103
103
104
if err := {{ .UpdateTagsFunc }}(ctx, conn, identifier, nil, map[string]string{key: d.Get("value").(string)}); err != nil {
104
- return diag.Errorf( "updating %s resource (%s) tag (%s): %s", {{ .ServicePackage }}.ServiceID, identifier, key, err)
105
+ return sdkdiag.AppendErrorf(diags, "updating %s resource (%s) tag (%s): %s", {{ .ServicePackage }}.ServiceID, identifier, key, err)
105
106
}
106
107
107
- return resourceTagRead(ctx, d, meta)
108
+ return append(diags, resourceTagRead(ctx, d, meta)... )
108
109
}
109
110
110
- func resourceTagDelete(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
111
+ func resourceTagDelete(ctx context.Context, d *schema.ResourceData, meta interface{}) (diags diag.Diagnostics) {
111
112
conn := meta.(*conns.AWSClient).{{ .AWSServiceUpper }}Conn(ctx)
112
113
identifier, key, err := tftags.GetResourceID(d.Id())
113
114
114
115
if err != nil {
115
- return diag.FromErr( err)
116
+ return sdkdiag.AppendFromErr(diags, err)
116
117
}
117
118
118
119
if err := {{ .UpdateTagsFunc }}(ctx, conn, identifier, map[string]string{key: d.Get("value").(string)}, nil); err != nil {
119
- return diag.Errorf( "deleting %s resource (%s) tag (%s): %s", {{ .ServicePackage }}.ServiceID, identifier, key, err)
120
+ return sdkdiag.AppendErrorf(diags, "deleting %s resource (%s) tag (%s): %s", {{ .ServicePackage }}.ServiceID, identifier, key, err)
120
121
}
121
122
122
- return nil
123
+ return diags
123
124
}
0 commit comments