From f8279933d6db553c8987739175c97f4e9ef91880 Mon Sep 17 00:00:00 2001 From: andersonid Date: Thu, 25 Sep 2025 20:40:52 -0300 Subject: [PATCH] Fix: Translate all remaining Portuguese text to English in routes, services and frontend --- app/api/routes.py | 26 +++++++++++++------------- app/services/report_service.py | 6 +++--- app/services/validation_service.py | 24 ++++++++++++------------ app/static/index.html | 16 ++++++++-------- 4 files changed, 36 insertions(+), 36 deletions(-) diff --git a/app/api/routes.py b/app/api/routes.py index 82f7c38..a27ec35 100644 --- a/app/api/routes.py +++ b/app/api/routes.py @@ -1,5 +1,5 @@ """ -Rotas da API +API Routes """ import logging from typing import List, Optional @@ -37,7 +37,7 @@ async def get_cluster_status( k8s_client=Depends(get_k8s_client), prometheus_client=Depends(get_prometheus_client) ): - """Obter status geral do cluster""" + """Get overall cluster status""" try: # Coletar dados básicos pods = await k8s_client.get_all_pods() @@ -52,7 +52,7 @@ async def get_cluster_status( # Obter informações de overcommit overcommit_info = await prometheus_client.get_cluster_overcommit() - # Obter recomendações VPA + # Get VPA recommendations vpa_recommendations = await k8s_client.get_vpa_recommendations() # Generate report @@ -76,7 +76,7 @@ async def get_namespace_status( k8s_client=Depends(get_k8s_client), prometheus_client=Depends(get_prometheus_client) ): - """Obter status de um namespace específico""" + """Get status of a specific namespace""" try: # Coletar dados do namespace namespace_resources = await k8s_client.get_namespace_resources(namespace) @@ -109,7 +109,7 @@ async def get_pods( namespace: Optional[str] = None, k8s_client=Depends(get_k8s_client) ): - """Listar pods com informações de recursos""" + """List pods with resource information""" try: if namespace: namespace_resources = await k8s_client.get_namespace_resources(namespace) @@ -129,7 +129,7 @@ async def get_validations( page_size: int = 50, k8s_client=Depends(get_k8s_client) ): - """Listar validações de recursos com paginação""" + """List resource validations with pagination""" try: # Coletar pods if namespace: @@ -178,7 +178,7 @@ async def get_validations_by_namespace( include_system_namespaces: bool = False, k8s_client=Depends(get_k8s_client) ): - """Listar validações agrupadas por namespace com paginação""" + """List validations grouped by namespace with pagination""" try: # Coletar todos os pods com filtro de namespaces do sistema pods = await k8s_client.get_all_pods(include_system_namespaces=include_system_namespaces) @@ -196,7 +196,7 @@ async def get_validations_by_namespace( "severity_breakdown": {"error": 0, "warning": 0} } - # Agrupar validações por pod + # Group validations by pod if pod.name not in namespace_validations[pod.namespace]["pods"]: namespace_validations[pod.namespace]["pods"][pod.name] = { "pod_name": pod.name, @@ -214,7 +214,7 @@ async def get_validations_by_namespace( for validation in pod_validations: namespace_validations[pod.namespace]["severity_breakdown"][validation.severity] += 1 - # Converter para lista e ordenar por total de validações + # Convert to list and sort by total validations namespace_list = list(namespace_validations.values()) namespace_list.sort(key=lambda x: x["total_validations"], reverse=True) @@ -243,7 +243,7 @@ async def get_vpa_recommendations( namespace: Optional[str] = None, k8s_client=Depends(get_k8s_client) ): - """Obter recomendações do VPA""" + """Get VPA recommendations""" try: recommendations = await k8s_client.get_vpa_recommendations() @@ -348,7 +348,7 @@ async def apply_recommendation( recommendation: ApplyRecommendationRequest, k8s_client=Depends(get_k8s_client) ): - """Aplicar recomendação de recursos""" + """Apply resource recommendation""" try: # TODO: Implementar aplicação de recomendações # Por enquanto, apenas simular @@ -374,7 +374,7 @@ async def get_historical_validations( time_range: str = "24h", k8s_client=Depends(get_k8s_client) ): - """Obter validações com análise histórica do Prometheus""" + """Get validations with historical analysis from Prometheus""" try: validation_service = ValidationService() @@ -408,7 +408,7 @@ async def get_historical_validations( async def get_cluster_historical_summary( time_range: str = "24h" ): - """Obter resumo histórico do cluster""" + """Get cluster historical summary""" try: historical_service = HistoricalAnalysisService() summary = await historical_service.get_cluster_historical_summary(time_range) diff --git a/app/services/report_service.py b/app/services/report_service.py index 72beb93..bb35f3e 100644 --- a/app/services/report_service.py +++ b/app/services/report_service.py @@ -131,7 +131,7 @@ class ReportService: problems[problem_type] = [] problems[problem_type].append(validation) - # Generate recommendations específicas + # Generate specific recommendations if "missing_requests" in problems: count = len(problems["missing_requests"]) recommendations.append( @@ -148,12 +148,12 @@ class ReportService: if "invalid_ratio" in problems: count = len(problems["invalid_ratio"]) recommendations.append( - f"Ajustar ratio limit:request para {count} containers" + f"Adjust limit:request ratio for {count} containers" ) if "overcommit" in problems: recommendations.append( - "Resolver overcommit de recursos no namespace" + "Resolve resource overcommit in namespace" ) return recommendations diff --git a/app/services/validation_service.py b/app/services/validation_service.py index 34bf925..270bb4c 100644 --- a/app/services/validation_service.py +++ b/app/services/validation_service.py @@ -1,5 +1,5 @@ """ -Serviço de validação de recursos seguindo best practices Red Hat +Resource validation service following Red Hat best practices """ import logging from typing import List, Dict, Any @@ -13,7 +13,7 @@ from app.services.historical_analysis import HistoricalAnalysisService logger = logging.getLogger(__name__) class ValidationService: - """Serviço para validação de recursos""" + """Service for resource validation""" def __init__(self): self.cpu_ratio = settings.cpu_limit_ratio @@ -23,7 +23,7 @@ class ValidationService: self.historical_analysis = HistoricalAnalysisService() def validate_pod_resources(self, pod: PodResource) -> List[ResourceValidation]: - """Validar recursos de um pod""" + """Validate pod resources""" validations = [] for container in pod.containers: @@ -39,7 +39,7 @@ class ValidationService: pod: PodResource, time_range: str = '24h' ) -> List[ResourceValidation]: - """Validar recursos de um pod incluindo análise histórica""" + """Validate pod resources including historical analysis""" # Validações estáticas static_validations = self.validate_pod_resources(pod) @@ -60,7 +60,7 @@ class ValidationService: namespace: str, container: Dict[str, Any] ) -> List[ResourceValidation]: - """Validar recursos de um container""" + """Validate container resources""" validations = [] resources = container.get("resources", {}) requests = resources.get("requests", {}) @@ -90,7 +90,7 @@ class ValidationService: recommendation="Define limits to avoid excessive resource consumption" )) - # 3. Validar ratio limit:request + # 3. Validate limit:request ratio if requests and limits: cpu_validation = self._validate_cpu_ratio( pod_name, namespace, container["name"], requests, limits @@ -104,7 +104,7 @@ class ValidationService: if memory_validation: validations.append(memory_validation) - # 4. Validar valores mínimos + # 4. Validate minimum values if requests: min_validation = self._validate_minimum_values( pod_name, namespace, container["name"], requests @@ -121,7 +121,7 @@ class ValidationService: requests: Dict[str, str], limits: Dict[str, str] ) -> ResourceValidation: - """Validar ratio CPU limit:request""" + """Validate CPU limit:request ratio""" if "cpu" not in requests or "cpu" not in limits: return None @@ -166,7 +166,7 @@ class ValidationService: requests: Dict[str, str], limits: Dict[str, str] ) -> ResourceValidation: - """Validar ratio memória limit:request""" + """Validate memory limit:request ratio""" if "memory" not in requests or "memory" not in limits: return None @@ -210,7 +210,7 @@ class ValidationService: container_name: str, requests: Dict[str, str] ) -> List[ResourceValidation]: - """Validar valores mínimos de requests""" + """Validate minimum request values""" validations = [] # Validar CPU mínima @@ -286,7 +286,7 @@ class ValidationService: namespace_resources: NamespaceResources, node_capacity: Dict[str, str] ) -> List[ResourceValidation]: - """Validar overcommit em um namespace""" + """Validate overcommit in a namespace""" validations = [] # Calcular total de requests do namespace @@ -328,7 +328,7 @@ class ValidationService: return validations def generate_recommendations(self, validations: List[ResourceValidation]) -> List[str]: - """Gerar recomendações baseadas nas validações""" + """Generate recommendations based on validations""" recommendations = [] # Agrupar validações por tipo diff --git a/app/static/index.html b/app/static/index.html index aca9616..c1b1bad 100644 --- a/app/static/index.html +++ b/app/static/index.html @@ -741,7 +741,7 @@ updateStats(data); showSuccess('Cluster status loaded successfully. Loading analysis...'); - // Carregar automaticamente as validações após o scan inicial + // Automatically load validations after initial scan await loadValidationsByNamespace(); } catch (error) { @@ -1029,9 +1029,9 @@ let html = ''; // Botão anterior - html += ``; + html += ``; - // Páginas + // Pages const startPage = Math.max(1, pagination.page - 2); const endPage = Math.min(pagination.total_pages, pagination.page + 2); @@ -1055,11 +1055,11 @@ } // Botão próximo - html += ``; + html += ``; // Informações da paginação html += `
- Página ${pagination.page} de ${pagination.total_pages} + Page ${pagination.page} of ${pagination.total_pages} (${pagination.total} namespaces)
`; @@ -1151,7 +1151,7 @@ displayHistoricalSummary(summaryData.summary); } - // Carregar validações históricas + // Load historical validations const params = new URLSearchParams({ time_range: timeRange }); @@ -1180,7 +1180,7 @@ const container = document.getElementById('historicalSummary'); if (!summary || Object.keys(summary).length === 0) { - container.innerHTML = '

Não foi possível obter dados históricos do Prometheus.

'; + container.innerHTML = '

Unable to get historical data from Prometheus.

'; return; } @@ -1266,7 +1266,7 @@
${validation.message}
- Recomendação: ${validation.recommendation} + Recommendation: ${validation.recommendation}
`).join('')}