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

Commitf0622f6

Browse files
committed
remove need to constantly send owner id
1 parentff2e878 commitf0622f6

File tree

3 files changed

+26
-18
lines changed

3 files changed

+26
-18
lines changed

‎coderd/dynamicparameters/render.go

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ func (r *Loader) Load(ctx context.Context, db database.Store) error {
105105
returnnil
106106
}
107107

108-
func (r*Loader)loaded()bool {
108+
func (r*Loader)isReady()bool {
109109
returnr.templateVersion!=nil&&r.job!=nil&&r.terraformValues!=nil
110110
}
111111

@@ -117,7 +117,7 @@ func (r *Loader) loaded() bool {
117117
// do not have the database state to support dynamic parameters. A constant
118118
// warning will be displayed for these template versions.
119119
func (r*Loader)Renderer(ctx context.Context,db database.Store,cache*files.Cache) (Renderer,error) {
120-
if!r.loaded() {
120+
if!r.isReady() {
121121
returnnil,xerrors.New("Load() must be called before Renderer()")
122122
}
123123

@@ -154,11 +154,11 @@ func (r *Loader) dynamicRenderer(ctx context.Context, db database.Store, cache *
154154
}
155155

156156
return&DynamicRenderer{
157-
data:r,
158-
templateFS:templateFS,
159-
db:db,
160-
plan:plan,
161-
failedOwners:make(map[uuid.UUID]error),
157+
data:r,
158+
templateFS:templateFS,
159+
db:db,
160+
plan:plan,
161+
ownerErrors:make(map[uuid.UUID]error),
162162
close:func() {
163163
cache.Release(r.job.FileID)
164164
ifmoduleFilesFS!=nil {
@@ -174,22 +174,23 @@ type DynamicRenderer struct {
174174
templateFS fs.FS
175175
plan json.RawMessage
176176

177-
failedOwnersmap[uuid.UUID]error
178-
currentOwner*previewtypes.WorkspaceOwner
177+
ownerErrorsmap[uuid.UUID]error
178+
currentOwner*previewtypes.WorkspaceOwner
179+
currentOwnerID uuid.UUID
179180

180181
once sync.Once
181182
closefunc()
182183
}
183184

184185
func (r*DynamicRenderer)Render(ctx context.Context,ownerID uuid.UUID,valuesmap[string]string) (*preview.Output, hcl.Diagnostics) {
185186
// Always start with the cached error, if we have one.
186-
ownerErr:=r.failedOwners[ownerID]
187+
ownerErr:=r.ownerErrors[ownerID]
187188
ifownerErr==nil {
188189
ownerErr=r.getWorkspaceOwnerData(ctx,ownerID)
189190
}
190191

191192
ifownerErr!=nil||r.currentOwner==nil {
192-
r.failedOwners[ownerID]=ownerErr
193+
r.ownerErrors[ownerID]=ownerErr
193194
returnnil, hcl.Diagnostics{
194195
{
195196
Severity:hcl.DiagError,

‎coderd/parameters.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -168,6 +168,7 @@ func (api *API) handleParameterWebsocket(rw http.ResponseWriter, r *http.Request
168168
// As the user types into the form, reprocess the state using their input,
169169
// and respond with updates.
170170
updates:=stream.Chan()
171+
ownerID:=initial.OwnerID
171172
for {
172173
select {
173174
case<-ctx.Done():
@@ -179,6 +180,14 @@ func (api *API) handleParameterWebsocket(rw http.ResponseWriter, r *http.Request
179180
return
180181
}
181182

183+
// Take a nil uuid to mean the previous owner ID.
184+
// This just removes the need to constantly send who you are.
185+
ifupdate.OwnerID==uuid.Nil {
186+
update.OwnerID=ownerID
187+
}
188+
189+
ownerID=update.OwnerID
190+
182191
result,diagnostics:=render.Render(ctx,update.OwnerID,update.Inputs)
183192
response:= codersdk.DynamicParametersResponse{
184193
ID:update.ID,

‎enterprise/coderd/parameters_test.go

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ func TestDynamicParametersOwnerGroups(t *testing.T) {
3131
Options:&coderdtest.Options{IncludeProvisionerDaemon:true},
3232
},
3333
)
34-
templateAdmin,templateAdminUser:=coderdtest.CreateAnotherUser(t,ownerClient,owner.OrganizationID,rbac.RoleTemplateAdmin())
34+
templateAdmin,templateAdminUser:=coderdtest.CreateAnotherUser(t,ownerClient,owner.OrganizationID,rbac.ScopedRoleOrgTemplateAdmin(owner.OrganizationID))
3535
_,noGroupUser:=coderdtest.CreateAnotherUser(t,ownerClient,owner.OrganizationID)
3636

3737
// Create the group to be asserted
@@ -79,36 +79,34 @@ func TestDynamicParametersOwnerGroups(t *testing.T) {
7979
require.NoError(t,err)
8080
deferstream.Close(websocket.StatusGoingAway)
8181

82-
previews:=stream.Chan()
82+
previews,pop:=coderdtest.SynchronousStream(stream)
8383

8484
// Should automatically send a form state with all defaulted/empty values
85-
preview:=testutil.RequireReceive(ctx,t,previews)
85+
preview:=pop()
8686
require.Equal(t,-1,preview.ID)
8787
require.Empty(t,preview.Diagnostics)
8888
require.Equal(t,"group",preview.Parameters[0].Name)
8989
require.True(t,preview.Parameters[0].Value.Valid)
9090
require.Equal(t,database.EveryoneGroup,preview.Parameters[0].Value.Value)
9191

9292
// Send a new value, and see it reflected
93-
err=stream.Send(codersdk.DynamicParametersRequest{
93+
preview,err=previews(codersdk.DynamicParametersRequest{
9494
ID:1,
9595
Inputs:map[string]string{"group":group.Name},
9696
})
9797
require.NoError(t,err)
98-
preview=testutil.RequireReceive(ctx,t,previews)
9998
require.Equal(t,1,preview.ID)
10099
require.Empty(t,preview.Diagnostics)
101100
require.Equal(t,"group",preview.Parameters[0].Name)
102101
require.True(t,preview.Parameters[0].Value.Valid)
103102
require.Equal(t,group.Name,preview.Parameters[0].Value.Value)
104103

105104
// Back to default
106-
err=stream.Send(codersdk.DynamicParametersRequest{
105+
preview,err=previews(codersdk.DynamicParametersRequest{
107106
ID:3,
108107
Inputs:map[string]string{},
109108
})
110109
require.NoError(t,err)
111-
preview=testutil.RequireReceive(ctx,t,previews)
112110
require.Equal(t,3,preview.ID)
113111
require.Empty(t,preview.Diagnostics)
114112
require.Equal(t,"group",preview.Parameters[0].Name)

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp