33 lines
1.1 KiB
Python
33 lines
1.1 KiB
Python
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信息和策略配置") |