Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitfab1960

Browse files
authored
fix: allow tag removal in provisioner upsert (#14187)
1 parent49feb12 commitfab1960

File tree

7 files changed

+50
-11
lines changed

7 files changed

+50
-11
lines changed

‎coderd/database/dump.sql

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more aboutcustomizing how changed files appear on GitHub.
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
CREATEUNIQUE INDEXidx_provisioner_daemons_name_owner_keyON provisioner_daemons USING btree (name,lower(COALESCE((tags->>'owner'::text),''::text)));
2+
3+
COMMENT ON INDEX idx_provisioner_daemons_name_owner_key IS'Allow unique provisioner daemon names by user';
4+
5+
DROPINDEX idx_provisioner_daemons_org_name_owner_key;
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
CREATEUNIQUE INDEXidx_provisioner_daemons_org_name_owner_keyON provisioner_daemons USING btree (organization_id, name,lower(COALESCE((tags->>'owner'::text),''::text)));
2+
3+
COMMENT ON INDEX idx_provisioner_daemons_org_name_owner_key IS'Allow unique provisioner daemon names by organization and user';
4+
5+
DROPINDEX idx_provisioner_daemons_name_owner_key;

‎coderd/database/queries.sql.go

Lines changed: 1 addition & 4 deletions
Some generated files are not rendered by default. Learn more aboutcustomizing how changed files appear on GitHub.

‎coderd/database/queries/provisionerdaemons.sql

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -45,16 +45,13 @@ VALUES (
4545
@version,
4646
@organization_id,
4747
@api_version
48-
)ON CONFLICT("name",LOWER(COALESCE(tags->>'owner'::text,''::text))) DOUPDATESET
48+
)ON CONFLICT("organization_id","name",LOWER(COALESCE(tags->>'owner'::text,''::text))) DOUPDATESET
4949
provisioners= @provisioners,
5050
tags= @tags,
5151
last_seen_at= @last_seen_at,
5252
"version"= @version,
5353
api_version= @api_version,
5454
organization_id= @organization_id
55-
WHERE
56-
-- Only ones with the same tags are allowed clobber
57-
provisioner_daemons.tags<@ @tags :: jsonb
5855
RETURNING*;
5956

6057
-- name: UpdateProvisionerDaemonLastSeenAt :exec

‎coderd/database/unique_constraint.go

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more aboutcustomizing how changed files appear on GitHub.

‎enterprise/coderd/provisionerdaemons_test.go

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -347,6 +347,41 @@ func TestProvisionerDaemonServe(t *testing.T) {
347347
}
348348
})
349349

350+
t.Run("ChangeTags",func(t*testing.T) {
351+
t.Parallel()
352+
client,user:=coderdenttest.New(t,&coderdenttest.Options{LicenseOptions:&coderdenttest.LicenseOptions{
353+
Features: license.Features{
354+
codersdk.FeatureExternalProvisionerDaemons:1,
355+
},
356+
}})
357+
another,_:=coderdtest.CreateAnotherUser(t,client,user.OrganizationID,rbac.ScopedRoleOrgAdmin(user.OrganizationID))
358+
ctx,cancel:=context.WithTimeout(context.Background(),testutil.WaitLong)
359+
defercancel()
360+
req:= codersdk.ServeProvisionerDaemonRequest{
361+
ID:uuid.New(),
362+
Name:testutil.MustRandString(t,63),
363+
Organization:user.OrganizationID,
364+
Provisioners: []codersdk.ProvisionerType{
365+
codersdk.ProvisionerTypeEcho,
366+
},
367+
Tags:map[string]string{
368+
provisionersdk.TagScope:provisionersdk.ScopeOrganization,
369+
},
370+
}
371+
_,err:=another.ServeProvisionerDaemon(ctx,req)
372+
require.NoError(t,err)
373+
374+
// add tag
375+
req.Tags["new"]="tag"
376+
_,err=another.ServeProvisionerDaemon(ctx,req)
377+
require.NoError(t,err)
378+
379+
// remove tag
380+
delete(req.Tags,"new")
381+
_,err=another.ServeProvisionerDaemon(ctx,req)
382+
require.NoError(t,err)
383+
})
384+
350385
t.Run("PSK_daily_cost",func(t*testing.T) {
351386
t.Parallel()
352387
constprovPSK=`provisionersftw`

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp