From eda1dbc4dce580ab73214e992eb3f258412aa3d1 Mon Sep 17 00:00:00 2001 From: viperstars Date: Wed, 27 Jan 2021 02:02:23 +0800 Subject: [PATCH] fix x509 cert timeout issue (#8741) --- plugins/inputs/x509_cert/x509_cert.go | 2 +- plugins/inputs/x509_cert/x509_cert_test.go | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/plugins/inputs/x509_cert/x509_cert.go b/plugins/inputs/x509_cert/x509_cert.go index b4a8a0716..529b4c76d 100644 --- a/plugins/inputs/x509_cert/x509_cert.go +++ b/plugins/inputs/x509_cert/x509_cert.go @@ -215,7 +215,7 @@ func (c *X509Cert) Gather(acc telegraf.Accumulator) error { return nil } - certs, err := c.getCert(u, c.Timeout.Duration*time.Second) + certs, err := c.getCert(u, c.Timeout.Duration) if err != nil { acc.AddError(fmt.Errorf("cannot get SSL cert '%s': %s", location, err.Error())) } diff --git a/plugins/inputs/x509_cert/x509_cert_test.go b/plugins/inputs/x509_cert/x509_cert_test.go index 58f86a654..bb882a470 100644 --- a/plugins/inputs/x509_cert/x509_cert_test.go +++ b/plugins/inputs/x509_cert/x509_cert_test.go @@ -350,6 +350,24 @@ func TestGatherCert(t *testing.T) { assert.True(t, acc.HasMeasurement("x509_cert")) } +func TestGatherCertMustNotTimeout(t *testing.T) { + if testing.Short() { + t.Skip("Skipping integration test in short mode") + } + duration := time.Duration(15) * time.Second + m := &X509Cert{ + Sources: []string{"https://www.influxdata.com:443"}, + Timeout: internal.Duration{Duration: duration}, + } + m.Init() + + var acc testutil.Accumulator + err := m.Gather(&acc) + require.NoError(t, err) + require.Empty(t, acc.Errors) + assert.True(t, acc.HasMeasurement("x509_cert")) +} + func TestServerName(t *testing.T) { tests := []struct { name string