From 3fbe624b98066e669379eb8f0d3971a372a959e5 Mon Sep 17 00:00:00 2001 From: Joshua Powers Date: Thu, 19 Oct 2023 08:47:47 -0600 Subject: [PATCH] fix(inputs.jenkins): Filter after searching sub-folders (#14105) --- plugins/inputs/jenkins/jenkins.go | 10 +++++----- plugins/inputs/jenkins/jenkins_test.go | 23 +++++++++++++++++++++++ 2 files changed, 28 insertions(+), 5 deletions(-) diff --git a/plugins/inputs/jenkins/jenkins.go b/plugins/inputs/jenkins/jenkins.go index 37caa9d97..7c2326d79 100644 --- a/plugins/inputs/jenkins/jenkins.go +++ b/plugins/inputs/jenkins/jenkins.go @@ -263,11 +263,6 @@ func (j *Jenkins) getJobDetail(jr jobRequest, acc telegraf.Accumulator) error { return nil } - // filter out excluded or not included jobs - if !j.jobFilter.Match(jr.hierarchyName()) { - return nil - } - js, err := j.client.getJobs(context.Background(), &jr) if err != nil { return err @@ -293,6 +288,11 @@ func (j *Jenkins) getJobDetail(jr jobRequest, acc telegraf.Accumulator) error { } wg.Wait() + // filter out excluded or not included jobs + if !j.jobFilter.Match(jr.hierarchyName()) { + return nil + } + // collect build info number := js.LastBuild.Number if number < 1 { diff --git a/plugins/inputs/jenkins/jenkins_test.go b/plugins/inputs/jenkins/jenkins_test.go index 6d2e083b4..30027b47c 100644 --- a/plugins/inputs/jenkins/jenkins_test.go +++ b/plugins/inputs/jenkins/jenkins_test.go @@ -797,6 +797,9 @@ func TestGatherJobs(t *testing.T) { {Name: "ignore-1"}, }, }, + "/job/ignore-1/api/json": &jobResponse{ + Jobs: []innerJob{}, + }, "/job/apps/api/json": &jobResponse{ Jobs: []innerJob{ {Name: "k8s-cloud"}, @@ -810,6 +813,16 @@ func TestGatherJobs(t *testing.T) { {Name: "2"}, }, }, + "/job/apps/job/ignore-all/job/1/api/json": &jobResponse{ + LastBuild: jobBuild{ + Number: 1, + }, + }, + "/job/apps/job/ignore-all/job/2/api/json": &jobResponse{ + LastBuild: jobBuild{ + Number: 1, + }, + }, "/job/apps/job/chronograf/api/json": &jobResponse{ LastBuild: jobBuild{ Number: 1, @@ -824,6 +837,16 @@ func TestGatherJobs(t *testing.T) { {Name: "PR ignore"}, }, }, + "/job/apps/job/k8s-cloud/job/PR%20ignore/api/json": &jobResponse{ + LastBuild: jobBuild{ + Number: 1, + }, + }, + "/job/apps/job/k8s-cloud/job/PR-ignore2/api/json": &jobResponse{ + LastBuild: jobBuild{ + Number: 1, + }, + }, "/job/apps/job/k8s-cloud/job/PR-100/api/json": &jobResponse{ LastBuild: jobBuild{ Number: 1,