Skip to content

Commit 4326816

Browse files
committed
Add tags to provisioner daemons
1 parent 3033c58 commit 4326816

17 files changed

+194
-192
lines changed

.vscode/settings.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
"codersdk",
1818
"cronstrue",
1919
"databasefake",
20+
"dbtype",
2021
"DERP",
2122
"derphttp",
2223
"derpmap",

coderd/database/databasefake/databasefake.go

Lines changed: 5 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package databasefake
33
import (
44
"context"
55
"database/sql"
6+
"reflect"
67
"sort"
78
"strings"
89
"sync"
@@ -146,6 +147,9 @@ func (q *fakeQuerier) AcquireProvisionerJob(_ context.Context, arg database.Acqu
146147
if !found {
147148
continue
148149
}
150+
if !reflect.DeepEqual(arg.Tags, provisionerJob.Tags) {
151+
continue
152+
}
149153
provisionerJob.StartedAt = arg.StartedAt
150154
provisionerJob.UpdatedAt = arg.StartedAt.Time
151155
provisionerJob.WorkerID = arg.WorkerID
@@ -1890,26 +1894,6 @@ func (q *fakeQuerier) GetProvisionerDaemonByID(_ context.Context, id uuid.UUID)
18901894
return database.ProvisionerDaemon{}, sql.ErrNoRows
18911895
}
18921896

1893-
func (q *fakeQuerier) GetProvisionerDaemonByAuthToken(_ context.Context, token uuid.NullUUID) (database.ProvisionerDaemon, error) {
1894-
if !token.Valid {
1895-
return database.ProvisionerDaemon{}, sql.ErrNoRows
1896-
}
1897-
1898-
q.mutex.RLock()
1899-
defer q.mutex.RUnlock()
1900-
1901-
for _, provisionerDaemon := range q.provisionerDaemons {
1902-
if !provisionerDaemon.AuthToken.Valid {
1903-
continue
1904-
}
1905-
if provisionerDaemon.AuthToken.UUID.String() != token.UUID.String() {
1906-
continue
1907-
}
1908-
return provisionerDaemon, nil
1909-
}
1910-
return database.ProvisionerDaemon{}, sql.ErrNoRows
1911-
}
1912-
19131897
func (q *fakeQuerier) GetProvisionerJobByID(_ context.Context, id uuid.UUID) (database.ProvisionerJob, error) {
19141898
q.mutex.RLock()
19151899
defer q.mutex.RUnlock()
@@ -2286,7 +2270,7 @@ func (q *fakeQuerier) InsertProvisionerDaemon(_ context.Context, arg database.In
22862270
CreatedAt: arg.CreatedAt,
22872271
Name: arg.Name,
22882272
Provisioners: arg.Provisioners,
2289-
AuthToken: arg.AuthToken,
2273+
Tags: arg.Tags,
22902274
}
22912275
q.provisionerDaemons = append(q.provisionerDaemons, daemon)
22922276
return daemon, nil

coderd/database/dbtype/dbtype.go

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package dbtype
2+
3+
import (
4+
"database/sql/driver"
5+
"encoding/json"
6+
7+
"golang.org/x/xerrors"
8+
)
9+
10+
type Map map[string]string
11+
12+
func (m Map) Scan(src interface{}) error {
13+
if src == nil {
14+
return nil
15+
}
16+
switch src := src.(type) {
17+
case []byte:
18+
err := json.Unmarshal(src, &m)
19+
if err != nil {
20+
return err
21+
}
22+
default:
23+
return xerrors.Errorf("unsupported Scan, storing driver.Value type %T into type %T", src, m)
24+
}
25+
return nil
26+
}
27+
28+
func (m Map) Value() (driver.Value, error) {
29+
return json.Marshal(m)
30+
}

coderd/database/dump.sql

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,2 @@
1-
ALTER TABLE provisioner_daemons ADD COLUMN tags jsonb;
2-
3-
ALTER TABLE template_versions ADD COLUMN provisioner_tags jsonb;
1+
ALTER TABLE provisioner_daemons ADD COLUMN tags jsonb NOT NULL DEFAULT '{}';
2+
ALTER TABLE provisioner_jobs ADD COLUMN tags jsonb NOT NULL DEFAULT '{}';

coderd/database/models.go

Lines changed: 9 additions & 8 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: 0 additions & 1 deletion
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: 26 additions & 40 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)