aboutsummaryrefslogtreecommitdiff
path: root/seaweedfs-rdma-sidecar/tests/docker-test-helper.sh
diff options
context:
space:
mode:
Diffstat (limited to 'seaweedfs-rdma-sidecar/tests/docker-test-helper.sh')
-rwxr-xr-xseaweedfs-rdma-sidecar/tests/docker-test-helper.sh154
1 files changed, 154 insertions, 0 deletions
diff --git a/seaweedfs-rdma-sidecar/tests/docker-test-helper.sh b/seaweedfs-rdma-sidecar/tests/docker-test-helper.sh
new file mode 100755
index 000000000..edb95541e
--- /dev/null
+++ b/seaweedfs-rdma-sidecar/tests/docker-test-helper.sh
@@ -0,0 +1,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