Skip to content

Commit dbe3907

Browse files
authored
Merge pull request #107 from SumoLogic/ssain-add-telemetry
add user-agent to request for tracking terraform usage
2 parents 3508f0c + 07210c1 commit dbe3907

File tree

1 file changed

+34
-24
lines changed

1 file changed

+34
-24
lines changed

sumologic/sumologic_client.go

Lines changed: 34 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import (
55
"encoding/json"
66
"errors"
77
"fmt"
8+
"io"
89
"io/ioutil"
910
"net/http"
1011
"net/url"
@@ -35,6 +36,17 @@ var endpoints = map[string]string{
3536

3637
var rateLimiter = time.Tick(time.Minute / 240)
3738

39+
func createNewRequest(method, url string, body io.Reader, accessID string, accessKey string) (*http.Request, error) {
40+
req, err := http.NewRequest(method, url, body)
41+
if err != nil {
42+
return nil, err
43+
}
44+
req.Header.Add("Content-Type", "application/json")
45+
req.Header.Add("User-Agent", "SumoLogicTerraformProvider/2.0.0")
46+
req.SetBasicAuth(accessID, accessKey)
47+
return req, nil
48+
}
49+
3850
func (s *Client) PostWithCookies(urlPath string, payload interface{}) ([]byte, []*http.Cookie, error) {
3951
relativeURL, err := url.Parse(urlPath)
4052
if err != nil {
@@ -48,14 +60,11 @@ func (s *Client) PostWithCookies(urlPath string, payload interface{}) ([]byte, [
4860
return nil, nil, err
4961
}
5062

51-
req, err := http.NewRequest(http.MethodPost, sumoURL.String(), bytes.NewBuffer(body))
63+
req, err := createNewRequest(http.MethodPost, sumoURL.String(), bytes.NewBuffer(body), s.AccessID, s.AccessKey)
5264
if err != nil {
5365
return nil, nil, err
5466
}
5567

56-
req.Header.Add("Content-Type", "application/json")
57-
req.SetBasicAuth(s.AccessID, s.AccessKey)
58-
5968
<-rateLimiter
6069
resp, err := s.httpClient.Do(req)
6170
if err != nil {
@@ -85,14 +94,11 @@ func (s *Client) GetWithCookies(urlPath string, cookies []*http.Cookie) ([]byte,
8594

8695
sumoURL := s.BaseURL.ResolveReference(relativeURL)
8796

88-
req, err := http.NewRequest(http.MethodGet, sumoURL.String(), nil)
97+
req, err := createNewRequest(http.MethodGet, sumoURL.String(), nil, s.AccessID, s.AccessKey)
8998
if err != nil {
9099
return nil, "", err
91100
}
92101

93-
req.Header.Add("Content-Type", "application/json")
94-
req.SetBasicAuth(s.AccessID, s.AccessKey)
95-
96102
for _, cookie := range cookies {
97103
req.AddCookie(cookie)
98104
}
@@ -123,9 +129,10 @@ func (s *Client) Post(urlPath string, payload interface{}) ([]byte, error) {
123129
sumoURL := s.BaseURL.ResolveReference(relativeURL)
124130

125131
body, _ := json.Marshal(payload)
126-
req, _ := http.NewRequest(http.MethodPost, sumoURL.String(), bytes.NewBuffer(body))
127-
req.Header.Add("Content-Type", "application/json")
128-
req.SetBasicAuth(s.AccessID, s.AccessKey)
132+
req, err := createNewRequest(http.MethodPost, sumoURL.String(), bytes.NewBuffer(body), s.AccessID, s.AccessKey)
133+
if err != nil {
134+
return nil, err
135+
}
129136

130137
<-rateLimiter
131138
resp, err := s.httpClient.Do(req)
@@ -149,9 +156,10 @@ func (s *Client) Post(urlPath string, payload interface{}) ([]byte, error) {
149156
func (s *Client) PostRawPayload(urlPath string, payload string) ([]byte, error) {
150157
relativeURL, _ := url.Parse(urlPath)
151158
sumoURL := s.BaseURL.ResolveReference(relativeURL)
152-
req, _ := http.NewRequest(http.MethodPost, sumoURL.String(), bytes.NewBuffer([]byte(payload)))
153-
req.Header.Add("Content-Type", "application/json")
154-
req.SetBasicAuth(s.AccessID, s.AccessKey)
159+
req, err := createNewRequest(http.MethodPost, sumoURL.String(), bytes.NewBuffer([]byte(payload)), s.AccessID, s.AccessKey)
160+
if err != nil {
161+
return nil, err
162+
}
155163

156164
<-rateLimiter
157165
resp, err := s.httpClient.Do(req)
@@ -179,12 +187,12 @@ func (s *Client) Put(urlPath string, payload interface{}) ([]byte, error) {
179187
_, etag, _ := s.Get(sumoURL.String())
180188

181189
body, _ := json.Marshal(payload)
182-
req, _ := http.NewRequest(http.MethodPut, sumoURL.String(), bytes.NewBuffer(body))
183-
req.Header.Add("Content-Type", "application/json")
190+
req, err := createNewRequest(http.MethodPut, sumoURL.String(), bytes.NewBuffer(body), s.AccessID, s.AccessKey)
191+
if err != nil {
192+
return nil, err
193+
}
184194
req.Header.Add("If-Match", etag)
185195

186-
req.SetBasicAuth(s.AccessID, s.AccessKey)
187-
188196
<-rateLimiter
189197
resp, err := s.httpClient.Do(req)
190198
if err != nil {
@@ -208,9 +216,10 @@ func (s *Client) Get(urlPath string) ([]byte, string, error) {
208216
relativeURL, _ := url.Parse(urlPath)
209217
sumoURL := s.BaseURL.ResolveReference(relativeURL)
210218

211-
req, _ := http.NewRequest(http.MethodGet, sumoURL.String(), nil)
212-
req.Header.Add("Content-Type", "application/json")
213-
req.SetBasicAuth(s.AccessID, s.AccessKey)
219+
req, err := createNewRequest(http.MethodGet, sumoURL.String(), nil, s.AccessID, s.AccessKey)
220+
if err != nil {
221+
return nil, "", err
222+
}
214223

215224
<-rateLimiter
216225
resp, err := s.httpClient.Do(req)
@@ -237,9 +246,10 @@ func (s *Client) Delete(urlPath string) ([]byte, error) {
237246
relativeURL, _ := url.Parse(urlPath)
238247
sumoURL := s.BaseURL.ResolveReference(relativeURL)
239248

240-
req, _ := http.NewRequest(http.MethodDelete, sumoURL.String(), nil)
241-
req.Header.Add("Content-Type", "application/json")
242-
req.SetBasicAuth(s.AccessID, s.AccessKey)
249+
req, err := createNewRequest(http.MethodDelete, sumoURL.String(), nil, s.AccessID, s.AccessKey)
250+
if err != nil {
251+
return nil, err
252+
}
243253

244254
<-rateLimiter
245255
resp, err := s.httpClient.Do(req)

0 commit comments

Comments
 (0)