raijin-server 0.2.2__tar.gz → 0.2.3__tar.gz

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.
Files changed (51) hide show
  1. {raijin_server-0.2.2/src/raijin_server.egg-info → raijin_server-0.2.3}/PKG-INFO +1 -1
  2. {raijin_server-0.2.2 → raijin_server-0.2.3}/setup.cfg +1 -1
  3. {raijin_server-0.2.2 → raijin_server-0.2.3}/src/raijin_server/__init__.py +1 -1
  4. {raijin_server-0.2.2 → raijin_server-0.2.3}/src/raijin_server/utils.py +57 -1
  5. {raijin_server-0.2.2 → raijin_server-0.2.3/src/raijin_server.egg-info}/PKG-INFO +1 -1
  6. {raijin_server-0.2.2 → raijin_server-0.2.3}/LICENSE +0 -0
  7. {raijin_server-0.2.2 → raijin_server-0.2.3}/README.md +0 -0
  8. {raijin_server-0.2.2 → raijin_server-0.2.3}/pyproject.toml +0 -0
  9. {raijin_server-0.2.2 → raijin_server-0.2.3}/src/raijin_server/cli.py +0 -0
  10. {raijin_server-0.2.2 → raijin_server-0.2.3}/src/raijin_server/config.py +0 -0
  11. {raijin_server-0.2.2 → raijin_server-0.2.3}/src/raijin_server/healthchecks.py +0 -0
  12. {raijin_server-0.2.2 → raijin_server-0.2.3}/src/raijin_server/modules/__init__.py +0 -0
  13. {raijin_server-0.2.2 → raijin_server-0.2.3}/src/raijin_server/modules/apokolips_demo.py +0 -0
  14. {raijin_server-0.2.2 → raijin_server-0.2.3}/src/raijin_server/modules/bootstrap.py +0 -0
  15. {raijin_server-0.2.2 → raijin_server-0.2.3}/src/raijin_server/modules/calico.py +0 -0
  16. {raijin_server-0.2.2 → raijin_server-0.2.3}/src/raijin_server/modules/cert_manager.py +0 -0
  17. {raijin_server-0.2.2 → raijin_server-0.2.3}/src/raijin_server/modules/essentials.py +0 -0
  18. {raijin_server-0.2.2 → raijin_server-0.2.3}/src/raijin_server/modules/firewall.py +0 -0
  19. {raijin_server-0.2.2 → raijin_server-0.2.3}/src/raijin_server/modules/full_install.py +0 -0
  20. {raijin_server-0.2.2 → raijin_server-0.2.3}/src/raijin_server/modules/grafana.py +0 -0
  21. {raijin_server-0.2.2 → raijin_server-0.2.3}/src/raijin_server/modules/hardening.py +0 -0
  22. {raijin_server-0.2.2 → raijin_server-0.2.3}/src/raijin_server/modules/harness.py +0 -0
  23. {raijin_server-0.2.2 → raijin_server-0.2.3}/src/raijin_server/modules/istio.py +0 -0
  24. {raijin_server-0.2.2 → raijin_server-0.2.3}/src/raijin_server/modules/kafka.py +0 -0
  25. {raijin_server-0.2.2 → raijin_server-0.2.3}/src/raijin_server/modules/kong.py +0 -0
  26. {raijin_server-0.2.2 → raijin_server-0.2.3}/src/raijin_server/modules/kubernetes.py +0 -0
  27. {raijin_server-0.2.2 → raijin_server-0.2.3}/src/raijin_server/modules/loki.py +0 -0
  28. {raijin_server-0.2.2 → raijin_server-0.2.3}/src/raijin_server/modules/minio.py +0 -0
  29. {raijin_server-0.2.2 → raijin_server-0.2.3}/src/raijin_server/modules/network.py +0 -0
  30. {raijin_server-0.2.2 → raijin_server-0.2.3}/src/raijin_server/modules/observability_dashboards.py +0 -0
  31. {raijin_server-0.2.2 → raijin_server-0.2.3}/src/raijin_server/modules/observability_ingress.py +0 -0
  32. {raijin_server-0.2.2 → raijin_server-0.2.3}/src/raijin_server/modules/prometheus.py +0 -0
  33. {raijin_server-0.2.2 → raijin_server-0.2.3}/src/raijin_server/modules/sanitize.py +0 -0
  34. {raijin_server-0.2.2 → raijin_server-0.2.3}/src/raijin_server/modules/secrets.py +0 -0
  35. {raijin_server-0.2.2 → raijin_server-0.2.3}/src/raijin_server/modules/ssh_hardening.py +0 -0
  36. {raijin_server-0.2.2 → raijin_server-0.2.3}/src/raijin_server/modules/traefik.py +0 -0
  37. {raijin_server-0.2.2 → raijin_server-0.2.3}/src/raijin_server/modules/velero.py +0 -0
  38. {raijin_server-0.2.2 → raijin_server-0.2.3}/src/raijin_server/modules/vpn.py +0 -0
  39. {raijin_server-0.2.2 → raijin_server-0.2.3}/src/raijin_server/scripts/__init__.py +0 -0
  40. {raijin_server-0.2.2 → raijin_server-0.2.3}/src/raijin_server/scripts/checklist.sh +0 -0
  41. {raijin_server-0.2.2 → raijin_server-0.2.3}/src/raijin_server/scripts/install.sh +0 -0
  42. {raijin_server-0.2.2 → raijin_server-0.2.3}/src/raijin_server/scripts/log_size_metric.sh +0 -0
  43. {raijin_server-0.2.2 → raijin_server-0.2.3}/src/raijin_server/scripts/pre-deploy-check.sh +0 -0
  44. {raijin_server-0.2.2 → raijin_server-0.2.3}/src/raijin_server/validators.py +0 -0
  45. {raijin_server-0.2.2 → raijin_server-0.2.3}/src/raijin_server.egg-info/SOURCES.txt +0 -0
  46. {raijin_server-0.2.2 → raijin_server-0.2.3}/src/raijin_server.egg-info/dependency_links.txt +0 -0
  47. {raijin_server-0.2.2 → raijin_server-0.2.3}/src/raijin_server.egg-info/entry_points.txt +0 -0
  48. {raijin_server-0.2.2 → raijin_server-0.2.3}/src/raijin_server.egg-info/requires.txt +0 -0
  49. {raijin_server-0.2.2 → raijin_server-0.2.3}/src/raijin_server.egg-info/top_level.txt +0 -0
  50. {raijin_server-0.2.2 → raijin_server-0.2.3}/tests/test_full_install_sequence.py +0 -0
  51. {raijin_server-0.2.2 → raijin_server-0.2.3}/tests/test_registry.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: raijin-server
3
- Version: 0.2.2
3
+ Version: 0.2.3
4
4
  Summary: CLI para automacao de setup e hardening de servidores Ubuntu Server.
5
5
  Home-page: https://example.com/raijin-server
6
6
  Author: Equipe Raijin
@@ -1,6 +1,6 @@
1
1
  [metadata]
2
2
  name = raijin-server
3
- version = 0.2.2
3
+ version = 0.2.3
4
4
  description = CLI para automacao de setup e hardening de servidores Ubuntu Server.
5
5
  long_description = file: README.md
6
6
  long_description_content_type = text/markdown
@@ -1,5 +1,5 @@
1
1
  """Pacote principal do CLI Raijin Server."""
2
2
 
3
- __version__ = "0.2.2"
3
+ __version__ = "0.2.3"
4
4
 
5
5
  __all__ = ["__version__"]
@@ -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
- run_cmd(["apt-get", "update"], ctx)
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,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: raijin-server
3
- Version: 0.2.2
3
+ Version: 0.2.3
4
4
  Summary: CLI para automacao de setup e hardening de servidores Ubuntu Server.
5
5
  Home-page: https://example.com/raijin-server
6
6
  Author: Equipe Raijin
File without changes
File without changes