import os from datetime import datetime, timedelta from dotenv import load_dotenv # 加载.env文件 load_dotenv() # ========== 基础配置 ========== # vCenter配置 VCENTER_HOSTS = os.getenv('VCENTER_HOSTS', '').split(',') VCENTER_USER = os.getenv('VCENTER_USER', '') VCENTER_PASSWORD = os.getenv('VCENTER_PASSWORD', '') # 快照策略配置 SNAPSHOT_RETENTION_DAYS = int(os.getenv('SNAPSHOT_RETENTION_DAYS', 15)) MAX_DELETE_CONCURRENT = int(os.getenv('MAX_DELETE_CONCURRENT', 4)) # 输出路径配置 EXCEL_OUTPUT_PATH = os.getenv('EXCEL_OUTPUT_PATH', '/tmp/vm_snapshots_report.xlsx') LOG_FILE_PATH = os.getenv('LOG_FILE_PATH', '/var/log/vm_snapshot_cleanup.log') # 计算快照过期时间(全局变量) EXPIRE_DATE = datetime.now() - timedelta(days=SNAPSHOT_RETENTION_DAYS) # 验证必要配置 def validate_config(): """验证配置是否完整""" required = [ VCENTER_HOSTS, VCENTER_USER, VCENTER_PASSWORD, SNAPSHOT_RETENTION_DAYS, MAX_DELETE_CONCURRENT ] if not all(required) or '' in VCENTER_HOSTS: raise ValueError("配置不完整,请检查.env文件中的vCenter信息和策略配置")