mirror of
https://github.com/fleetdm/fleet
synced 2026-05-23 17:08:53 +00:00
Removing sqlite from the codebase (#324)
This commit is contained in:
parent
98ca32b783
commit
bdee0516e6
14 changed files with 57 additions and 83 deletions
3
glide.lock
generated
3
glide.lock
generated
|
|
@ -74,7 +74,6 @@ imports:
|
|||
version: a646b13548ec0aa812fe805b2780f460dd2771b6
|
||||
subpackages:
|
||||
- dialects/mysql
|
||||
- dialects/sqlite
|
||||
- name: github.com/jinzhu/inflection
|
||||
version: 8f4d3a0d04ce0b7c0cf3126fb98524246d00d102
|
||||
- name: github.com/jordan-wright/email
|
||||
|
|
@ -87,8 +86,6 @@ imports:
|
|||
version: 61b492c03cf472e0c6419be5899b8e0dc28b1b88
|
||||
- name: github.com/manucorporat/sse
|
||||
version: ee05b128a739a0fb76c7ebd3ae4810c1de808d6d
|
||||
- name: github.com/mattn/go-sqlite3
|
||||
version: e118d4451349065b8e7ce0f0af32e033995363f8
|
||||
- name: github.com/matttproud/golang_protobuf_extensions
|
||||
version: c12348ce28de40eed0136aa2b644d0ee0650e56c
|
||||
subpackages:
|
||||
|
|
|
|||
|
|
@ -35,13 +35,10 @@ import:
|
|||
version: a646b13548ec0aa812fe805b2780f460dd2771b6
|
||||
subpackages:
|
||||
- dialects/mysql
|
||||
- dialects/sqlite
|
||||
- package: github.com/jinzhu/inflection
|
||||
version: 8f4d3a0d04ce0b7c0cf3126fb98524246d00d102
|
||||
- package: github.com/manucorporat/sse
|
||||
version: ee05b128a739a0fb76c7ebd3ae4810c1de808d6d
|
||||
- package: github.com/mattn/go-sqlite3
|
||||
version: e118d4451349065b8e7ce0f0af32e033995363f8
|
||||
- package: github.com/pmezard/go-difflib
|
||||
version: ~1.0.0
|
||||
subpackages:
|
||||
|
|
|
|||
|
|
@ -54,24 +54,6 @@ func New(driver, conn string, opts ...DBOption) (kolide.Datastore, error) {
|
|||
return nil, err
|
||||
}
|
||||
return ds, nil
|
||||
case "gorm-sqlite3":
|
||||
db, err := openGORM("sqlite3", conn, opt.maxAttempts)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
ds := gormDB{
|
||||
DB: db,
|
||||
Driver: "sqlite3",
|
||||
}
|
||||
// configure logger
|
||||
if opt.logger != nil {
|
||||
db.SetLogger(opt.logger)
|
||||
db.LogMode(opt.debug)
|
||||
}
|
||||
if err := ds.Migrate(); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return ds, nil
|
||||
case "inmem":
|
||||
ds := &inmem{
|
||||
Driver: "inmem",
|
||||
|
|
|
|||
|
|
@ -5,7 +5,6 @@ import (
|
|||
"time"
|
||||
|
||||
_ "github.com/go-sql-driver/mysql" // db driver
|
||||
_ "github.com/mattn/go-sqlite3" // db driver
|
||||
|
||||
"github.com/jinzhu/gorm"
|
||||
"github.com/kolide/kolide-ose/server/config"
|
||||
|
|
|
|||
|
|
@ -107,20 +107,9 @@ func (orm gormDB) RecordLabelQueryExecutions(host *kolide.Host, results map[stri
|
|||
}
|
||||
|
||||
insert := new(bytes.Buffer)
|
||||
switch orm.Driver {
|
||||
case "mysql":
|
||||
insert.WriteString("INSERT ")
|
||||
case "sqlite3":
|
||||
insert.WriteString("REPLACE ")
|
||||
default:
|
||||
return errors.New(
|
||||
"Unknown DB driver",
|
||||
"Tried to use unknown DB driver in RecordLabelQueryExecutions: "+orm.Driver,
|
||||
)
|
||||
}
|
||||
|
||||
insert.WriteString(
|
||||
"INTO label_query_executions (updated_at, matches, label_id, host_id) VALUES",
|
||||
"INSERT INTO label_query_executions (updated_at, matches, label_id, host_id) VALUES",
|
||||
)
|
||||
|
||||
// Build up all the values and the query string
|
||||
|
|
@ -133,14 +122,11 @@ func (orm gormDB) RecordLabelQueryExecutions(host *kolide.Host, results map[stri
|
|||
queryString := insert.String()
|
||||
queryString = strings.TrimSuffix(queryString, ",")
|
||||
|
||||
switch orm.Driver {
|
||||
case "mysql":
|
||||
queryString += `
|
||||
queryString += `
|
||||
ON DUPLICATE KEY UPDATE
|
||||
updated_at = VALUES(updated_at),
|
||||
matches = VALUES(matches)
|
||||
`
|
||||
}
|
||||
|
||||
if err := orm.DB.Exec(queryString, vals...).Error; err != nil {
|
||||
return errors.DatabaseError(err)
|
||||
|
|
|
|||
|
|
@ -1,19 +1,28 @@
|
|||
package datastore
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
"testing"
|
||||
|
||||
"github.com/jinzhu/gorm"
|
||||
"github.com/kolide/kolide-ose/server/kolide"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func setupGorm(t *testing.T) kolide.Datastore {
|
||||
db, err := gorm.Open("sqlite3", ":memory:")
|
||||
require.Nil(t, err)
|
||||
user := "kolide"
|
||||
password := "kolide"
|
||||
dbName := "kolide"
|
||||
|
||||
ds := gormDB{DB: db, Driver: "sqlite3"}
|
||||
// try container first
|
||||
host := os.Getenv("MYSQL_PORT_3306_TCP_ADDR")
|
||||
if host == "" {
|
||||
host = "127.0.0.1"
|
||||
}
|
||||
host = fmt.Sprintf("%s:3306", host)
|
||||
|
||||
connString := fmt.Sprintf("%s:%s@(%s)/%s?charset=utf8&parseTime=True&loc=Local", user, password, host, dbName)
|
||||
ds, err := New("gorm-mysql", connString)
|
||||
|
||||
err = ds.Migrate()
|
||||
assert.Nil(t, err)
|
||||
|
|
@ -26,6 +35,10 @@ func teardownGorm(t *testing.T, ds kolide.Datastore) {
|
|||
}
|
||||
|
||||
func TestGorm(t *testing.T) {
|
||||
address := os.Getenv("MYSQL_ADDR")
|
||||
if address == "" {
|
||||
t.SkipNow()
|
||||
}
|
||||
for _, f := range testFunctions {
|
||||
t.Run(functionName(f), func(t *testing.T) {
|
||||
ds := setupGorm(t)
|
||||
|
|
|
|||
|
|
@ -184,7 +184,7 @@ func TestGetNodeKey(t *testing.T) {
|
|||
}
|
||||
|
||||
func TestAuthenticatedHost(t *testing.T) {
|
||||
ds, err := datastore.New("gorm-sqlite3", "")
|
||||
ds, err := datastore.New("inmem", "")
|
||||
require.Nil(t, err)
|
||||
svc, err := newTestService(ds)
|
||||
require.Nil(t, err)
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ import (
|
|||
)
|
||||
|
||||
func TestAPIRoutes(t *testing.T) {
|
||||
ds, err := datastore.New("gorm-sqlite3", ":memory:")
|
||||
ds, err := datastore.New("inmem", "")
|
||||
assert.Nil(t, err)
|
||||
|
||||
svc, err := newTestService(ds)
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ import (
|
|||
)
|
||||
|
||||
func TestListHosts(t *testing.T) {
|
||||
ds, err := datastore.New("gorm-sqlite3", ":memory:")
|
||||
ds, err := datastore.New("inmem", "")
|
||||
assert.Nil(t, err)
|
||||
|
||||
svc, err := newTestService(ds)
|
||||
|
|
@ -33,7 +33,7 @@ func TestListHosts(t *testing.T) {
|
|||
}
|
||||
|
||||
func TestGetHost(t *testing.T) {
|
||||
ds, err := datastore.New("gorm-sqlite3", ":memory:")
|
||||
ds, err := datastore.New("inmem", "")
|
||||
assert.Nil(t, err)
|
||||
|
||||
svc, err := newTestService(ds)
|
||||
|
|
@ -54,7 +54,7 @@ func TestGetHost(t *testing.T) {
|
|||
}
|
||||
|
||||
func TestDeleteHost(t *testing.T) {
|
||||
ds, err := datastore.New("gorm-sqlite3", ":memory:")
|
||||
ds, err := datastore.New("inmem", "")
|
||||
assert.Nil(t, err)
|
||||
|
||||
svc, err := newTestService(ds)
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ import (
|
|||
)
|
||||
|
||||
func TestListLabels(t *testing.T) {
|
||||
ds, err := datastore.New("gorm-sqlite3", ":memory:")
|
||||
ds, err := datastore.New("inmem", "")
|
||||
assert.Nil(t, err)
|
||||
|
||||
svc, err := newTestService(ds)
|
||||
|
|
@ -35,7 +35,7 @@ func TestListLabels(t *testing.T) {
|
|||
}
|
||||
|
||||
func TestGetLabel(t *testing.T) {
|
||||
ds, err := datastore.New("gorm-sqlite3", ":memory:")
|
||||
ds, err := datastore.New("inmem", "")
|
||||
assert.Nil(t, err)
|
||||
|
||||
svc, err := newTestService(ds)
|
||||
|
|
@ -57,7 +57,7 @@ func TestGetLabel(t *testing.T) {
|
|||
}
|
||||
|
||||
func TestNewLabel(t *testing.T) {
|
||||
ds, err := datastore.New("gorm-sqlite3", ":memory:")
|
||||
ds, err := datastore.New("inmem", "")
|
||||
assert.Nil(t, err)
|
||||
|
||||
svc, err := newTestService(ds)
|
||||
|
|
@ -82,7 +82,7 @@ func TestNewLabel(t *testing.T) {
|
|||
}
|
||||
|
||||
func TestModifyLabel(t *testing.T) {
|
||||
ds, err := datastore.New("gorm-sqlite3", ":memory:")
|
||||
ds, err := datastore.New("inmem", "")
|
||||
assert.Nil(t, err)
|
||||
|
||||
svc, err := newTestService(ds)
|
||||
|
|
@ -108,7 +108,7 @@ func TestModifyLabel(t *testing.T) {
|
|||
}
|
||||
|
||||
func TestDeleteLabel(t *testing.T) {
|
||||
ds, err := datastore.New("gorm-sqlite3", ":memory:")
|
||||
ds, err := datastore.New("inmem", "")
|
||||
assert.Nil(t, err)
|
||||
|
||||
svc, err := newTestService(ds)
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ import (
|
|||
)
|
||||
|
||||
func TestEnrollAgent(t *testing.T) {
|
||||
ds, err := datastore.New("gorm-sqlite3", ":memory:")
|
||||
ds, err := datastore.New("inmem", "")
|
||||
assert.Nil(t, err)
|
||||
|
||||
svc, err := newTestService(ds)
|
||||
|
|
@ -40,7 +40,7 @@ func TestEnrollAgent(t *testing.T) {
|
|||
}
|
||||
|
||||
func TestEnrollAgentIncorrectEnrollSecret(t *testing.T) {
|
||||
ds, err := datastore.New("gorm-sqlite3", ":memory:")
|
||||
ds, err := datastore.New("inmem", "")
|
||||
assert.Nil(t, err)
|
||||
|
||||
svc, err := newTestService(ds)
|
||||
|
|
@ -62,7 +62,7 @@ func TestEnrollAgentIncorrectEnrollSecret(t *testing.T) {
|
|||
}
|
||||
|
||||
func TestSubmitStatusLogs(t *testing.T) {
|
||||
ds, err := datastore.New("gorm-sqlite3", ":memory:")
|
||||
ds, err := datastore.New("inmem", "")
|
||||
assert.Nil(t, err)
|
||||
|
||||
mockClock := clock.NewMockClock()
|
||||
|
|
@ -134,7 +134,7 @@ func TestSubmitStatusLogs(t *testing.T) {
|
|||
}
|
||||
|
||||
func TestSubmitResultLogs(t *testing.T) {
|
||||
ds, err := datastore.New("gorm-sqlite3", ":memory:")
|
||||
ds, err := datastore.New("inmem", "")
|
||||
assert.Nil(t, err)
|
||||
|
||||
mockClock := clock.NewMockClock()
|
||||
|
|
@ -235,7 +235,7 @@ func TestHostDetailQueries(t *testing.T) {
|
|||
}
|
||||
|
||||
func TestLabelQueries(t *testing.T) {
|
||||
ds, err := datastore.New("gorm-sqlite3", ":memory:")
|
||||
ds, err := datastore.New("inmem", "")
|
||||
assert.Nil(t, err)
|
||||
|
||||
mockClock := clock.NewMockClock()
|
||||
|
|
@ -400,7 +400,7 @@ func TestLabelQueries(t *testing.T) {
|
|||
}
|
||||
|
||||
func TestGetClientConfig(t *testing.T) {
|
||||
ds, err := datastore.New("gorm-sqlite3", ":memory:")
|
||||
ds, err := datastore.New("inmem", "")
|
||||
assert.Nil(t, err)
|
||||
|
||||
mockClock := clock.NewMockClock()
|
||||
|
|
@ -484,7 +484,7 @@ func TestGetClientConfig(t *testing.T) {
|
|||
}
|
||||
|
||||
func TestDetailQueries(t *testing.T) {
|
||||
ds, err := datastore.New("gorm-sqlite3", ":memory:")
|
||||
ds, err := datastore.New("inmem", "")
|
||||
assert.Nil(t, err)
|
||||
|
||||
mockClock := clock.NewMockClock()
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ import (
|
|||
)
|
||||
|
||||
func TestListPacks(t *testing.T) {
|
||||
ds, err := datastore.New("gorm-sqlite3", ":memory:")
|
||||
ds, err := datastore.New("inmem", "")
|
||||
assert.Nil(t, err)
|
||||
|
||||
svc, err := newTestService(ds)
|
||||
|
|
@ -33,7 +33,7 @@ func TestListPacks(t *testing.T) {
|
|||
}
|
||||
|
||||
func TestGetPack(t *testing.T) {
|
||||
ds, err := datastore.New("gorm-sqlite3", ":memory:")
|
||||
ds, err := datastore.New("inmem", "")
|
||||
assert.Nil(t, err)
|
||||
|
||||
svc, err := newTestService(ds)
|
||||
|
|
@ -55,7 +55,7 @@ func TestGetPack(t *testing.T) {
|
|||
}
|
||||
|
||||
func TestNewPack(t *testing.T) {
|
||||
ds, err := datastore.New("gorm-sqlite3", ":memory:")
|
||||
ds, err := datastore.New("inmem", "")
|
||||
assert.Nil(t, err)
|
||||
|
||||
svc, err := newTestService(ds)
|
||||
|
|
@ -76,7 +76,7 @@ func TestNewPack(t *testing.T) {
|
|||
}
|
||||
|
||||
func TestModifyPack(t *testing.T) {
|
||||
ds, err := datastore.New("gorm-sqlite3", ":memory:")
|
||||
ds, err := datastore.New("inmem", "")
|
||||
assert.Nil(t, err)
|
||||
|
||||
svc, err := newTestService(ds)
|
||||
|
|
@ -102,7 +102,7 @@ func TestModifyPack(t *testing.T) {
|
|||
}
|
||||
|
||||
func TestDeletePack(t *testing.T) {
|
||||
ds, err := datastore.New("gorm-sqlite3", ":memory:")
|
||||
ds, err := datastore.New("inmem", "")
|
||||
assert.Nil(t, err)
|
||||
|
||||
svc, err := newTestService(ds)
|
||||
|
|
@ -127,7 +127,7 @@ func TestDeletePack(t *testing.T) {
|
|||
}
|
||||
|
||||
func TestAddQueryToPack(t *testing.T) {
|
||||
ds, err := datastore.New("gorm-sqlite3", ":memory:")
|
||||
ds, err := datastore.New("inmem", "")
|
||||
assert.Nil(t, err)
|
||||
|
||||
svc, err := newTestService(ds)
|
||||
|
|
@ -146,7 +146,7 @@ func TestAddQueryToPack(t *testing.T) {
|
|||
Name: "bar",
|
||||
Query: "select * from time;",
|
||||
}
|
||||
_, err = ds.NewQuery(query)
|
||||
query, err = ds.NewQuery(query)
|
||||
assert.Nil(t, err)
|
||||
assert.NotZero(t, query.ID)
|
||||
|
||||
|
|
@ -163,7 +163,7 @@ func TestAddQueryToPack(t *testing.T) {
|
|||
}
|
||||
|
||||
func TestGetQueriesInPack(t *testing.T) {
|
||||
ds, err := datastore.New("gorm-sqlite3", ":memory:")
|
||||
ds, err := datastore.New("inmem", "")
|
||||
assert.Nil(t, err)
|
||||
|
||||
svc, err := newTestService(ds)
|
||||
|
|
@ -182,7 +182,7 @@ func TestGetQueriesInPack(t *testing.T) {
|
|||
Name: "bar",
|
||||
Query: "select * from time;",
|
||||
}
|
||||
_, err = ds.NewQuery(query)
|
||||
query, err = ds.NewQuery(query)
|
||||
assert.Nil(t, err)
|
||||
assert.NotZero(t, query.ID)
|
||||
|
||||
|
|
@ -195,7 +195,7 @@ func TestGetQueriesInPack(t *testing.T) {
|
|||
}
|
||||
|
||||
func TestRemoveQueryFromPack(t *testing.T) {
|
||||
ds, err := datastore.New("gorm-sqlite3", ":memory:")
|
||||
ds, err := datastore.New("inmem", "")
|
||||
assert.Nil(t, err)
|
||||
|
||||
svc, err := newTestService(ds)
|
||||
|
|
@ -214,7 +214,7 @@ func TestRemoveQueryFromPack(t *testing.T) {
|
|||
Name: "bar",
|
||||
Query: "select * from time;",
|
||||
}
|
||||
_, err = ds.NewQuery(query)
|
||||
query, err = ds.NewQuery(query)
|
||||
assert.Nil(t, err)
|
||||
assert.NotZero(t, query.ID)
|
||||
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ import (
|
|||
)
|
||||
|
||||
func TestListQueries(t *testing.T) {
|
||||
ds, err := datastore.New("gorm-sqlite3", ":memory:")
|
||||
ds, err := datastore.New("inmem", "")
|
||||
assert.Nil(t, err)
|
||||
|
||||
svc, err := newTestService(ds)
|
||||
|
|
@ -34,7 +34,7 @@ func TestListQueries(t *testing.T) {
|
|||
}
|
||||
|
||||
func TestGetQuery(t *testing.T) {
|
||||
ds, err := datastore.New("gorm-sqlite3", ":memory:")
|
||||
ds, err := datastore.New("inmem", "")
|
||||
assert.Nil(t, err)
|
||||
|
||||
svc, err := newTestService(ds)
|
||||
|
|
@ -46,7 +46,7 @@ func TestGetQuery(t *testing.T) {
|
|||
Name: "foo",
|
||||
Query: "select * from time;",
|
||||
}
|
||||
_, err = ds.NewQuery(query)
|
||||
query, err = ds.NewQuery(query)
|
||||
assert.Nil(t, err)
|
||||
assert.NotZero(t, query.ID)
|
||||
|
||||
|
|
@ -57,7 +57,7 @@ func TestGetQuery(t *testing.T) {
|
|||
}
|
||||
|
||||
func TestNewQuery(t *testing.T) {
|
||||
ds, err := datastore.New("gorm-sqlite3", ":memory:")
|
||||
ds, err := datastore.New("inmem", "")
|
||||
assert.Nil(t, err)
|
||||
|
||||
svc, err := newTestService(ds)
|
||||
|
|
@ -80,7 +80,7 @@ func TestNewQuery(t *testing.T) {
|
|||
}
|
||||
|
||||
func TestModifyQuery(t *testing.T) {
|
||||
ds, err := datastore.New("gorm-sqlite3", ":memory:")
|
||||
ds, err := datastore.New("inmem", "")
|
||||
assert.Nil(t, err)
|
||||
|
||||
svc, err := newTestService(ds)
|
||||
|
|
@ -92,7 +92,7 @@ func TestModifyQuery(t *testing.T) {
|
|||
Name: "foo",
|
||||
Query: "select * from time;",
|
||||
}
|
||||
_, err = ds.NewQuery(query)
|
||||
query, err = ds.NewQuery(query)
|
||||
assert.Nil(t, err)
|
||||
assert.NotZero(t, query.ID)
|
||||
|
||||
|
|
@ -107,7 +107,7 @@ func TestModifyQuery(t *testing.T) {
|
|||
}
|
||||
|
||||
func TestDeleteQuery(t *testing.T) {
|
||||
ds, err := datastore.New("gorm-sqlite3", ":memory:")
|
||||
ds, err := datastore.New("inmem", "")
|
||||
assert.Nil(t, err)
|
||||
|
||||
svc, err := newTestService(ds)
|
||||
|
|
@ -119,7 +119,7 @@ func TestDeleteQuery(t *testing.T) {
|
|||
Name: "foo",
|
||||
Query: "select * from time;",
|
||||
}
|
||||
_, err = ds.NewQuery(query)
|
||||
query, err = ds.NewQuery(query)
|
||||
assert.Nil(t, err)
|
||||
assert.NotZero(t, query.ID)
|
||||
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ import (
|
|||
const bcryptCost = 6
|
||||
|
||||
func TestAuthenticate(t *testing.T) {
|
||||
ds, err := datastore.New("gorm-sqlite3", ":memory:")
|
||||
ds, err := datastore.New("inmem", "")
|
||||
require.Nil(t, err)
|
||||
svc, err := newTestService(ds)
|
||||
require.Nil(t, err)
|
||||
|
|
|
|||
Loading…
Reference in a new issue