forked from xiaohei/taiji-AI-PAD
150 lines
6.4 KiB
Bash
Executable File
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 "=========================================="
|