@@ -3,6 +3,7 @@ package cloud
3
3
import (
4
4
"context"
5
5
"fmt"
6
+ "strings"
6
7
7
8
"github.com/grafana/grafana-com-public-clients/go/gcom"
8
9
"github.com/grafana/terraform-provider-grafana/v2/internal/common"
@@ -115,13 +116,12 @@ func resourceAPIKeyCreate(ctx context.Context, d *schema.ResourceData, c *gcom.A
115
116
}
116
117
117
118
func resourceAPIKeyRead (ctx context.Context , d * schema.ResourceData , c * gcom.APIClient ) diag.Diagnostics {
118
- split , err := resourceAPIKeyID . Split (d .Id ())
119
+ org , name , err := resourceAPIKeySplitID (d .Id ())
119
120
if err != nil {
120
121
return diag .FromErr (err )
121
122
}
122
- org , name := split [0 ], split [1 ]
123
123
124
- resp , _ , err := c .OrgsAPI .GetApiKey (ctx , name .( string ) , org .( string ) ).Execute ()
124
+ resp , _ , err := c .OrgsAPI .GetApiKey (ctx , name , org ).Execute ()
125
125
if err != nil {
126
126
return apiError (err )
127
127
}
@@ -135,13 +135,27 @@ func resourceAPIKeyRead(ctx context.Context, d *schema.ResourceData, c *gcom.API
135
135
}
136
136
137
137
func resourceAPIKeyDelete (ctx context.Context , d * schema.ResourceData , c * gcom.APIClient ) diag.Diagnostics {
138
- split , err := resourceAPIKeyID . Split (d .Id ())
138
+ org , name , err := resourceAPIKeySplitID (d .Id ())
139
139
if err != nil {
140
140
return diag .FromErr (err )
141
141
}
142
- org , name := split [0 ], split [1 ]
143
142
144
- _ , err = c .OrgsAPI .DelApiKey (ctx , name .( string ) , org .( string ) ).XRequestId (ClientRequestID ()).Execute ()
143
+ _ , err = c .OrgsAPI .DelApiKey (ctx , name , org ).XRequestId (ClientRequestID ()).Execute ()
145
144
d .SetId ("" )
146
145
return apiError (err )
147
146
}
147
+
148
+ func resourceAPIKeySplitID (id string ) (string , string , error ) {
149
+ var org , name string
150
+ if strings .Contains (id , common .ResourceIDSeparator ) {
151
+ split , err := resourceAPIKeyID .Split (id )
152
+ if err != nil {
153
+ return "" , "" , err
154
+ }
155
+ org , name = split [0 ].(string ), split [1 ].(string )
156
+ } else {
157
+ splitID := strings .SplitN (id , "-" , 2 )
158
+ org , name = splitID [0 ], splitID [1 ]
159
+ }
160
+ return org , name , nil
161
+ }
0 commit comments