Files
taiji-AI-PAD/test_channel_workflow.sh
T
2026-01-06 17:23:36 +00:00

150 lines
6.4 KiB
Bash
Executable File

#!/bin/bash
BASE_URL="http://localhost:8002"
echo "=========================================="
echo "测试1: 渠道管理员分配平台Agent给租户"
echo "=========================================="
# 1. 渠道管理员登录
echo -e "\n1. 渠道管理员登录..."
CHANNEL_LOGIN=$(curl -s -X POST "$BASE_URL/api/auth/login" \
-H "Content-Type: application/json" \
-d '{"email":"66@66.com","password":"66","role":"channel"}')
echo "响应: $CHANNEL_LOGIN"
CHANNEL_TOKEN=$(echo $CHANNEL_LOGIN | python3 -c "import sys,json; print(json.load(sys.stdin).get('data',{}).get('token',''))")
echo "Token: ${CHANNEL_TOKEN:0:50}..."
if [ -z "$CHANNEL_TOKEN" ]; then
echo "渠道管理员登录失败"
exit 1
fi
# 2. 查看渠道当前的平台Agent配额
echo -e "\n2. 查看渠道当前的平台Agent配额..."
curl -s -X GET "$BASE_URL/api/channel/platform-agents" \
-H "Authorization: Bearer $CHANNEL_TOKEN" | python3 -m json.tool
# 3. 获取租户列表
echo -e "\n3. 获取租户列表..."
TENANTS=$(curl -s -X GET "$BASE_URL/api/channel/tenants" \
-H "Authorization: Bearer $CHANNEL_TOKEN")
echo "响应: $TENANTS" | python3 -m json.tool
TENANT_ID=$(echo $TENANTS | python3 -c "import sys,json; tenants=json.load(sys.stdin).get('data',{}).get('tenants',[]); print(tenants[0]['id'] if tenants else '')")
echo "第一个租户ID: $TENANT_ID"
if [ -z "$TENANT_ID" ]; then
echo "没有找到租户,创建一个测试租户..."
CREATE_TENANT=$(curl -s -X POST "$BASE_URL/api/channel/tenants/create" \
-H "Authorization: Bearer $CHANNEL_TOKEN" \
-H "Content-Type: application/json" \
-d '{"name":"测试租户","email":"test_tenant_'$(date +%s)'@test.com","password":"Test@123456","subscriptionTier":"free"}')
echo "创建租户响应: $CREATE_TENANT"
TENANT_ID=$(echo $CREATE_TENANT | python3 -c "import sys,json; print(json.load(sys.stdin).get('data',{}).get('id',''))")
echo "新租户ID: $TENANT_ID"
fi
# 4. 分配平台Agent给租户
echo -e "\n4. 分配平台Agent给租户..."
ALLOCATE_RESULT=$(curl -s -X POST "$BASE_URL/api/channel/tenants/$TENANT_ID/platform-agents" \
-H "Authorization: Bearer $CHANNEL_TOKEN" \
-H "Content-Type: application/json" \
-d '{"templateName":"echo_agent","podQuota":2}')
echo "分配结果: $ALLOCATE_RESULT" | python3 -m json.tool
# 5. 再次查看渠道的平台Agent配额(检查是否减少)
echo -e "\n5. 再次查看渠道的平台Agent配额(检查是否减少)..."
curl -s -X GET "$BASE_URL/api/channel/platform-agents" \
-H "Authorization: Bearer $CHANNEL_TOKEN" | python3 -m json.tool
# 6. 查看租户的平台Agent使用情况
echo -e "\n6. 查看租户的平台Agent使用情况..."
curl -s -X GET "$BASE_URL/api/channel/tenants/$TENANT_ID/platform-agents/usage" \
-H "Authorization: Bearer $CHANNEL_TOKEN" | python3 -m json.tool
echo -e "\n=========================================="
echo "测试2: 申请供应商azure并由超级管理员审批"
echo "=========================================="
# 7. 获取供应商列表
echo -e "\n7. 获取供应商列表..."
PROVIDERS=$(curl -s -X GET "$BASE_URL/api/channel/providers" \
-H "Authorization: Bearer $CHANNEL_TOKEN")
echo "供应商列表: $PROVIDERS" | python3 -m json.tool
# 查找azure供应商
AZURE_PROVIDER_ID=$(echo $PROVIDERS | python3 -c "
import sys,json
providers=json.load(sys.stdin).get('data',{}).get('providers',[])
for p in providers:
if 'azure' in p.get('name','').lower() or 'azure' in p.get('provider','').lower():
print(p['id'])
break
")
echo "Azure供应商ID: $AZURE_PROVIDER_ID"
if [ -z "$AZURE_PROVIDER_ID" ]; then
echo "没有找到Azure供应商,使用第一个供应商..."
AZURE_PROVIDER_ID=$(echo $PROVIDERS | python3 -c "import sys,json; providers=json.load(sys.stdin).get('data',{}).get('providers',[]); print(providers[0]['id'] if providers else '')")
echo "使用供应商ID: $AZURE_PROVIDER_ID"
fi
if [ -n "$AZURE_PROVIDER_ID" ]; then
# 8. 渠道管理员申请供应商
echo -e "\n8. 渠道管理员申请供应商..."
APPLY_RESULT=$(curl -s -X POST "$BASE_URL/api/channel/providers/apply" \
-H "Authorization: Bearer $CHANNEL_TOKEN" \
-H "Content-Type: application/json" \
-d "{\"providerId\":\"$AZURE_PROVIDER_ID\",\"requestedRpm\":500,\"requestedTpm\":50000,\"reason\":\"需要使用Azure模型服务\"}")
echo "申请结果: $APPLY_RESULT" | python3 -m json.tool
# 9. 超级管理员登录
echo -e "\n9. 超级管理员登录..."
ADMIN_LOGIN=$(curl -s -X POST "$BASE_URL/api/auth/login" \
-H "Content-Type: application/json" \
-d '{"email":"superadmin@taiji-ai.com","password":"Admin@123456","role":"super_admin"}')
echo "响应: $ADMIN_LOGIN"
ADMIN_TOKEN=$(echo $ADMIN_LOGIN | python3 -c "import sys,json; print(json.load(sys.stdin).get('data',{}).get('token',''))")
echo "Token: ${ADMIN_TOKEN:0:50}..."
if [ -n "$ADMIN_TOKEN" ]; then
# 10. 超级管理员查看待审批的供应商申请
echo -e "\n10. 超级管理员查看待审批的供应商申请..."
PENDING_APPS=$(curl -s -X GET "$BASE_URL/api/admin/providers/applications?status=pending" \
-H "Authorization: Bearer $ADMIN_TOKEN")
echo "待审批申请: $PENDING_APPS" | python3 -m json.tool
# 获取申请ID
APP_ID=$(echo $PENDING_APPS | python3 -c "import sys,json; apps=json.load(sys.stdin).get('data',{}).get('applications',[]); print(apps[0]['id'] if apps else '')")
echo "申请ID: $APP_ID"
if [ -n "$APP_ID" ]; then
# 11. 超级管理员审批申请
echo -e "\n11. 超级管理员审批申请..."
REVIEW_RESULT=$(curl -s -X PUT "$BASE_URL/api/admin/providers/applications/$APP_ID/review" \
-H "Authorization: Bearer $ADMIN_TOKEN" \
-H "Content-Type: application/json" \
-d '{"approved":true,"reason":"审批通过","rpmLimit":500,"tpmLimit":50000}')
echo "审批结果: $REVIEW_RESULT" | python3 -m json.tool
# 12. 渠道管理员查看已授权的供应商
echo -e "\n12. 渠道管理员查看已授权的供应商..."
curl -s -X GET "$BASE_URL/api/channel/providers/access" \
-H "Authorization: Bearer $CHANNEL_TOKEN" | python3 -m json.tool
else
echo "没有找到待审批的申请"
fi
else
echo "超级管理员登录失败"
fi
else
echo "没有找到供应商"
fi
echo -e "\n=========================================="
echo "测试完成"
echo "=========================================="