mirror of
https://github.com/hanzo-fi/stack.git
synced 2026-10-30 20:34:43 +00:00
* feat: first commit * feat: import wallet, fctl sdk and some stuff * fix: make hooks enabled only if changes in the code * feat: refine scripts * chore: disable pre commit hooks * chore: update payments * feat: make all hooks pass this has required modifications on almost each project * git subrepo push services/webhooks subrepo: subdir: "services/webhooks" merged: "ca5d19c5" upstream: origin: "webhooks" branch: "main" commit: "ca5d19c5" git-subrepo: version: "0.4.5" origin: "ssh://[email protected]/ingydotnet/git-subrepo" commit: "dbb99be" * chore: push backport * chore: backports * chore: backports * chore: backports * chore: backports * chore: backports * chore: remove test code * chore: backports * fix: branch * git subrepo push --branch=chore/backports --force services/fctl subrepo: subdir: "services/fctl" merged: "0d98fdaa" upstream: origin: "fctl" branch: "chore/backports" commit: "0d98fdaa" git-subrepo: version: "0.4.5" origin: "ssh://[email protected]/ingydotnet/git-subrepo" commit: "dbb99be" * feat(fctl): fix argument * git subrepo push --branch=chore/backports --force services/fctl subrepo: subdir: "services/fctl" merged: "5a7a41f9" upstream: origin: "fctl" branch: "chore/backports" commit: "5a7a41f9" git-subrepo: version: "0.4.5" origin: "ssh://[email protected]/ingydotnet/git-subrepo" commit: "dbb99be" * feat: remove ledger * git subrepo clone ledger services/ledger subrepo: subdir: "services/ledger" merged: "ad57138a" upstream: origin: "ledger" branch: "main" commit: "ad57138a" git-subrepo: version: "0.4.5" origin: "ssh://[email protected]/ingydotnet/git-subrepo" commit: "dbb99be" * feat(auth): fix dependencies * chore: backports * feat: remove ledger * feat: add ledger * feat: remove auth * feat: fetch auth main * feat: remove search * feat: add search * feat: remove submodules * feat: reomve payments * feat: add payments from main * feat: add 'yarn install' before generate sdk * feat: Update CI * feat: remove fctl * feat: add fctl * chore: go mod tidy * git subrepo push services/fctl subrepo: subdir: "services/fctl" merged: "5d4c919" upstream: origin: "fctl" branch: "main" commit: "5d4c919" git-subrepo: version: "0.4.5" origin: "ssh://[email protected]/ingydotnet/git-subrepo" commit: "dbb99be" * feat: add go-project-template * feat: update go-project-template under new go libs * git subrepo push libs/go-project-template subrepo: subdir: "libs/go-project-template" merged: "40e49f0" upstream: origin: "go-project-template" branch: "main" commit: "40e49f0" git-subrepo: version: "0.4.5" origin: "ssh://[email protected]/ingydotnet/git-subrepo" commit: "dbb99be" * fix: sdk hook * feat: Update CI * feat: Update CI * feat: Update CI * feat: Update CI * feat: Update * feat: CI Update * feat: Clear CI * feat: CI clear * fee * feat: CI * feat: Update CI * feat: Update CI * feat: Desactivate release mode * feat: Update CI * feat: Update CI * ci: upgrade * feat: update go-libs * feat(orchetration): init project * git subrepo push libs/go-project-template subrepo: subdir: "libs/go-project-template" merged: "cbead19" upstream: origin: "go-project-template" branch: "main" commit: "cbead19" git-subrepo: version: "0.4.5" origin: "ssh://[email protected]/ingydotnet/git-subrepo" commit: "dbb99be" * fix: commitlint * feat: little clean & fix pre-commit * fix: for pre-commit * ci: Improvement * ci: Improvement * ci: Improvement * ci: Improvement * ci: Improvement * chore: add machine * ci: Improvement * ci: Improvement * ci: Improvement * ci: Improvement * feat: Add all SDK * ci: Improvement * feat: Update taskfile & CI * feat: Update taskfile & CI * feat: List foliders in find * feat: List foliders in find * feat: List foliders in find * feat: List foliders in find * feat: List foliders in find * feat: List foliders in find * feat: Add GoBuild * feat: Add GoBuild * feat: Add GoBuild * feat: Add GoBuild * feat: Add GoBuild * feat: Add GoBuild * feat: Add GoBuild * feat: Add GoBuild * feat: Add GoBuild * feat: Add GoBuild * chore: Empty-Commit * feat: Add GoBuild * feat: Add GoBuild * feat: Add GoBuild * feat: Add GoBuild * feat: Add GoBuild * feat: Add GoBuild * feat: Add GoBuild * feat: Add GoBuild * feat: Add GoBuild * feat: Add GoBuild * feat: Add GoBuild * feat: Add GoBuild * feat: Add GoBuild * feat: Add GoBuild * feat: big bang * feat: big bang * feat: big bang * ci: Update * ci: Add release * ci: Update .goreleaser.yml * feat(orchestration): first working version * feat(operator): simplify * feat(operator): factorize ingress, services, auth clients... * feat(operator): remove resources * fix: auth configuration causing pods reboot * feat: Update gitpod configuration * feat(gitpod): Add Garden * feat(gitpod): Add rsync * feat(gitpod): Add packages * feat(gitpod): Add packages * feat(gitpod): Optimize configuration * feat(gitpod): restore default config * feat(gitpod): Add port 80 & 443 on qemu * feat(gitpod): Ignore .garden fodler * feat(gitpod): Upgrade qemu * feat: add 'stack' label on created objects * feat: add taskfile operator to root taskfile * feat(operator): add lint to taskfile * feat(operator): add build.Dockerfile * fix(operator): fix build.Dockerfile * fix(operator): restore service names * fix(operator): ingresses * fix(operator): fix middlewares * fix(operator): duplicate middlewares entries * fix(operator): control ingress path prefix * feat(operator): disable ingress on service if not specified in configuration * fix(fctl): membership uri * fix(orchestration): application/json content-type * feat: wip * fix: orchestration run ids * fix: catch panic on workflow executions Co-authored-by: Ragot Geoffrey <[email protected]> Co-authored-by: Antoine Gelloz <[email protected]>
67 lines
1.1 KiB
Go
67 lines
1.1 KiB
Go
package health
|
|
|
|
import (
|
|
"encoding/json"
|
|
"net/http"
|
|
"sync"
|
|
)
|
|
|
|
type HealthController struct {
|
|
Checks []NamedCheck
|
|
}
|
|
|
|
type result struct {
|
|
Check NamedCheck
|
|
Err error
|
|
}
|
|
|
|
func (ctrl *HealthController) Check(w http.ResponseWriter, r *http.Request) {
|
|
sg := sync.WaitGroup{}
|
|
sg.Add(len(ctrl.Checks))
|
|
|
|
results := make(chan result, len(ctrl.Checks))
|
|
for _, ch := range ctrl.Checks {
|
|
go func(ch NamedCheck) {
|
|
defer sg.Done()
|
|
select {
|
|
case <-r.Context().Done():
|
|
return
|
|
case results <- result{
|
|
Check: ch,
|
|
Err: ch.Do(r.Context()),
|
|
}:
|
|
}
|
|
}(ch)
|
|
}
|
|
sg.Wait()
|
|
close(results)
|
|
|
|
response := map[string]string{}
|
|
hasError := false
|
|
for r := range results {
|
|
if r.Err != nil {
|
|
hasError = true
|
|
response[r.Check.Name()] = r.Err.Error()
|
|
} else {
|
|
response[r.Check.Name()] = "OK"
|
|
}
|
|
}
|
|
|
|
if hasError {
|
|
w.WriteHeader(http.StatusInternalServerError)
|
|
} else {
|
|
w.WriteHeader(http.StatusOK)
|
|
}
|
|
|
|
err := json.NewEncoder(w).Encode(response)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
}
|
|
|
|
func NewHealthController(checks []NamedCheck) *HealthController {
|
|
return &HealthController{
|
|
Checks: checks,
|
|
}
|
|
}
|