working commit
This commit is contained in:
+61
-24
@@ -29,8 +29,9 @@ import (
|
||||
"mstore/app/operator"
|
||||
"mstore/app/service"
|
||||
"mstore/app/storage"
|
||||
"mstore/pkg/auxtool"
|
||||
|
||||
"sigs.k8s.io/yaml"
|
||||
yaml "go.yaml.in/yaml/v4"
|
||||
)
|
||||
|
||||
type Server struct {
|
||||
@@ -100,6 +101,37 @@ func (srv *Server) Configure() error {
|
||||
return err
|
||||
}
|
||||
|
||||
func (srv *Server) WriteStat() error {
|
||||
// Write status file
|
||||
var err error
|
||||
statefilePath := filepath.Join(srv.conf.Datadir, "server.yaml")
|
||||
stateData, err := yaml.Marshal(srv.stat)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
err = ioutil.WriteFile(statefilePath, stateData, 0640)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return err
|
||||
}
|
||||
|
||||
func (srv *Server) ReadStat() error {
|
||||
var err error
|
||||
// Read state file
|
||||
statefilePath := filepath.Join(srv.conf.Datadir, "server.yaml")
|
||||
stateData, err := ioutil.ReadFile(statefilePath)
|
||||
if err == nil {
|
||||
stat := descr.Server{}
|
||||
err = yaml.Unmarshal(stateData, &stat)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
srv.stat = stat
|
||||
}
|
||||
return err
|
||||
}
|
||||
|
||||
func (srv *Server) Build() error {
|
||||
var err error
|
||||
srv.logg.Infof("Server building")
|
||||
@@ -131,23 +163,20 @@ func (srv *Server) Build() error {
|
||||
}
|
||||
|
||||
// Read state file
|
||||
statefilePath := filepath.Join(srv.conf.Datadir, "server.yaml")
|
||||
stateData, err := ioutil.ReadFile(statefilePath)
|
||||
srv.logg.Infof("Reading server status")
|
||||
err = srv.ReadStat()
|
||||
if err != nil {
|
||||
err = yaml.Unmarshal(stateData, &srv.stat)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return err
|
||||
}
|
||||
|
||||
// Creating database
|
||||
// Creating database dir
|
||||
dbdir := srv.conf.Database.Basepath
|
||||
srv.logg.Infof("Creating database directory %s ", dbdir)
|
||||
err = os.MkdirAll(dbdir, 0750)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// Creating database
|
||||
mdb := maindb.NewDatabase(dbdir)
|
||||
srv.logg.Infof("Opening main database")
|
||||
err = mdb.OpenDatabase()
|
||||
@@ -165,34 +194,42 @@ func (srv *Server) Build() error {
|
||||
return err
|
||||
}
|
||||
srv.stat.SchemeCreated = true
|
||||
srv.stat.SchemeCreatedAt = auxtool.TimeNow()
|
||||
srv.logg.Infof("Writing server status")
|
||||
err = srv.WriteStat()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
// Created anonymous user
|
||||
if !srv.stat.AnonymousCreated {
|
||||
srv.logg.Infof("Creating anonimous user")
|
||||
srv.logg.Infof("Creating anonymous user")
|
||||
err = mdb.WriteAnonymous(ctx)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
srv.stat.AnonymousCreated = true
|
||||
}
|
||||
if !srv.stat.InituserCreated {
|
||||
srv.logg.Infof("Creating init user")
|
||||
err = srv.mdb.WriteAnonymous(ctx)
|
||||
srv.stat.AnonymousCreatedAt = auxtool.TimeNow()
|
||||
srv.logg.Infof("Writing server status")
|
||||
err = srv.WriteStat()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
if !srv.stat.InituserCreated {
|
||||
srv.logg.Infof("Creating init user")
|
||||
err = srv.mdb.WriteInituser(ctx)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
srv.stat.InituserCreatedAt = auxtool.TimeNow()
|
||||
srv.stat.InituserCreated = true
|
||||
}
|
||||
|
||||
// Write status file
|
||||
stateData, err = yaml.Marshal(srv.stat)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
err = ioutil.WriteFile(statefilePath, stateData, 0640)
|
||||
if err != nil {
|
||||
return err
|
||||
srv.logg.Infof("Writing server status")
|
||||
err = srv.WriteStat()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
// Creating storage
|
||||
|
||||
Reference in New Issue
Block a user