From 15716164007030c7e2ecb65a1b80b94988a77b6a Mon Sep 17 00:00:00 2001 From: Pablo Collins Date: Tue, 22 Jun 2021 12:56:53 -0400 Subject: [PATCH] Add support for signalFxRealm field (#498) --- cmd/translatesfx/translatesfx/otel_test.go | 15 ++++++++++++--- .../translatesfx/testdata/sa-simple.yaml | 4 +--- cmd/translatesfx/translatesfx/translate.go | 18 ++++++++++++++++-- 3 files changed, 29 insertions(+), 8 deletions(-) diff --git a/cmd/translatesfx/translatesfx/otel_test.go b/cmd/translatesfx/translatesfx/otel_test.go index 5d2460eece2..8156ea01772 100644 --- a/cmd/translatesfx/translatesfx/otel_test.go +++ b/cmd/translatesfx/translatesfx/otel_test.go @@ -55,11 +55,20 @@ func testvSphereMonitorCfg() map[interface{}]interface{} { } func TestAPIURLToRealm(t *testing.T) { - us1, _ := apiURLToRealm("https://api.us1.signalfx.com") + us0, _ := apiURLToRealm(map[interface{}]interface{}{ + "apiUrl": "https://api.signalfx.com", + }) + assert.Equal(t, "us0", us0) + + us1, _ := apiURLToRealm(map[interface{}]interface{}{ + "apiUrl": "https://api.us1.signalfx.com", + }) assert.Equal(t, "us1", us1) - us0, _ := apiURLToRealm("https://api.signalfx.com") - assert.Equal(t, "us0", us0) + us2, _ := apiURLToRealm(map[interface{}]interface{}{ + "signalFxRealm": "us2", + }) + assert.Equal(t, "us2", us2) } func TestMTOperations(t *testing.T) { diff --git a/cmd/translatesfx/translatesfx/testdata/sa-simple.yaml b/cmd/translatesfx/translatesfx/testdata/sa-simple.yaml index 7aeebc9f167..ffb25219c2f 100644 --- a/cmd/translatesfx/translatesfx/testdata/sa-simple.yaml +++ b/cmd/translatesfx/translatesfx/testdata/sa-simple.yaml @@ -1,8 +1,6 @@ --- signalFxAccessToken: "abc123" -ingestUrl: "https://ingest.lab0.signalfx.com" -apiUrl: "https://api.signalfx.com" -traceEndpointUrl: "https://ingest.signalfx.com/v2/trace" +signalFxRealm: us1 intervalSeconds: 10 diff --git a/cmd/translatesfx/translatesfx/translate.go b/cmd/translatesfx/translatesfx/translate.go index e50596c6215..dd708834221 100644 --- a/cmd/translatesfx/translatesfx/translate.go +++ b/cmd/translatesfx/translatesfx/translate.go @@ -29,7 +29,7 @@ type saCfgInfo struct { } func saExpandedToCfgInfo(saExpanded map[interface{}]interface{}) (saCfgInfo, error) { - realm, err := apiURLToRealm(saExpanded["apiUrl"].(string)) + realm, err := apiURLToRealm(saExpanded) if err != nil { return saCfgInfo{}, err } @@ -42,7 +42,21 @@ func saExpandedToCfgInfo(saExpanded map[interface{}]interface{}) (saCfgInfo, err }, nil } -func apiURLToRealm(apiURL string) (string, error) { +func apiURLToRealm(saExpanded map[interface{}]interface{}) (string, error) { + if v, ok := saExpanded["signalFxRealm"]; ok { + if realm, ok := v.(string); ok { + return realm, nil + } + return "", fmt.Errorf("unexpected signalFxRealm type: %v", v) + } + v, ok := saExpanded["apiUrl"] + if !ok { + return "", fmt.Errorf("unable to get realm from SA config %v", saExpanded) + } + apiURL, ok := v.(string) + if !ok { + return "", fmt.Errorf("unexpected apiURL type: %v", v) + } u, err := url.Parse(apiURL) if err != nil { return "", fmt.Errorf("failed to parse apiURL %v: %v", apiURL, err)