Skip to content

Commit 2f5f64d

Browse files
committed
modift the transport layer for svcs
Signed-off-by: Afzal Ansari <[email protected]>
1 parent 246f478 commit 2f5f64d

File tree

14 files changed

+117
-77
lines changed

14 files changed

+117
-77
lines changed

pkg/services/github.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -382,6 +382,7 @@ func (g *GitHubNotification) GetTemplater(name string, f texttemplate.FuncMap) (
382382

383383
func NewGitHubService(opts GitHubOptions) (*gitHubService, error) {
384384
url := "https://api.github.com"
385+
opts.Transport.InsecureSkipVerify = false
385386
if opts.EnterpriseBaseURL != "" {
386387
url = opts.EnterpriseBaseURL
387388
}

pkg/services/googlechat.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,8 @@ func (n *GoogleChatNotification) GetTemplater(name string, f texttemplate.FuncMa
8080
}
8181

8282
type GoogleChatOptions struct {
83-
WebhookUrls map[string]string `json:"webhooks"`
83+
WebhookUrls map[string]string `json:"webhooks"`
84+
Transport httputil.HTTPTransportSettings `json:"transport"`
8485
}
8586

8687
type googleChatService struct {
@@ -103,10 +104,11 @@ type webhookError struct {
103104

104105
func (s googleChatService) getClient(recipient string) (*googlechatClient, error) {
105106
webhookUrl, ok := s.opts.WebhookUrls[recipient]
107+
s.opts.Transport.InsecureSkipVerify = false
106108
if !ok {
107109
return nil, fmt.Errorf("no Google chat webhook configured for recipient %s", recipient)
108110
}
109-
transport := httputil.NewTransport(webhookUrl, false)
111+
transport := httputil.NewTransport(webhookUrl, s.opts.Transport)
110112
client := &http.Client{
111113
Transport: httputil.NewLoggingRoundTripper(transport, log.WithField("service", "googlechat")),
112114
}

pkg/services/grafana.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,9 @@ import (
1717
)
1818

1919
type GrafanaOptions struct {
20-
ApiUrl string `json:"apiUrl"`
21-
ApiKey string `json:"apiKey"`
22-
InsecureSkipVerify bool `json:"insecureSkipVerify"`
20+
ApiUrl string `json:"apiUrl"`
21+
ApiKey string `json:"apiKey"`
22+
Transport httputil.HTTPTransportSettings `json:"transport"`
2323
}
2424

2525
type grafanaService struct {
@@ -51,7 +51,7 @@ func (s *grafanaService) Send(notification Notification, dest Destination) error
5151

5252
client := &http.Client{
5353
Transport: httputil.NewLoggingRoundTripper(
54-
httputil.NewTransport(s.opts.ApiUrl, s.opts.InsecureSkipVerify), log.WithField("service", "grafana")),
54+
httputil.NewTransport(s.opts.ApiUrl, s.opts.Transport), log.WithField("service", "grafana")),
5555
}
5656

5757
jsonValue, _ := json.Marshal(ga)

pkg/services/grafana_test.go

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ import (
66
"net/http/httptest"
77
"testing"
88

9+
httputil "github.com/argoproj/notifications-engine/pkg/util/http"
10+
911
"github.com/stretchr/testify/assert"
1012
)
1113

@@ -21,9 +23,11 @@ func TestGrafana_SuccessfullySendsNotification(t *testing.T) {
2123
defer server.Close()
2224

2325
service := NewGrafanaService(GrafanaOptions{
24-
ApiUrl: server.URL,
25-
ApiKey: "something-secret-but-not-relevant-in-this-test",
26-
InsecureSkipVerify: true,
26+
ApiUrl: server.URL,
27+
ApiKey: "something-secret-but-not-relevant-in-this-test",
28+
Transport: httputil.HTTPTransportSettings{
29+
InsecureSkipVerify: true,
30+
},
2731
})
2832
err := service.Send(
2933
Notification{
@@ -46,9 +50,11 @@ func TestGrafana_UnSuccessfullySendsNotification(t *testing.T) {
4650
defer server.Close()
4751

4852
service := NewGrafanaService(GrafanaOptions{
49-
ApiUrl: server.URL,
50-
ApiKey: "something-secret-but-not-relevant-in-this-test",
51-
InsecureSkipVerify: true,
53+
ApiUrl: server.URL,
54+
ApiKey: "something-secret-but-not-relevant-in-this-test",
55+
Transport: httputil.HTTPTransportSettings{
56+
InsecureSkipVerify: true,
57+
},
5258
})
5359
err := service.Send(
5460
Notification{}, Destination{Recipient: "tag1|tag2", Service: "test-service"})

pkg/services/mattermost.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -37,9 +37,9 @@ func (n *MattermostNotification) GetTemplater(name string, f texttemplate.FuncMa
3737
}
3838

3939
type MattermostOptions struct {
40-
ApiURL string `json:"apiURL"`
41-
Token string `json:"token"`
42-
InsecureSkipVerify bool `json:"insecureSkipVerify"`
40+
ApiURL string `json:"apiURL"`
41+
Token string `json:"token"`
42+
Transport httputil.HTTPTransportSettings `json:"transport"`
4343
}
4444

4545
type mattermostService struct {
@@ -51,7 +51,7 @@ func NewMattermostService(opts MattermostOptions) NotificationService {
5151
}
5252

5353
func (m *mattermostService) Send(notification Notification, dest Destination) error {
54-
transport := httputil.NewTransport(m.opts.ApiURL, m.opts.InsecureSkipVerify)
54+
transport := httputil.NewTransport(m.opts.ApiURL, m.opts.Transport)
5555
client := &http.Client{
5656
Transport: httputil.NewLoggingRoundTripper(transport, log.WithField("service", "mattermost")),
5757
}

pkg/services/mattermost_test.go

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ import (
77
"testing"
88
"text/template"
99

10+
httputil "github.com/argoproj/notifications-engine/pkg/util/http"
11+
1012
"github.com/stretchr/testify/assert"
1113
)
1214

@@ -41,9 +43,11 @@ func TestSend_Mattermost(t *testing.T) {
4143
defer ts.Close()
4244

4345
service := NewMattermostService(MattermostOptions{
44-
ApiURL: ts.URL,
45-
Token: "token",
46-
InsecureSkipVerify: true,
46+
ApiURL: ts.URL,
47+
Token: "token",
48+
Transport: httputil.HTTPTransportSettings{
49+
InsecureSkipVerify: true,
50+
},
4751
})
4852
err := service.Send(Notification{
4953
Message: "message",

pkg/services/newrelic.go

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,9 @@ import (
1515
)
1616

1717
type NewrelicOptions struct {
18-
ApiKey string `json:"apiKey"`
19-
ApiURL string `json:"apiURL"`
18+
ApiKey string `json:"apiKey"`
19+
ApiURL string `json:"apiURL"`
20+
Transport httputil.HTTPTransportSettings `json:"transport"`
2021
}
2122

2223
type NewrelicNotification struct {
@@ -132,9 +133,10 @@ func (s newrelicService) Send(notification Notification, dest Destination) error
132133
},
133134
}
134135

136+
s.opts.Transport.InsecureSkipVerify = false
135137
client := &http.Client{
136138
Transport: httputil.NewLoggingRoundTripper(
137-
httputil.NewTransport(s.opts.ApiURL, false), log.WithField("service", dest.Service)),
139+
httputil.NewTransport(s.opts.ApiURL, s.opts.Transport), log.WithField("service", dest.Service)),
138140
}
139141

140142
jsonValue, err := json.Marshal(deploymentMarker)

pkg/services/opsgenie.go

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,9 @@ import (
1515
)
1616

1717
type OpsgenieOptions struct {
18-
ApiUrl string `json:"apiUrl"`
19-
ApiKeys map[string]string `json:"apiKeys"`
18+
ApiUrl string `json:"apiUrl"`
19+
ApiKeys map[string]string `json:"apiKeys"`
20+
Transport httputil.HTTPTransportSettings `json:"transport"`
2021
}
2122

2223
type OpsgenieNotification struct {
@@ -249,12 +250,13 @@ func (s *opsgenieService) Send(notification Notification, dest Destination) erro
249250
if !ok {
250251
return fmt.Errorf("no API key configured for recipient %s", dest.Recipient)
251252
}
253+
s.opts.Transport.InsecureSkipVerify = false
252254
alertClient, _ := alert.NewClient(&client.Config{
253255
ApiKey: apiKey,
254256
OpsGenieAPIURL: client.ApiUrl(s.opts.ApiUrl),
255257
HttpClient: &http.Client{
256258
Transport: httputil.NewLoggingRoundTripper(
257-
httputil.NewTransport(s.opts.ApiUrl, false), log.WithField("service", "opsgenie")),
259+
httputil.NewTransport(s.opts.ApiUrl, s.opts.Transport), log.WithField("service", "opsgenie")),
258260
},
259261
})
260262

pkg/services/slack.go

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -96,14 +96,14 @@ func (n *SlackNotification) GetTemplater(name string, f texttemplate.FuncMap) (T
9696
}
9797

9898
type SlackOptions struct {
99-
Username string `json:"username"`
100-
Icon string `json:"icon"`
101-
Token string `json:"token"`
102-
SigningSecret string `json:"signingSecret"`
103-
Channels []string `json:"channels"`
104-
InsecureSkipVerify bool `json:"insecureSkipVerify"`
105-
ApiURL string `json:"apiURL"`
106-
DisableUnfurl bool `json:"disableUnfurl"`
99+
Username string `json:"username"`
100+
Icon string `json:"icon"`
101+
Token string `json:"token"`
102+
SigningSecret string `json:"signingSecret"`
103+
Channels []string `json:"channels"`
104+
ApiURL string `json:"apiURL"`
105+
DisableUnfurl bool `json:"disableUnfurl"`
106+
Transport httputil.HTTPTransportSettings `json:"transport"`
107107
}
108108

109109
type slackService struct {
@@ -196,7 +196,7 @@ func newSlackClient(opts SlackOptions) *slack.Client {
196196
if opts.ApiURL != "" {
197197
apiURL = opts.ApiURL
198198
}
199-
transport := httputil.NewTransport(apiURL, opts.InsecureSkipVerify)
199+
transport := httputil.NewTransport(apiURL, opts.Transport)
200200
client := &http.Client{
201201
Transport: httputil.NewLoggingRoundTripper(transport, log.WithField("service", "slack")),
202202
}

pkg/services/slack_test.go

Lines changed: 35 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import (
99
"testing"
1010
"text/template"
1111

12+
httputil "github.com/argoproj/notifications-engine/pkg/util/http"
1213
slackutil "github.com/argoproj/notifications-engine/pkg/util/slack"
1314

1415
"github.com/stretchr/testify/assert"
@@ -106,9 +107,11 @@ func TestSlack_SendNotification(t *testing.T) {
106107
defer server.Close()
107108

108109
service := NewSlackService(SlackOptions{
109-
ApiURL: server.URL + "/",
110-
Token: "something-token",
111-
InsecureSkipVerify: true,
110+
ApiURL: server.URL + "/",
111+
Token: "something-token",
112+
Transport: httputil.HTTPTransportSettings{
113+
InsecureSkipVerify: true,
114+
},
112115
})
113116

114117
err := service.Send(
@@ -138,9 +141,11 @@ func TestSlack_SendNotification(t *testing.T) {
138141
defer server.Close()
139142

140143
service := NewSlackService(SlackOptions{
141-
ApiURL: server.URL + "/",
142-
Token: "something-token",
143-
InsecureSkipVerify: true,
144+
ApiURL: server.URL + "/",
145+
Token: "something-token",
146+
Transport: httputil.HTTPTransportSettings{
147+
InsecureSkipVerify: true,
148+
},
144149
})
145150

146151
err := service.Send(
@@ -176,9 +181,11 @@ func TestSlack_SendNotification(t *testing.T) {
176181
defer server.Close()
177182

178183
service := NewSlackService(SlackOptions{
179-
ApiURL: server.URL + "/",
180-
Token: "something-token",
181-
InsecureSkipVerify: true,
184+
ApiURL: server.URL + "/",
185+
Token: "something-token",
186+
Transport: httputil.HTTPTransportSettings{
187+
InsecureSkipVerify: true,
188+
},
182189
})
183190

184191
err := service.Send(
@@ -222,9 +229,11 @@ func TestSlack_SetUsernameAndIcon(t *testing.T) {
222229
defer server.Close()
223230

224231
service := NewSlackService(SlackOptions{
225-
ApiURL: server.URL + "/",
226-
Token: "something-token",
227-
InsecureSkipVerify: true,
232+
ApiURL: server.URL + "/",
233+
Token: "something-token",
234+
Transport: httputil.HTTPTransportSettings{
235+
InsecureSkipVerify: true,
236+
},
228237
})
229238

230239
err := service.Send(
@@ -258,11 +267,13 @@ func TestSlack_SetUsernameAndIcon(t *testing.T) {
258267
defer server.Close()
259268

260269
service := NewSlackService(SlackOptions{
261-
ApiURL: server.URL + "/",
262-
Token: "something-token",
263-
Username: "foo",
264-
Icon: ":smile:",
265-
InsecureSkipVerify: true,
270+
ApiURL: server.URL + "/",
271+
Token: "something-token",
272+
Username: "foo",
273+
Icon: ":smile:",
274+
Transport: httputil.HTTPTransportSettings{
275+
InsecureSkipVerify: true,
276+
},
266277
})
267278

268279
err := service.Send(
@@ -297,11 +308,13 @@ func TestSlack_SetUsernameAndIcon(t *testing.T) {
297308
defer server.Close()
298309

299310
service := NewSlackService(SlackOptions{
300-
ApiURL: server.URL + "/",
301-
Token: "something-token",
302-
Username: "foo",
303-
Icon: ":smile:",
304-
InsecureSkipVerify: true,
311+
ApiURL: server.URL + "/",
312+
Token: "something-token",
313+
Username: "foo",
314+
Icon: ":smile:",
315+
Transport: httputil.HTTPTransportSettings{
316+
InsecureSkipVerify: true,
317+
},
305318
})
306319

307320
err := service.Send(

0 commit comments

Comments
 (0)