From 6ec951ab731c0b0e39d8bb5278e0dcfe7eeebde1 Mon Sep 17 00:00:00 2001 From: Zachary Wasserman Date: Thu, 17 Jan 2019 15:59:42 -0800 Subject: [PATCH] Default scheduled query name if not specified (#1995) Brings the behavior of the server in line with the documentation, by using the query name if the scheduled query name is not specified in a pack spec. Closes #1990 --- server/datastore/datastore_packs_test.go | 26 ++++++++++++++++++++++++ server/datastore/datastore_test.go | 1 + server/datastore/mysql/packs.go | 4 ++++ 3 files changed, 31 insertions(+) diff --git a/server/datastore/datastore_packs_test.go b/server/datastore/datastore_packs_test.go index f1badbef65..153e83dffe 100644 --- a/server/datastore/datastore_packs_test.go +++ b/server/datastore/datastore_packs_test.go @@ -265,6 +265,32 @@ func testApplyPackSpecMissingQueries(t *testing.T, ds kolide.Datastore) { } } +func testApplyPackSpecMissingName(t *testing.T, ds kolide.Datastore) { + setupPackSpecsTest(t, ds) + + specs := []*kolide.PackSpec{ + &kolide.PackSpec{ + Name: "test2", + Targets: kolide.PackSpecTargets{ + Labels: []string{}, + }, + Queries: []kolide.PackSpecQuery{ + kolide.PackSpecQuery{ + QueryName: "foo", + Interval: 600, + }, + }, + }, + } + err := ds.ApplyPackSpecs(specs) + require.NoError(t, err) + + // Query name should have been copied into name field + spec, err := ds.GetPackSpec("test2") + require.NoError(t, err) + assert.Equal(t, "foo", spec.Queries[0].Name) +} + func testListLabelsForPack(t *testing.T, ds kolide.Datastore) { labelSpecs := []*kolide.LabelSpec{ &kolide.LabelSpec{ diff --git a/server/datastore/datastore_test.go b/server/datastore/datastore_test.go index a7c8d5a95e..1a8586ebba 100644 --- a/server/datastore/datastore_test.go +++ b/server/datastore/datastore_test.go @@ -86,6 +86,7 @@ var testFunctions = [...]func(*testing.T, kolide.Datastore){ testApplyQueries, testApplyPackSpecRoundtrip, testApplyPackSpecMissingQueries, + testApplyPackSpecMissingName, testGetPackSpec, testApplyLabelSpecsRoundtrip, testGetLabelSpec, diff --git a/server/datastore/mysql/packs.go b/server/datastore/mysql/packs.go index 8fa2e69b42..eb318a2616 100644 --- a/server/datastore/mysql/packs.go +++ b/server/datastore/mysql/packs.go @@ -74,6 +74,10 @@ func applyPackSpec(tx *sqlx.Tx, spec *kolide.PackSpec) error { // Insert new scheduled queries for pack for _, q := range spec.Queries { + // Default to query name if scheduled query name is not specified. + if q.Name == "" { + q.Name = q.QueryName + } query = ` INSERT INTO scheduled_queries ( pack_id, query_name, name, description, ` + "`interval`" + `,