Skip to content

Commit 99f4d65

Browse files
committed
Merge branch 'main' into externalapps
2 parents 6a96530 + 84995b7 commit 99f4d65

17 files changed

+132
-161
lines changed

coderd/database/databasefake/databasefake.go

+22-23
Original file line numberDiff line numberDiff line change
@@ -2193,19 +2193,6 @@ func (q *fakeQuerier) GetWorkspaceResourceMetadataCreatedAfter(ctx context.Conte
21932193
return metadata, nil
21942194
}
21952195

2196-
func (q *fakeQuerier) GetWorkspaceResourceMetadataByResourceID(_ context.Context, id uuid.UUID) ([]database.WorkspaceResourceMetadatum, error) {
2197-
q.mutex.RLock()
2198-
defer q.mutex.RUnlock()
2199-
2200-
metadata := make([]database.WorkspaceResourceMetadatum, 0)
2201-
for _, metadatum := range q.workspaceResourceMetadata {
2202-
if metadatum.WorkspaceResourceID == id {
2203-
metadata = append(metadata, metadatum)
2204-
}
2205-
}
2206-
return metadata, nil
2207-
}
2208-
22092196
func (q *fakeQuerier) GetWorkspaceResourceMetadataByResourceIDs(_ context.Context, ids []uuid.UUID) ([]database.WorkspaceResourceMetadatum, error) {
22102197
q.mutex.RLock()
22112198
defer q.mutex.RUnlock()
@@ -2549,19 +2536,31 @@ func (q *fakeQuerier) InsertWorkspaceResource(_ context.Context, arg database.In
25492536
return resource, nil
25502537
}
25512538

2552-
func (q *fakeQuerier) InsertWorkspaceResourceMetadata(_ context.Context, arg database.InsertWorkspaceResourceMetadataParams) (database.WorkspaceResourceMetadatum, error) {
2539+
func (q *fakeQuerier) InsertWorkspaceResourceMetadata(_ context.Context, arg database.InsertWorkspaceResourceMetadataParams) ([]database.WorkspaceResourceMetadatum, error) {
25532540
q.mutex.Lock()
25542541
defer q.mutex.Unlock()
25552542

2556-
//nolint:gosimple
2557-
metadatum := database.WorkspaceResourceMetadatum{
2558-
WorkspaceResourceID: arg.WorkspaceResourceID,
2559-
Key: arg.Key,
2560-
Value: arg.Value,
2561-
Sensitive: arg.Sensitive,
2562-
}
2563-
q.workspaceResourceMetadata = append(q.workspaceResourceMetadata, metadatum)
2564-
return metadatum, nil
2543+
metadata := make([]database.WorkspaceResourceMetadatum, 0)
2544+
id := int64(1)
2545+
if len(q.workspaceResourceMetadata) > 0 {
2546+
id = q.workspaceResourceMetadata[len(q.workspaceResourceMetadata)-1].ID
2547+
}
2548+
for index, key := range arg.Key {
2549+
id++
2550+
value := arg.Value[index]
2551+
metadata = append(metadata, database.WorkspaceResourceMetadatum{
2552+
ID: id,
2553+
WorkspaceResourceID: arg.WorkspaceResourceID,
2554+
Key: key,
2555+
Value: sql.NullString{
2556+
String: value,
2557+
Valid: value != "",
2558+
},
2559+
Sensitive: arg.Sensitive[index],
2560+
})
2561+
}
2562+
q.workspaceResourceMetadata = append(q.workspaceResourceMetadata, metadata...)
2563+
return metadata, nil
25652564
}
25662565

25672566
func (q *fakeQuerier) InsertUser(_ context.Context, arg database.InsertUserParams) (database.User, error) {

coderd/database/dump.sql

+17-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
ALTER TABLE workspace_resource_metadata DROP COLUMN id;
2+
ALTER TABLE workspace_resource_metadata DROP CONSTRAINT workspace_resource_metadata_name;
3+
ALTER TABLE workspace_resource_metadata ADD CONSTRAINT workspace_resource_metadata_pkey PRIMARY KEY (workspace_resource_id, key);
4+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
ALTER TABLE workspace_resource_metadata DROP CONSTRAINT workspace_resource_metadata_pkey;
2+
3+
ALTER TABLE workspace_resource_metadata ADD COLUMN id BIGSERIAL PRIMARY KEY;
4+
5+
ALTER TABLE workspace_resource_metadata ADD CONSTRAINT workspace_resource_metadata_name UNIQUE(workspace_resource_id, key);

coderd/database/models.go

+1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

coderd/database/querier.go

+1-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

coderd/database/queries.sql.go

+46-61
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

coderd/database/queries/workspaceresources.sql

+8-13
Original file line numberDiff line numberDiff line change
@@ -31,27 +31,22 @@ INSERT INTO
3131
VALUES
3232
($1, $2, $3, $4, $5, $6, $7, $8, $9, $10) RETURNING *;
3333

34-
-- name: GetWorkspaceResourceMetadataByResourceID :many
35-
SELECT
36-
*
37-
FROM
38-
workspace_resource_metadata
39-
WHERE
40-
workspace_resource_id = $1;
41-
4234
-- name: GetWorkspaceResourceMetadataByResourceIDs :many
4335
SELECT
4436
*
4537
FROM
4638
workspace_resource_metadata
4739
WHERE
48-
workspace_resource_id = ANY(@ids :: uuid [ ]);
40+
workspace_resource_id = ANY(@ids :: uuid [ ]) ORDER BY id ASC;
4941

50-
-- name: InsertWorkspaceResourceMetadata :one
42+
-- name: InsertWorkspaceResourceMetadata :many
5143
INSERT INTO
52-
workspace_resource_metadata (workspace_resource_id, key, value, sensitive)
53-
VALUES
54-
($1, $2, $3, $4) RETURNING *;
44+
workspace_resource_metadata
45+
SELECT
46+
@workspace_resource_id :: uuid AS workspace_resource_id,
47+
unnest(@key :: text [ ]) AS key,
48+
unnest(@value :: text [ ]) AS value,
49+
unnest(@sensitive :: boolean [ ]) AS sensitive RETURNING *;
5550

5651
-- name: GetWorkspaceResourceMetadataCreatedAfter :many
5752
SELECT * FROM workspace_resource_metadata WHERE workspace_resource_id = ANY(

coderd/database/unique_constraint.go

+1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

coderd/provisionerdserver/provisionerdserver.go

+15-14
Original file line numberDiff line numberDiff line change
@@ -967,22 +967,23 @@ func InsertWorkspaceResource(ctx context.Context, db database.Store, jobID uuid.
967967
}
968968
}
969969

970+
arg := database.InsertWorkspaceResourceMetadataParams{
971+
WorkspaceResourceID: resource.ID,
972+
Key: []string{},
973+
Value: []string{},
974+
Sensitive: []bool{},
975+
}
970976
for _, metadatum := range protoResource.Metadata {
971-
var value sql.NullString
972-
if !metadatum.IsNull {
973-
value.String = metadatum.Value
974-
value.Valid = true
975-
}
976-
977-
_, err := db.InsertWorkspaceResourceMetadata(ctx, database.InsertWorkspaceResourceMetadataParams{
978-
WorkspaceResourceID: resource.ID,
979-
Key: metadatum.Key,
980-
Value: value,
981-
Sensitive: metadatum.Sensitive,
982-
})
983-
if err != nil {
984-
return xerrors.Errorf("insert metadata: %w", err)
977+
if metadatum.IsNull {
978+
continue
985979
}
980+
arg.Key = append(arg.Key, metadatum.Key)
981+
arg.Value = append(arg.Value, metadatum.Value)
982+
arg.Sensitive = append(arg.Sensitive, metadatum.Sensitive)
983+
}
984+
_, err = db.InsertWorkspaceResourceMetadata(ctx, arg)
985+
if err != nil {
986+
return xerrors.Errorf("insert workspace resource metadata: %w", err)
986987
}
987988

988989
return nil

0 commit comments

Comments
 (0)