Revert read replica POC (#93551)
* Revert "chore: add replDB to team service (#91799)" This reverts commitc6ae2d7999. * Revert "experiment: use read replica for Get and Find Dashboards (#91706)" This reverts commit54177ca619. * Revert "QuotaService: refactor to use ReplDB for Get queries (#91333)" This reverts commit299c142f6a. * Revert "refactor replCfg to look more like plugins/plugin config (#91142)" This reverts commitac0b4bb34d. * Revert "chore (replstore): fix registration with multiple sql drivers, again (#90990)" This reverts commitdaedb358dd. * Revert "Chore (sqlstore): add validation and testing for repl config (#90683)" This reverts commitaf19f039b6. * Revert "ReplStore: Add support for round robin load balancing between multiple read replicas (#90530)" This reverts commit27b52b1507. * Revert "DashboardStore: Use ReplDB and get dashboard quotas from the ReadReplica (#90235)" This reverts commit8a6107cd35. * Revert "accesscontrol service read replica (#89963)" This reverts commit77a4869fca. * Revert "Fix: add mapping for the new mysqlRepl driver (#89551)" This reverts commitab5a079bcc. * Revert "fix: sql instrumentation dual registration error (#89508)" This reverts commitd988f5c3b0. * Revert "Experimental Feature Toggle: databaseReadReplica (#89232)" This reverts commit50244ed4a1.
This commit is contained in:
@@ -7,7 +7,6 @@ import (
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
"gopkg.in/ini.v1"
|
||||
|
||||
"github.com/grafana/grafana/pkg/services/featuremgmt"
|
||||
"github.com/grafana/grafana/pkg/services/sqlstore/migrator"
|
||||
@@ -222,93 +221,3 @@ func TestBuildConnectionStringPostgres(t *testing.T) {
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func TestValidateReplicaConfigs(t *testing.T) {
|
||||
t.Run("valid config", func(t *testing.T) {
|
||||
inicfg, err := ini.Load([]byte(testReplCfg))
|
||||
require.NoError(t, err)
|
||||
cfg, err := setting.NewCfgFromINIFile(inicfg)
|
||||
require.NoError(t, err)
|
||||
|
||||
dbCfgs, err := NewRODatabaseConfigs(cfg, nil)
|
||||
require.NoError(t, err)
|
||||
|
||||
err = validateReplicaConfigs(&DatabaseConfig{Type: "mysql"}, dbCfgs)
|
||||
require.NoError(t, err)
|
||||
})
|
||||
|
||||
t.Run("valid but awkward config", func(t *testing.T) {
|
||||
inicfg, err := ini.Load([]byte(testReplCfg))
|
||||
require.NoError(t, err)
|
||||
cfg, err := setting.NewCfgFromINIFile(inicfg)
|
||||
require.NoError(t, err)
|
||||
|
||||
dbCfgs, err := NewRODatabaseConfigs(cfg, nil)
|
||||
require.NoError(t, err)
|
||||
|
||||
// The primary is mysql, but the replicas are mysqlWithHooks. This can
|
||||
// occur when some but not all the replicas (or primary) have
|
||||
// instrument_queries enabled
|
||||
err = validateReplicaConfigs(&DatabaseConfig{Type: "mysqlWithHooks"}, dbCfgs)
|
||||
require.NoError(t, err)
|
||||
})
|
||||
|
||||
t.Run("invalid config: primary database type mismatch", func(t *testing.T) {
|
||||
// valid repl config, the issue is that the primary has a different type
|
||||
inicfg, err := ini.Load([]byte(testReplCfg))
|
||||
require.NoError(t, err)
|
||||
cfg, err := setting.NewCfgFromINIFile(inicfg)
|
||||
require.NoError(t, err)
|
||||
|
||||
dbCfgs, err := NewRODatabaseConfigs(cfg, nil)
|
||||
require.NoError(t, err)
|
||||
|
||||
err = validateReplicaConfigs(&DatabaseConfig{Type: "postgres"}, dbCfgs)
|
||||
require.Error(t, err)
|
||||
|
||||
if uw, ok := err.(interface{ Unwrap() []error }); ok {
|
||||
errs := uw.Unwrap()
|
||||
require.Equal(t, 1, len(errs))
|
||||
}
|
||||
})
|
||||
|
||||
t.Run("invalid repl config", func(t *testing.T) {
|
||||
// Type mismatch + duplicate hosts
|
||||
inicfg, err := ini.Load([]byte(invalidReplCfg))
|
||||
require.NoError(t, err)
|
||||
cfg, err := setting.NewCfgFromINIFile(inicfg)
|
||||
require.NoError(t, err)
|
||||
|
||||
dbCfgs, err := NewRODatabaseConfigs(cfg, nil)
|
||||
require.NoError(t, err)
|
||||
|
||||
err = validateReplicaConfigs(&DatabaseConfig{Type: "mysql"}, dbCfgs)
|
||||
require.Error(t, err)
|
||||
|
||||
if uw, ok := err.(interface{ Unwrap() []error }); ok {
|
||||
errs := uw.Unwrap()
|
||||
require.Equal(t, 2, len(errs))
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
// This cfg has a duplicate host for repls 0 and 1, and a type mismatch in repl 2
|
||||
var invalidReplCfg = `
|
||||
[database_replicas]
|
||||
type = mysql
|
||||
name = grafana
|
||||
user = grafana
|
||||
password = password
|
||||
host = 127.0.0.1:3306
|
||||
[database_replica.one]
|
||||
name = grafana
|
||||
user = grafana
|
||||
password = password
|
||||
type = mysql
|
||||
host = 127.0.0.1:3306
|
||||
[database_replica.two]
|
||||
name = grafana
|
||||
user = grafana
|
||||
password = password
|
||||
type = postgres
|
||||
host = 127.0.0.1:3308`
|
||||
|
||||
Reference in New Issue
Block a user