blob: edb95541e6f693b74655300151877eabc51a8f82 (
plain)
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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
|
#!/bin/bash
# Docker Test Helper - Simplified commands for running integration tests
set -e
# Colors
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m'
print_usage() {
echo -e "${BLUE}SeaweedFS RDMA Docker Integration Test Helper${NC}"
echo ""
echo "Usage: $0 [command]"
echo ""
echo "Commands:"
echo " start - Start all services"
echo " test - Run integration tests"
echo " stop - Stop all services"
echo " clean - Stop services and clean up volumes"
echo " logs - Show logs from all services"
echo " status - Show status of all services"
echo " shell - Open shell in test client container"
echo ""
echo "Examples:"
echo " $0 start # Start all services"
echo " $0 test # Run full integration test suite"
echo " $0 logs rdma-engine # Show logs from RDMA engine"
echo " $0 shell # Interactive testing shell"
}
start_services() {
echo -e "${GREEN}๐ Starting SeaweedFS RDMA integration services...${NC}"
docker-compose up -d seaweedfs-master seaweedfs-volume rdma-engine rdma-sidecar
echo -e "${YELLOW}โณ Waiting for services to be ready...${NC}"
sleep 10
echo -e "${GREEN}โ
Services started. Checking health...${NC}"
docker-compose ps
}
run_tests() {
echo -e "${GREEN}๐งช Running integration tests...${NC}"
# Make sure services are running
docker-compose up -d seaweedfs-master seaweedfs-volume rdma-engine rdma-sidecar
# Wait for services to be ready
echo -e "${YELLOW}โณ Waiting for services to be ready...${NC}"
sleep 15
# Run the integration tests
docker-compose run --rm integration-tests
}
stop_services() {
echo -e "${YELLOW}๐ Stopping services...${NC}"
docker-compose down
echo -e "${GREEN}โ
Services stopped${NC}"
}
clean_all() {
echo -e "${YELLOW}๐งน Cleaning up services and volumes...${NC}"
docker-compose down -v --remove-orphans
echo -e "${GREEN}โ
Cleanup complete${NC}"
}
show_logs() {
local service=${1:-}
if [ -n "$service" ]; then
echo -e "${BLUE}๐ Showing logs for $service...${NC}"
docker-compose logs -f "$service"
else
echo -e "${BLUE}๐ Showing logs for all services...${NC}"
docker-compose logs -f
fi
}
show_status() {
echo -e "${BLUE}๐ Service Status:${NC}"
docker-compose ps
echo -e "\n${BLUE}๐ก Health Checks:${NC}"
# Check SeaweedFS Master
if curl -s http://localhost:9333/cluster/status >/dev/null 2>&1; then
echo -e " ${GREEN}โ
SeaweedFS Master: Healthy${NC}"
else
echo -e " ${RED}โ SeaweedFS Master: Unhealthy${NC}"
fi
# Check SeaweedFS Volume
if curl -s http://localhost:8080/status >/dev/null 2>&1; then
echo -e " ${GREEN}โ
SeaweedFS Volume: Healthy${NC}"
else
echo -e " ${RED}โ SeaweedFS Volume: Unhealthy${NC}"
fi
# Check RDMA Sidecar
if curl -s http://localhost:8081/health >/dev/null 2>&1; then
echo -e " ${GREEN}โ
RDMA Sidecar: Healthy${NC}"
else
echo -e " ${RED}โ RDMA Sidecar: Unhealthy${NC}"
fi
}
open_shell() {
echo -e "${GREEN}๐ Opening interactive shell in test client...${NC}"
echo -e "${YELLOW}Use './test-rdma --help' for RDMA testing commands${NC}"
echo -e "${YELLOW}Use 'curl http://rdma-sidecar:8081/health' to test sidecar${NC}"
docker-compose run --rm test-client /bin/bash
}
# Main command handling
case "${1:-}" in
start)
start_services
;;
test)
run_tests
;;
stop)
stop_services
;;
clean)
clean_all
;;
logs)
show_logs "${2:-}"
;;
status)
show_status
;;
shell)
open_shell
;;
-h|--help|help)
print_usage
;;
"")
print_usage
exit 1
;;
*)
echo -e "${RED}โ Unknown command: $1${NC}"
print_usage
exit 1
;;
esac
|