mirror of https://github.com/docker/cli.git
service rollback: always verify state
Prior to this change, progressbars would sometimes be hidden, and the function would return early. In addition, the direction of the progressbars would sometimes be "incrementing" (similar to "docker service update"), and sometimes be "decrementing" (to indicate a "rollback" is being performed). This fix makes sure that we always proceed with the "verifying" step, and now prints a message _after_ the verifying stage was completed; $ docker service rollback foo foo overall progress: rolling back update: 5 out of 5 tasks 1/5: running [> ] 2/5: starting [===========> ] 3/5: starting [===========> ] 4/5: running [> ] 5/5: running [> ] verify: Service converged rollback: rollback completed $ docker service rollback foo foo overall progress: rolling back update: 1 out of 1 tasks 1/1: running [> ] verify: Service converged rollback: rollback completed Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
This commit is contained in:
parent
ce26a165b0
commit
104469be0b
|
@ -99,6 +99,7 @@ func ServiceProgress(ctx context.Context, client client.APIClient, serviceID str
|
||||||
convergedAt time.Time
|
convergedAt time.Time
|
||||||
monitor = 5 * time.Second
|
monitor = 5 * time.Second
|
||||||
rollback bool
|
rollback bool
|
||||||
|
message *progress.Progress
|
||||||
)
|
)
|
||||||
|
|
||||||
for {
|
for {
|
||||||
|
@ -140,9 +141,9 @@ func ServiceProgress(ctx context.Context, client client.APIClient, serviceID str
|
||||||
return fmt.Errorf("service rollback paused: %s", service.UpdateStatus.Message)
|
return fmt.Errorf("service rollback paused: %s", service.UpdateStatus.Message)
|
||||||
case swarm.UpdateStateRollbackCompleted:
|
case swarm.UpdateStateRollbackCompleted:
|
||||||
if !converged {
|
if !converged {
|
||||||
progress.Messagef(progressOut, "", "service rolled back: %s", service.UpdateStatus.Message)
|
message = &progress.Progress{ID: "rollback", Message: service.UpdateStatus.Message}
|
||||||
return nil
|
|
||||||
}
|
}
|
||||||
|
rollback = true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if converged && time.Since(convergedAt) >= monitor {
|
if converged && time.Since(convergedAt) >= monitor {
|
||||||
|
@ -150,7 +151,9 @@ func ServiceProgress(ctx context.Context, client client.APIClient, serviceID str
|
||||||
ID: "verify",
|
ID: "verify",
|
||||||
Action: "Service converged",
|
Action: "Service converged",
|
||||||
})
|
})
|
||||||
|
if message != nil {
|
||||||
|
progressOut.WriteProgress(*message)
|
||||||
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue