Files
BAMS/backend/internal/services/manager.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
}