test cron

This commit is contained in:
shoopea
2023-07-31 18:11:29 +02:00
parent f51d7f4f51
commit ca3d8177bd
8 changed files with 196 additions and 95 deletions

View File

@@ -19,19 +19,13 @@ type Config struct {
Email EmailConfig `json:"email"`
Apps []AppConfig `json:"apps"`
Timezone string `json:"timezone"`
Admin *AdminConfig `json:"admin"`
Debug bool `json:"debug"`
Admin AdminConfig `json:"admin"`
box map[string]*Box `json:"-"`
apps map[string]*App `json:"-"`
timezone *time.Location `json:"-"`
}
type AdminConfig struct {
Addr string `json:"addr"`
Username string `json:"username"`
Password string `json:"password"`
}
type BoxConfig struct {
Addr string `json:"addr"`
User string `json:"user"`
@@ -159,34 +153,31 @@ func (c *Config) LoadFile(path string) error {
return nil
}
func (c *Config) Start(e *Email) {
// Run config
func (c *Config) Run() {
log.WithFields(log.Fields{}).Debugf("starting")
defer log.WithFields(log.Fields{}).Debugf("done")
e := NewEmail(time.Now())
var wg sync.WaitGroup
// Setup boxes
for _, b := range c.box {
wg.Add(1)
go func(box *Box) {
defer wg.Done()
if err := box.Open(); err != nil {
log.WithFields(log.Fields{"name": box.name, "call": "Open", "error": err}).Errorf("")
if e != nil {
e.AddItem(fmt.Sprintf(" - Box : %s is down", box.name))
}
e.AddItem(fmt.Sprintf(" - Box : %s is down", box.name))
return
}
}(b)
}
wg.Wait()
}
// Run config
func (c *Config) Run(e *Email) {
log.WithFields(log.Fields{}).Debugf("starting")
defer log.WithFields(log.Fields{}).Debugf("done")
var wg sync.WaitGroup
// Run each app
for _, a := range cfg.apps {
wg.Add(1)
go func(app *App) {
@@ -199,13 +190,7 @@ func (c *Config) Run(e *Email) {
wg.Wait()
return
}
func (c *Config) Cleanup(e *Email) {
log.WithFields(log.Fields{}).Debugf("starting")
defer log.WithFields(log.Fields{}).Debugf("done")
// Cleanup
for _, a := range cfg.apps {
for _, src := range a.sources {
if b, ok := c.box[src.Box()]; ok {
@@ -233,23 +218,15 @@ func (c *Config) Cleanup(e *Email) {
log.WithFields(log.Fields{"box": b.name, "fs": fs.path}).Warnf("not backed up")
e.AddItem(fmt.Sprintf(" - Src : Folder not backed up (%s)", b.name+":"+fs.path))
}
if len(fs.destApps) == 0 && len(fs.srcApps) == 0 && fs.managed {
if len(fs.destApps) == 0 && !fs.backedUp && fs.managed {
log.WithFields(log.Fields{"box": b.name, "fs": fs.path}).Warnf("managed")
e.AddItem(fmt.Sprintf(" - Dest : Folder managed (%s)", b.name+":"+fs.path))
}
if fs.managed {
log.WithFields(log.Fields{"box": b.name, "fs": fs.path, "src": len(fs.srcApps), "dest": len(fs.destApps)}).Warnf("managed")
}
}
}
}
}
func (c *Config) Stop(e *Email) {
log.WithFields(log.Fields{}).Debugf("starting")
defer log.WithFields(log.Fields{}).Debugf("done")
// Stop
for _, b := range c.box {
if err := b.Close(); err != nil {
log.WithFields(log.Fields{"name": b.name, "call": "Close", "error": err}).Errorf("")
@@ -261,4 +238,6 @@ func (c *Config) Stop(e *Email) {
log.WithFields(log.Fields{"call": "email.Send", "error": err}).Errorf("")
}
}
return
}