Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ require (
github.com/go-openapi/strfmt v0.23.0
github.com/grafana/amixr-api-go-client v0.0.16 // main branch
github.com/grafana/grafana-com-public-clients/go/gcom v0.0.0-20240807172819-ac10800522a3
github.com/grafana/grafana-openapi-client-go v0.0.0-20240723170622-ae2c94b7c9a3
github.com/grafana/grafana-openapi-client-go v0.0.0-20241113095943-9cb2bbfeb8a3
github.com/grafana/machine-learning-go-client v0.8.2
github.com/grafana/slo-openapi-client/go/slo v0.0.0-20240807172758-1b7d00838fc7
github.com/grafana/synthetic-monitoring-agent v0.29.3
Expand Down
4 changes: 2 additions & 2 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -140,8 +140,8 @@ github.com/grafana/amixr-api-go-client v0.0.16 h1:CXdqnLKjvo6QoNPBKxmZ2kGKCcUoAl
github.com/grafana/amixr-api-go-client v0.0.16/go.mod h1:N6x26XUrM5zGtK5zL5vNJnAn2JFMxLFPPLTw/6pDkFE=
github.com/grafana/grafana-com-public-clients/go/gcom v0.0.0-20240807172819-ac10800522a3 h1:CVLTffnWgBGvVaXfUUcSgFrZbiMzvj0/Hpi909zdeG0=
github.com/grafana/grafana-com-public-clients/go/gcom v0.0.0-20240807172819-ac10800522a3/go.mod h1:u9d0BESoKlztYm93CpoRleQjMbYBcZ+JOLHHP2nN6Wg=
github.com/grafana/grafana-openapi-client-go v0.0.0-20240723170622-ae2c94b7c9a3 h1:W35ScJIkeyLuDlOo3F+u1JSRRvmoIYYf/ghA/17Y18Q=
github.com/grafana/grafana-openapi-client-go v0.0.0-20240723170622-ae2c94b7c9a3/go.mod h1:hiZnMmXc9KXNUlvkV2BKFsiWuIFF/fF4wGgYWEjBitI=
github.com/grafana/grafana-openapi-client-go v0.0.0-20241113095943-9cb2bbfeb8a3 h1:poKxGlUaEYVp2DMofC/I2GHw/vvtHAZ20c48I8rFB6M=
github.com/grafana/grafana-openapi-client-go v0.0.0-20241113095943-9cb2bbfeb8a3/go.mod h1:hiZnMmXc9KXNUlvkV2BKFsiWuIFF/fF4wGgYWEjBitI=
github.com/grafana/grafana-plugin-sdk-go v0.250.0 h1:9EBucp9jLqMx2b8NTlOXH+4OuQWUh6L85c6EJUN8Jdo=
github.com/grafana/grafana-plugin-sdk-go v0.250.0/go.mod h1:gCGN9kHY3KeX4qyni3+Kead38Q+85pYOrsDcxZp6AIk=
github.com/grafana/machine-learning-go-client v0.8.2 h1:TvU4e+Kgg4GhwBNYTMjBUNq4tbhcxe0L8w1eo/UfV2M=
Expand Down
3 changes: 2 additions & 1 deletion internal/resources/grafana/common_check_exists_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package grafana_test

import (
"fmt"
"net/http"
"os"
"strconv"
"strings"
Expand Down Expand Up @@ -41,7 +42,7 @@ var (
alertingMessageTemplateCheckExists = newCheckExistsHelper(
func(t *models.NotificationTemplate) string { return t.Name },
func(client *goapi.GrafanaHTTPAPI, id string) (*models.NotificationTemplate, error) {
resp, err := client.Provisioning.GetTemplate(id)
resp, err := client.Provisioning.GetTemplate(id, grafana.ContentTypeNegotiator(http.DefaultTransport))
return payloadOrError(resp, err)
},
)
Expand Down
36 changes: 36 additions & 0 deletions internal/resources/grafana/content_type_round_tripper.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
package grafana

import (
"net/http"

"github.com/go-openapi/runtime"
"github.com/go-openapi/runtime/middleware"
)

func ContentTypeNegotiator(tripper http.RoundTripper) func(operation *runtime.ClientOperation) {
return func(operation *runtime.ClientOperation) {
operation.Client = &http.Client{Transport: newContentTypeRoundTripperTest(tripper)}
}
}

// contentTypeRoundTripperTest identifies unexpected "text/pain" responses when "application/json" is expected.
// It could happen when something fails related to an "implementation bug".
type contentTypeRoundTripperTest struct {
originalRoundTripper http.RoundTripper
}

func newContentTypeRoundTripperTest(originalRoundTripper http.RoundTripper) http.RoundTripper {
return &contentTypeRoundTripperTest{originalRoundTripper: originalRoundTripper}
}

func (r *contentTypeRoundTripperTest) RoundTrip(req *http.Request) (*http.Response, error) {
resp, err := r.originalRoundTripper.RoundTrip(req)
if err != nil {
return nil, err
}

mid := middleware.NegotiateContentType(req, []string{"application/json", "application/text"}, "application/text")
resp.Header.Set("Content-Type", mid)

return resp, nil
}
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,8 @@ func putMessageTemplate(ctx context.Context, data *schema.ResourceData, meta int
func deleteMessageTemplate(ctx context.Context, data *schema.ResourceData, meta interface{}) diag.Diagnostics {
client, _, name := OAPIClientFromExistingOrgResource(meta, data.Id())

_, err := client.Provisioning.DeleteTemplate(name)
params := provisioning.NewDeleteTemplateParams().WithName(name)
_, err := client.Provisioning.DeleteTemplate(params)
diag, _ := common.CheckReadError("message template", data, err)
return diag
}
Loading