raijin-server 0.2.2__py3-none-any.whl → 0.2.3__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- raijin_server/__init__.py +1 -1
- raijin_server/utils.py +57 -1
- {raijin_server-0.2.2.dist-info → raijin_server-0.2.3.dist-info}/METADATA +1 -1
- {raijin_server-0.2.2.dist-info → raijin_server-0.2.3.dist-info}/RECORD +8 -8
- {raijin_server-0.2.2.dist-info → raijin_server-0.2.3.dist-info}/WHEEL +0 -0
- {raijin_server-0.2.2.dist-info → raijin_server-0.2.3.dist-info}/entry_points.txt +0 -0
- {raijin_server-0.2.2.dist-info → raijin_server-0.2.3.dist-info}/licenses/LICENSE +0 -0
- {raijin_server-0.2.2.dist-info → raijin_server-0.2.3.dist-info}/top_level.txt +0 -0
raijin_server/__init__.py
CHANGED
raijin_server/utils.py
CHANGED
|
@@ -203,8 +203,64 @@ def ensure_tool(name: str, ctx: ExecutionContext, install_hint: str = "") -> Non
|
|
|
203
203
|
raise typer.Exit(code=1)
|
|
204
204
|
|
|
205
205
|
|
|
206
|
+
def _fix_broken_apt_sources(ctx: ExecutionContext) -> None:
|
|
207
|
+
"""Corrige repositórios APT quebrados (mirrors brasileiros problemáticos)."""
|
|
208
|
+
if ctx.dry_run:
|
|
209
|
+
typer.echo("[dry-run] Verificando/corrigindo repositórios APT...")
|
|
210
|
+
return
|
|
211
|
+
|
|
212
|
+
sources_list = Path("/etc/apt/sources.list")
|
|
213
|
+
|
|
214
|
+
# Detecta se está usando mirror brasileiro quebrado
|
|
215
|
+
needs_fix = False
|
|
216
|
+
if sources_list.exists():
|
|
217
|
+
content = sources_list.read_text()
|
|
218
|
+
if "br.archive.ubuntu.com" in content or "br.ports.ubuntu.com" in content:
|
|
219
|
+
needs_fix = True
|
|
220
|
+
|
|
221
|
+
if not needs_fix:
|
|
222
|
+
return
|
|
223
|
+
|
|
224
|
+
typer.secho(
|
|
225
|
+
"⚠ Detectado mirror brasileiro possivelmente quebrado. Corrigindo...",
|
|
226
|
+
fg=typer.colors.YELLOW,
|
|
227
|
+
)
|
|
228
|
+
logger.warning("Corrigindo mirror brasileiro quebrado em sources.list")
|
|
229
|
+
|
|
230
|
+
# Backup do original
|
|
231
|
+
backup = sources_list.with_suffix(".list.bak")
|
|
232
|
+
if not backup.exists():
|
|
233
|
+
import shutil as sh
|
|
234
|
+
sh.copy2(sources_list, backup)
|
|
235
|
+
|
|
236
|
+
# Substitui mirror brasileiro pelo principal
|
|
237
|
+
new_content = content.replace("br.archive.ubuntu.com", "archive.ubuntu.com")
|
|
238
|
+
new_content = new_content.replace("br.ports.ubuntu.com", "ports.ubuntu.com")
|
|
239
|
+
sources_list.write_text(new_content)
|
|
240
|
+
|
|
241
|
+
typer.secho("✓ Repositórios corrigidos (backup em sources.list.bak)", fg=typer.colors.GREEN)
|
|
242
|
+
|
|
243
|
+
|
|
206
244
|
def apt_update(ctx: ExecutionContext) -> None:
|
|
207
|
-
|
|
245
|
+
"""Executa apt-get update, corrigindo repositórios quebrados se necessário."""
|
|
246
|
+
_fix_broken_apt_sources(ctx)
|
|
247
|
+
|
|
248
|
+
# Tenta o update; se falhar com erro de Release, tenta corrigir
|
|
249
|
+
try:
|
|
250
|
+
run_cmd(["apt-get", "update"], ctx, retries=2)
|
|
251
|
+
except Exception as e:
|
|
252
|
+
error_msg = str(e).lower()
|
|
253
|
+
if "release" in error_msg or "no longer has" in error_msg:
|
|
254
|
+
typer.secho(
|
|
255
|
+
"⚠ Erro de repositório detectado. Tentando fallback...",
|
|
256
|
+
fg=typer.colors.YELLOW,
|
|
257
|
+
)
|
|
258
|
+
# Força correção e tenta novamente
|
|
259
|
+
ctx_temp = ExecutionContext(dry_run=False)
|
|
260
|
+
_fix_broken_apt_sources(ctx_temp)
|
|
261
|
+
run_cmd(["apt-get", "update"], ctx)
|
|
262
|
+
else:
|
|
263
|
+
raise
|
|
208
264
|
|
|
209
265
|
|
|
210
266
|
def apt_install(packages: Iterable[str], ctx: ExecutionContext) -> None:
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
raijin_server/__init__.py,sha256=
|
|
1
|
+
raijin_server/__init__.py,sha256=AKDS9uS_9UXF-3BZWSJvcQdgvkhbsxMs1o-P7R5xBE4,94
|
|
2
2
|
raijin_server/cli.py,sha256=ZgaSkXwXaND7HHeySjIn4GEmTVTqUDttUfqXJ9yZV1E,16772
|
|
3
3
|
raijin_server/config.py,sha256=Dta2CS1d6RgNiQ84P6dTXk98boFrjzuvhs_fCdlm0I4,4810
|
|
4
4
|
raijin_server/healthchecks.py,sha256=-mQq-dGZ2id16wvPmiTPjDHw14PBwz_i8AXi307V38k,12411
|
|
5
|
-
raijin_server/utils.py,sha256=
|
|
5
|
+
raijin_server/utils.py,sha256=oQM-NGL_kmlNZejFvxXk85MI_WkcxNfwaw5LeAsKUFU,11476
|
|
6
6
|
raijin_server/validators.py,sha256=qOZMHgwjHogVf17UPlxfUCpQd9qAGQW7tycd8mUvnEs,9404
|
|
7
7
|
raijin_server/modules/__init__.py,sha256=e_IbkhLGPcF8to9QUmIESP6fpcTOYcIhaXLKIvqRJMY,920
|
|
8
8
|
raijin_server/modules/apokolips_demo.py,sha256=gMUpYNaO0V20KoNa4ljyA1W9HJbY__O9AEO64NuWGhE,12365
|
|
@@ -36,9 +36,9 @@ raijin_server/scripts/checklist.sh,sha256=j6E0Kmk1EfjLvKK1VpCqzXJAXI_7Bm67LK4ndy
|
|
|
36
36
|
raijin_server/scripts/install.sh,sha256=IZOTujOSGmKpznwgL59picsQNVzYkai6FtfFS3Klf34,3908
|
|
37
37
|
raijin_server/scripts/log_size_metric.sh,sha256=rC2Ck4xnYVJV4Qymu24-indC8bkzfZs4FBqqxGPRl1I,1143
|
|
38
38
|
raijin_server/scripts/pre-deploy-check.sh,sha256=naPUgKjnKgsh-eGDH2623C7zcr9VjDEw1H0lfYaXW8c,4853
|
|
39
|
-
raijin_server-0.2.
|
|
40
|
-
raijin_server-0.2.
|
|
41
|
-
raijin_server-0.2.
|
|
42
|
-
raijin_server-0.2.
|
|
43
|
-
raijin_server-0.2.
|
|
44
|
-
raijin_server-0.2.
|
|
39
|
+
raijin_server-0.2.3.dist-info/licenses/LICENSE,sha256=kJsMCjOiRZE0AQNtxWqBa32z9kMAaF4EUxyHj3hKaJo,1105
|
|
40
|
+
raijin_server-0.2.3.dist-info/METADATA,sha256=Bh7AicqZXP3kLYhHxgf1uB3R4PGI4hcC8AYaDAaUg6A,16941
|
|
41
|
+
raijin_server-0.2.3.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
|
|
42
|
+
raijin_server-0.2.3.dist-info/entry_points.txt,sha256=3ZvxDX4pvcjkIRsXAJ69wIfVmKa78LKo-C3QhqN2KVM,56
|
|
43
|
+
raijin_server-0.2.3.dist-info/top_level.txt,sha256=Yz1xneCRtsZOzbPIcTAcrSxd-1p80pohMXYAZ74dpok,14
|
|
44
|
+
raijin_server-0.2.3.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|