Skip to content

Commit 643c3ee

Browse files
authored
refactor(provisionerd): move provisionersdk.VersionCurrent -> provisionerdproto.VersionCurrent (coder#12225)
1 parent c62a8b0 commit 643c3ee

File tree

11 files changed

+44
-41
lines changed

11 files changed

+44
-41
lines changed

coderd/coderd.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -457,7 +457,7 @@ func New(options *Options) *API {
457457
},
458458
ProvisionerDaemons: healthcheck.ProvisionerDaemonsReportDeps{
459459
CurrentVersion: buildinfo.Version(),
460-
CurrentAPIMajorVersion: provisionersdk.CurrentMajor,
460+
CurrentAPIMajorVersion: proto.CurrentMajor,
461461
Store: options.Database,
462462
// TimeNow and StaleInterval set to defaults, see healthcheck/provisioner.go
463463
},
@@ -1239,7 +1239,7 @@ func (api *API) CreateInMemoryProvisionerDaemon(dialCtx context.Context, name st
12391239
Tags: provisionersdk.MutateTags(uuid.Nil, nil),
12401240
LastSeenAt: sql.NullTime{Time: dbtime.Now(), Valid: true},
12411241
Version: buildinfo.Version(),
1242-
APIVersion: provisionersdk.VersionCurrent.String(),
1242+
APIVersion: proto.VersionCurrent.String(),
12431243
})
12441244
if err != nil {
12451245
return nil, xerrors.Errorf("failed to create in-memory provisioner daemon: %w", err)

coderd/database/dbpurge/dbpurge_test.go

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import (
1919
"github.com/coder/coder/v2/coderd/database/dbpurge"
2020
"github.com/coder/coder/v2/coderd/database/dbtestutil"
2121
"github.com/coder/coder/v2/coderd/database/dbtime"
22+
"github.com/coder/coder/v2/provisionerd/proto"
2223
"github.com/coder/coder/v2/provisionersdk"
2324
"github.com/coder/coder/v2/testutil"
2425
)
@@ -218,7 +219,7 @@ func TestDeleteOldProvisionerDaemons(t *testing.T) {
218219
CreatedAt: now.Add(-14 * 24 * time.Hour),
219220
LastSeenAt: sql.NullTime{Valid: true, Time: now.Add(-7 * 24 * time.Hour).Add(time.Minute)},
220221
Version: "1.0.0",
221-
APIVersion: provisionersdk.VersionCurrent.String(),
222+
APIVersion: proto.VersionCurrent.String(),
222223
})
223224
require.NoError(t, err)
224225
_, err = db.UpsertProvisionerDaemon(ctx, database.UpsertProvisionerDaemonParams{
@@ -229,7 +230,7 @@ func TestDeleteOldProvisionerDaemons(t *testing.T) {
229230
CreatedAt: now.Add(-8 * 24 * time.Hour),
230231
LastSeenAt: sql.NullTime{Valid: true, Time: now.Add(-8 * 24 * time.Hour).Add(time.Hour)},
231232
Version: "1.0.0",
232-
APIVersion: provisionersdk.VersionCurrent.String(),
233+
APIVersion: proto.VersionCurrent.String(),
233234
})
234235
require.NoError(t, err)
235236
_, err = db.UpsertProvisionerDaemon(ctx, database.UpsertProvisionerDaemonParams{
@@ -242,7 +243,7 @@ func TestDeleteOldProvisionerDaemons(t *testing.T) {
242243
},
243244
CreatedAt: now.Add(-9 * 24 * time.Hour),
244245
Version: "1.0.0",
245-
APIVersion: provisionersdk.VersionCurrent.String(),
246+
APIVersion: proto.VersionCurrent.String(),
246247
})
247248
require.NoError(t, err)
248249
_, err = db.UpsertProvisionerDaemon(ctx, database.UpsertProvisionerDaemonParams{
@@ -256,7 +257,7 @@ func TestDeleteOldProvisionerDaemons(t *testing.T) {
256257
CreatedAt: now.Add(-6 * 24 * time.Hour),
257258
LastSeenAt: sql.NullTime{Valid: true, Time: now.Add(-6 * 24 * time.Hour)},
258259
Version: "1.0.0",
259-
APIVersion: provisionersdk.VersionCurrent.String(),
260+
APIVersion: proto.VersionCurrent.String(),
260261
})
261262
require.NoError(t, err)
262263

coderd/healthcheck/provisioner.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ import (
1717
"github.com/coder/coder/v2/coderd/provisionerdserver"
1818
"github.com/coder/coder/v2/coderd/util/ptr"
1919
"github.com/coder/coder/v2/codersdk"
20-
"github.com/coder/coder/v2/provisionersdk"
20+
"github.com/coder/coder/v2/provisionerd/proto"
2121
)
2222

2323
// @typescript-generate ProvisionerDaemonsReport
@@ -144,7 +144,7 @@ func (r *ProvisionerDaemonsReport) Run(ctx context.Context, opts *ProvisionerDae
144144
r.Severity = health.SeverityWarning
145145
}
146146
r.Warnings = append(r.Warnings, health.Messagef(health.CodeProvisionerDaemonAPIMajorVersionDeprecated, "Some provisioner daemons report deprecated major API versions. Consider upgrading!"))
147-
it.Warnings = append(it.Warnings, health.Messagef(health.CodeProvisionerDaemonAPIMajorVersionDeprecated, "Deprecated major API version %d.", provisionersdk.CurrentMajor))
147+
it.Warnings = append(it.Warnings, health.Messagef(health.CodeProvisionerDaemonAPIMajorVersionDeprecated, "Deprecated major API version %d.", proto.CurrentMajor))
148148
}
149149

150150
r.Items = append(r.Items, it)

coderd/healthcheck/provisioner_test.go

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import (
1515
"github.com/coder/coder/v2/coderd/healthcheck"
1616
"github.com/coder/coder/v2/coderd/healthcheck/health"
1717
"github.com/coder/coder/v2/codersdk"
18-
"github.com/coder/coder/v2/provisionersdk"
18+
"github.com/coder/coder/v2/provisionerd/proto"
1919

2020
gomock "go.uber.org/mock/gomock"
2121
)
@@ -46,15 +46,15 @@ func TestProvisionerDaemonReport(t *testing.T) {
4646
{
4747
name: "no daemons",
4848
currentVersion: "v1.2.3",
49-
currentAPIMajorVersion: provisionersdk.CurrentMajor,
49+
currentAPIMajorVersion: proto.CurrentMajor,
5050
expectedSeverity: health.SeverityError,
5151
expectedItems: []healthcheck.ProvisionerDaemonsReportItem{},
5252
expectedWarningCode: health.CodeProvisionerDaemonsNoProvisionerDaemons,
5353
},
5454
{
5555
name: "error fetching daemons",
5656
currentVersion: "v1.2.3",
57-
currentAPIMajorVersion: provisionersdk.CurrentMajor,
57+
currentAPIMajorVersion: proto.CurrentMajor,
5858
provisionerDaemonsErr: assert.AnError,
5959
expectedSeverity: health.SeverityError,
6060
expectedError: assert.AnError.Error(),
@@ -63,7 +63,7 @@ func TestProvisionerDaemonReport(t *testing.T) {
6363
{
6464
name: "one daemon up to date",
6565
currentVersion: "v1.2.3",
66-
currentAPIMajorVersion: provisionersdk.CurrentMajor,
66+
currentAPIMajorVersion: proto.CurrentMajor,
6767
expectedSeverity: health.SeverityOK,
6868
provisionerDaemons: []database.ProvisionerDaemon{fakeProvisionerDaemon(t, "pd-ok", "v1.2.3", "1.0", now)},
6969
expectedItems: []healthcheck.ProvisionerDaemonsReportItem{
@@ -85,7 +85,7 @@ func TestProvisionerDaemonReport(t *testing.T) {
8585
{
8686
name: "one daemon out of date",
8787
currentVersion: "v1.2.3",
88-
currentAPIMajorVersion: provisionersdk.CurrentMajor,
88+
currentAPIMajorVersion: proto.CurrentMajor,
8989
expectedSeverity: health.SeverityWarning,
9090
expectedWarningCode: health.CodeProvisionerDaemonVersionMismatch,
9191
provisionerDaemons: []database.ProvisionerDaemon{fakeProvisionerDaemon(t, "pd-old", "v1.1.2", "1.0", now)},
@@ -113,7 +113,7 @@ func TestProvisionerDaemonReport(t *testing.T) {
113113
{
114114
name: "invalid daemon version",
115115
currentVersion: "v1.2.3",
116-
currentAPIMajorVersion: provisionersdk.CurrentMajor,
116+
currentAPIMajorVersion: proto.CurrentMajor,
117117
expectedSeverity: health.SeverityError,
118118
expectedWarningCode: health.CodeUnknown,
119119
provisionerDaemons: []database.ProvisionerDaemon{fakeProvisionerDaemon(t, "pd-invalid-version", "invalid", "1.0", now)},
@@ -141,7 +141,7 @@ func TestProvisionerDaemonReport(t *testing.T) {
141141
{
142142
name: "invalid daemon api version",
143143
currentVersion: "v1.2.3",
144-
currentAPIMajorVersion: provisionersdk.CurrentMajor,
144+
currentAPIMajorVersion: proto.CurrentMajor,
145145
expectedSeverity: health.SeverityError,
146146
expectedWarningCode: health.CodeUnknown,
147147
provisionerDaemons: []database.ProvisionerDaemon{fakeProvisionerDaemon(t, "pd-invalid-api", "v1.2.3", "invalid", now)},
@@ -197,7 +197,7 @@ func TestProvisionerDaemonReport(t *testing.T) {
197197
{
198198
name: "one up to date, one out of date",
199199
currentVersion: "v1.2.3",
200-
currentAPIMajorVersion: provisionersdk.CurrentMajor,
200+
currentAPIMajorVersion: proto.CurrentMajor,
201201
expectedSeverity: health.SeverityWarning,
202202
expectedWarningCode: health.CodeProvisionerDaemonVersionMismatch,
203203
provisionerDaemons: []database.ProvisionerDaemon{fakeProvisionerDaemon(t, "pd-ok", "v1.2.3", "1.0", now), fakeProvisionerDaemon(t, "pd-old", "v1.1.2", "1.0", now)},
@@ -238,7 +238,7 @@ func TestProvisionerDaemonReport(t *testing.T) {
238238
{
239239
name: "one up to date, one newer",
240240
currentVersion: "v1.2.3",
241-
currentAPIMajorVersion: provisionersdk.CurrentMajor,
241+
currentAPIMajorVersion: proto.CurrentMajor,
242242
expectedSeverity: health.SeverityWarning,
243243
expectedWarningCode: health.CodeProvisionerDaemonVersionMismatch,
244244
provisionerDaemons: []database.ProvisionerDaemon{fakeProvisionerDaemon(t, "pd-ok", "v1.2.3", "1.0", now), fakeProvisionerDaemon(t, "pd-new", "v2.3.4", "1.0", now)},
@@ -279,7 +279,7 @@ func TestProvisionerDaemonReport(t *testing.T) {
279279
{
280280
name: "one up to date, one stale older",
281281
currentVersion: "v2.3.4",
282-
currentAPIMajorVersion: provisionersdk.CurrentMajor,
282+
currentAPIMajorVersion: proto.CurrentMajor,
283283
expectedSeverity: health.SeverityOK,
284284
provisionerDaemons: []database.ProvisionerDaemon{fakeProvisionerDaemonStale(t, "pd-stale", "v1.2.3", "0.9", now.Add(-5*time.Minute), now), fakeProvisionerDaemon(t, "pd-ok", "v2.3.4", "1.0", now)},
285285
expectedItems: []healthcheck.ProvisionerDaemonsReportItem{
@@ -301,7 +301,7 @@ func TestProvisionerDaemonReport(t *testing.T) {
301301
{
302302
name: "one stale",
303303
currentVersion: "v2.3.4",
304-
currentAPIMajorVersion: provisionersdk.CurrentMajor,
304+
currentAPIMajorVersion: proto.CurrentMajor,
305305
expectedSeverity: health.SeverityError,
306306
expectedWarningCode: health.CodeProvisionerDaemonsNoProvisionerDaemons,
307307
provisionerDaemons: []database.ProvisionerDaemon{fakeProvisionerDaemonStale(t, "pd-ok", "v1.2.3", "0.9", now.Add(-5*time.Minute), now)},
@@ -317,7 +317,7 @@ func TestProvisionerDaemonReport(t *testing.T) {
317317
deps.CurrentVersion = tt.currentVersion
318318
deps.CurrentAPIMajorVersion = tt.currentAPIMajorVersion
319319
if tt.currentAPIMajorVersion == 0 {
320-
deps.CurrentAPIMajorVersion = provisionersdk.CurrentMajor
320+
deps.CurrentAPIMajorVersion = proto.CurrentMajor
321321
}
322322
deps.TimeNow = func() time.Time {
323323
return now

coderd/provisionerdserver/provisionerdserver_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1776,7 +1776,7 @@ func setup(t *testing.T, ignoreLogErrors bool, ov *overrides) (proto.DRPCProvisi
17761776
Tags: database.StringMap{},
17771777
LastSeenAt: sql.NullTime{},
17781778
Version: buildinfo.Version(),
1779-
APIVersion: provisionersdk.VersionCurrent.String(),
1779+
APIVersion: proto.VersionCurrent.String(),
17801780
})
17811781
require.NoError(t, err)
17821782

codersdk/provisionerdaemons.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ import (
1818
"github.com/coder/coder/v2/codersdk/drpc"
1919
"github.com/coder/coder/v2/provisionerd/proto"
2020
"github.com/coder/coder/v2/provisionerd/runner"
21-
"github.com/coder/coder/v2/provisionersdk"
2221
)
2322

2423
type LogSource string
@@ -202,7 +201,7 @@ func (c *Client) ServeProvisionerDaemon(ctx context.Context, req ServeProvisione
202201
query := serverURL.Query()
203202
query.Add("id", req.ID.String())
204203
query.Add("name", req.Name)
205-
query.Add("version", provisionersdk.VersionCurrent.String())
204+
query.Add("version", proto.VersionCurrent.String())
206205

207206
for _, provisioner := range req.Provisioners {
208207
query.Add("provisioner", string(provisioner))

enterprise/cli/provisionerdaemons_test.go

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import (
1414
"github.com/coder/coder/v2/codersdk"
1515
"github.com/coder/coder/v2/enterprise/coderd/coderdenttest"
1616
"github.com/coder/coder/v2/enterprise/coderd/license"
17+
"github.com/coder/coder/v2/provisionerd/proto"
1718
"github.com/coder/coder/v2/provisionersdk"
1819
"github.com/coder/coder/v2/pty/ptytest"
1920
"github.com/coder/coder/v2/testutil"
@@ -51,7 +52,7 @@ func TestProvisionerDaemon_PSK(t *testing.T) {
5152
require.Equal(t, "matt-daemon", daemons[0].Name)
5253
require.Equal(t, provisionersdk.ScopeOrganization, daemons[0].Tags[provisionersdk.TagScope])
5354
require.Equal(t, buildinfo.Version(), daemons[0].Version)
54-
require.Equal(t, provisionersdk.VersionCurrent.String(), daemons[0].APIVersion)
55+
require.Equal(t, proto.VersionCurrent.String(), daemons[0].APIVersion)
5556
}
5657

5758
func TestProvisionerDaemon_SessionToken(t *testing.T) {
@@ -88,7 +89,7 @@ func TestProvisionerDaemon_SessionToken(t *testing.T) {
8889
assert.Equal(t, provisionersdk.ScopeUser, daemons[0].Tags[provisionersdk.TagScope])
8990
assert.Equal(t, anotherUser.ID.String(), daemons[0].Tags[provisionersdk.TagOwner])
9091
assert.Equal(t, buildinfo.Version(), daemons[0].Version)
91-
assert.Equal(t, provisionersdk.VersionCurrent.String(), daemons[0].APIVersion)
92+
assert.Equal(t, proto.VersionCurrent.String(), daemons[0].APIVersion)
9293
})
9394

9495
t.Run("ScopeAnotherUser", func(t *testing.T) {
@@ -124,7 +125,7 @@ func TestProvisionerDaemon_SessionToken(t *testing.T) {
124125
// This should get clobbered to the user who started the daemon.
125126
assert.Equal(t, anotherUser.ID.String(), daemons[0].Tags[provisionersdk.TagOwner])
126127
assert.Equal(t, buildinfo.Version(), daemons[0].Version)
127-
assert.Equal(t, provisionersdk.VersionCurrent.String(), daemons[0].APIVersion)
128+
assert.Equal(t, proto.VersionCurrent.String(), daemons[0].APIVersion)
128129
})
129130

130131
t.Run("ScopeOrg", func(t *testing.T) {
@@ -158,6 +159,6 @@ func TestProvisionerDaemon_SessionToken(t *testing.T) {
158159
assert.Equal(t, "org-daemon", daemons[0].Name)
159160
assert.Equal(t, provisionersdk.ScopeOrganization, daemons[0].Tags[provisionersdk.TagScope])
160161
assert.Equal(t, buildinfo.Version(), daemons[0].Version)
161-
assert.Equal(t, provisionersdk.VersionCurrent.String(), daemons[0].APIVersion)
162+
assert.Equal(t, proto.VersionCurrent.String(), daemons[0].APIVersion)
162163
})
163164
}

enterprise/coderd/provisionerdaemons.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -239,7 +239,7 @@ func (api *API) provisionerDaemonServe(rw http.ResponseWriter, r *http.Request)
239239
apiVersion = qv
240240
}
241241

242-
if err := provisionersdk.VersionCurrent.Validate(apiVersion); err != nil {
242+
if err := proto.VersionCurrent.Validate(apiVersion); err != nil {
243243
httpapi.Write(ctx, rw, http.StatusBadRequest, codersdk.Response{
244244
Message: "Incompatible or unparsable version",
245245
Validations: []codersdk.ValidationError{

enterprise/coderd/provisionerdaemons_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ func TestProvisionerDaemonServe(t *testing.T) {
6262
if assert.Len(t, daemons, 1) {
6363
assert.Equal(t, daemonName, daemons[0].Name)
6464
assert.Equal(t, buildinfo.Version(), daemons[0].Version)
65-
assert.Equal(t, provisionersdk.VersionCurrent.String(), daemons[0].APIVersion)
65+
assert.Equal(t, provisionerdproto.VersionCurrent.String(), daemons[0].APIVersion)
6666
}
6767
})
6868

@@ -149,7 +149,7 @@ func TestProvisionerDaemonServe(t *testing.T) {
149149
q.Add("provisioner", "echo")
150150

151151
// Set a different (newer) version than the current.
152-
v := apiversion.New(provisionersdk.CurrentMajor+1, provisionersdk.CurrentMinor+1)
152+
v := apiversion.New(provisionerdproto.CurrentMajor+1, provisionerdproto.CurrentMinor+1)
153153
q.Add("version", v.String())
154154
srvURL.RawQuery = q.Encode()
155155

provisionerd/proto/version.go

Lines changed: 13 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

provisionersdk/serve.go

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -16,21 +16,10 @@ import (
1616

1717
"cdr.dev/slog"
1818

19-
"github.com/coder/coder/v2/apiversion"
2019
"github.com/coder/coder/v2/coderd/tracing"
2120
"github.com/coder/coder/v2/provisionersdk/proto"
2221
)
2322

24-
const (
25-
CurrentMajor = 1
26-
CurrentMinor = 0
27-
)
28-
29-
// VersionCurrent is the current provisionerd API version.
30-
// Breaking changes to the provisionerd API **MUST** increment
31-
// CurrentMajor above.
32-
var VersionCurrent = apiversion.New(CurrentMajor, CurrentMinor)
33-
3423
// ServeOptions are configurations to serve a provisioner.
3524
type ServeOptions struct {
3625
// Listener serves multiple connections. Cannot be combined with Conn.

0 commit comments

Comments
 (0)