diff options
author | Sami Hiltunen <shiltunen@gitlab.com> | 2022-04-06 15:36:53 +0300 |
---|---|---|
committer | Sami Hiltunen <shiltunen@gitlab.com> | 2022-04-13 12:42:58 +0300 |
commit | 4e9fc294b04971e588476850ecc094d4e54cd062 (patch) | |
tree | e976a568d9be5bc08478588415def1faa9e57008 /cmd | |
parent | 170c4828a53059aa6885e0e6fbbf306f4100667d (diff) |
Expose last verification time in 'praefect metadata'
Administrator's may want to know when Praefect has last verified a
replica. This commit exposes that information via the 'praefect metadata'
command.
Changelog: changed
Diffstat (limited to 'cmd')
-rw-r--r-- | cmd/praefect/subcmd_metadata.go | 6 | ||||
-rw-r--r-- | cmd/praefect/subcmd_metadata_test.go | 9 |
2 files changed, 15 insertions, 0 deletions
diff --git a/cmd/praefect/subcmd_metadata.go b/cmd/praefect/subcmd_metadata.go index e913a0eec..3cc9b8292 100644 --- a/cmd/praefect/subcmd_metadata.go +++ b/cmd/praefect/subcmd_metadata.go @@ -99,9 +99,15 @@ func (cmd *metadataSubcommand) Exec(flags *flag.FlagSet, cfg config.Config) erro generationText = fmt.Sprintf("%d, behind by %d changes", replica.Generation, metadata.Generation-replica.Generation) } + verifiedAt := "unverified" + if replica.VerifiedAt.IsValid() { + verifiedAt = replica.VerifiedAt.AsTime().String() + } + cmd.println(" Generation: %s", generationText) cmd.println(" Healthy: %v", replica.Healthy) cmd.println(" Valid Primary: %v", replica.ValidPrimary) + cmd.println(" Verified At: %s", verifiedAt) } return nil } diff --git a/cmd/praefect/subcmd_metadata_test.go b/cmd/praefect/subcmd_metadata_test.go index ee433fa87..dbca8c27c 100644 --- a/cmd/praefect/subcmd_metadata_test.go +++ b/cmd/praefect/subcmd_metadata_test.go @@ -5,6 +5,7 @@ import ( "errors" "fmt" "testing" + "time" "github.com/stretchr/testify/require" "gitlab.com/gitlab-org/gitaly/v14/internal/praefect/config" @@ -33,6 +34,11 @@ func TestMetadataSubcommand(t *testing.T) { require.NoError(t, rs.CreateRepository(ctx, 1, "virtual-storage", "relative-path", "replica-path", "primary", []string{"secondary-1"}, []string{"secondary-2"}, true, true)) require.NoError(t, rs.IncrementGeneration(ctx, 1, "primary", nil)) + _, err := tx.ExecContext(ctx, "UPDATE storage_repositories SET verified_at = $1 WHERE storage = 'primary'", + time.Date(2021, time.April, 1, 10, 4, 20, 64, time.UTC), + ) + require.NoError(t, err) + ln, clean := listenAndServe(t, []svcRegistrar{ registerPraefectInfoServer(info.NewServer(config.Config{}, rs, nil, nil, nil)), }) @@ -105,16 +111,19 @@ Replicas: Generation: 1, fully up to date Healthy: true Valid Primary: true + Verified At: 2021-04-01 10:04:20 +0000 UTC - Storage: "secondary-1" Assigned: true Generation: 0, behind by 1 changes Healthy: true Valid Primary: false + Verified At: unverified - Storage: "secondary-2" Assigned: true Generation: replica not yet created Healthy: false Valid Primary: false + Verified At: unverified `, stdout.String()) }) } |