test cron
This commit is contained in:
49
config.go
49
config.go
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user