Skip to content

Commit 0cff661

Browse files
committed
Work on tags for provisioner daemon
1 parent ebcf687 commit 0cff661

File tree

2 files changed

+46
-1
lines changed

2 files changed

+46
-1
lines changed

enterprise/cli/provisionerdaemonstart.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,7 @@ func (r *RootCmd) provisionerDaemonStart() *serpent.Command {
147147
defer closeLogger()
148148
}
149149

150-
if len(tags) == 0 {
150+
if len(displayedTags) == 0 {
151151
logger.Info(ctx, "note: untagged provisioners can only pick up jobs from untagged templates")
152152
}
153153

enterprise/cli/provisionerdaemonstart_test.go

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -294,6 +294,51 @@ func TestProvisionerDaemon_ProvisionerKey(t *testing.T) {
294294
require.Equal(t, proto.CurrentVersion.String(), daemons[0].APIVersion)
295295
})
296296

297+
t.Run("OKWithTags", func(t *testing.T) {
298+
t.Parallel()
299+
300+
ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitLong)
301+
defer cancel()
302+
client, user := coderdenttest.New(t, &coderdenttest.Options{
303+
ProvisionerDaemonPSK: "provisionersftw",
304+
LicenseOptions: &coderdenttest.LicenseOptions{
305+
Features: license.Features{
306+
codersdk.FeatureExternalProvisionerDaemons: 1,
307+
codersdk.FeatureMultipleOrganizations: 1,
308+
},
309+
},
310+
})
311+
// nolint:gocritic // test
312+
res, err := client.CreateProvisionerKey(ctx, user.OrganizationID, codersdk.CreateProvisionerKeyRequest{
313+
Name: "dont-TEST-me",
314+
Tags: map[string]string{
315+
"tag1": "value1",
316+
"tag2": "value2",
317+
},
318+
})
319+
require.NoError(t, err)
320+
inv, conf := newCLI(t, "provisionerd", "start", "--key", res.Key, "--name=matt-daemon")
321+
err = conf.URL().Write(client.URL.String())
322+
require.NoError(t, err)
323+
pty := ptytest.New(t).Attach(inv)
324+
clitest.Start(t, inv)
325+
pty.ExpectNoMatchBefore(ctx, "check entitlement", "starting provisioner daemon")
326+
pty.ExpectMatchContext(ctx, `tags={"tag1":"value1","tag2":"value2"}`)
327+
328+
var daemons []codersdk.ProvisionerDaemon
329+
require.Eventually(t, func() bool {
330+
daemons, err = client.OrganizationProvisionerDaemons(ctx, user.OrganizationID, nil)
331+
if err != nil {
332+
return false
333+
}
334+
return len(daemons) == 1
335+
}, testutil.WaitShort, testutil.IntervalSlow)
336+
require.Equal(t, "matt-daemon", daemons[0].Name)
337+
require.Equal(t, provisionersdk.ScopeOrganization, daemons[0].Tags[provisionersdk.TagScope])
338+
require.Equal(t, buildinfo.Version(), daemons[0].Version)
339+
require.Equal(t, proto.CurrentVersion.String(), daemons[0].APIVersion)
340+
})
341+
297342
t.Run("NoPSK", func(t *testing.T) {
298343
t.Parallel()
299344

0 commit comments

Comments
 (0)