refactor to remove config_files in favor of db
This commit is contained in:
@@ -21,7 +21,7 @@ from web.services.alert_service import AlertService
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
def execute_scan(scan_id: int, config_file: str = None, config_id: int = None, db_url: str = None):
|
||||
def execute_scan(scan_id: int, config_id: int, db_url: str = None):
|
||||
"""
|
||||
Execute a scan in the background.
|
||||
|
||||
@@ -31,12 +31,9 @@ def execute_scan(scan_id: int, config_file: str = None, config_id: int = None, d
|
||||
|
||||
Args:
|
||||
scan_id: ID of the scan record in database
|
||||
config_file: Path to YAML configuration file (legacy, optional)
|
||||
config_id: Database config ID (preferred, optional)
|
||||
config_id: Database config ID
|
||||
db_url: Database connection URL
|
||||
|
||||
Note: Provide exactly one of config_file or config_id
|
||||
|
||||
Workflow:
|
||||
1. Create new database session for this thread
|
||||
2. Update scan status to 'running'
|
||||
@@ -45,8 +42,7 @@ def execute_scan(scan_id: int, config_file: str = None, config_id: int = None, d
|
||||
5. Save results to database
|
||||
6. Update status to 'completed' or 'failed'
|
||||
"""
|
||||
config_desc = f"config_id={config_id}" if config_id else f"config_file={config_file}"
|
||||
logger.info(f"Starting background scan execution: scan_id={scan_id}, {config_desc}")
|
||||
logger.info(f"Starting background scan execution: scan_id={scan_id}, config_id={config_id}")
|
||||
|
||||
# Create new database session for this thread
|
||||
engine = create_engine(db_url, echo=False)
|
||||
@@ -65,21 +61,10 @@ def execute_scan(scan_id: int, config_file: str = None, config_id: int = None, d
|
||||
scan.started_at = datetime.utcnow()
|
||||
session.commit()
|
||||
|
||||
logger.info(f"Scan {scan_id}: Initializing scanner with {config_desc}")
|
||||
logger.info(f"Scan {scan_id}: Initializing scanner with config_id={config_id}")
|
||||
|
||||
# Initialize scanner based on config type
|
||||
if config_id:
|
||||
# Use database config
|
||||
scanner = SneakyScanner(config_id=config_id)
|
||||
else:
|
||||
# Use YAML config file
|
||||
# Convert config_file to full path if it's just a filename
|
||||
if not config_file.startswith('/'):
|
||||
config_path = f'/app/configs/{config_file}'
|
||||
else:
|
||||
config_path = config_file
|
||||
|
||||
scanner = SneakyScanner(config_path=config_path)
|
||||
# Initialize scanner with database config
|
||||
scanner = SneakyScanner(config_id=config_id)
|
||||
|
||||
# Execute scan
|
||||
logger.info(f"Scan {scan_id}: Running scanner...")
|
||||
|
||||
Reference in New Issue
Block a user