Skip to content

Commit df25848

Browse files
committed
feat: add queries to clean lost connections in PGCoordinator
1 parent a6dfa38 commit df25848

File tree

7 files changed

+104
-0
lines changed

7 files changed

+104
-0
lines changed

coderd/database/dbauthz/dbauthz.go

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -695,6 +695,20 @@ func (q *querier) CleanTailnetCoordinators(ctx context.Context) error {
695695
return q.db.CleanTailnetCoordinators(ctx)
696696
}
697697

698+
func (q *querier) CleanTailnetLostPeers(ctx context.Context) error {
699+
if err := q.authorizeContext(ctx, rbac.ActionDelete, rbac.ResourceTailnetCoordinator); err != nil {
700+
return err
701+
}
702+
return q.db.CleanTailnetLostPeers(ctx)
703+
}
704+
705+
func (q *querier) CleanTailnetTunnels(ctx context.Context) error {
706+
if err := q.authorizeContext(ctx, rbac.ActionDelete, rbac.ResourceTailnetCoordinator); err != nil {
707+
return err
708+
}
709+
return q.db.CleanTailnetTunnels(ctx)
710+
}
711+
698712
func (q *querier) DeleteAPIKeyByID(ctx context.Context, id string) error {
699713
return deleteQ(q.log, q.auth, q.db.GetAPIKeyByID, q.db.DeleteAPIKeyByID)(ctx, id)
700714
}

coderd/database/dbmem/dbmem.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -956,6 +956,14 @@ func (*FakeQuerier) CleanTailnetCoordinators(_ context.Context) error {
956956
return ErrUnimplemented
957957
}
958958

959+
func (*FakeQuerier) CleanTailnetLostPeers(context.Context) error {
960+
return ErrUnimplemented
961+
}
962+
963+
func (*FakeQuerier) CleanTailnetTunnels(context.Context) error {
964+
return ErrUnimplemented
965+
}
966+
959967
func (q *FakeQuerier) DeleteAPIKeyByID(_ context.Context, id string) error {
960968
q.mutex.Lock()
961969
defer q.mutex.Unlock()

coderd/database/dbmetrics/dbmetrics.go

Lines changed: 14 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

coderd/database/dbmock/dbmock.go

Lines changed: 28 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

coderd/database/querier.go

Lines changed: 2 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

coderd/database/queries.sql.go

Lines changed: 25 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

coderd/database/queries/tailnet.sql

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,19 @@ DELETE
122122
FROM tailnet_coordinators
123123
WHERE heartbeat_at < now() - INTERVAL '24 HOURS';
124124

125+
-- name: CleanTailnetLostPeers :exec
126+
DELETE
127+
FROM tailnet_peers
128+
WHERE updated_at < now() - INTERVAL '24 HOURS' AND status = 'lost'::tailnet_status;
129+
130+
-- name: CleanTailnetTunnels :exec
131+
DELETE FROM tailnet_tunnels
132+
WHERE updated_at < now() - INTERVAL '24 HOURS' AND
133+
NOT EXISTS (
134+
SELECT 1 FROM tailnet_peers
135+
WHERE id = tailnet_tunnels.src_id AND coordinator_id = tailnet_tunnels.coordinator_id
136+
);
137+
125138
-- name: UpsertTailnetPeer :one
126139
INSERT INTO
127140
tailnet_peers (

0 commit comments

Comments
 (0)