fix: ConfigService now reads subsystems from database
Critical regression fix - subsystems were hardcoded instead of reading user settings. Added CreateDefaultSubsystems to queries/subsystems.go. ConfigService now queries agent_subsystems table for actual user configuration. AgentLifecycleService creates default subsystems when creating new agents. Respects user-configured enabled/auto_run settings from UI.
This commit is contained in:
@@ -7,6 +7,7 @@ import (
|
||||
"time"
|
||||
|
||||
"github.com/Fimeg/RedFlag/aggregator-server/internal/config"
|
||||
"github.com/Fimeg/RedFlag/aggregator-server/internal/database/queries"
|
||||
"github.com/Fimeg/RedFlag/aggregator-server/internal/models"
|
||||
"github.com/google/uuid"
|
||||
"github.com/jmoiron/sqlx"
|
||||
@@ -35,12 +36,13 @@ type AgentConfig struct {
|
||||
|
||||
// AgentLifecycleService manages all agent lifecycle operations
|
||||
type AgentLifecycleService struct {
|
||||
db *sqlx.DB
|
||||
config *config.Config
|
||||
buildService *BuildService
|
||||
configService *ConfigService
|
||||
artifactService *ArtifactService
|
||||
logger *log.Logger
|
||||
db *sqlx.DB
|
||||
config *config.Config
|
||||
buildService *BuildService
|
||||
configService *ConfigService
|
||||
artifactService *ArtifactService
|
||||
subsystemQueries *queries.SubsystemQueries
|
||||
logger *log.Logger
|
||||
}
|
||||
|
||||
// NewAgentLifecycleService creates a new lifecycle service
|
||||
@@ -50,12 +52,13 @@ func NewAgentLifecycleService(
|
||||
logger *log.Logger,
|
||||
) *AgentLifecycleService {
|
||||
return &AgentLifecycleService{
|
||||
db: db,
|
||||
config: cfg,
|
||||
buildService: NewBuildService(db, cfg, logger),
|
||||
configService: NewConfigService(db, cfg, logger),
|
||||
artifactService: NewArtifactService(db, cfg, logger),
|
||||
logger: logger,
|
||||
db: db,
|
||||
config: cfg,
|
||||
buildService: NewBuildService(db, cfg, logger),
|
||||
configService: NewConfigService(db, cfg, logger),
|
||||
artifactService: NewArtifactService(db, cfg, logger),
|
||||
subsystemQueries: queries.NewSubsystemQueries(db),
|
||||
logger: logger,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -190,7 +193,17 @@ func (s *AgentLifecycleService) createAgent(
|
||||
VALUES (:id, :hostname, :os_type, :agent_version, :machine_id, :created_at, :updated_at)
|
||||
`
|
||||
_, err := s.db.NamedExecContext(ctx, query, agent)
|
||||
return err
|
||||
if err != nil {
|
||||
return fmt.Errorf("agent record creation failed: %w", err)
|
||||
}
|
||||
|
||||
// Create default subsystems for new agent
|
||||
if err := s.subsystemQueries.CreateDefaultSubsystems(agent.ID); err != nil {
|
||||
s.logger.Printf("Warning: failed to create default subsystems: %v", err)
|
||||
// Non-fatal error - agent still created
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// updateAgent updates existing agent record
|
||||
|
||||
Reference in New Issue
Block a user