Go · 6943 bytes Raw Blame History
1 // Code generated by sqlc. DO NOT EDIT.
2 // versions:
3 // sqlc v1.31.1
4 // source: workflow_runners.sql
5
6 package actionsdb
7
8 import (
9 "context"
10
11 "github.com/jackc/pgx/v5/pgtype"
12 )
13
14 const getRunnerByID = `-- name: GetRunnerByID :one
15 SELECT id, name, labels, capacity, status, last_heartbeat_at,
16 registered_by_user_id, created_at, updated_at
17 FROM workflow_runners
18 WHERE id = $1
19 `
20
21 func (q *Queries) GetRunnerByID(ctx context.Context, db DBTX, id int64) (WorkflowRunner, error) {
22 row := db.QueryRow(ctx, getRunnerByID, id)
23 var i WorkflowRunner
24 err := row.Scan(
25 &i.ID,
26 &i.Name,
27 &i.Labels,
28 &i.Capacity,
29 &i.Status,
30 &i.LastHeartbeatAt,
31 &i.RegisteredByUserID,
32 &i.CreatedAt,
33 &i.UpdatedAt,
34 )
35 return i, err
36 }
37
38 const getRunnerByName = `-- name: GetRunnerByName :one
39 SELECT id, name, labels, capacity, status, last_heartbeat_at,
40 registered_by_user_id, created_at, updated_at
41 FROM workflow_runners
42 WHERE name = $1
43 `
44
45 func (q *Queries) GetRunnerByName(ctx context.Context, db DBTX, name string) (WorkflowRunner, error) {
46 row := db.QueryRow(ctx, getRunnerByName, name)
47 var i WorkflowRunner
48 err := row.Scan(
49 &i.ID,
50 &i.Name,
51 &i.Labels,
52 &i.Capacity,
53 &i.Status,
54 &i.LastHeartbeatAt,
55 &i.RegisteredByUserID,
56 &i.CreatedAt,
57 &i.UpdatedAt,
58 )
59 return i, err
60 }
61
62 const getRunnerByTokenHash = `-- name: GetRunnerByTokenHash :one
63 SELECT r.id, r.name, r.labels, r.capacity, r.status,
64 r.last_heartbeat_at, r.created_at
65 FROM workflow_runners r
66 JOIN runner_tokens t ON t.runner_id = r.id
67 WHERE t.token_hash = $1
68 AND t.revoked_at IS NULL
69 AND (t.expires_at IS NULL OR t.expires_at > now())
70 `
71
72 type GetRunnerByTokenHashRow struct {
73 ID int64
74 Name string
75 Labels []string
76 Capacity int32
77 Status WorkflowRunnerStatus
78 LastHeartbeatAt pgtype.Timestamptz
79 CreatedAt pgtype.Timestamptz
80 }
81
82 func (q *Queries) GetRunnerByTokenHash(ctx context.Context, db DBTX, tokenHash []byte) (GetRunnerByTokenHashRow, error) {
83 row := db.QueryRow(ctx, getRunnerByTokenHash, tokenHash)
84 var i GetRunnerByTokenHashRow
85 err := row.Scan(
86 &i.ID,
87 &i.Name,
88 &i.Labels,
89 &i.Capacity,
90 &i.Status,
91 &i.LastHeartbeatAt,
92 &i.CreatedAt,
93 )
94 return i, err
95 }
96
97 const heartbeatRunner = `-- name: HeartbeatRunner :one
98 UPDATE workflow_runners
99 SET labels = $2,
100 capacity = $3,
101 last_heartbeat_at = now(),
102 status = $4,
103 updated_at = now()
104 WHERE id = $1
105 RETURNING id, name, labels, capacity, status, last_heartbeat_at,
106 registered_by_user_id, created_at, updated_at
107 `
108
109 type HeartbeatRunnerParams struct {
110 ID int64
111 Labels []string
112 Capacity int32
113 Status WorkflowRunnerStatus
114 }
115
116 func (q *Queries) HeartbeatRunner(ctx context.Context, db DBTX, arg HeartbeatRunnerParams) (WorkflowRunner, error) {
117 row := db.QueryRow(ctx, heartbeatRunner,
118 arg.ID,
119 arg.Labels,
120 arg.Capacity,
121 arg.Status,
122 )
123 var i WorkflowRunner
124 err := row.Scan(
125 &i.ID,
126 &i.Name,
127 &i.Labels,
128 &i.Capacity,
129 &i.Status,
130 &i.LastHeartbeatAt,
131 &i.RegisteredByUserID,
132 &i.CreatedAt,
133 &i.UpdatedAt,
134 )
135 return i, err
136 }
137
138 const insertRunner = `-- name: InsertRunner :one
139
140 INSERT INTO workflow_runners (name, labels, capacity, registered_by_user_id)
141 VALUES ($1, $2, $3, $4)
142 RETURNING id, name, labels, capacity, status, last_heartbeat_at,
143 registered_by_user_id, created_at, updated_at
144 `
145
146 type InsertRunnerParams struct {
147 Name string
148 Labels []string
149 Capacity int32
150 RegisteredByUserID pgtype.Int8
151 }
152
153 // SPDX-License-Identifier: AGPL-3.0-or-later
154 func (q *Queries) InsertRunner(ctx context.Context, db DBTX, arg InsertRunnerParams) (WorkflowRunner, error) {
155 row := db.QueryRow(ctx, insertRunner,
156 arg.Name,
157 arg.Labels,
158 arg.Capacity,
159 arg.RegisteredByUserID,
160 )
161 var i WorkflowRunner
162 err := row.Scan(
163 &i.ID,
164 &i.Name,
165 &i.Labels,
166 &i.Capacity,
167 &i.Status,
168 &i.LastHeartbeatAt,
169 &i.RegisteredByUserID,
170 &i.CreatedAt,
171 &i.UpdatedAt,
172 )
173 return i, err
174 }
175
176 const insertRunnerToken = `-- name: InsertRunnerToken :one
177 INSERT INTO runner_tokens (runner_id, token_hash, expires_at)
178 VALUES ($1, $2, $3)
179 RETURNING id, runner_id, token_hash, expires_at, revoked_at, created_at
180 `
181
182 type InsertRunnerTokenParams struct {
183 RunnerID int64
184 TokenHash []byte
185 ExpiresAt pgtype.Timestamptz
186 }
187
188 func (q *Queries) InsertRunnerToken(ctx context.Context, db DBTX, arg InsertRunnerTokenParams) (RunnerToken, error) {
189 row := db.QueryRow(ctx, insertRunnerToken, arg.RunnerID, arg.TokenHash, arg.ExpiresAt)
190 var i RunnerToken
191 err := row.Scan(
192 &i.ID,
193 &i.RunnerID,
194 &i.TokenHash,
195 &i.ExpiresAt,
196 &i.RevokedAt,
197 &i.CreatedAt,
198 )
199 return i, err
200 }
201
202 const listRunners = `-- name: ListRunners :many
203 SELECT id, name, labels, capacity, status, last_heartbeat_at, created_at
204 FROM workflow_runners
205 ORDER BY name ASC
206 `
207
208 type ListRunnersRow struct {
209 ID int64
210 Name string
211 Labels []string
212 Capacity int32
213 Status WorkflowRunnerStatus
214 LastHeartbeatAt pgtype.Timestamptz
215 CreatedAt pgtype.Timestamptz
216 }
217
218 func (q *Queries) ListRunners(ctx context.Context, db DBTX) ([]ListRunnersRow, error) {
219 rows, err := db.Query(ctx, listRunners)
220 if err != nil {
221 return nil, err
222 }
223 defer rows.Close()
224 items := []ListRunnersRow{}
225 for rows.Next() {
226 var i ListRunnersRow
227 if err := rows.Scan(
228 &i.ID,
229 &i.Name,
230 &i.Labels,
231 &i.Capacity,
232 &i.Status,
233 &i.LastHeartbeatAt,
234 &i.CreatedAt,
235 ); err != nil {
236 return nil, err
237 }
238 items = append(items, i)
239 }
240 if err := rows.Err(); err != nil {
241 return nil, err
242 }
243 return items, nil
244 }
245
246 const lockRunnerByID = `-- name: LockRunnerByID :one
247 SELECT id, name, labels, capacity, status, last_heartbeat_at,
248 registered_by_user_id, created_at, updated_at
249 FROM workflow_runners
250 WHERE id = $1
251 FOR UPDATE
252 `
253
254 func (q *Queries) LockRunnerByID(ctx context.Context, db DBTX, id int64) (WorkflowRunner, error) {
255 row := db.QueryRow(ctx, lockRunnerByID, id)
256 var i WorkflowRunner
257 err := row.Scan(
258 &i.ID,
259 &i.Name,
260 &i.Labels,
261 &i.Capacity,
262 &i.Status,
263 &i.LastHeartbeatAt,
264 &i.RegisteredByUserID,
265 &i.CreatedAt,
266 &i.UpdatedAt,
267 )
268 return i, err
269 }
270
271 const revokeAllTokensForRunner = `-- name: RevokeAllTokensForRunner :exec
272 UPDATE runner_tokens
273 SET revoked_at = now()
274 WHERE runner_id = $1 AND revoked_at IS NULL
275 `
276
277 func (q *Queries) RevokeAllTokensForRunner(ctx context.Context, db DBTX, runnerID int64) error {
278 _, err := db.Exec(ctx, revokeAllTokensForRunner, runnerID)
279 return err
280 }
281
282 const touchRunnerHeartbeat = `-- name: TouchRunnerHeartbeat :exec
283 UPDATE workflow_runners
284 SET last_heartbeat_at = now(),
285 status = $2,
286 updated_at = now()
287 WHERE id = $1
288 `
289
290 type TouchRunnerHeartbeatParams struct {
291 ID int64
292 Status WorkflowRunnerStatus
293 }
294
295 func (q *Queries) TouchRunnerHeartbeat(ctx context.Context, db DBTX, arg TouchRunnerHeartbeatParams) error {
296 _, err := db.Exec(ctx, touchRunnerHeartbeat, arg.ID, arg.Status)
297 return err
298 }
299