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

Commitbdb5f57

Browse files
committed
add new endpoint
1 parent9f59974 commitbdb5f57

File tree

3 files changed

+53
-0
lines changed

3 files changed

+53
-0
lines changed

‎codersdk/provisionerdaemons.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -283,6 +283,11 @@ type ProvisionerKey struct {
283283
// HashedSecret - never include the access token in the API response
284284
}
285285

286+
typeProvisionerKeyDaemonsstruct {
287+
KeyProvisionerKey`json:"key"`
288+
Daemons []ProvisionerDaemon`json:"daemons"`
289+
}
290+
286291
const (
287292
ProvisionerKeyIDBuiltIn="11111111-1111-1111-1111-111111111111"
288293
ProvisionerKeyIDUserAuth="22222222-2222-2222-2222-222222222222"

‎enterprise/coderd/coderd.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -331,6 +331,7 @@ func New(ctx context.Context, options *Options) (_ *API, err error) {
331331
)
332332
r.Get("/",api.provisionerKeys)
333333
r.Post("/",api.postProvisionerKey)
334+
r.Get("/daemons",api.provisionerKeyDaemons)
334335
r.Route("/{provisionerkey}",func(r chi.Router) {
335336
r.Use(
336337
httpmw.ExtractProvisionerKeyParam(options.Database),

‎enterprise/coderd/provisionerkeys.go

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,13 @@ import (
44
"fmt"
55
"net/http"
66
"slices"
7+
"time"
78

89
"github.com/coder/coder/v2/coderd/database"
10+
"github.com/coder/coder/v2/coderd/database/db2sdk"
911
"github.com/coder/coder/v2/coderd/httpapi"
1012
"github.com/coder/coder/v2/coderd/httpmw"
13+
"github.com/coder/coder/v2/coderd/provisionerdserver"
1114
"github.com/coder/coder/v2/coderd/provisionerkey"
1215
"github.com/coder/coder/v2/codersdk"
1316
)
@@ -112,6 +115,50 @@ func (api *API) provisionerKeys(rw http.ResponseWriter, r *http.Request) {
112115
httpapi.Write(ctx,rw,http.StatusOK,convertProvisionerKeys(pks))
113116
}
114117

118+
// @Summary List provisioner key
119+
// @ID list-provisioner-key
120+
// @Security CoderSessionToken
121+
// @Produce json
122+
// @Tags Enterprise
123+
// @Param organization path string true "Organization ID"
124+
// @Success 200 {object} []codersdk.ProvisionerKey
125+
// @Router /organizations/{organization}/provisionerkeys/daemons [get]
126+
func (api*API)provisionerKeyDaemons(rw http.ResponseWriter,r*http.Request) {
127+
ctx:=r.Context()
128+
organization:=httpmw.OrganizationParam(r)
129+
130+
pks,err:=api.Database.ListProvisionerKeysByOrganization(ctx,organization.ID)
131+
iferr!=nil {
132+
httpapi.InternalServerError(rw,err)
133+
return
134+
}
135+
sdkKeys:=convertProvisionerKeys(pks)
136+
137+
daemons,err:=api.Database.GetProvisionerDaemonsByOrganization(ctx,organization.ID)
138+
iferr!=nil {
139+
httpapi.InternalServerError(rw,err)
140+
return
141+
}
142+
// provisionerdserver.DefaultHeartbeatInterval*3 matches the healthcheck report staleInterval.
143+
recentDaemons:=db2sdk.RecentProvisionerDaemons(time.Now(),provisionerdserver.DefaultHeartbeatInterval*3,daemons)
144+
145+
pkDaemons:=make([]codersdk.ProvisionerKeyDaemons,0,len(sdkKeys))
146+
for_,key:=rangesdkKeys {
147+
daemons:= []codersdk.ProvisionerDaemon{}
148+
for_,daemon:=rangerecentDaemons {
149+
ifdaemon.KeyID==key.ID {
150+
daemons=append(daemons,daemon)
151+
}
152+
}
153+
pkDaemons=append(pkDaemons, codersdk.ProvisionerKeyDaemons{
154+
Key:key,
155+
Daemons:daemons,
156+
})
157+
}
158+
159+
httpapi.Write(ctx,rw,http.StatusOK,pkDaemons)
160+
}
161+
115162
// @Summary Delete provisioner key
116163
// @ID delete-provisioner-key
117164
// @Security CoderSessionToken

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp