mirror of https://github.com/coder/coder.git
refactor(provisionerd): move provisionersdk.VersionCurrent -> provisionerdproto.VersionCurrent (#12225)
This commit is contained in:
parent
c62a8b0bee
commit
643c3ee54b
|
@ -457,7 +457,7 @@ func New(options *Options) *API {
|
||||||
},
|
},
|
||||||
ProvisionerDaemons: healthcheck.ProvisionerDaemonsReportDeps{
|
ProvisionerDaemons: healthcheck.ProvisionerDaemonsReportDeps{
|
||||||
CurrentVersion: buildinfo.Version(),
|
CurrentVersion: buildinfo.Version(),
|
||||||
CurrentAPIMajorVersion: provisionersdk.CurrentMajor,
|
CurrentAPIMajorVersion: proto.CurrentMajor,
|
||||||
Store: options.Database,
|
Store: options.Database,
|
||||||
// TimeNow and StaleInterval set to defaults, see healthcheck/provisioner.go
|
// TimeNow and StaleInterval set to defaults, see healthcheck/provisioner.go
|
||||||
},
|
},
|
||||||
|
@ -1239,7 +1239,7 @@ func (api *API) CreateInMemoryProvisionerDaemon(dialCtx context.Context, name st
|
||||||
Tags: provisionersdk.MutateTags(uuid.Nil, nil),
|
Tags: provisionersdk.MutateTags(uuid.Nil, nil),
|
||||||
LastSeenAt: sql.NullTime{Time: dbtime.Now(), Valid: true},
|
LastSeenAt: sql.NullTime{Time: dbtime.Now(), Valid: true},
|
||||||
Version: buildinfo.Version(),
|
Version: buildinfo.Version(),
|
||||||
APIVersion: provisionersdk.VersionCurrent.String(),
|
APIVersion: proto.VersionCurrent.String(),
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, xerrors.Errorf("failed to create in-memory provisioner daemon: %w", err)
|
return nil, xerrors.Errorf("failed to create in-memory provisioner daemon: %w", err)
|
||||||
|
|
|
@ -19,6 +19,7 @@ import (
|
||||||
"github.com/coder/coder/v2/coderd/database/dbpurge"
|
"github.com/coder/coder/v2/coderd/database/dbpurge"
|
||||||
"github.com/coder/coder/v2/coderd/database/dbtestutil"
|
"github.com/coder/coder/v2/coderd/database/dbtestutil"
|
||||||
"github.com/coder/coder/v2/coderd/database/dbtime"
|
"github.com/coder/coder/v2/coderd/database/dbtime"
|
||||||
|
"github.com/coder/coder/v2/provisionerd/proto"
|
||||||
"github.com/coder/coder/v2/provisionersdk"
|
"github.com/coder/coder/v2/provisionersdk"
|
||||||
"github.com/coder/coder/v2/testutil"
|
"github.com/coder/coder/v2/testutil"
|
||||||
)
|
)
|
||||||
|
@ -218,7 +219,7 @@ func TestDeleteOldProvisionerDaemons(t *testing.T) {
|
||||||
CreatedAt: now.Add(-14 * 24 * time.Hour),
|
CreatedAt: now.Add(-14 * 24 * time.Hour),
|
||||||
LastSeenAt: sql.NullTime{Valid: true, Time: now.Add(-7 * 24 * time.Hour).Add(time.Minute)},
|
LastSeenAt: sql.NullTime{Valid: true, Time: now.Add(-7 * 24 * time.Hour).Add(time.Minute)},
|
||||||
Version: "1.0.0",
|
Version: "1.0.0",
|
||||||
APIVersion: provisionersdk.VersionCurrent.String(),
|
APIVersion: proto.VersionCurrent.String(),
|
||||||
})
|
})
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
_, err = db.UpsertProvisionerDaemon(ctx, database.UpsertProvisionerDaemonParams{
|
_, err = db.UpsertProvisionerDaemon(ctx, database.UpsertProvisionerDaemonParams{
|
||||||
|
@ -229,7 +230,7 @@ func TestDeleteOldProvisionerDaemons(t *testing.T) {
|
||||||
CreatedAt: now.Add(-8 * 24 * time.Hour),
|
CreatedAt: now.Add(-8 * 24 * time.Hour),
|
||||||
LastSeenAt: sql.NullTime{Valid: true, Time: now.Add(-8 * 24 * time.Hour).Add(time.Hour)},
|
LastSeenAt: sql.NullTime{Valid: true, Time: now.Add(-8 * 24 * time.Hour).Add(time.Hour)},
|
||||||
Version: "1.0.0",
|
Version: "1.0.0",
|
||||||
APIVersion: provisionersdk.VersionCurrent.String(),
|
APIVersion: proto.VersionCurrent.String(),
|
||||||
})
|
})
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
_, err = db.UpsertProvisionerDaemon(ctx, database.UpsertProvisionerDaemonParams{
|
_, err = db.UpsertProvisionerDaemon(ctx, database.UpsertProvisionerDaemonParams{
|
||||||
|
@ -242,7 +243,7 @@ func TestDeleteOldProvisionerDaemons(t *testing.T) {
|
||||||
},
|
},
|
||||||
CreatedAt: now.Add(-9 * 24 * time.Hour),
|
CreatedAt: now.Add(-9 * 24 * time.Hour),
|
||||||
Version: "1.0.0",
|
Version: "1.0.0",
|
||||||
APIVersion: provisionersdk.VersionCurrent.String(),
|
APIVersion: proto.VersionCurrent.String(),
|
||||||
})
|
})
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
_, err = db.UpsertProvisionerDaemon(ctx, database.UpsertProvisionerDaemonParams{
|
_, err = db.UpsertProvisionerDaemon(ctx, database.UpsertProvisionerDaemonParams{
|
||||||
|
@ -256,7 +257,7 @@ func TestDeleteOldProvisionerDaemons(t *testing.T) {
|
||||||
CreatedAt: now.Add(-6 * 24 * time.Hour),
|
CreatedAt: now.Add(-6 * 24 * time.Hour),
|
||||||
LastSeenAt: sql.NullTime{Valid: true, Time: now.Add(-6 * 24 * time.Hour)},
|
LastSeenAt: sql.NullTime{Valid: true, Time: now.Add(-6 * 24 * time.Hour)},
|
||||||
Version: "1.0.0",
|
Version: "1.0.0",
|
||||||
APIVersion: provisionersdk.VersionCurrent.String(),
|
APIVersion: proto.VersionCurrent.String(),
|
||||||
})
|
})
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
|
|
|
@ -17,7 +17,7 @@ import (
|
||||||
"github.com/coder/coder/v2/coderd/provisionerdserver"
|
"github.com/coder/coder/v2/coderd/provisionerdserver"
|
||||||
"github.com/coder/coder/v2/coderd/util/ptr"
|
"github.com/coder/coder/v2/coderd/util/ptr"
|
||||||
"github.com/coder/coder/v2/codersdk"
|
"github.com/coder/coder/v2/codersdk"
|
||||||
"github.com/coder/coder/v2/provisionersdk"
|
"github.com/coder/coder/v2/provisionerd/proto"
|
||||||
)
|
)
|
||||||
|
|
||||||
// @typescript-generate ProvisionerDaemonsReport
|
// @typescript-generate ProvisionerDaemonsReport
|
||||||
|
@ -144,7 +144,7 @@ func (r *ProvisionerDaemonsReport) Run(ctx context.Context, opts *ProvisionerDae
|
||||||
r.Severity = health.SeverityWarning
|
r.Severity = health.SeverityWarning
|
||||||
}
|
}
|
||||||
r.Warnings = append(r.Warnings, health.Messagef(health.CodeProvisionerDaemonAPIMajorVersionDeprecated, "Some provisioner daemons report deprecated major API versions. Consider upgrading!"))
|
r.Warnings = append(r.Warnings, health.Messagef(health.CodeProvisionerDaemonAPIMajorVersionDeprecated, "Some provisioner daemons report deprecated major API versions. Consider upgrading!"))
|
||||||
it.Warnings = append(it.Warnings, health.Messagef(health.CodeProvisionerDaemonAPIMajorVersionDeprecated, "Deprecated major API version %d.", provisionersdk.CurrentMajor))
|
it.Warnings = append(it.Warnings, health.Messagef(health.CodeProvisionerDaemonAPIMajorVersionDeprecated, "Deprecated major API version %d.", proto.CurrentMajor))
|
||||||
}
|
}
|
||||||
|
|
||||||
r.Items = append(r.Items, it)
|
r.Items = append(r.Items, it)
|
||||||
|
|
|
@ -15,7 +15,7 @@ import (
|
||||||
"github.com/coder/coder/v2/coderd/healthcheck"
|
"github.com/coder/coder/v2/coderd/healthcheck"
|
||||||
"github.com/coder/coder/v2/coderd/healthcheck/health"
|
"github.com/coder/coder/v2/coderd/healthcheck/health"
|
||||||
"github.com/coder/coder/v2/codersdk"
|
"github.com/coder/coder/v2/codersdk"
|
||||||
"github.com/coder/coder/v2/provisionersdk"
|
"github.com/coder/coder/v2/provisionerd/proto"
|
||||||
|
|
||||||
gomock "go.uber.org/mock/gomock"
|
gomock "go.uber.org/mock/gomock"
|
||||||
)
|
)
|
||||||
|
@ -46,7 +46,7 @@ func TestProvisionerDaemonReport(t *testing.T) {
|
||||||
{
|
{
|
||||||
name: "no daemons",
|
name: "no daemons",
|
||||||
currentVersion: "v1.2.3",
|
currentVersion: "v1.2.3",
|
||||||
currentAPIMajorVersion: provisionersdk.CurrentMajor,
|
currentAPIMajorVersion: proto.CurrentMajor,
|
||||||
expectedSeverity: health.SeverityError,
|
expectedSeverity: health.SeverityError,
|
||||||
expectedItems: []healthcheck.ProvisionerDaemonsReportItem{},
|
expectedItems: []healthcheck.ProvisionerDaemonsReportItem{},
|
||||||
expectedWarningCode: health.CodeProvisionerDaemonsNoProvisionerDaemons,
|
expectedWarningCode: health.CodeProvisionerDaemonsNoProvisionerDaemons,
|
||||||
|
@ -54,7 +54,7 @@ func TestProvisionerDaemonReport(t *testing.T) {
|
||||||
{
|
{
|
||||||
name: "error fetching daemons",
|
name: "error fetching daemons",
|
||||||
currentVersion: "v1.2.3",
|
currentVersion: "v1.2.3",
|
||||||
currentAPIMajorVersion: provisionersdk.CurrentMajor,
|
currentAPIMajorVersion: proto.CurrentMajor,
|
||||||
provisionerDaemonsErr: assert.AnError,
|
provisionerDaemonsErr: assert.AnError,
|
||||||
expectedSeverity: health.SeverityError,
|
expectedSeverity: health.SeverityError,
|
||||||
expectedError: assert.AnError.Error(),
|
expectedError: assert.AnError.Error(),
|
||||||
|
@ -63,7 +63,7 @@ func TestProvisionerDaemonReport(t *testing.T) {
|
||||||
{
|
{
|
||||||
name: "one daemon up to date",
|
name: "one daemon up to date",
|
||||||
currentVersion: "v1.2.3",
|
currentVersion: "v1.2.3",
|
||||||
currentAPIMajorVersion: provisionersdk.CurrentMajor,
|
currentAPIMajorVersion: proto.CurrentMajor,
|
||||||
expectedSeverity: health.SeverityOK,
|
expectedSeverity: health.SeverityOK,
|
||||||
provisionerDaemons: []database.ProvisionerDaemon{fakeProvisionerDaemon(t, "pd-ok", "v1.2.3", "1.0", now)},
|
provisionerDaemons: []database.ProvisionerDaemon{fakeProvisionerDaemon(t, "pd-ok", "v1.2.3", "1.0", now)},
|
||||||
expectedItems: []healthcheck.ProvisionerDaemonsReportItem{
|
expectedItems: []healthcheck.ProvisionerDaemonsReportItem{
|
||||||
|
@ -85,7 +85,7 @@ func TestProvisionerDaemonReport(t *testing.T) {
|
||||||
{
|
{
|
||||||
name: "one daemon out of date",
|
name: "one daemon out of date",
|
||||||
currentVersion: "v1.2.3",
|
currentVersion: "v1.2.3",
|
||||||
currentAPIMajorVersion: provisionersdk.CurrentMajor,
|
currentAPIMajorVersion: proto.CurrentMajor,
|
||||||
expectedSeverity: health.SeverityWarning,
|
expectedSeverity: health.SeverityWarning,
|
||||||
expectedWarningCode: health.CodeProvisionerDaemonVersionMismatch,
|
expectedWarningCode: health.CodeProvisionerDaemonVersionMismatch,
|
||||||
provisionerDaemons: []database.ProvisionerDaemon{fakeProvisionerDaemon(t, "pd-old", "v1.1.2", "1.0", now)},
|
provisionerDaemons: []database.ProvisionerDaemon{fakeProvisionerDaemon(t, "pd-old", "v1.1.2", "1.0", now)},
|
||||||
|
@ -113,7 +113,7 @@ func TestProvisionerDaemonReport(t *testing.T) {
|
||||||
{
|
{
|
||||||
name: "invalid daemon version",
|
name: "invalid daemon version",
|
||||||
currentVersion: "v1.2.3",
|
currentVersion: "v1.2.3",
|
||||||
currentAPIMajorVersion: provisionersdk.CurrentMajor,
|
currentAPIMajorVersion: proto.CurrentMajor,
|
||||||
expectedSeverity: health.SeverityError,
|
expectedSeverity: health.SeverityError,
|
||||||
expectedWarningCode: health.CodeUnknown,
|
expectedWarningCode: health.CodeUnknown,
|
||||||
provisionerDaemons: []database.ProvisionerDaemon{fakeProvisionerDaemon(t, "pd-invalid-version", "invalid", "1.0", now)},
|
provisionerDaemons: []database.ProvisionerDaemon{fakeProvisionerDaemon(t, "pd-invalid-version", "invalid", "1.0", now)},
|
||||||
|
@ -141,7 +141,7 @@ func TestProvisionerDaemonReport(t *testing.T) {
|
||||||
{
|
{
|
||||||
name: "invalid daemon api version",
|
name: "invalid daemon api version",
|
||||||
currentVersion: "v1.2.3",
|
currentVersion: "v1.2.3",
|
||||||
currentAPIMajorVersion: provisionersdk.CurrentMajor,
|
currentAPIMajorVersion: proto.CurrentMajor,
|
||||||
expectedSeverity: health.SeverityError,
|
expectedSeverity: health.SeverityError,
|
||||||
expectedWarningCode: health.CodeUnknown,
|
expectedWarningCode: health.CodeUnknown,
|
||||||
provisionerDaemons: []database.ProvisionerDaemon{fakeProvisionerDaemon(t, "pd-invalid-api", "v1.2.3", "invalid", now)},
|
provisionerDaemons: []database.ProvisionerDaemon{fakeProvisionerDaemon(t, "pd-invalid-api", "v1.2.3", "invalid", now)},
|
||||||
|
@ -197,7 +197,7 @@ func TestProvisionerDaemonReport(t *testing.T) {
|
||||||
{
|
{
|
||||||
name: "one up to date, one out of date",
|
name: "one up to date, one out of date",
|
||||||
currentVersion: "v1.2.3",
|
currentVersion: "v1.2.3",
|
||||||
currentAPIMajorVersion: provisionersdk.CurrentMajor,
|
currentAPIMajorVersion: proto.CurrentMajor,
|
||||||
expectedSeverity: health.SeverityWarning,
|
expectedSeverity: health.SeverityWarning,
|
||||||
expectedWarningCode: health.CodeProvisionerDaemonVersionMismatch,
|
expectedWarningCode: health.CodeProvisionerDaemonVersionMismatch,
|
||||||
provisionerDaemons: []database.ProvisionerDaemon{fakeProvisionerDaemon(t, "pd-ok", "v1.2.3", "1.0", now), fakeProvisionerDaemon(t, "pd-old", "v1.1.2", "1.0", now)},
|
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) {
|
||||||
{
|
{
|
||||||
name: "one up to date, one newer",
|
name: "one up to date, one newer",
|
||||||
currentVersion: "v1.2.3",
|
currentVersion: "v1.2.3",
|
||||||
currentAPIMajorVersion: provisionersdk.CurrentMajor,
|
currentAPIMajorVersion: proto.CurrentMajor,
|
||||||
expectedSeverity: health.SeverityWarning,
|
expectedSeverity: health.SeverityWarning,
|
||||||
expectedWarningCode: health.CodeProvisionerDaemonVersionMismatch,
|
expectedWarningCode: health.CodeProvisionerDaemonVersionMismatch,
|
||||||
provisionerDaemons: []database.ProvisionerDaemon{fakeProvisionerDaemon(t, "pd-ok", "v1.2.3", "1.0", now), fakeProvisionerDaemon(t, "pd-new", "v2.3.4", "1.0", now)},
|
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) {
|
||||||
{
|
{
|
||||||
name: "one up to date, one stale older",
|
name: "one up to date, one stale older",
|
||||||
currentVersion: "v2.3.4",
|
currentVersion: "v2.3.4",
|
||||||
currentAPIMajorVersion: provisionersdk.CurrentMajor,
|
currentAPIMajorVersion: proto.CurrentMajor,
|
||||||
expectedSeverity: health.SeverityOK,
|
expectedSeverity: health.SeverityOK,
|
||||||
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)},
|
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)},
|
||||||
expectedItems: []healthcheck.ProvisionerDaemonsReportItem{
|
expectedItems: []healthcheck.ProvisionerDaemonsReportItem{
|
||||||
|
@ -301,7 +301,7 @@ func TestProvisionerDaemonReport(t *testing.T) {
|
||||||
{
|
{
|
||||||
name: "one stale",
|
name: "one stale",
|
||||||
currentVersion: "v2.3.4",
|
currentVersion: "v2.3.4",
|
||||||
currentAPIMajorVersion: provisionersdk.CurrentMajor,
|
currentAPIMajorVersion: proto.CurrentMajor,
|
||||||
expectedSeverity: health.SeverityError,
|
expectedSeverity: health.SeverityError,
|
||||||
expectedWarningCode: health.CodeProvisionerDaemonsNoProvisionerDaemons,
|
expectedWarningCode: health.CodeProvisionerDaemonsNoProvisionerDaemons,
|
||||||
provisionerDaemons: []database.ProvisionerDaemon{fakeProvisionerDaemonStale(t, "pd-ok", "v1.2.3", "0.9", now.Add(-5*time.Minute), now)},
|
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) {
|
||||||
deps.CurrentVersion = tt.currentVersion
|
deps.CurrentVersion = tt.currentVersion
|
||||||
deps.CurrentAPIMajorVersion = tt.currentAPIMajorVersion
|
deps.CurrentAPIMajorVersion = tt.currentAPIMajorVersion
|
||||||
if tt.currentAPIMajorVersion == 0 {
|
if tt.currentAPIMajorVersion == 0 {
|
||||||
deps.CurrentAPIMajorVersion = provisionersdk.CurrentMajor
|
deps.CurrentAPIMajorVersion = proto.CurrentMajor
|
||||||
}
|
}
|
||||||
deps.TimeNow = func() time.Time {
|
deps.TimeNow = func() time.Time {
|
||||||
return now
|
return now
|
||||||
|
|
|
@ -1776,7 +1776,7 @@ func setup(t *testing.T, ignoreLogErrors bool, ov *overrides) (proto.DRPCProvisi
|
||||||
Tags: database.StringMap{},
|
Tags: database.StringMap{},
|
||||||
LastSeenAt: sql.NullTime{},
|
LastSeenAt: sql.NullTime{},
|
||||||
Version: buildinfo.Version(),
|
Version: buildinfo.Version(),
|
||||||
APIVersion: provisionersdk.VersionCurrent.String(),
|
APIVersion: proto.VersionCurrent.String(),
|
||||||
})
|
})
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
|
|
|
@ -18,7 +18,6 @@ import (
|
||||||
"github.com/coder/coder/v2/codersdk/drpc"
|
"github.com/coder/coder/v2/codersdk/drpc"
|
||||||
"github.com/coder/coder/v2/provisionerd/proto"
|
"github.com/coder/coder/v2/provisionerd/proto"
|
||||||
"github.com/coder/coder/v2/provisionerd/runner"
|
"github.com/coder/coder/v2/provisionerd/runner"
|
||||||
"github.com/coder/coder/v2/provisionersdk"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
type LogSource string
|
type LogSource string
|
||||||
|
@ -202,7 +201,7 @@ func (c *Client) ServeProvisionerDaemon(ctx context.Context, req ServeProvisione
|
||||||
query := serverURL.Query()
|
query := serverURL.Query()
|
||||||
query.Add("id", req.ID.String())
|
query.Add("id", req.ID.String())
|
||||||
query.Add("name", req.Name)
|
query.Add("name", req.Name)
|
||||||
query.Add("version", provisionersdk.VersionCurrent.String())
|
query.Add("version", proto.VersionCurrent.String())
|
||||||
|
|
||||||
for _, provisioner := range req.Provisioners {
|
for _, provisioner := range req.Provisioners {
|
||||||
query.Add("provisioner", string(provisioner))
|
query.Add("provisioner", string(provisioner))
|
||||||
|
|
|
@ -14,6 +14,7 @@ import (
|
||||||
"github.com/coder/coder/v2/codersdk"
|
"github.com/coder/coder/v2/codersdk"
|
||||||
"github.com/coder/coder/v2/enterprise/coderd/coderdenttest"
|
"github.com/coder/coder/v2/enterprise/coderd/coderdenttest"
|
||||||
"github.com/coder/coder/v2/enterprise/coderd/license"
|
"github.com/coder/coder/v2/enterprise/coderd/license"
|
||||||
|
"github.com/coder/coder/v2/provisionerd/proto"
|
||||||
"github.com/coder/coder/v2/provisionersdk"
|
"github.com/coder/coder/v2/provisionersdk"
|
||||||
"github.com/coder/coder/v2/pty/ptytest"
|
"github.com/coder/coder/v2/pty/ptytest"
|
||||||
"github.com/coder/coder/v2/testutil"
|
"github.com/coder/coder/v2/testutil"
|
||||||
|
@ -51,7 +52,7 @@ func TestProvisionerDaemon_PSK(t *testing.T) {
|
||||||
require.Equal(t, "matt-daemon", daemons[0].Name)
|
require.Equal(t, "matt-daemon", daemons[0].Name)
|
||||||
require.Equal(t, provisionersdk.ScopeOrganization, daemons[0].Tags[provisionersdk.TagScope])
|
require.Equal(t, provisionersdk.ScopeOrganization, daemons[0].Tags[provisionersdk.TagScope])
|
||||||
require.Equal(t, buildinfo.Version(), daemons[0].Version)
|
require.Equal(t, buildinfo.Version(), daemons[0].Version)
|
||||||
require.Equal(t, provisionersdk.VersionCurrent.String(), daemons[0].APIVersion)
|
require.Equal(t, proto.VersionCurrent.String(), daemons[0].APIVersion)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestProvisionerDaemon_SessionToken(t *testing.T) {
|
func TestProvisionerDaemon_SessionToken(t *testing.T) {
|
||||||
|
@ -88,7 +89,7 @@ func TestProvisionerDaemon_SessionToken(t *testing.T) {
|
||||||
assert.Equal(t, provisionersdk.ScopeUser, daemons[0].Tags[provisionersdk.TagScope])
|
assert.Equal(t, provisionersdk.ScopeUser, daemons[0].Tags[provisionersdk.TagScope])
|
||||||
assert.Equal(t, anotherUser.ID.String(), daemons[0].Tags[provisionersdk.TagOwner])
|
assert.Equal(t, anotherUser.ID.String(), daemons[0].Tags[provisionersdk.TagOwner])
|
||||||
assert.Equal(t, buildinfo.Version(), daemons[0].Version)
|
assert.Equal(t, buildinfo.Version(), daemons[0].Version)
|
||||||
assert.Equal(t, provisionersdk.VersionCurrent.String(), daemons[0].APIVersion)
|
assert.Equal(t, proto.VersionCurrent.String(), daemons[0].APIVersion)
|
||||||
})
|
})
|
||||||
|
|
||||||
t.Run("ScopeAnotherUser", func(t *testing.T) {
|
t.Run("ScopeAnotherUser", func(t *testing.T) {
|
||||||
|
@ -124,7 +125,7 @@ func TestProvisionerDaemon_SessionToken(t *testing.T) {
|
||||||
// This should get clobbered to the user who started the daemon.
|
// This should get clobbered to the user who started the daemon.
|
||||||
assert.Equal(t, anotherUser.ID.String(), daemons[0].Tags[provisionersdk.TagOwner])
|
assert.Equal(t, anotherUser.ID.String(), daemons[0].Tags[provisionersdk.TagOwner])
|
||||||
assert.Equal(t, buildinfo.Version(), daemons[0].Version)
|
assert.Equal(t, buildinfo.Version(), daemons[0].Version)
|
||||||
assert.Equal(t, provisionersdk.VersionCurrent.String(), daemons[0].APIVersion)
|
assert.Equal(t, proto.VersionCurrent.String(), daemons[0].APIVersion)
|
||||||
})
|
})
|
||||||
|
|
||||||
t.Run("ScopeOrg", func(t *testing.T) {
|
t.Run("ScopeOrg", func(t *testing.T) {
|
||||||
|
@ -158,6 +159,6 @@ func TestProvisionerDaemon_SessionToken(t *testing.T) {
|
||||||
assert.Equal(t, "org-daemon", daemons[0].Name)
|
assert.Equal(t, "org-daemon", daemons[0].Name)
|
||||||
assert.Equal(t, provisionersdk.ScopeOrganization, daemons[0].Tags[provisionersdk.TagScope])
|
assert.Equal(t, provisionersdk.ScopeOrganization, daemons[0].Tags[provisionersdk.TagScope])
|
||||||
assert.Equal(t, buildinfo.Version(), daemons[0].Version)
|
assert.Equal(t, buildinfo.Version(), daemons[0].Version)
|
||||||
assert.Equal(t, provisionersdk.VersionCurrent.String(), daemons[0].APIVersion)
|
assert.Equal(t, proto.VersionCurrent.String(), daemons[0].APIVersion)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
|
@ -239,7 +239,7 @@ func (api *API) provisionerDaemonServe(rw http.ResponseWriter, r *http.Request)
|
||||||
apiVersion = qv
|
apiVersion = qv
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := provisionersdk.VersionCurrent.Validate(apiVersion); err != nil {
|
if err := proto.VersionCurrent.Validate(apiVersion); err != nil {
|
||||||
httpapi.Write(ctx, rw, http.StatusBadRequest, codersdk.Response{
|
httpapi.Write(ctx, rw, http.StatusBadRequest, codersdk.Response{
|
||||||
Message: "Incompatible or unparsable version",
|
Message: "Incompatible or unparsable version",
|
||||||
Validations: []codersdk.ValidationError{
|
Validations: []codersdk.ValidationError{
|
||||||
|
|
|
@ -62,7 +62,7 @@ func TestProvisionerDaemonServe(t *testing.T) {
|
||||||
if assert.Len(t, daemons, 1) {
|
if assert.Len(t, daemons, 1) {
|
||||||
assert.Equal(t, daemonName, daemons[0].Name)
|
assert.Equal(t, daemonName, daemons[0].Name)
|
||||||
assert.Equal(t, buildinfo.Version(), daemons[0].Version)
|
assert.Equal(t, buildinfo.Version(), daemons[0].Version)
|
||||||
assert.Equal(t, provisionersdk.VersionCurrent.String(), daemons[0].APIVersion)
|
assert.Equal(t, provisionerdproto.VersionCurrent.String(), daemons[0].APIVersion)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -149,7 +149,7 @@ func TestProvisionerDaemonServe(t *testing.T) {
|
||||||
q.Add("provisioner", "echo")
|
q.Add("provisioner", "echo")
|
||||||
|
|
||||||
// Set a different (newer) version than the current.
|
// Set a different (newer) version than the current.
|
||||||
v := apiversion.New(provisionersdk.CurrentMajor+1, provisionersdk.CurrentMinor+1)
|
v := apiversion.New(provisionerdproto.CurrentMajor+1, provisionerdproto.CurrentMinor+1)
|
||||||
q.Add("version", v.String())
|
q.Add("version", v.String())
|
||||||
srvURL.RawQuery = q.Encode()
|
srvURL.RawQuery = q.Encode()
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,13 @@
|
||||||
|
package proto
|
||||||
|
|
||||||
|
import "github.com/coder/coder/v2/apiversion"
|
||||||
|
|
||||||
|
const (
|
||||||
|
CurrentMajor = 1
|
||||||
|
CurrentMinor = 0
|
||||||
|
)
|
||||||
|
|
||||||
|
// VersionCurrent is the current provisionerd API version.
|
||||||
|
// Breaking changes to the provisionerd API **MUST** increment
|
||||||
|
// CurrentMajor above.
|
||||||
|
var VersionCurrent = apiversion.New(CurrentMajor, CurrentMinor)
|
|
@ -16,21 +16,10 @@ import (
|
||||||
|
|
||||||
"cdr.dev/slog"
|
"cdr.dev/slog"
|
||||||
|
|
||||||
"github.com/coder/coder/v2/apiversion"
|
|
||||||
"github.com/coder/coder/v2/coderd/tracing"
|
"github.com/coder/coder/v2/coderd/tracing"
|
||||||
"github.com/coder/coder/v2/provisionersdk/proto"
|
"github.com/coder/coder/v2/provisionersdk/proto"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
|
||||||
CurrentMajor = 1
|
|
||||||
CurrentMinor = 0
|
|
||||||
)
|
|
||||||
|
|
||||||
// VersionCurrent is the current provisionerd API version.
|
|
||||||
// Breaking changes to the provisionerd API **MUST** increment
|
|
||||||
// CurrentMajor above.
|
|
||||||
var VersionCurrent = apiversion.New(CurrentMajor, CurrentMinor)
|
|
||||||
|
|
||||||
// ServeOptions are configurations to serve a provisioner.
|
// ServeOptions are configurations to serve a provisioner.
|
||||||
type ServeOptions struct {
|
type ServeOptions struct {
|
||||||
// Listener serves multiple connections. Cannot be combined with Conn.
|
// Listener serves multiple connections. Cannot be combined with Conn.
|
||||||
|
|
Loading…
Reference in New Issue