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

Commit8283329

Browse files
committed
add tests
1 parentdde933c commit8283329

File tree

11 files changed

+147
-15
lines changed

11 files changed

+147
-15
lines changed

‎coderd/database/dbauthz/dbauthz.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3066,6 +3066,10 @@ func (q *querier) ListProvisionerKeysByOrganization(ctx context.Context, organiz
30663066
returnfetchWithPostFilter(q.auth,policy.ActionRead,q.db.ListProvisionerKeysByOrganization)(ctx,organizationID)
30673067
}
30683068

3069+
func (q*querier)ListProvisionerKeysByOrganizationExcludeReserved(ctx context.Context,organizationID uuid.UUID) ([]database.ProvisionerKey,error) {
3070+
returnfetchWithPostFilter(q.auth,policy.ActionRead,q.db.ListProvisionerKeysByOrganizationExcludeReserved)(ctx,organizationID)
3071+
}
3072+
30693073
func (q*querier)ListWorkspaceAgentPortShares(ctx context.Context,workspaceID uuid.UUID) ([]database.WorkspaceAgentPortShare,error) {
30703074
workspace,err:=q.db.GetWorkspaceByID(ctx,workspaceID)
30713075
iferr!=nil {

‎coderd/database/dbmem/dbmem.go

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7608,6 +7608,20 @@ func (q *FakeQuerier) ListProvisionerKeysByOrganization(_ context.Context, organ
76087608
q.mutex.RLock()
76097609
deferq.mutex.RUnlock()
76107610

7611+
keys:=make([]database.ProvisionerKey,0)
7612+
for_,key:=rangeq.provisionerKeys {
7613+
ifkey.OrganizationID==organizationID {
7614+
keys=append(keys,key)
7615+
}
7616+
}
7617+
7618+
returnkeys,nil
7619+
}
7620+
7621+
func (q*FakeQuerier)ListProvisionerKeysByOrganizationExcludeReserved(ctx context.Context,organizationID uuid.UUID) ([]database.ProvisionerKey,error) {
7622+
q.mutex.RLock()
7623+
deferq.mutex.RUnlock()
7624+
76117625
keys:=make([]database.ProvisionerKey,0)
76127626
for_,key:=rangeq.provisionerKeys {
76137627
ifkey.ID.String()==codersdk.ProvisionerKeyIDBuiltIn||

‎coderd/database/dbmetrics/dbmetrics.go

Lines changed: 7 additions & 0 deletions
Some generated files are not rendered by default. Learn more aboutcustomizing how changed files appear on GitHub.

‎coderd/database/dbmock/dbmock.go

Lines changed: 15 additions & 0 deletions
Some generated files are not rendered by default. Learn more aboutcustomizing how changed files appear on GitHub.

‎coderd/database/querier.go

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

‎coderd/database/queries.sql.go

Lines changed: 41 additions & 2 deletions
Some generated files are not rendered by default. Learn more aboutcustomizing how changed files appear on GitHub.

‎coderd/database/queries/provisionerkeys.sql

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ WHERE
3737
AND
3838
lower(name)=lower(@name);
3939

40-
-- name:ListProvisionerKeysByOrganization :many
40+
-- name:ListProvisionerKeysByOrganizationExcludeReserved :many
4141
SELECT
4242
*
4343
FROM
@@ -54,6 +54,14 @@ AND
5454
-- exclude reserved psk key
5555
id!='00000000-0000-0000-0000-000000000003'::uuid;
5656

57+
-- name: ListProvisionerKeysByOrganization :many
58+
SELECT
59+
*
60+
FROM
61+
provisioner_keys
62+
WHERE
63+
organization_id= $1;
64+
5765
-- name: DeleteProvisionerKey :exec
5866
DELETEFROM
5967
provisioner_keys

‎codersdk/provisionerdaemons.go

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -353,6 +353,24 @@ func (c *Client) ListProvisionerKeys(ctx context.Context, organizationID uuid.UU
353353
returnresp,json.NewDecoder(res.Body).Decode(&resp)
354354
}
355355

356+
// ListProvisionerKeyDaemons lists all provisioner keys with their associated daemons for an organization.
357+
func (c*Client)ListProvisionerKeyDaemons(ctx context.Context,organizationID uuid.UUID) ([]ProvisionerKeyDaemons,error) {
358+
res,err:=c.Request(ctx,http.MethodGet,
359+
fmt.Sprintf("/api/v2/organizations/%s/provisionerkeys/daemons",organizationID.String()),
360+
nil,
361+
)
362+
iferr!=nil {
363+
returnnil,xerrors.Errorf("make request: %w",err)
364+
}
365+
deferres.Body.Close()
366+
367+
ifres.StatusCode!=http.StatusOK {
368+
returnnil,ReadBodyAsError(res)
369+
}
370+
varresp []ProvisionerKeyDaemons
371+
returnresp,json.NewDecoder(res.Body).Decode(&resp)
372+
}
373+
356374
// DeleteProvisionerKey deletes a provisioner key.
357375
func (c*Client)DeleteProvisionerKey(ctx context.Context,organizationID uuid.UUID,namestring)error {
358376
res,err:=c.Request(ctx,http.MethodDelete,

‎enterprise/coderd/provisionerdaemons.go

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -71,10 +71,7 @@ func (api *API) provisionerDaemons(rw http.ResponseWriter, r *http.Request) {
7171
return
7272
}
7373

74-
// provisionerdserver.DefaultHeartbeatInterval*3 matches the healthcheck report staleInterval.
75-
recentDaemons:=db2sdk.RecentProvisionerDaemons(time.Now(),provisionerdserver.DefaultHeartbeatInterval*3,daemons)
76-
77-
httpapi.Write(ctx,rw,http.StatusOK,recentDaemons)
74+
httpapi.Write(ctx,rw,http.StatusOK,db2sdk.List(daemons,db2sdk.ProvisionerDaemon))
7875
}
7976

8077
typeprovisionerDaemonAuthstruct {

‎enterprise/coderd/provisionerdaemons_test.go

Lines changed: 32 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -743,6 +743,7 @@ func TestGetProvisionerDaemons(t *testing.T) {
743743
Options:&coderdtest.Options{
744744
DeploymentValues:dv,
745745
},
746+
ProvisionerDaemonPSK:"provisionersftw",
746747
LicenseOptions:&coderdenttest.LicenseOptions{
747748
Features: license.Features{
748749
codersdk.FeatureExternalProvisionerDaemons:1,
@@ -752,6 +753,16 @@ func TestGetProvisionerDaemons(t *testing.T) {
752753
})
753754
org:=coderdenttest.CreateOrganization(t,client, coderdenttest.CreateOrganizationOptions{})
754755
orgAdmin,_:=coderdtest.CreateAnotherUser(t,client,org.ID,rbac.ScopedRoleOrgAdmin(org.ID))
756+
757+
res,err:=orgAdmin.CreateProvisionerKey(context.Background(),org.ID, codersdk.CreateProvisionerKeyRequest{
758+
Name:"my-key",
759+
})
760+
require.NoError(t,err)
761+
762+
keys,err:=orgAdmin.ListProvisionerKeys(context.Background(),org.ID)
763+
require.NoError(t,err)
764+
require.Len(t,keys,1)
765+
755766
ctx,cancel:=context.WithTimeout(context.Background(),testutil.WaitLong)
756767
defercancel()
757768
daemonName:=testutil.MustRandString(t,63)
@@ -762,18 +773,32 @@ func TestGetProvisionerDaemons(t *testing.T) {
762773
Provisioners: []codersdk.ProvisionerType{
763774
codersdk.ProvisionerTypeEcho,
764775
},
765-
Tags:map[string]string{},
776+
Tags:map[string]string{},
777+
ProvisionerKey:res.Key,
766778
})
767779
require.NoError(t,err)
768780
srv.DRPCConn().Close()
769781

770782
daemons,err:=orgAdmin.OrganizationProvisionerDaemons(ctx,org.ID)
771783
require.NoError(t,err)
772-
ifassert.Len(t,daemons,1) {
773-
assert.Equal(t,daemonName,daemons[0].Name)
774-
assert.Equal(t,buildinfo.Version(),daemons[0].Version)
775-
assert.Equal(t,proto.CurrentVersion.String(),daemons[0].APIVersion)
776-
assert.Equal(t,codersdk.ProvisionerKeyIDUserAuth,daemons[0].KeyID.String())
777-
}
784+
require.Len(t,daemons,1)
785+
786+
assert.Equal(t,daemonName,daemons[0].Name)
787+
assert.Equal(t,buildinfo.Version(),daemons[0].Version)
788+
assert.Equal(t,proto.CurrentVersion.String(),daemons[0].APIVersion)
789+
assert.Equal(t,keys[0].ID,daemons[0].KeyID)
790+
791+
pkDaemons,err:=orgAdmin.ListProvisionerKeyDaemons(ctx,org.ID)
792+
require.NoError(t,err)
793+
794+
require.Len(t,pkDaemons,1)
795+
require.Len(t,pkDaemons[0].Daemons,1)
796+
assert.Equal(t,keys[0].ID,pkDaemons[0].Key.ID)
797+
assert.Equal(t,keys[0].Name,pkDaemons[0].Key.Name)
798+
799+
assert.Equal(t,daemonName,pkDaemons[0].Daemons[0].Name)
800+
assert.Equal(t,buildinfo.Version(),pkDaemons[0].Daemons[0].Version)
801+
assert.Equal(t,proto.CurrentVersion.String(),pkDaemons[0].Daemons[0].APIVersion)
802+
assert.Equal(t,keys[0].ID,pkDaemons[0].Daemons[0].KeyID)
778803
})
779804
}

‎enterprise/coderd/provisionerkeys.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ func (api *API) provisionerKeys(rw http.ResponseWriter, r *http.Request) {
106106
ctx:=r.Context()
107107
organization:=httpmw.OrganizationParam(r)
108108

109-
pks,err:=api.Database.ListProvisionerKeysByOrganization(ctx,organization.ID)
109+
pks,err:=api.Database.ListProvisionerKeysByOrganizationExcludeReserved(ctx,organization.ID)
110110
iferr!=nil {
111111
httpapi.InternalServerError(rw,err)
112112
return
@@ -144,6 +144,10 @@ func (api *API) provisionerKeyDaemons(rw http.ResponseWriter, r *http.Request) {
144144

145145
pkDaemons:=make([]codersdk.ProvisionerKeyDaemons,0,len(sdkKeys))
146146
for_,key:=rangesdkKeys {
147+
// currently we exclude user-auth from this list
148+
ifkey.ID.String()==codersdk.ProvisionerKeyIDUserAuth {
149+
continue
150+
}
147151
daemons:= []codersdk.ProvisionerDaemon{}
148152
for_,daemon:=rangerecentDaemons {
149153
ifdaemon.KeyID==key.ID {

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp