Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 21 additions & 4 deletions cmd/lk/agent_private_link.go
Original file line number Diff line number Diff line change
Expand Up @@ -103,15 +103,15 @@ func buildPrivateLinkListRows(links []*lkproto.PrivateLink, healthByID map[strin
continue
}

status := lkproto.PrivateLinkStatus_PRIVATE_LINK_STATUS_UNKNOWN.String()
status := formatPrivateLinkHealthStatus(lkproto.PrivateLinkStatus_PRIVATE_LINK_STATUS_UNKNOWN)
updatedAt := "-"
reason := "-"

if err, ok := healthErrByID[link.PrivateLinkId]; ok && err != nil {
status = "ERROR"
status = "Error"
reason = err.Error()
} else if health, ok := healthByID[link.PrivateLinkId]; ok && health != nil {
status = health.Status.String()
status = formatPrivateLinkHealthStatus(health.Status)
if health.UpdatedAt != nil {
updatedAt = health.UpdatedAt.AsTime().UTC().Format("2006-01-02T15:04:05Z07:00")
}
Expand All @@ -138,6 +138,23 @@ func buildPrivateLinkListRows(links []*lkproto.PrivateLink, healthByID map[strin
return rows
}

func formatPrivateLinkHealthStatus(status lkproto.PrivateLinkStatus_Status) string {
switch status {
case lkproto.PrivateLinkStatus_PRIVATE_LINK_STATUS_PROVISIONING:
return "Provisioning"
case lkproto.PrivateLinkStatus_PRIVATE_LINK_STATUS_PENDING_APPROVAL:
return "Pending Approval"
case lkproto.PrivateLinkStatus_PRIVATE_LINK_STATUS_HEALTHY:
return "Healthy"
case lkproto.PrivateLinkStatus_PRIVATE_LINK_STATUS_UNHEALTHY:
return "Unhealthy"
case lkproto.PrivateLinkStatus_PRIVATE_LINK_STATUS_UNKNOWN:
return "Unknown"
default:
return status.String()
}
}

func formatPrivateLinkClientError(action string, err error) error {
if twerr, ok := err.(twirp.Error); ok {
return fmt.Errorf("unable to %s private link: %s", action, twerr.Msg())
Expand Down Expand Up @@ -270,7 +287,7 @@ func getPrivateLinkHealthStatus(ctx context.Context, cmd *cli.Command) error {
}
table := util.CreateTable().
Headers("ID", "Health", "Updated At", "Reason").
Row(privateLinkID, resp.Value.Status.String(), updatedAt, reason)
Row(privateLinkID, formatPrivateLinkHealthStatus(resp.Value.Status), updatedAt, reason)
fmt.Println(table)
return nil
}
14 changes: 11 additions & 3 deletions cmd/lk/agent_private_link_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ func TestBuildPrivateLinkListRows_OnePrivateLink(t *testing.T) {
assert.Equal(t, "us-east-1", rows[0][2])
assert.Equal(t, "6379", rows[0][3])
assert.Equal(t, "orders-db-p123.link", rows[0][4])
assert.Equal(t, lkproto.PrivateLinkStatus_PRIVATE_LINK_STATUS_HEALTHY.String(), rows[0][5])
assert.Equal(t, "Healthy", rows[0][5])
assert.Equal(t, "-", rows[0][7])
}

Expand Down Expand Up @@ -124,8 +124,16 @@ func TestBuildPrivateLinkListRows_TwoPrivateLinksDifferentRegions(t *testing.T)
assert.Equal(t, "eu-west-1", rows[1][2])
assert.Equal(t, "orders-db-p123.link", rows[0][4])
assert.Equal(t, "cache-p123.link", rows[1][4])
assert.Equal(t, lkproto.PrivateLinkStatus_PRIVATE_LINK_STATUS_HEALTHY.String(), rows[0][5])
assert.Equal(t, lkproto.PrivateLinkStatus_PRIVATE_LINK_STATUS_HEALTHY.String(), rows[1][5])
assert.Equal(t, "Healthy", rows[0][5])
assert.Equal(t, "Healthy", rows[1][5])
assert.Equal(t, "-", rows[0][7])
assert.Equal(t, "-", rows[1][7])
}

func TestFormatPrivateLinkHealthStatus(t *testing.T) {
assert.Equal(t, "Unknown", formatPrivateLinkHealthStatus(lkproto.PrivateLinkStatus_PRIVATE_LINK_STATUS_UNKNOWN))
assert.Equal(t, "Provisioning", formatPrivateLinkHealthStatus(lkproto.PrivateLinkStatus_PRIVATE_LINK_STATUS_PROVISIONING))
assert.Equal(t, "Pending Approval", formatPrivateLinkHealthStatus(lkproto.PrivateLinkStatus_PRIVATE_LINK_STATUS_PENDING_APPROVAL))
assert.Equal(t, "Healthy", formatPrivateLinkHealthStatus(lkproto.PrivateLinkStatus_PRIVATE_LINK_STATUS_HEALTHY))
assert.Equal(t, "Unhealthy", formatPrivateLinkHealthStatus(lkproto.PrivateLinkStatus_PRIVATE_LINK_STATUS_UNHEALTHY))
}
Loading