@@ -56,7 +56,7 @@ func TestExecutorAutostartOK(t *testing.T) {
56
56
)
57
57
// Given: workspace is stopped
58
58
workspace = coderdtest .MustTransitionWorkspace (t , client , workspace .ID , codersdk .WorkspaceTransitionStart , codersdk .WorkspaceTransitionStop )
59
- p , err := coderdtest .GetProvisionerForWorkspace (t , db , time .Now (), workspace .OrganizationID , database. ProvisionerJob {})
59
+ p , err := coderdtest .GetProvisionerForTags (t , db , time .Now (), workspace .OrganizationID , map [ string ] string {})
60
60
require .NoError (t , err )
61
61
// When: the autobuild executor ticks after the scheduled time
62
62
go func () {
@@ -118,7 +118,7 @@ func TestMultipleLifecycleExecutors(t *testing.T) {
118
118
// Have the workspace stopped so we can perform an autostart
119
119
workspace = coderdtest .MustTransitionWorkspace (t , clientA , workspace .ID , codersdk .WorkspaceTransitionStart , codersdk .WorkspaceTransitionStop )
120
120
121
- p , err := coderdtest .GetProvisionerForWorkspace (t , db , time .Now (), workspace .OrganizationID , database. ProvisionerJob {} )
121
+ p , err := coderdtest .GetProvisionerForTags (t , db , time .Now (), workspace .OrganizationID , nil )
122
122
require .NoError (t , err )
123
123
// Get both clients to perform a lifecycle execution tick
124
124
next := sched .Next (workspace .LatestBuild .CreatedAt )
@@ -254,7 +254,7 @@ func TestExecutorAutostartTemplateUpdated(t *testing.T) {
254
254
},
255
255
))
256
256
257
- p , err := coderdtest .GetProvisionerForWorkspace (t , db , time .Now (), workspace .OrganizationID , database. ProvisionerJob {} )
257
+ p , err := coderdtest .GetProvisionerForTags (t , db , time .Now (), workspace .OrganizationID , nil )
258
258
require .NoError (t , err )
259
259
260
260
t .Log ("sending autobuild tick" )
@@ -440,7 +440,7 @@ func TestExecutorAutostopOK(t *testing.T) {
440
440
require .Equal (t , codersdk .WorkspaceTransitionStart , workspace .LatestBuild .Transition )
441
441
require .NotZero (t , workspace .LatestBuild .Deadline )
442
442
443
- p , err := coderdtest .GetProvisionerForWorkspace (t , db , time .Now (), workspace .OrganizationID , database. ProvisionerJob {} )
443
+ p , err := coderdtest .GetProvisionerForTags (t , db , time .Now (), workspace .OrganizationID , nil )
444
444
require .NoError (t , err )
445
445
446
446
// When: the autobuild executor ticks *after* the deadline:
@@ -489,7 +489,7 @@ func TestExecutorAutostopExtend(t *testing.T) {
489
489
})
490
490
require .NoError (t , err , "extend workspace deadline" )
491
491
492
- p , err := coderdtest .GetProvisionerForWorkspace (t , db , time .Now (), workspace .OrganizationID , database. ProvisionerJob {} )
492
+ p , err := coderdtest .GetProvisionerForTags (t , db , time .Now (), workspace .OrganizationID , nil )
493
493
require .NoError (t , err )
494
494
495
495
// When: the autobuild executor ticks *after* the original deadline:
@@ -802,7 +802,7 @@ func TestExecutorAutostartMultipleOK(t *testing.T) {
802
802
// Given: workspace is stopped
803
803
workspace = coderdtest .MustTransitionWorkspace (t , client , workspace .ID , codersdk .WorkspaceTransitionStart , codersdk .WorkspaceTransitionStop )
804
804
805
- p , err := coderdtest .GetProvisionerForWorkspace (t , db , time .Now (), workspace .OrganizationID , database. ProvisionerJob {} )
805
+ p , err := coderdtest .GetProvisionerForTags (t , db , time .Now (), workspace .OrganizationID , nil )
806
806
require .NoError (t , err )
807
807
808
808
// When: the autobuild executor ticks past the scheduled time
@@ -872,7 +872,7 @@ func TestExecutorAutostartWithParameters(t *testing.T) {
872
872
// Given: workspace is stopped
873
873
workspace = coderdtest .MustTransitionWorkspace (t , client , workspace .ID , codersdk .WorkspaceTransitionStart , codersdk .WorkspaceTransitionStop )
874
874
875
- p , err := coderdtest .GetProvisionerForWorkspace (t , db , time .Now (), workspace .OrganizationID , database. ProvisionerJob {} )
875
+ p , err := coderdtest .GetProvisionerForTags (t , db , time .Now (), workspace .OrganizationID , nil )
876
876
require .NoError (t , err )
877
877
878
878
// When: the autobuild executor ticks after the scheduled time
@@ -971,7 +971,7 @@ func TestExecutorAutostopTemplateDisabled(t *testing.T) {
971
971
// Then: the deadline should be set to the template default TTL
972
972
assert .WithinDuration (t , workspace .LatestBuild .CreatedAt .Add (time .Hour ), workspace .LatestBuild .Deadline .Time , time .Minute )
973
973
974
- p , err := coderdtest .GetProvisionerForWorkspace (t , db , time .Now (), workspace .OrganizationID , database. ProvisionerJob {} )
974
+ p , err := coderdtest .GetProvisionerForTags (t , db , time .Now (), workspace .OrganizationID , nil )
975
975
require .NoError (t , err )
976
976
977
977
// When: the autobuild executor ticks after the workspace setting, but before the template setting:
@@ -1059,7 +1059,7 @@ func TestExecutorRequireActiveVersion(t *testing.T) {
1059
1059
})
1060
1060
require .Equal (t , inactiveVersion .ID , ws .LatestBuild .TemplateVersionID )
1061
1061
1062
- p , err := coderdtest .GetProvisionerForWorkspace (t , db , time .Now (), ws .OrganizationID , database. ProvisionerJob {} )
1062
+ p , err := coderdtest .GetProvisionerForTags (t , db , time .Now (), ws .OrganizationID , nil )
1063
1063
require .NoError (t , err )
1064
1064
1065
1065
tickTime := sched .Next (ws .LatestBuild .CreatedAt )
@@ -1221,7 +1221,7 @@ func TestNotifications(t *testing.T) {
1221
1221
workspace = coderdtest .MustTransitionWorkspace (t , client , workspace .ID , codersdk .WorkspaceTransitionStart , codersdk .WorkspaceTransitionStop )
1222
1222
_ = coderdtest .AwaitWorkspaceBuildJobCompleted (t , userClient , workspace .LatestBuild .ID )
1223
1223
1224
- p , err := coderdtest .GetProvisionerForWorkspace (t , db , time .Now (), workspace .OrganizationID , database. ProvisionerJob {} )
1224
+ p , err := coderdtest .GetProvisionerForTags (t , db , time .Now (), workspace .OrganizationID , nil )
1225
1225
require .NoError (t , err )
1226
1226
1227
1227
// Wait for workspace to become dormant
@@ -1302,7 +1302,7 @@ func TestExecutorPrebuilds(t *testing.T) {
1302
1302
require .Equal (t , codersdk .WorkspaceTransitionStart , prebuild .LatestBuild .Transition )
1303
1303
require .NotZero (t , prebuild .LatestBuild .Deadline )
1304
1304
1305
- p , err := coderdtest .GetProvisionerForWorkspace (t , db , time .Now (), prebuild .OrganizationID , database. ProvisionerJob {} )
1305
+ p , err := coderdtest .GetProvisionerForTags (t , db , time .Now (), prebuild .OrganizationID , nil )
1306
1306
require .NoError (t , err )
1307
1307
1308
1308
// When: the autobuild executor ticks *after* the deadline:
@@ -1676,8 +1676,9 @@ func TestExecutorAutostartSkipsWhenNoProvisionersAvailable(t *testing.T) {
1676
1676
statsCh = make (chan autobuild.Stats )
1677
1677
)
1678
1678
1679
- // Create client with provisioner closer
1680
- provisionerDaemonTags := map [string ]string {"owner" : "testowner" , "scope" : "organization" }
1679
+ // Use provisioner daemon tags so we can test `hasAvailableProvisioner` more thoroughly.
1680
+ // We can't overwrite owner or scope as there's a `provisionersdk.MutateTags` function that has restrictions on those.
1681
+ provisionerDaemonTags := map [string ]string {"test-tag" : "asdf" }
1681
1682
t .Logf ("Setting provisioner daemon tags: %v" , provisionerDaemonTags )
1682
1683
client , db := coderdtest .NewWithDatabase (t , & coderdtest.Options {
1683
1684
AutobuildTicker : tickCh ,
@@ -1687,20 +1688,21 @@ func TestExecutorAutostartSkipsWhenNoProvisionersAvailable(t *testing.T) {
1687
1688
})
1688
1689
1689
1690
// Create workspace with autostart enabled and matching provisioner tags
1690
- provisionerTags := map [string ]string {"owner" : "testowner" , "scope" : "organization" }
1691
- workspace := mustProvisionWorkspaceWithProvisionerTags (t , client , provisionerTags , func (cwr * codersdk.CreateWorkspaceRequest ) {
1691
+ workspace := mustProvisionWorkspaceWithProvisionerTags (t , client , provisionerDaemonTags , func (cwr * codersdk.CreateWorkspaceRequest ) {
1692
1692
cwr .AutostartSchedule = ptr .Ref (sched .String ())
1693
1693
})
1694
1694
1695
1695
// Stop the workspace while provisioner is available
1696
1696
workspace = coderdtest .MustTransitionWorkspace (t , client , workspace .ID , codersdk .WorkspaceTransitionStart , codersdk .WorkspaceTransitionStop )
1697
1697
1698
1698
// Wait for provisioner to be available for this specific workspace
1699
- id := coderdtest .MustWaitForProvisionersAvailable (t , db , workspace , provisionerdserver .StaleInterval )
1699
+ coderdtest .MustWaitForProvisionersAvailable (t , db , workspace , provisionerdserver .StaleInterval )
1700
+ p , err := coderdtest .GetProvisionerForTags (t , db , time .Now (), workspace .OrganizationID , provisionerDaemonTags )
1701
+ require .NoError (t , err , "Error getting provisioner for workspace" )
1700
1702
1701
1703
// Ensure the provisioner is stale
1702
1704
staleTime := sched .Next (workspace .LatestBuild .CreatedAt ).Add ((- 1 * provisionerdserver .StaleInterval ) + - 10 * time .Second )
1703
- coderdtest .UpdateProvisionerLastSeenAt (t , db , id , time .Now (), staleTime )
1705
+ coderdtest .UpdateProvisionerLastSeenAt (t , db , p . ID , time .Now (), staleTime )
1704
1706
1705
1707
// Trigger autobuild
1706
1708
tickCh <- sched .Next (workspace .LatestBuild .CreatedAt )
@@ -1713,7 +1715,7 @@ func TestExecutorAutostartSkipsWhenNoProvisionersAvailable(t *testing.T) {
1713
1715
1714
1716
// Ensure the provisioner is NOT stale, and see if we get a successful state transition.
1715
1717
notStaleTime := sched .Next (workspace .LatestBuild .CreatedAt ).Add ((- 1 * provisionerdserver .StaleInterval ) + 10 * time .Second )
1716
- coderdtest .UpdateProvisionerLastSeenAt (t , db , id , time .Now (), notStaleTime )
1718
+ coderdtest .UpdateProvisionerLastSeenAt (t , db , p . ID , time .Now (), notStaleTime )
1717
1719
1718
1720
// Trigger autobuild
1719
1721
go func () {
0 commit comments