@@ -15,12 +15,16 @@ helper.secrets.mockSuite(testing.suiteName(), ['azure'], function(mock, skipping
15
15
helper . withProvisioner ( mock , skipping ) ;
16
16
17
17
suite ( 'provisioning loop' , function ( ) {
18
- const testCase = ( { workers = [ ] , workerPools = [ ] , assertion, expectErrors = false } ) => {
19
- return testing . runWithFakeTime ( async function ( ) {
20
- await Promise . all ( workers . map ( w => helper . Worker . create ( w ) ) ) ;
21
- await Promise . all ( workerPools . map ( async wt => {
18
+ const testCase = async ( { workers = [ ] , workerPools = [ ] , assertion, expectErrors = false } ) => {
19
+ await Promise . all ( workers . map ( w => helper . Worker . create ( w ) ) ) ;
20
+ await Promise . all ( workerPools . map ( async wt => {
21
+ if ( wt . input ) {
22
22
await helper . workerManager . createWorkerPool ( wt . workerPoolId , wt . input ) ;
23
- } ) ) ;
23
+ } else {
24
+ await helper . WorkerPool . create ( wt ) ;
25
+ }
26
+ } ) ) ;
27
+ return ( testing . runWithFakeTime ( async function ( ) {
24
28
25
29
await helper . initiateProvisioner ( ) ;
26
30
await testing . poll ( async ( ) => {
@@ -31,20 +35,21 @@ helper.secrets.mockSuite(testing.suiteName(), ['azure'], function(mock, skipping
31
35
}
32
36
}
33
37
await Promise . all ( workerPools . map ( async wt => {
38
+ const pId = wt . providerId || wt . input . providerId ;
34
39
assert . deepEqual (
35
40
monitorManager . messages . find (
36
41
msg => msg . Type === 'worker-pool-provisioned' && msg . Fields . workerPoolId === wt . workerPoolId ) , {
37
42
Logger : 'taskcluster.worker-manager.provisioner' ,
38
43
Type : 'worker-pool-provisioned' ,
39
- Fields : { workerPoolId : wt . workerPoolId , providerId : wt . input . providerId , v : 1 } ,
44
+ Fields : { workerPoolId : wt . workerPoolId , providerId : pId , v : 1 } ,
40
45
Severity : LEVELS . info ,
41
46
} ) ;
42
47
assert . deepEqual (
43
48
monitorManager . messages . find (
44
49
msg => msg . Type === 'test-provision' && msg . Fields . workerPoolId === wt . workerPoolId ) , {
45
- Logger : `taskcluster.worker-manager.provider.${ wt . input . providerId } ` ,
50
+ Logger : `taskcluster.worker-manager.provider.${ pId } ` ,
46
51
Type : 'test-provision' ,
47
- Fields : { workerPoolId : wt . workerPoolId } ,
52
+ Fields : { workerPoolId : wt . workerPoolId , existingCapacity : wt . existingCapacity } ,
48
53
Severity : LEVELS . notice ,
49
54
} ) ;
50
55
} ) ) ;
@@ -59,13 +64,14 @@ helper.secrets.mockSuite(testing.suiteName(), ['azure'], function(mock, skipping
59
64
} , {
60
65
mock,
61
66
maxTime : 30000 ,
62
- } ) ;
67
+ } ) ) ( ) ;
63
68
} ;
64
69
65
- test ( 'single worker pool' , testCase ( {
70
+ test ( 'single worker pool' , ( ) => testCase ( {
66
71
workerPools : [
67
72
{
68
73
workerPoolId : 'pp/ee' ,
74
+ existingCapacity : 0 ,
69
75
input : {
70
76
providerId : 'testing1' ,
71
77
description : 'bar' ,
@@ -77,10 +83,42 @@ helper.secrets.mockSuite(testing.suiteName(), ['azure'], function(mock, skipping
77
83
] ,
78
84
} ) ) ;
79
85
80
- test ( 'multiple worker pools, same provider' , testCase ( {
86
+ test ( 'single worker pool (with running worker)' , ( ) => testCase ( {
87
+ workers : [
88
+ {
89
+ workerPoolId : 'ff/ee' ,
90
+ workerGroup : 'whatever' ,
91
+ workerId : 'testing-OLD' ,
92
+ providerId : 'testing1' ,
93
+ created : new Date ( ) ,
94
+ lastModified : new Date ( ) ,
95
+ lastChecked : new Date ( ) ,
96
+ expires : taskcluster . fromNow ( '1 hour' ) ,
97
+ capacity : 1 ,
98
+ state : helper . Worker . states . RUNNING ,
99
+ providerData : { } ,
100
+ } ,
101
+ ] ,
102
+ workerPools : [
103
+ {
104
+ workerPoolId : 'ff/ee' ,
105
+ existingCapacity : 1 ,
106
+ input : {
107
+ providerId : 'testing1' ,
108
+ description : 'bar' ,
109
+ config : { } ,
110
+
111
+ emailOnError : false ,
112
+ } ,
113
+ } ,
114
+ ] ,
115
+ } ) ) ;
116
+
117
+ test ( 'multiple worker pools, same provider' , ( ) => testCase ( {
81
118
workerPools : [
82
119
{
83
120
workerPoolId : 'pp/ee' ,
121
+ existingCapacity : 0 ,
84
122
input : {
85
123
providerId : 'testing1' ,
86
124
description : 'bar' ,
@@ -91,6 +129,7 @@ helper.secrets.mockSuite(testing.suiteName(), ['azure'], function(mock, skipping
91
129
} ,
92
130
{
93
131
workerPoolId : 'pp/ee2' ,
132
+ existingCapacity : 0 ,
94
133
input : {
95
134
providerId : 'testing1' ,
96
135
description : 'bar' ,
@@ -102,10 +141,11 @@ helper.secrets.mockSuite(testing.suiteName(), ['azure'], function(mock, skipping
102
141
] ,
103
142
} ) ) ;
104
143
105
- test ( 'multiple worker pools, different provider' , testCase ( {
144
+ test ( 'multiple worker pools, different provider' , ( ) => testCase ( {
106
145
workerPools : [
107
146
{
108
147
workerPoolId : 'pp/ee' ,
148
+ existingCapacity : 0 ,
109
149
input : {
110
150
providerId : 'testing1' ,
111
151
description : 'bar' ,
@@ -116,6 +156,7 @@ helper.secrets.mockSuite(testing.suiteName(), ['azure'], function(mock, skipping
116
156
} ,
117
157
{
118
158
workerPoolId : 'pp/ee2' ,
159
+ existingCapacity : 0 ,
119
160
input : {
120
161
providerId : 'testing2' ,
121
162
description : 'bar' ,
@@ -159,6 +200,7 @@ helper.secrets.mockSuite(testing.suiteName(), ['azure'], function(mock, skipping
159
200
workerPools : [
160
201
{
161
202
workerPoolId : 'ff/ee' ,
203
+ existingCapacity : 1 ,
162
204
providerId : 'testing2' ,
163
205
previousProviderIds : [ 'testing1' ] ,
164
206
description : '' ,
@@ -175,16 +217,6 @@ helper.secrets.mockSuite(testing.suiteName(), ['azure'], function(mock, skipping
175
217
] ,
176
218
expectErrors : true ,
177
219
assertion : async ( ) => {
178
- const worker = await helper . Worker . load ( {
179
- workerPoolId : 'ff/ee' ,
180
- workerGroup : 'whatever' ,
181
- workerId : 'testing-123' ,
182
- } ) ;
183
- assert ( worker . providerData . checked ) ;
184
-
185
- const wp = await helper . WorkerPool . load ( { workerPoolId : 'ff/ee' } ) ;
186
- assert . deepEqual ( wp . previousProviderIds , [ ] ) ;
187
-
188
220
assert . deepEqual ( monitorManager . messages . find (
189
221
msg => msg . Type === 'remove-resource' && msg . Logger . endsWith ( 'testing1' ) ) , {
190
222
Logger : `taskcluster.worker-manager.provider.testing1` ,
@@ -398,7 +430,7 @@ helper.secrets.mockSuite(testing.suiteName(), ['azure'], function(mock, skipping
398
430
msg => msg . Type === 'test-provision' && msg . Fields . workerPoolId === workerPool . workerPoolId ) , {
399
431
Logger : `taskcluster.worker-manager.provider.${ workerPool . input . providerId } ` ,
400
432
Type : 'test-provision' ,
401
- Fields : { workerPoolId : workerPool . workerPoolId } ,
433
+ Fields : { workerPoolId : workerPool . workerPoolId , existingCapacity : 0 } ,
402
434
Severity : LEVELS . notice ,
403
435
} ) ;
404
436
@@ -437,7 +469,7 @@ helper.secrets.mockSuite(testing.suiteName(), ['azure'], function(mock, skipping
437
469
msg => msg . Type === 'test-provision' && msg . Fields . workerPoolId === workerPool . workerPoolId ) , {
438
470
Logger : `taskcluster.worker-manager.provider.${ workerPool . input . providerId } ` ,
439
471
Type : 'test-provision' ,
440
- Fields : { workerPoolId : workerPool . workerPoolId } ,
472
+ Fields : { workerPoolId : workerPool . workerPoolId , existingCapacity : 0 } ,
441
473
Severity : LEVELS . notice ,
442
474
} ) ;
443
475
@@ -460,7 +492,7 @@ helper.secrets.mockSuite(testing.suiteName(), ['azure'], function(mock, skipping
460
492
msg => msg . Type === 'test-provision' && msg . Fields . workerPoolId === workerPool . workerPoolId ) , {
461
493
Logger : `taskcluster.worker-manager.provider.${ workerPool . input . providerId } ` ,
462
494
Type : 'test-provision' ,
463
- Fields : { workerPoolId : workerPool . workerPoolId } ,
495
+ Fields : { workerPoolId : workerPool . workerPoolId , existingCapacity : 0 } ,
464
496
Severity : LEVELS . notice ,
465
497
} ) ;
466
498
} ) ;
0 commit comments