Merge pull request #6830 from Junnplus/fix-monitor
This commit is contained in:
commit
d85ac56050
@ -214,22 +214,31 @@ func (m *monitor) monitor(ctx context.Context) ([]change, error) {
|
||||
}
|
||||
var changes []change
|
||||
for _, c := range containers {
|
||||
var (
|
||||
task containerd.Task
|
||||
status containerd.Status
|
||||
err error
|
||||
)
|
||||
labels, err := c.Labels(ctx)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
desiredStatus := containerd.ProcessStatus(labels[restart.StatusLabel])
|
||||
task, err := c.Task(ctx, nil)
|
||||
if err != nil && desiredStatus == containerd.Stopped {
|
||||
continue
|
||||
}
|
||||
status, err := task.Status(ctx)
|
||||
if err != nil && desiredStatus == containerd.Stopped {
|
||||
continue
|
||||
}
|
||||
if task, err = c.Task(ctx, nil); err == nil {
|
||||
if status, err = task.Status(ctx); err == nil {
|
||||
if desiredStatus == status.Status {
|
||||
continue
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Task or Status return error, only desired to stop
|
||||
if err != nil {
|
||||
logrus.WithError(err).Error("monitor")
|
||||
if desiredStatus != containerd.Stopped {
|
||||
continue
|
||||
}
|
||||
}
|
||||
|
||||
switch desiredStatus {
|
||||
case containerd.Running:
|
||||
|
Loading…
Reference in New Issue
Block a user