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

Commitc629f07

Browse files
committed
changes endpoint to return all pk details
1 parent1a019bb commitc629f07

File tree

4 files changed

+56
-39
lines changed

4 files changed

+56
-39
lines changed

‎codersdk/provisionerdaemons.go‎

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -368,21 +368,23 @@ func (c *Client) ListProvisionerKeys(ctx context.Context, organizationID uuid.UU
368368
returnresp,json.NewDecoder(res.Body).Decode(&resp)
369369
}
370370

371-
//FetchProvisionerTagsByKey returns the provisioner tags associated with the provisioner key.
372-
func (c*Client)FetchProvisionerTagsByKey(ctx context.Context,organizationID uuid.UUID,provisionerKeystring) (ProvisionerKeyTags,error) {
371+
//GetProvisionerKey returns the provisioner key.
372+
func (c*Client)GetProvisionerKey(ctx context.Context,pkstring) (ProvisionerKey,error) {
373373
res,err:=c.Request(ctx,http.MethodGet,
374-
fmt.Sprintf("/api/v2/organizations/%s/provisionerkeys/%s/tags",organizationID.String(),provisionerKey),
375-
nil,
374+
fmt.Sprintf("/api/v2/provisionerkeys/%s",pk),nil,
375+
func(req*http.Request) {
376+
req.Header.Add(ProvisionerDaemonKey,pk)
377+
},
376378
)
377379
iferr!=nil {
378-
returnnil,xerrors.Errorf("make request: %w",err)
380+
returnProvisionerKey{},xerrors.Errorf("make request: %w",err)
379381
}
380382
deferres.Body.Close()
381383

382384
ifres.StatusCode!=http.StatusOK {
383-
returnnil,ReadBodyAsError(res)
385+
returnProvisionerKey{},ReadBodyAsError(res)
384386
}
385-
varrespProvisionerKeyTags
387+
varrespProvisionerKey
386388
returnresp,json.NewDecoder(res.Body).Decode(&resp)
387389
}
388390

‎enterprise/coderd/coderd.go‎

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -339,6 +339,15 @@ func New(ctx context.Context, options *Options) (_ *API, err error) {
339339
r.Get("/",api.groupByOrganization)
340340
})
341341
})
342+
r.Route("/provisionerkeys",func(r chi.Router) {
343+
r.Use(
344+
httpmw.ExtractProvisionerDaemonAuthenticated(httpmw.ExtractProvisionerAuthConfig{
345+
DB:api.Database,
346+
Optional:false,
347+
}),
348+
)
349+
r.Get("/{provisionerkey}",api.getProvisionerKey)
350+
})
342351
r.Route("/organizations/{organization}/provisionerkeys",func(r chi.Router) {
343352
r.Use(
344353
apiKeyMiddleware,
@@ -352,7 +361,6 @@ func New(ctx context.Context, options *Options) (_ *API, err error) {
352361
r.Use(
353362
httpmw.ExtractProvisionerKeyParam(options.Database),
354363
)
355-
r.Get("/tags",api.fetchProvisionerKeyTags)
356364
r.Delete("/",api.deleteProvisionerKey)
357365
})
358366
})

‎enterprise/coderd/provisionerkeys.go‎

Lines changed: 28 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -200,35 +200,42 @@ func (api *API) deleteProvisionerKey(rw http.ResponseWriter, r *http.Request) {
200200
httpapi.Write(ctx,rw,http.StatusNoContent,nil)
201201
}
202202

203-
// @Summary Get provisioner keytags by ID
204-
// @ID get-provisioner-key-tags-by-id
205-
// @SecurityCoderSessionToken
203+
// @Summary Get provisioner keydetails
204+
// @ID get-provisioner-key
205+
// @SecurityCoderProvisionerDaemonKey
206206
// @Produce json
207207
// @Tags Enterprise
208-
// @Param organization path string true "Organization ID"
209208
// @Param provisionerkey path string true "Provisioner Key"
210-
// @Success 200 {object} codersdk.ProvisionerKeyTags
211-
// @Router /organizations/{organization}/provisionerkeys/{provisionerkey}/tags [get]
212-
func (*API)fetchProvisionerKeyTags(rw http.ResponseWriter,r*http.Request) {
213-
var (
214-
ctx=r.Context()
215-
pk=httpmw.ProvisionerKeyParam(r)
216-
)
217-
218-
httpapi.Write(ctx,rw,http.StatusOK,codersdk.ProvisionerKeyTags(pk.Tags))
209+
// @Success 200 {object} codersdk.ProvisionerKey
210+
// @Router provisionerkeys/{provisionerkey} [get]
211+
func (*API)getProvisionerKey(rw http.ResponseWriter,r*http.Request) {
212+
ctx:=r.Context()
213+
214+
pk,ok:=httpmw.ProvisionerKeyAuthOptional(r)
215+
// extra check but this one should never happen as it is covered by the auth middleware
216+
if!ok {
217+
httpapi.Forbidden(rw)
218+
return
219+
}
220+
221+
httpapi.Write(ctx,rw,http.StatusOK,convertProvisionerKey(pk))
222+
}
223+
224+
funcconvertProvisionerKey(dbKey database.ProvisionerKey) codersdk.ProvisionerKey {
225+
return codersdk.ProvisionerKey{
226+
ID:dbKey.ID,
227+
CreatedAt:dbKey.CreatedAt,
228+
OrganizationID:dbKey.OrganizationID,
229+
Name:dbKey.Name,
230+
Tags:codersdk.ProvisionerKeyTags(dbKey.Tags),
231+
// HashedSecret - never include the access token in the API response
232+
}
219233
}
220234

221235
funcconvertProvisionerKeys(dbKeys []database.ProvisionerKey) []codersdk.ProvisionerKey {
222236
keys:=make([]codersdk.ProvisionerKey,0,len(dbKeys))
223237
for_,dbKey:=rangedbKeys {
224-
keys=append(keys, codersdk.ProvisionerKey{
225-
ID:dbKey.ID,
226-
CreatedAt:dbKey.CreatedAt,
227-
OrganizationID:dbKey.OrganizationID,
228-
Name:dbKey.Name,
229-
Tags:codersdk.ProvisionerKeyTags(dbKey.Tags),
230-
// HashedSecret - never include the access token in the API response
231-
})
238+
keys=append(keys,convertProvisionerKey(dbKey))
232239
}
233240

234241
slices.SortFunc(keys,func(key1,key2 codersdk.ProvisionerKey)int {

‎enterprise/coderd/provisionerkeys_test.go‎

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -134,12 +134,12 @@ func TestProvisionerKeys(t *testing.T) {
134134
require.ErrorContains(t,err,"reserved")
135135
}
136136

137-
funcTestProvisionerKeyTags(t*testing.T) {
137+
funcTestProvisionerKey(t*testing.T) {
138138
t.Parallel()
139-
t.Run("GetTags",func(t*testing.T) {
139+
t.Run("GetKey",func(t*testing.T) {
140140
t.Parallel()
141141

142-
ctx,cancel:=context.WithTimeout(context.Background(),testutil.WaitLong*10)
142+
ctx,cancel:=context.WithTimeout(context.Background(),testutil.WaitShort)
143143
t.Cleanup(cancel)
144144
dv:=coderdtest.DeploymentValues(t)
145145
client,owner:=coderdenttest.New(t,&coderdenttest.Options{
@@ -153,18 +153,18 @@ func TestProvisionerKeyTags(t *testing.T) {
153153
},
154154
})
155155

156-
//nolint:gocritic // Not the purpose of this test
157-
_,err:=client.CreateProvisionerKey(ctx,owner.OrganizationID, codersdk.CreateProvisionerKeyRequest{
158-
Name:"key",
156+
key,err:=client.CreateProvisionerKey(ctx,owner.OrganizationID, codersdk.CreateProvisionerKeyRequest{
157+
Name:"my-test-key",
159158
Tags:map[string]string{"key1":"value1","key2":"value2"},
160159
})
161160
require.NoError(t,err)
162161

163-
tags,err:=client.FetchProvisionerTagsByKey(ctx,owner.OrganizationID,"key")
162+
_,err=client.GetProvisionerKey(ctx,key.Key)
164163
require.NoError(t,err)
165-
require.Equal(t,tags, codersdk.ProvisionerKeyTags{"key1":"value1","key2":"value2"})
164+
//require.Equal(t, tags, codersdk.ProvisionerKeyTags{"key1": "value1", "key2": "value2"})
166165

167-
_,err=client.FetchProvisionerTagsByKey(ctx,owner.OrganizationID,"invalid_key")
168-
require.ErrorContains(t,err,"Resource not found")
166+
erroneousPK,err:=client.GetProvisionerKey(ctx,"abcdefghijklmnopqrstuvwxyz01234567890123456")
167+
require.Empty(t,erroneousPK)
168+
require.Error(t,err)
169169
})
170170
}

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp