diff --git a/go.mod b/go.mod index 5955e31..0bae577 100644 --- a/go.mod +++ b/go.mod @@ -4,6 +4,7 @@ go 1.12 require ( github.com/gosimple/slug v1.7.0 + github.com/iancoleman/strcase v0.0.0-20190422225806-e506e3ef7365 github.com/rainycape/unidecode v0.0.0-20150907023854-cb7f23ec59be // indirect github.com/spf13/cobra v0.0.5 github.com/stretchr/testify v1.4.0 diff --git a/go.sum b/go.sum index 1eed9ac..cc9823e 100644 --- a/go.sum +++ b/go.sum @@ -15,6 +15,8 @@ github.com/h2non/parth v0.0.0-20190131123155-b4df798d6542 h1:2VTzZjLZBgl62/EtslC github.com/h2non/parth v0.0.0-20190131123155-b4df798d6542/go.mod h1:Ow0tF8D4Kplbc8s8sSb3V2oUCygFHVp8gC3Dn6U4MNI= github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= +github.com/iancoleman/strcase v0.0.0-20190422225806-e506e3ef7365 h1:ECW73yc9MY7935nNYXUkK7Dz17YuSUI9yqRqYS8aBww= +github.com/iancoleman/strcase v0.0.0-20190422225806-e506e3ef7365/go.mod h1:SK73tn/9oHe+/Y0h39VT4UCxmurVJkR5NA7kMEAOgSE= github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= github.com/magiconair/properties v1.8.0 h1:LLgXmsheXeRoUOBOjtwPQCWIYqM/LU1ayDtDePerRcY= diff --git a/pkg/grafana/rest-client.go b/pkg/grafana/rest-client.go index fe05946..dfd9b19 100644 --- a/pkg/grafana/rest-client.go +++ b/pkg/grafana/rest-client.go @@ -8,9 +8,9 @@ import ( "net/http" "net/url" "path" - "strings" "github.com/gosimple/slug" + "github.com/iancoleman/strcase" ) type RestClient struct { @@ -87,7 +87,7 @@ func (r *RestClient) GetAllDatasources() ([]*DataSource, error) { for key, value := range ds.SecureJsonFields { if value { sanitized := slug.Make(fmt.Sprintf("%s_%s", ds.Name, key)) - placeholder := strings.ToUpper("$" + sanitized) + placeholder := strcase.ToScreamingSnake("$" + sanitized) if existedEnv[placeholder] { // duplicated env existed return nil, fmt.Errorf("Duplicated ENV variable: `%s`. Rename `%s` datasource", placeholder, ds.Name) diff --git a/pkg/grafana/rest-client_test.go b/pkg/grafana/rest-client_test.go index caf91c3..61738a5 100644 --- a/pkg/grafana/rest-client_test.go +++ b/pkg/grafana/rest-client_test.go @@ -51,7 +51,7 @@ func TestGetAllDatasources(t *testing.T) { assert.Equal(1, len(datasources)) actualDatasource := datasources[0] assert.Equal(1, len(actualDatasource.SecureJsonData)) - assert.Equal("$GDEV-INFLUXDB-TELEGRAF_PASSWORD", actualDatasource.SecureJsonData["password"]) + assert.Equal("$GDEV_INFLUXDB_TELEGRAF_PASSWORD", actualDatasource.SecureJsonData["password"]) } func TestIncompleteHost(t *testing.T) { diff --git a/pkg/grafana/testdata/datasources-1.golden.json b/pkg/grafana/testdata/datasources-1.golden.json index 7990670..d99bc0c 100644 --- a/pkg/grafana/testdata/datasources-1.golden.json +++ b/pkg/grafana/testdata/datasources-1.golden.json @@ -9,7 +9,7 @@ "jsonData": { "timeInterval": "10s" }, - "name": "gdev-influxdb-telegraf", + "name": "gdev-influxdb-telegraf😀", "orgId": 1, "password": "", "readOnly": true,