go/libraries/doltcore/env: multi_repo_env.go: Remove Lock/Unlock/IsLocked from MultiRepoEnv.

This commit is contained in:
Aaron Son
2023-11-28 18:20:14 -08:00
parent cd03d381ed
commit 2ae990d6b1
3 changed files with 17 additions and 83 deletions

View File

@@ -83,10 +83,6 @@ func NewSqlEngine(
mrEnv *env.MultiRepoEnv,
config *SqlEngineConfig,
) (*SqlEngine, error) {
if ok, _ := mrEnv.IsLocked(); ok {
config.IsServerLocked = true
}
dbs, locations, err := CollectDBs(ctx, mrEnv, config.Bulk)
if err != nil {
return nil, err

View File

@@ -137,6 +137,23 @@ func Serve(
}
controller.Register(InitDataDir)
var mrEnv *env.MultiRepoEnv
InitMultiEnv := &svcs.AnonService{
InitF: func(ctx context.Context) (err error) {
mrEnv, err = env.MultiEnvForDirectory(ctx, dEnv.Config.WriteableConfig(), fs, dEnv.Version, dEnv.IgnoreLockFile, dEnv)
return err
},
}
controller.Register(InitMultiEnv)
AssertNoDatabasesInAccessModeReadOnly := &svcs.AnonService{
InitF: func(ctx context.Context) (err error) {
// TODO: Iterate mrEnv, assert env.DoltDB.AccessMode() != chunks.ExclusiveAccessMode_ReadOnly
return nil
},
}
controller.Register(AssertNoDatabasesInAccessModeReadOnly)
var serverLock *env.DBLock
InitGlobalServerLock := &svcs.AnonService{
InitF: func(context.Context) (err error) {
@@ -150,15 +167,6 @@ func Serve(
}
controller.Register(InitGlobalServerLock)
var mrEnv *env.MultiRepoEnv
InitMultiEnv := &svcs.AnonService{
InitF: func(ctx context.Context) (err error) {
mrEnv, err = env.MultiEnvForDirectory(ctx, dEnv.Config.WriteableConfig(), fs, dEnv.Version, dEnv.IgnoreLockFile, dEnv)
return err
},
}
controller.Register(InitMultiEnv)
var clusterController *cluster.Controller
InitClusterController := &svcs.AnonService{
InitF: func(context.Context) (err error) {
@@ -271,25 +279,6 @@ func Serve(
}
controller.Register(InitMetricsListener)
LockMultiRepoEnv := &svcs.AnonService{
InitF: func(context.Context) error {
if ok, f := mrEnv.IsLocked(); ok {
return env.ErrActiveServerLock.New(f)
}
if err := mrEnv.Lock(serverLock); err != nil {
return err
}
return nil
},
StopF: func() error {
if err := mrEnv.Unlock(); err != nil {
cli.PrintErr(err)
}
return nil
},
}
controller.Register(LockMultiRepoEnv)
InitLockSuperUser := &svcs.AnonService{
InitF: func(context.Context) error {
mysqlDb := sqlEngine.GetUnderlyingEngine().Analyzer.Catalog.MySQLDb

View File

@@ -211,57 +211,6 @@ func (mrEnv *MultiRepoEnv) GetFirstDatabase() string {
return currentDb
}
// IsLocked returns true if any env is locked
func (mrEnv *MultiRepoEnv) IsLocked() (bool, string) {
if mrEnv.ignoreLockFile {
return false, ""
}
for _, e := range mrEnv.envs {
if e.env.IsLocked() {
return true, e.env.LockFile()
}
}
return false, ""
}
// Lock locks all child envs. The DBLock contains the details to write to the lock files. If an error is returned, all
// child envs will be returned with their initial lock state.
func (mrEnv *MultiRepoEnv) Lock(lck *DBLock) (err error) {
if mrEnv.ignoreLockFile {
return nil
}
if ok, f := mrEnv.IsLocked(); ok {
return ErrActiveServerLock.New(f)
}
for _, e := range mrEnv.envs {
err = e.env.Lock(lck)
if err != nil {
mrEnv.Unlock()
return err
}
}
return nil
}
// Unlock unlocks all child envs.
func (mrEnv *MultiRepoEnv) Unlock() error {
if mrEnv.ignoreLockFile {
return nil
}
var err, retErr error
for _, e := range mrEnv.envs {
err = e.env.Unlock()
if err != nil && retErr == nil {
retErr = err
}
}
return retErr
}
func getRepoRootDir(path, pathSeparator string) string {
if pathSeparator != "/" {
path = strings.ReplaceAll(path, pathSeparator, "/")