# framework/scripts/compute_resource_scenario.py import time from framework.config.settings import Config from framework.core.logger import get_logger logger = get_logger("ComputeResourceScenario") def run_dev_machine_lifecycle(dm): """ 业务逻辑:开发机申请与验证流程 """ logger.info("--- 开启【开发机】业务总线巡检 ---") dm.navigate_to() # 1. 状态巡检 status = dm.get_first_machine_status() if status == "Empty": logger.info("当前列表为空,准备首次申请...") # 2. 执行申请全过程 dm.open_apply_dialog() dm.fill_name(Config.DEV_MACHINE_NAME) dm.select_sku(Config.DEV_MACHINE_SKU) dm.select_image("CUDA") dm.fill_ssh_key(Config.SSH_PUBLIC_KEY) dm.fill_system_disk(Config.SYSTEM_DISK) dm.submit_application() # 3. 深度巡检:等待部署 -> 关机 -> 删除 name = Config.DEV_MACHINE_NAME logger.info(f"⌛ 正在等待开发机 {name} 部署就绪...") # 注意:PageObject 内部的 wait_for_status 会处理具体轮询 # 这里给一个基础 10s 避免页面刚刷新时 DOM 状态不稳定 time.sleep(10) # 执行业务链路巡检 dm.stop_machine(name) dm.delete_machine(name) logger.info("✅ 开发机【全生命周期】业务巡检圆满完成,环境已清理") return True