[v7.5.x] HTTP Client: Introduce go-conntrack (#35321)

* Introduce go-conntrack into http transport

* Fix linting

* Add sanitize label name for datasource names

* Fix tests - add one to check missing datasource name

* Fix more tests

* Remove DialWithTracing()
This commit is contained in:
Dimitris Sotirakis
2021-06-07 16:17:18 +02:00
committed by GitHub
parent 39cbd2fc4e
commit 43e7e696e8
5 changed files with 48 additions and 10 deletions
+21 -1
View File
@@ -24,6 +24,7 @@ func TestDataSource_GetHttpTransport(t *testing.T) {
Id: 1,
Url: "http://k8s:8001",
Type: "Kubernetes",
Name: "kubernetes",
}
tr1, err := ds.GetHttpTransport()
@@ -54,6 +55,7 @@ func TestDataSource_GetHttpTransport(t *testing.T) {
Type: "Kubernetes",
SecureJsonData: map[string][]byte{"tlsCACert": tlsCaCert},
Updated: time.Now().Add(-2 * time.Minute),
Name: "kubernetes",
}
tr1, err := ds.GetHttpTransport()
@@ -91,6 +93,7 @@ func TestDataSource_GetHttpTransport(t *testing.T) {
Id: 1,
Url: "http://k8s:8001",
Type: "Kubernetes",
Name: "kubernetes",
JsonData: json,
SecureJsonData: map[string][]byte{
"tlsClientCert": tlsClientCert,
@@ -120,6 +123,7 @@ func TestDataSource_GetHttpTransport(t *testing.T) {
Id: 1,
Url: "http://k8s:8001",
Type: "Kubernetes",
Name: "kubernetes",
JsonData: json,
SecureJsonData: map[string][]byte{
"tlsCACert": tlsCaCert,
@@ -144,6 +148,7 @@ func TestDataSource_GetHttpTransport(t *testing.T) {
Id: 1,
Url: "http://k8s:8001",
Type: "Kubernetes",
Name: "kubernetes",
JsonData: json,
}
@@ -173,6 +178,7 @@ func TestDataSource_GetHttpTransport(t *testing.T) {
Id: 1,
Url: "http://k8s:8001",
Type: "Kubernetes",
Name: "kubernetes",
JsonData: json,
SecureJsonData: map[string][]byte{"httpHeaderValue1": encryptedData},
}
@@ -221,7 +227,9 @@ func TestDataSource_GetHttpTransport(t *testing.T) {
setting.SigV4AuthEnabled = true
t.Cleanup(func() { setting.SigV4AuthEnabled = origEnabled })
ds := DataSource{}
ds := DataSource{
Name: "empty",
}
tr, err := ds.GetHttpTransport()
require.NoError(t, err)
@@ -242,6 +250,7 @@ func TestDataSource_GetHttpTransport(t *testing.T) {
ds := DataSource{
JsonData: json,
Name: "empty",
}
tr, err := ds.GetHttpTransport()
@@ -250,6 +259,15 @@ func TestDataSource_GetHttpTransport(t *testing.T) {
_, ok := tr.next.(*http.Transport)
require.True(t, ok)
})
t.Run("Datasource name not set", func(t *testing.T) {
clearDSProxyCache(t)
ds := DataSource{}
_, err := ds.GetHttpTransport()
require.Error(t, err)
require.Equal(t, err.Error(), "label name cannot be empty")
})
}
func TestDataSource_DecryptedValue(t *testing.T) {
@@ -259,6 +277,7 @@ func TestDataSource_DecryptedValue(t *testing.T) {
ds := DataSource{
Id: 1,
Type: DS_INFLUXDB_08,
Name: "influx-db",
JsonData: simplejson.New(),
User: "user",
SecureJsonData: securejsondata.GetEncryptedJsonData(map[string]string{
@@ -286,6 +305,7 @@ func TestDataSource_DecryptedValue(t *testing.T) {
ds := DataSource{
Id: 1,
Type: DS_INFLUXDB_08,
Name: "influx-db",
JsonData: simplejson.New(),
User: "user",
SecureJsonData: securejsondata.GetEncryptedJsonData(map[string]string{