Skip to content

Commit 75937aa

Browse files
OpenAPI Client: Clone before modifying org ID (#1150)
* OpenAPI Client: Clone before modifying org ID Needs grafana/grafana-openapi-client-go#27 to be merged and ref to be changed in go.mod before merging Closes #1125 In a parallel context where both the main org (id 0) and non-main orgs are being called, the wrong client may be used To fix this, we can clone the client everytime we modify it. This will make sure we avoid conflicts, since we're never modifying the main reference (created in provider.go) * Update client ref
1 parent b1bdf53 commit 75937aa

File tree

3 files changed

+7
-9
lines changed

3 files changed

+7
-9
lines changed

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ require (
99
github.com/go-openapi/strfmt v0.21.7
1010
github.com/grafana/amixr-api-go-client v0.0.11
1111
github.com/grafana/grafana-api-golang-client v0.26.0
12-
github.com/grafana/grafana-openapi-client-go v0.0.0-20231031181526-6f78415901a3
12+
github.com/grafana/grafana-openapi-client-go v0.0.0-20231112232708-b03b585a9658
1313
github.com/grafana/machine-learning-go-client v0.5.0
1414
github.com/grafana/synthetic-monitoring-agent v0.18.3
1515
github.com/grafana/synthetic-monitoring-api-go-client v0.7.0

go.sum

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -144,12 +144,10 @@ github.com/google/uuid v1.3.1 h1:KjJaJ9iWZ3jOFZIf1Lqf4laDRCasjl0BCmnEGxkdLb4=
144144
github.com/google/uuid v1.3.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
145145
github.com/grafana/amixr-api-go-client v0.0.11 h1:jlE+5t0tRuCtjbpM81j70Dr2J4eCySuWyNGdfLMGdhE=
146146
github.com/grafana/amixr-api-go-client v0.0.11/go.mod h1:N6x26XUrM5zGtK5zL5vNJnAn2JFMxLFPPLTw/6pDkFE=
147-
github.com/grafana/grafana-api-golang-client v0.25.0 h1:jDxnR0U5xgIwKzE+IliZJvjMUUTQxGq+c1s+3M46flI=
148-
github.com/grafana/grafana-api-golang-client v0.25.0/go.mod h1:24W29gPe9yl0/3A9X624TPkAOR8DpHno490cPwnkv8E=
149147
github.com/grafana/grafana-api-golang-client v0.26.0 h1:Eu2YsfUezYngy8ifvmLybgluIcn/2IS9u1xkzuYstEM=
150148
github.com/grafana/grafana-api-golang-client v0.26.0/go.mod h1:uNLZEmgKtTjHBtCQMwNn3qsx2mpMb8zU+7T4Xv3NR9Y=
151-
github.com/grafana/grafana-openapi-client-go v0.0.0-20231031181526-6f78415901a3 h1:jZrhPmoUBL+kwwV5e2AIalKnxV0VW/e0QZ7aHP7Zg3c=
152-
github.com/grafana/grafana-openapi-client-go v0.0.0-20231031181526-6f78415901a3/go.mod h1:2vJ8YEgriYoHaNg5eijRU/q7eJTxT078VrGRSTTLeRk=
149+
github.com/grafana/grafana-openapi-client-go v0.0.0-20231112232708-b03b585a9658 h1:ZneazI71K21ZQJmmg/bNq3489iIg69SkLCen3Kxy7T8=
150+
github.com/grafana/grafana-openapi-client-go v0.0.0-20231112232708-b03b585a9658/go.mod h1:2vJ8YEgriYoHaNg5eijRU/q7eJTxT078VrGRSTTLeRk=
153151
github.com/grafana/machine-learning-go-client v0.5.0 h1:Q1K+MPSy8vfMm2jsk3WQ7O77cGr2fM5hxwtPSoPc5NU=
154152
github.com/grafana/machine-learning-go-client v0.5.0/go.mod h1:QFfZz8NkqVF8++skjkKQXJEZfpCYd8S0yTWJUpsLLTA=
155153
github.com/grafana/synthetic-monitoring-agent v0.18.3 h1:yPCWz7YFP7NU2rlZ5WPnEcZXWD8OnrGdNjRLsUZUgsw=

internal/resources/grafana/oss_org_id.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -70,9 +70,9 @@ func ClientFromNewOrgResource(meta interface{}, d *schema.ResourceData) (*gapi.C
7070
// Those IDs are in the <orgID>:<resourceID> format
7171
func OAPIClientFromExistingOrgResource(meta interface{}, id string) (*goapi.GrafanaHTTPAPI, int64, string) {
7272
orgID, restOfID := SplitOrgResourceID(id)
73-
client := meta.(*common.Client).GrafanaOAPI
73+
client := meta.(*common.Client).GrafanaOAPI.Clone()
7474
if orgID == 0 {
75-
orgID = meta.(*common.Client).GrafanaOAPI.OrgID()
75+
orgID = client.OrgID()
7676
} else if orgID > 0 {
7777
client = client.WithOrgID(orgID)
7878
}
@@ -83,9 +83,9 @@ func OAPIClientFromExistingOrgResource(meta interface{}, id string) (*goapi.Graf
8383
// This client is meant to be used in `Create` functions when the ID hasn't already been baked into the resource ID
8484
func OAPIClientFromNewOrgResource(meta interface{}, d *schema.ResourceData) (*goapi.GrafanaHTTPAPI, int64) {
8585
orgID := parseOrgID(d)
86-
client := meta.(*common.Client).GrafanaOAPI
86+
client := meta.(*common.Client).GrafanaOAPI.Clone()
8787
if orgID == 0 {
88-
orgID = meta.(*common.Client).GrafanaOAPI.OrgID()
88+
orgID = client.OrgID()
8989
} else if orgID > 0 {
9090
client = client.WithOrgID(orgID)
9191
}

0 commit comments

Comments
 (0)