mirror of
https://github.com/coder/coder.git
synced 2025-07-03 16:13:58 +00:00
feat: purge old provisioner daemons (#10949)
This commit is contained in:
@ -2986,6 +2986,22 @@ func (q *sqlQuerier) GetParameterSchemasByJobID(ctx context.Context, jobID uuid.
|
||||
return items, nil
|
||||
}
|
||||
|
||||
const deleteOldProvisionerDaemons = `-- name: DeleteOldProvisionerDaemons :exec
|
||||
DELETE FROM provisioner_daemons WHERE (
|
||||
(created_at < (NOW() - INTERVAL '7 days') AND updated_at IS NULL) OR
|
||||
(updated_at IS NOT NULL AND updated_at < (NOW() - INTERVAL '7 days'))
|
||||
)
|
||||
`
|
||||
|
||||
// Delete provisioner daemons that have been created at least a week ago
|
||||
// and have not connected to coderd since a week.
|
||||
// A provisioner daemon with "zeroed" updated_at column indicates possible
|
||||
// connectivity issues (no provisioner daemon activity since registration).
|
||||
func (q *sqlQuerier) DeleteOldProvisionerDaemons(ctx context.Context) error {
|
||||
_, err := q.db.ExecContext(ctx, deleteOldProvisionerDaemons)
|
||||
return err
|
||||
}
|
||||
|
||||
const getProvisionerDaemons = `-- name: GetProvisionerDaemons :many
|
||||
SELECT
|
||||
id, created_at, updated_at, name, provisioners, replica_id, tags
|
||||
@ -3031,10 +3047,11 @@ INSERT INTO
|
||||
created_at,
|
||||
"name",
|
||||
provisioners,
|
||||
tags
|
||||
tags,
|
||||
updated_at
|
||||
)
|
||||
VALUES
|
||||
($1, $2, $3, $4, $5) RETURNING id, created_at, updated_at, name, provisioners, replica_id, tags
|
||||
($1, $2, $3, $4, $5, $6) RETURNING id, created_at, updated_at, name, provisioners, replica_id, tags
|
||||
`
|
||||
|
||||
type InsertProvisionerDaemonParams struct {
|
||||
@ -3043,6 +3060,7 @@ type InsertProvisionerDaemonParams struct {
|
||||
Name string `db:"name" json:"name"`
|
||||
Provisioners []ProvisionerType `db:"provisioners" json:"provisioners"`
|
||||
Tags StringMap `db:"tags" json:"tags"`
|
||||
UpdatedAt sql.NullTime `db:"updated_at" json:"updated_at"`
|
||||
}
|
||||
|
||||
func (q *sqlQuerier) InsertProvisionerDaemon(ctx context.Context, arg InsertProvisionerDaemonParams) (ProvisionerDaemon, error) {
|
||||
@ -3052,6 +3070,7 @@ func (q *sqlQuerier) InsertProvisionerDaemon(ctx context.Context, arg InsertProv
|
||||
arg.Name,
|
||||
pq.Array(arg.Provisioners),
|
||||
arg.Tags,
|
||||
arg.UpdatedAt,
|
||||
)
|
||||
var i ProvisionerDaemon
|
||||
err := row.Scan(
|
||||
|
Reference in New Issue
Block a user