Skip to content

feat: CLI turnkey-oc (update com rollback, status, logs) + testes e CI#10

Merged
marcos-mendez merged 1 commit into
mainfrom
feat/turnkey-oc
Jul 21, 2026
Merged

feat: CLI turnkey-oc (update com rollback, status, logs) + testes e CI#10
marcos-mendez merged 1 commit into
mainfrom
feat/turnkey-oc

Conversation

@marcos-mendez

Copy link
Copy Markdown
Member

Closes #4

Wrapper shell no padrão dos appliances oficiais (turnkey-mmctl/turnkey-occ). turnkey-oc update [version [X.Y.Z]] resolve a versão (arg ou última release GitHub), valida o formato (fix MEDIUM: versão vira path root-owned), baixa binário + .sha256 com verificação, instala versionado, troca o symlink e faz health-check com curl -f (fix MEDIUM: 500 não conta como saudável); em falha, rollback automático do symlink — com systemctl ... || true para o caminho de rollback nunca ser abortado pelo set -e (fix HIGH confirmado por reprodução na revisão).

Testes bats cobrem help/usage, parsing de versão instalada e upstream, guard de root, rejeição de versão malformada, aborto por checksum inválido (nada instalado) e rollback por health-check — os dois últimos rodando sob set -e real. CI: shellcheck, ast.parse do Python, guard contra pycache no overlay, sudo bats tests.

- delegação de subcomandos ao binário opencloud via runuser (padrão
  turnkey-mmctl), com env do appliance carregado
- update [version [X.Y.Z]]: valida formato da versão, baixa + verifica
  sha256, troca symlink, health-check (systemctl + curl -f) e rollback
  automático; systemctl com '|| true' para não abortar sob set -e
- 9 testes bats (inclui checksum inválido e rollback) + shellcheck no CI
@marcos-mendez
marcos-mendez merged commit b48da25 into main Jul 21, 2026
1 of 2 checks passed
@marcos-mendez
marcos-mendez deleted the feat/turnkey-oc branch July 21, 2026 20:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Fase 1: CLI turnkey-oc (update com rollback, status, logs, delegação)

1 participant