-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdeploy.sh
More file actions
64 lines (54 loc) · 2.25 KB
/
Copy pathdeploy.sh
File metadata and controls
64 lines (54 loc) · 2.25 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#!/bin/bash
# 配置引擎地址和认证信息
ENGINE_URL="${CAMUNDA_BASE_URL:-http://localhost:8080/engine-rest}"
AUTH="${CAMUNDA_USERNAME:-admin}:${CAMUNDA_PASSWORD:-admin}"
# 要部署的 BPMN 文件列表
BPMN_FILES=(
"cloud_host_workflow.bpmn:CloudHostWorkflow"
"cloud_host_roaming_workflow.bpmn:CloudHostRoamingWorkflow"
)
echo "=========================================="
echo "Deploying BPMN Workflows to Camunda"
echo "=========================================="
echo "Engine URL: $ENGINE_URL"
echo ""
# 部署每个 BPMN 文件
for FILE_ENTRY in "${BPMN_FILES[@]}"; do
IFS=":" read -r BPMN_FILE DEPLOYMENT_NAME <<< "$FILE_ENTRY"
if [ ! -f "$BPMN_FILE" ]; then
echo "✗ File not found: $BPMN_FILE"
continue
fi
echo "Deploying $BPMN_FILE as '$DEPLOYMENT_NAME'..."
curl -s -u "$AUTH" \
-H "Accept: application/json" \
-X POST "$ENGINE_URL/deployment/create" \
-F "deployment-name=$DEPLOYMENT_NAME" \
-F "enable-duplicate-filtering=true" \
-F "deploy-changed-only=true" \
-F "data=@$BPMN_FILE" | jq '.' 2>/dev/null || echo "Deployment request sent"
echo "✓ $BPMN_FILE deployed"
echo ""
done
echo "=========================================="
echo "✓ All workflows deployed successfully!"
echo "=========================================="
echo ""
echo "Available Workflows:"
echo " 1. cloud-host-workflow (CloudHostWorkflow)"
echo " - Basic cloud host management (create, start, stop, check-status)"
echo ""
echo " 2. cloud-host-roaming-workflow (CloudHostRoamingWorkflow)"
echo " - Host migration workflow with error retry support"
echo " - Topics: prepare-roaming, migrate-roaming, switch-roaming, verify-roaming, rollback-roaming"
echo ""
echo "To start a workflow instance, use:"
echo " # Basic workflow"
echo " curl -X POST http://localhost:8080/engine-rest/process-definition/key/cloud-host-workflow/start"
echo ""
echo " # Roaming workflow"
echo " curl -X POST -H 'Content-Type: application/json' -d '{\"variables\":{\"hostId\":{\"value\":\"my-host\"}}}' \\"
echo " http://localhost:8080/engine-rest/process-definition/key/cloud-host-roaming-workflow/start"
echo ""
echo "Or use the provided script:"
echo " ./start_roaming_migration.sh [HOST_ID]"