Skip to content

Commit e835326

Browse files
committed
filter by tags in dbmem
1 parent a2476dc commit e835326

File tree

2 files changed

+21
-10
lines changed

2 files changed

+21
-10
lines changed

coderd/database/dbmem/dbmem.go

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3631,11 +3631,23 @@ func (q *FakeQuerier) GetProvisionerDaemonsByOrganization(_ context.Context, arg
36313631

36323632
daemons := make([]database.ProvisionerDaemon, 0)
36333633
for _, daemon := range q.provisionerDaemons {
3634-
// TODO (sas): filter by tags here
3635-
if daemon.OrganizationID == arg.OrganizationID {
3636-
daemon.Tags = maps.Clone(daemon.Tags)
3637-
daemons = append(daemons, daemon)
3634+
if daemon.OrganizationID != arg.OrganizationID {
3635+
continue
3636+
}
3637+
if arg.Tags != nil {
3638+
var argTags map[string]string
3639+
err := json.Unmarshal(arg.Tags, &argTags)
3640+
if err != nil {
3641+
continue
3642+
}
3643+
for k, v := range argTags {
3644+
if t, found := daemon.Tags[k]; !found || t != v {
3645+
continue
3646+
}
3647+
}
36383648
}
3649+
daemon.Tags = maps.Clone(daemon.Tags)
3650+
daemons = append(daemons, daemon)
36393651
}
36403652

36413653
return daemons, nil

enterprise/coderd/provisionerdaemons.go

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -64,8 +64,7 @@ func (api *API) provisionerDaemons(rw http.ResponseWriter, r *http.Request) {
6464
ctx := r.Context()
6565
org := httpmw.OrganizationParam(r)
6666

67-
tags := provisionerTags(r)
68-
tagsJSON, err := json.Marshal(tags)
67+
tags, err := provisionerTags(r)
6968
if err != nil {
7069
httpapi.Write(ctx, rw, http.StatusInternalServerError, codersdk.Response{
7170
Message: "Internal error reading tags.",
@@ -78,7 +77,7 @@ func (api *API) provisionerDaemons(rw http.ResponseWriter, r *http.Request) {
7877
ctx,
7978
database.GetProvisionerDaemonsByOrganizationParams{
8079
OrganizationID: org.ID,
81-
Tags: tagsJSON,
80+
Tags: tags,
8281
},
8382
)
8483
if err != nil {
@@ -92,10 +91,10 @@ func (api *API) provisionerDaemons(rw http.ResponseWriter, r *http.Request) {
9291
httpapi.Write(ctx, rw, http.StatusOK, db2sdk.List(daemons, db2sdk.ProvisionerDaemon))
9392
}
9493

95-
func provisionerTags(r *http.Request) map[string]string {
94+
func provisionerTags(r *http.Request) ([]byte, error) {
9695
tags := r.URL.Query()["tags"]
9796
if len(tags) == 0 {
98-
return nil
97+
return nil, nil
9998
}
10099

101100
tagMap := map[string]string{}
@@ -107,7 +106,7 @@ func provisionerTags(r *http.Request) map[string]string {
107106
}
108107
}
109108

110-
return tagMap
109+
return json.Marshal(tagMap)
111110
}
112111

113112
type provisiionerDaemonAuthResponse struct {

0 commit comments

Comments
 (0)