-
Notifications
You must be signed in to change notification settings - Fork 15
Expand file tree
/
Copy pathcleanup.sh
More file actions
executable file
·169 lines (136 loc) · 4.63 KB
/
cleanup.sh
File metadata and controls
executable file
·169 lines (136 loc) · 4.63 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
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
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
#!/bin/bash
# AWS ZERO to YETO - Master Cleanup Script (Direct AWS CLI)
# Bu script tüm servisleri ters sırada temizler
set -e # Hata durumunda script'i durdur
# Renkli çıktı için fonksiyonlar
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
CYAN='\033[0;36m'
NC='\033[0m' # No Color
print_info() {
echo -e "${BLUE}[INFO]${NC} $1"
}
print_success() {
echo -e "${GREEN}[SUCCESS]${NC} $1"
}
print_warning() {
echo -e "${YELLOW}[WARNING]${NC} $1"
}
print_error() {
echo -e "${RED}[ERROR]${NC} $1"
}
print_header() {
echo -e "${CYAN}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
echo -e "${CYAN}🧹 $1${NC}"
echo -e "${CYAN}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
}
# AWS CLI kontrolü
check_aws_cli() {
if ! command -v aws &> /dev/null; then
print_error "AWS CLI kurulu değil. Lütfen önce AWS CLI'yi kurun."
exit 1
fi
# AWS kimlik bilgilerini kontrol et
if ! aws sts get-caller-identity &> /dev/null; then
print_error "AWS kimlik bilgileri yapılandırılmamış. 'aws configure' komutunu çalıştırın."
exit 1
fi
print_success "AWS CLI ve kimlik bilgileri hazır"
}
# Cleanup fonksiyonu
cleanup_service() {
local service_name="$1"
local service_path="services/${service_name}"
print_header "CLEANING UP $(echo $service_name | tr '[:lower:]' '[:upper:]') SERVICE"
if [ ! -d "$service_path" ]; then
print_warning "Service directory not found: $service_path (skipping)"
return 0
fi
if [ ! -f "$service_path/cleanup.sh" ]; then
print_warning "Cleanup script not found: $service_path/cleanup.sh (skipping)"
return 0
fi
# Servis dizini var mı kontrol et
if [ ! -d "$service_path" ]; then
print_warning "Service directory not found for $service_name (probably not deployed)"
return 0
fi
print_info "Cleaning up $service_name service..."
cd "$service_path"
if ! chmod +x cleanup.sh; then
print_error "Failed to make cleanup.sh executable"
cd - > /dev/null
return 1
fi
if ./cleanup.sh; then
print_success "$service_name service cleaned up successfully!"
cd - > /dev/null
return 0
else
print_error "$service_name service cleanup failed!"
cd - > /dev/null
return 1
fi
}
# Ana başlık
print_header "AWS ZERO to YETO - Master Cleanup (Direct AWS CLI)"
print_info "Cleanup başlatılıyor..."
print_info "Direct AWS CLI kullanılıyor"
# AWS CLI kontrolü
check_aws_cli
# Cleanup başlangıç zamanı
START_TIME=$(date +%s)
# Servis cleanup sırası (deploy'un tersi - dependency'ler önce temizlenmeli)
SERVICES=(
"rds" # En uzun süren ilk temizlenmeli
"sagemaker"
"glue"
"bedrock"
"cloudwatch"
"iam"
"dynamodb"
"lambda"
"s3" # En son temizlenmeli (diğer servisler S3 kullanabilir)
)
# Cleanup sayaçları
TOTAL_SERVICES=${#SERVICES[@]}
SUCCESSFUL_CLEANUPS=0
FAILED_CLEANUPS=0
SKIPPED_CLEANUPS=0
print_info "Toplam ${TOTAL_SERVICES} servis temizlenecek"
echo ""
# Her servisi temizle
for i in "${!SERVICES[@]}"; do
service=${SERVICES[$i]}
current=$((i + 1))
print_info "[$current/$TOTAL_SERVICES] Starting cleanup: $service"
if cleanup_service "$service"; then
SUCCESSFUL_CLEANUPS=$((SUCCESSFUL_CLEANUPS + 1))
print_success "✅ $service cleanup completed"
else
FAILED_CLEANUPS=$((FAILED_CLEANUPS + 1))
print_error "❌ $service cleanup failed"
# Hata durumunda devam et
print_warning "Continuing with next service..."
fi
echo ""
done
# Cleanup süresi hesapla
END_TIME=$(date +%s)
DURATION=$((END_TIME - START_TIME))
MINUTES=$((DURATION / 60))
SECONDS=$((DURATION % 60))
# Final rapor
print_header "CLEANUP SUMMARY"
print_info "Toplam süre: ${MINUTES}m ${SECONDS}s"
print_info "Başarılı cleanups: $SUCCESSFUL_CLEANUPS/$TOTAL_SERVICES"
print_info "Başarısız cleanups: $FAILED_CLEANUPS/$TOTAL_SERVICES"
if [ $FAILED_CLEANUPS -eq 0 ]; then
print_success "🎉 Tüm servisler başarıyla temizlendi!"
exit 0
else
print_warning "⚠️ Bazı servisler temizlenemedi. Detaylar için yukarıdaki logları kontrol edin."
exit 1
fi