ClearML中误删默认队列后如何重建?
解决ClearML误删默认队列的问题
问题背景
误删WebUI中的默认队列后,代理容器报错:
clearml_agent: ERROR: APIError: code 400/707: No queue is tagged as the default queue for this company
WebUI中无直接重建/标记默认队列的选项,旧版代码因Queue模块结构变更失效。
解决方案
方案1:使用ClearML CLI(推荐,最简单)
配置CLI凭证(首次使用):
clearml-init按照提示依次输入API主机(如
http://your-server:8008)、Web主机(如http://your-server:8888)、API密钥和密钥。创建默认队列:
clearml queue create --name default将队列标记为公司默认:
clearml queue set_default --name default
方案2:使用Python脚本(适配新版ClearML)
旧代码中Queue类已被重构到API客户端模块,使用以下脚本:
from clearml import API # 初始化API客户端(若已通过clearml-init配置,可省略参数) api = API( api_host="http://your-clearml-server-url:8008", web_host="http://your-clearml-server-url:8888", api_key="YOUR_ACCESS_KEY", secret_key="YOUR_SECRET_KEY" ) # 获取或创建"default"队列 queue = api.queues.get_queue(queue_name="default") if not queue: queue = api.queues.create_queue(queue_name="default") # 设置为公司默认队列 api.queues.set_default_queue(queue_id=queue.id) print(f"队列 '{queue.name}' 已设为默认队列")
方案3:直接调用REST API(适合无CLI/Python环境的场景)
获取认证Token(替换你的账号密码):
AUTH_TOKEN=$(curl -X POST "http://your-clearml-server-url:8008/auth.login" \ -H "Content-Type: application/json" \ -d '{"username": "your_username", "password": "your_password"}' | jq -r '.access_token')创建默认队列并获取ID:
QUEUE_ID=$(curl -X POST "http://your-clearml-server-url:8008/queues.create" \ -H "Authorization: Bearer $AUTH_TOKEN" \ -H "Content-Type: application/json" \ -d '{"name": "default"}' | jq -r '.id')标记为默认队列:
curl -X POST "http://your-clearml-server-url:8008/queues.set_default" \ -H "Authorization: Bearer $AUTH_TOKEN" \ -H "Content-Type: application/json" \ -d '{"queue": "'$QUEUE_ID'"}'
内容的提问来源于stack exchange,提问作者coreaugur
相关产品推荐
相关产品推荐

