Skip to content

Commit bb7ec5e

Browse files
committed
fix tests
1 parent e098250 commit bb7ec5e

File tree

3 files changed

+22
-72
lines changed

3 files changed

+22
-72
lines changed

enterprise/cli/provisionerdaemonstart.go

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,9 @@ package cli
44

55
import (
66
"context"
7+
"errors"
78
"fmt"
9+
"net/http"
810
"os"
911
"regexp"
1012
"time"
@@ -75,12 +77,25 @@ func (r *RootCmd) provisionerDaemonStart() *serpent.Command {
7577
// We can only select an organization if using user auth
7678
org, err := orgContext.Selected(inv, client)
7779
if err != nil {
78-
return xerrors.Errorf("get organization: %w", err)
80+
var cErr *codersdk.Error
81+
if !errors.As(err, &cErr) || cErr.StatusCode() != http.StatusUnauthorized {
82+
return xerrors.Errorf("current organization: %w", err)
83+
}
84+
85+
return xerrors.New("must provide a pre-shared key or provisioner key when not authenticated as a user")
7986
}
87+
8088
orgID = org.ID
81-
} else {
82-
if orgContext.FlagSelect != "" {
83-
return xerrors.New("cannot provide --org value with --psk or --key flags")
89+
} else if orgContext.FlagSelect != "" {
90+
return xerrors.New("cannot provide --org value with --psk or --key flags")
91+
}
92+
93+
if provisionerKey != "" {
94+
if preSharedKey != "" {
95+
return xerrors.New("cannot provide both provisioner key --key and pre-shared key --psk")
96+
}
97+
if len(rawTags) > 0 {
98+
return xerrors.New("cannot provide tags when using provisioner key")
8499
}
85100
}
86101

enterprise/cli/provisionerdaemonstart_test.go

Lines changed: 2 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -68,46 +68,6 @@ func TestProvisionerDaemon_PSK(t *testing.T) {
6868
require.Equal(t, proto.CurrentVersion.String(), daemons[0].APIVersion)
6969
})
7070

71-
t.Run("AnotherOrg", func(t *testing.T) {
72-
t.Parallel()
73-
dv := coderdtest.DeploymentValues(t)
74-
dv.Experiments = []string{string(codersdk.ExperimentMultiOrganization)}
75-
client, _ := coderdenttest.New(t, &coderdenttest.Options{
76-
Options: &coderdtest.Options{
77-
DeploymentValues: dv,
78-
},
79-
ProvisionerDaemonPSK: "provisionersftw",
80-
LicenseOptions: &coderdenttest.LicenseOptions{
81-
Features: license.Features{
82-
codersdk.FeatureExternalProvisionerDaemons: 1,
83-
codersdk.FeatureMultipleOrganizations: 1,
84-
},
85-
},
86-
})
87-
anotherOrg := coderdenttest.CreateOrganization(t, client, coderdenttest.CreateOrganizationOptions{})
88-
inv, conf := newCLI(t, "provisionerd", "start", "--psk=provisionersftw", "--name", "org-daemon", "--org", anotherOrg.ID.String())
89-
err := conf.URL().Write(client.URL.String())
90-
require.NoError(t, err)
91-
pty := ptytest.New(t).Attach(inv)
92-
ctx, cancel := context.WithTimeout(inv.Context(), testutil.WaitLong)
93-
defer cancel()
94-
clitest.Start(t, inv)
95-
pty.ExpectMatchContext(ctx, "starting provisioner daemon")
96-
97-
var daemons []codersdk.ProvisionerDaemon
98-
require.Eventually(t, func() bool {
99-
daemons, err = client.OrganizationProvisionerDaemons(ctx, anotherOrg.ID)
100-
if err != nil {
101-
return false
102-
}
103-
return len(daemons) == 1
104-
}, testutil.WaitShort, testutil.IntervalSlow)
105-
assert.Equal(t, "org-daemon", daemons[0].Name)
106-
assert.Equal(t, provisionersdk.ScopeOrganization, daemons[0].Tags[provisionersdk.TagScope])
107-
assert.Equal(t, buildinfo.Version(), daemons[0].Version)
108-
assert.Equal(t, proto.CurrentVersion.String(), daemons[0].APIVersion)
109-
})
110-
11171
t.Run("AnotherOrgByNameWithUser", func(t *testing.T) {
11272
t.Parallel()
11373
dv := coderdtest.DeploymentValues(t)
@@ -126,7 +86,7 @@ func TestProvisionerDaemon_PSK(t *testing.T) {
12686
})
12787
anotherOrg := coderdenttest.CreateOrganization(t, client, coderdenttest.CreateOrganizationOptions{})
12888
anotherClient, _ := coderdtest.CreateAnotherUser(t, client, anotherOrg.ID, rbac.RoleTemplateAdmin())
129-
inv, conf := newCLI(t, "provisionerd", "start", "--psk=provisionersftw", "--name", "org-daemon", "--org", anotherOrg.Name)
89+
inv, conf := newCLI(t, "provisionerd", "start", "--name", "org-daemon", "--org", anotherOrg.Name)
13090
clitest.SetupConfig(t, anotherClient, conf)
13191
pty := ptytest.New(t).Attach(inv)
13292
ctx, cancel := context.WithTimeout(inv.Context(), testutil.WaitLong)
@@ -135,32 +95,6 @@ func TestProvisionerDaemon_PSK(t *testing.T) {
13595
pty.ExpectMatchContext(ctx, "starting provisioner daemon")
13696
})
13797

138-
t.Run("AnotherOrgByNameNoUser", func(t *testing.T) {
139-
t.Parallel()
140-
dv := coderdtest.DeploymentValues(t)
141-
dv.Experiments = []string{string(codersdk.ExperimentMultiOrganization)}
142-
client, _ := coderdenttest.New(t, &coderdenttest.Options{
143-
Options: &coderdtest.Options{
144-
DeploymentValues: dv,
145-
},
146-
ProvisionerDaemonPSK: "provisionersftw",
147-
LicenseOptions: &coderdenttest.LicenseOptions{
148-
Features: license.Features{
149-
codersdk.FeatureExternalProvisionerDaemons: 1,
150-
codersdk.FeatureMultipleOrganizations: 1,
151-
},
152-
},
153-
})
154-
anotherOrg := coderdenttest.CreateOrganization(t, client, coderdenttest.CreateOrganizationOptions{})
155-
inv, conf := newCLI(t, "provisionerd", "start", "--psk=provisionersftw", "--name", "org-daemon", "--org", anotherOrg.Name)
156-
err := conf.URL().Write(client.URL.String())
157-
require.NoError(t, err)
158-
ctx, cancel := context.WithTimeout(inv.Context(), testutil.WaitLong)
159-
defer cancel()
160-
err = inv.WithContext(ctx).Run()
161-
require.ErrorContains(t, err, "must provide an org ID when not authenticated as a user and organization is specified")
162-
})
163-
16498
t.Run("NoUserNoPSK", func(t *testing.T) {
16599
t.Parallel()
166100
client, _ := coderdenttest.New(t, &coderdenttest.Options{
@@ -467,7 +401,7 @@ func TestProvisionerDaemon_ProvisionerKey(t *testing.T) {
467401
Name: "dont-TEST-me",
468402
})
469403
require.NoError(t, err)
470-
inv, conf := newCLI(t, "provisionerd", "start", "--org", anotherOrg.ID.String(), "--key", res.Key, "--name=matt-daemon")
404+
inv, conf := newCLI(t, "provisionerd", "start", "--key", res.Key, "--name=matt-daemon")
471405
err = conf.URL().Write(client.URL.String())
472406
require.NoError(t, err)
473407
pty := ptytest.New(t).Attach(inv)

enterprise/cli/testdata/coder_provisionerd_start_--help.golden

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ OPTIONS:
4343

4444
--psk string, $CODER_PROVISIONER_DAEMON_PSK
4545
Pre-shared key to authenticate with Coder server.
46+
DEPRECATED: Use --key instead.
4647

4748
-t, --tag string-array, $CODER_PROVISIONERD_TAGS
4849
Tags to filter provisioner jobs by.

0 commit comments

Comments
 (0)