@@ -33,7 +33,14 @@ func waitInstanceStatus(name string, status commonParams.InstanceStatus, runnerS
33
33
return nil , fmt .Errorf ("timeout waiting for instance %s status to reach status %s and runner status %s" , name , status , runnerStatus )
34
34
}
35
35
36
- func waitInstanceToBeRemoved (name string , timeout time.Duration ) error {
36
+ func DeleteInstance (name string , forceRemove bool ) {
37
+ if err := deleteInstance (cli , authToken , name , forceRemove ); err != nil {
38
+ panic (err )
39
+ }
40
+ log .Printf ("Instance %s deletion initiated" , name )
41
+ }
42
+
43
+ func WaitInstanceToBeRemoved (name string , timeout time.Duration ) error {
37
44
var timeWaited time.Duration = 0
38
45
var instance * params.Instance
39
46
@@ -67,30 +74,30 @@ func waitInstanceToBeRemoved(name string, timeout time.Duration) error {
67
74
return fmt .Errorf ("instance %s was not removed within the timeout" , name )
68
75
}
69
76
70
- func waitPoolRunningIdleInstances (poolID string , timeout time.Duration ) error {
77
+ func WaitPoolInstances (poolID string , status commonParams. InstanceStatus , runnerStatus params. RunnerStatus , timeout time.Duration ) error {
71
78
var timeWaited time.Duration = 0
72
79
73
80
pool , err := getPool (cli , authToken , poolID )
74
81
if err != nil {
75
82
return err
76
83
}
77
84
78
- log .Printf ("Waiting for pool %s to have all instances as idle running " , poolID )
85
+ log .Printf ("Waiting for pool %s instances to reach status: %s and runner status: %s " , poolID , status , runnerStatus )
79
86
for timeWaited < timeout {
80
87
poolInstances , err := listPoolInstances (cli , authToken , poolID )
81
88
if err != nil {
82
89
return err
83
90
}
84
91
85
- runningIdleCount := 0
92
+ instancesCount := 0
86
93
for _ , instance := range poolInstances {
87
- if instance .Status == commonParams . InstanceRunning && instance .RunnerStatus == params . RunnerIdle {
88
- runningIdleCount ++
94
+ if instance .Status == status && instance .RunnerStatus == runnerStatus {
95
+ instancesCount ++
89
96
}
90
97
}
91
98
92
- log .Printf ("Pool min idle runners: %d, pool instances : %d, current pool running idle instances : %d" , pool . MinIdleRunners , len (poolInstances ), runningIdleCount )
93
- if runningIdleCount == int (pool .MinIdleRunners ) && runningIdleCount == len (poolInstances ) {
99
+ log .Printf ("Pool %s instance reached status : %s and runner status: %s : %d/%d " , poolID , status , runnerStatus , instancesCount , len (poolInstances ))
100
+ if instancesCount == int (pool .MinIdleRunners ) && instancesCount == len (poolInstances ) {
94
101
return nil
95
102
}
96
103
time .Sleep (5 * time .Second )
@@ -99,5 +106,5 @@ func waitPoolRunningIdleInstances(poolID string, timeout time.Duration) error {
99
106
100
107
_ = dumpPoolInstancesDetails (pool .ID )
101
108
102
- return fmt .Errorf ("timeout waiting for pool %s to have all idle instances running " , poolID )
109
+ return fmt .Errorf ("timeout waiting for pool %s instances to reach status: %s and runner status: %s " , poolID , status , runnerStatus )
103
110
}
0 commit comments