43 lines
1.4 KiB
Python
43 lines
1.4 KiB
Python
# 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
|