mirror of
https://github.com/dolthub/dolt.git
synced 2026-02-26 18:29:03 -06:00
go/libraries/doltcore/env: multi_repo_env.go: Remove Lock/Unlock/IsLocked from MultiRepoEnv.
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
51
go/libraries/doltcore/env/multi_repo_env.go
vendored
51
go/libraries/doltcore/env/multi_repo_env.go
vendored
@@ -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, "/")
|
||||
|
||||
Reference in New Issue
Block a user