43 lines
1.0 KiB
Go
43 lines
1.0 KiB
Go
package services
|
|
|
|
import (
|
|
"github.com/bams/backend/internal/config"
|
|
"github.com/bams/backend/internal/logger"
|
|
"github.com/bams/backend/internal/services/bacula"
|
|
"github.com/bams/backend/internal/services/disk"
|
|
"github.com/bams/backend/internal/services/iscsi"
|
|
"github.com/bams/backend/internal/services/logs"
|
|
"github.com/bams/backend/internal/services/tape"
|
|
)
|
|
|
|
type ServiceManager struct {
|
|
Config *config.Config
|
|
Logger *logger.Logger
|
|
Disk *disk.Service
|
|
ISCSI *iscsi.Service
|
|
Tape *tape.Service
|
|
Bacula *bacula.Service
|
|
Logs *logs.Service
|
|
}
|
|
|
|
func NewServiceManager(cfg *config.Config, log *logger.Logger) *ServiceManager {
|
|
sm := &ServiceManager{
|
|
Config: cfg,
|
|
Logger: log,
|
|
}
|
|
|
|
// Initialize services
|
|
sm.Disk = disk.NewService(cfg, log)
|
|
sm.ISCSI = iscsi.NewService(cfg, log)
|
|
sm.Tape = tape.NewService(cfg, log)
|
|
sm.Bacula = bacula.NewService(cfg, log)
|
|
sm.Logs = logs.NewService(cfg, log)
|
|
|
|
return sm
|
|
}
|
|
|
|
func (sm *ServiceManager) Shutdown() {
|
|
sm.Logger.Info("Shutting down services...")
|
|
// Graceful shutdown of all services
|
|
}
|