Some checks failed
CI / Run tests and lints (push) Failing after 29s
CI / Build CLI docs (push) Has been skipped
CI / Run Playwright end-to-end tests (mysql) (push) Failing after 3s
CI / Run Playwright end-to-end tests (postgres) (push) Failing after 2s
CI / Run Playwright end-to-end tests (sqlite) (push) Failing after 3s
CodeQL / Analyze (go) (push) Failing after 4s
CodeQL / Analyze (javascript) (push) Failing after 3s
Docker Image Scanners / scanners (push) Failing after 4s
Synchronize Issue Labels / Synchronize Issue Labels (push) Has been skipped
CI / Run end-to-end tests (postgres) (push) Failing after 19s
CI / Run end-to-end tests (sqlite) (push) Failing after 2s
CI / Run Playwright end-to-end tests (cockroach) (push) Failing after 2s
CI / Draft newsletter (push) Has been skipped
CI / Generate release (push) Has been skipped
CI / Pending approval Slack notification (push) Has been skipped
CI / Send newsletter (push) Has been skipped
70 lines
1.2 KiB
Go
70 lines
1.2 KiB
Go
// Copyright © 2023 Ory Corp
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
package remote
|
|
|
|
import (
|
|
"github.com/ory/x/cmdx"
|
|
|
|
"github.com/spf13/cobra"
|
|
|
|
"github.com/ory/kratos/cmd/cliclient"
|
|
)
|
|
|
|
type statusState struct {
|
|
Alive bool `json:"alive"`
|
|
Ready bool `json:"ready"`
|
|
}
|
|
|
|
func (s *statusState) Header() []string {
|
|
return []string{"ALIVE", "READY"}
|
|
}
|
|
|
|
func (s *statusState) Columns() []string {
|
|
f := [2]string{
|
|
"false",
|
|
"false",
|
|
}
|
|
if s.Alive {
|
|
f[0] = "true"
|
|
}
|
|
if s.Ready {
|
|
f[1] = "true"
|
|
}
|
|
return f[:]
|
|
}
|
|
|
|
func (s *statusState) Interface() interface{} {
|
|
return s
|
|
}
|
|
|
|
var statusCmd = &cobra.Command{
|
|
Use: "status",
|
|
Short: "Print the alive and readiness status of a Ory Kratos instance",
|
|
Args: cobra.NoArgs,
|
|
RunE: func(cmd *cobra.Command, args []string) error {
|
|
c, err := cliclient.NewClient(cmd)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
state := &statusState{}
|
|
defer cmdx.PrintRow(cmd, state)
|
|
|
|
alive, _, err := c.MetadataAPI.IsAlive(cmd.Context()).Execute()
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
state.Alive = alive.Status == "ok"
|
|
|
|
ready, _, err := c.MetadataAPI.IsReady(cmd.Context()).Execute()
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
state.Ready = ready.Status == "ok"
|
|
return nil
|
|
},
|
|
}
|