From c8b9b15ef284797f5c75e4d9c8cf2935fed48e67 Mon Sep 17 00:00:00 2001 From: Zachary Wasserman Date: Wed, 9 Nov 2016 15:31:47 -0800 Subject: [PATCH] Fix failing MySQL tests for packs (#457) --- server/datastore/datastore_labels_test.go | 19 ++++----- server/datastore/gorm_packs.go | 47 ++++------------------- 2 files changed, 17 insertions(+), 49 deletions(-) diff --git a/server/datastore/datastore_labels_test.go b/server/datastore/datastore_labels_test.go index 844c9be8db..9d714b7642 100644 --- a/server/datastore/datastore_labels_test.go +++ b/server/datastore/datastore_labels_test.go @@ -144,35 +144,36 @@ func testManagingLabelsOnPacks(t *testing.T, ds kolide.Datastore) { Name: "monitoring", } err := ds.NewPack(monitoringPack) - assert.Nil(t, err) + require.Nil(t, err) mysqlLabel := &kolide.Label{ Name: "MySQL Monitoring", Query: "select pid from processes where name = 'mysqld';", } mysqlLabel, err = ds.NewLabel(mysqlLabel) - assert.Nil(t, err) + require.Nil(t, err) err = ds.AddLabelToPack(mysqlLabel.ID, monitoringPack.ID) - assert.Nil(t, err) + require.Nil(t, err) labels, err := ds.ListLabelsForPack(monitoringPack) - assert.Nil(t, err) - assert.Len(t, labels, 1) - assert.Equal(t, "MySQL Monitoring", labels[0].Name) + require.Nil(t, err) + if assert.Len(t, labels, 1) { + assert.Equal(t, "MySQL Monitoring", labels[0].Name) + } osqueryLabel := &kolide.Label{ Name: "Osquery Monitoring", Query: "select pid from processes where name = 'osqueryd';", } osqueryLabel, err = ds.NewLabel(osqueryLabel) - assert.Nil(t, err) + require.Nil(t, err) err = ds.AddLabelToPack(osqueryLabel.ID, monitoringPack.ID) - assert.Nil(t, err) + require.Nil(t, err) labels, err = ds.ListLabelsForPack(monitoringPack) - assert.Nil(t, err) + require.Nil(t, err) assert.Len(t, labels, 2) } diff --git a/server/datastore/gorm_packs.go b/server/datastore/gorm_packs.go index 50a673f325..f2a0eafcb2 100644 --- a/server/datastore/gorm_packs.go +++ b/server/datastore/gorm_packs.go @@ -65,7 +65,6 @@ func (orm gormDB) AddQueryToPack(qid uint, pid uint) error { } func (orm gormDB) ListQueriesInPack(pack *kolide.Pack) ([]*kolide.Query, error) { - var queries []*kolide.Query if pack == nil { return nil, errors.New( "error getting queries in pack", @@ -73,18 +72,10 @@ func (orm gormDB) ListQueriesInPack(pack *kolide.Pack) ([]*kolide.Query, error) ) } - rows, err := orm.DB.Raw(` + results := []*kolide.Query{} + err := orm.DB.Raw(` SELECT - q.id, - q.created_at, - q.updated_at, - q.name, - q.query, - q.interval, - q.snapshot, - q.differential, - q.platform, - q.version + q.* FROM queries q JOIN @@ -93,33 +84,13 @@ ON pq.query_id = q.id AND pq.pack_id = ?; -`, pack.ID).Rows() +`, pack.ID).Scan(&results).Error + if err != nil && err != gorm.ErrRecordNotFound { return nil, errors.DatabaseError(err) } - defer rows.Close() - for rows.Next() { - query := new(kolide.Query) - err = rows.Scan( - &query.ID, - &query.CreatedAt, - &query.UpdatedAt, - &query.Name, - &query.Query, - &query.Interval, - &query.Snapshot, - &query.Differential, - &query.Platform, - &query.Version, - ) - if err != nil { - return nil, err - } - queries = append(queries, query) - } - - return queries, nil + return results, nil } func (orm gormDB) RemoveQueryFromPack(query *kolide.Query, pack *kolide.Pack) error { @@ -159,11 +130,7 @@ func (orm gormDB) ListLabelsForPack(pack *kolide.Pack) ([]*kolide.Label, error) results := []*kolide.Label{} err := orm.DB.Raw(` SELECT - l.id, - l.created_at, - l.updated_at, - l.name, - l.query_id + l.* FROM labels l JOIN