Skip to content

Commit

Permalink
fix runner watch expiry
Browse files Browse the repository at this point in the history
  • Loading branch information
motive committed Apr 4, 2025
1 parent 1cb578c commit 89d0443
Showing 1 changed file with 27 additions and 25 deletions.
52 changes: 27 additions & 25 deletions internal/runner.go
Original file line number Diff line number Diff line change
Expand Up @@ -192,37 +192,39 @@ func (rc *KubevirtRunner) WaitForVirtualMachineInstance(ctx context.Context, vir

const reportingElapse = 5.0

watch, err := rc.virtClient.VirtualMachineInstance(rc.namespace).Watch(ctx, k8smetav1.ListOptions{})
if err != nil {
return errors.Wrap(err, "failed to watch the virtual machine instance")
}
defer watch.Stop()
for rc.currentStatus != v1.Succeeded && rc.currentStatus != v1.Failed {
watch, err := rc.virtClient.VirtualMachineInstance(rc.namespace).Watch(ctx, k8smetav1.ListOptions{})
if err != nil {
return errors.Wrap(err, "failed to watch the virtual machine instance")
}
defer watch.Stop()

lastTimeChecked := time.Now()
lastTimeChecked := time.Now()

for event := range watch.ResultChan() {
vmi, ok := event.Object.(*v1.VirtualMachineInstance)
if ok && vmi.Name == rc.virtualMachineInstance {
if vmi.Status.Phase != rc.currentStatus {
rc.currentStatus = vmi.Status.Phase
lastTimeChecked = time.Now()
for event := range watch.ResultChan() {
vmi, ok := event.Object.(*v1.VirtualMachineInstance)
if ok && vmi.Name == rc.virtualMachineInstance {
if vmi.Status.Phase != rc.currentStatus {
rc.currentStatus = vmi.Status.Phase
lastTimeChecked = time.Now()

switch rc.currentStatus {
case v1.Succeeded:
log.Printf("%s has successfully completed\n", virtualMachineInstance)
switch rc.currentStatus {
case v1.Succeeded:
log.Printf("%s has successfully completed\n", virtualMachineInstance)

return nil
case v1.Failed:
log.Printf("%s has failed\n", virtualMachineInstance)
return nil
case v1.Failed:
log.Printf("%s has failed\n", virtualMachineInstance)

return ErrRunnerFailed
default:
log.Printf("%s has transitioned to %s phase \n", virtualMachineInstance, rc.currentStatus)
}
} else if time.Since(lastTimeChecked).Minutes() > reportingElapse {
log.Printf("%s is in %s phase \n", virtualMachineInstance, rc.currentStatus)
return ErrRunnerFailed
default:
log.Printf("%s has transitioned to %s phase \n", virtualMachineInstance, rc.currentStatus)
}
} else if time.Since(lastTimeChecked).Minutes() > reportingElapse {
log.Printf("%s is in %s phase \n", virtualMachineInstance, rc.currentStatus)

lastTimeChecked = time.Now()
lastTimeChecked = time.Now()
}
}
}
}
Expand Down

0 comments on commit 89d0443

Please sign in to comment.