@@ -50,18 +50,19 @@ func Update(client container.Client, params types.UpdateParams) (*metrics2.Metri
5050 }
5151
5252 containers , err = sorter .SortByDependencies (containers )
53+
5354 metric .Scanned = len (containers )
5455 if err != nil {
5556 return nil , err
5657 }
5758
5859 checkDependencies (containers )
5960
60- containersToUpdate := []container.Container {}
61+ var containersToUpdate []container.Container
6162 if ! params .MonitorOnly {
62- for i := len ( containers ) - 1 ; i >= 0 ; i -- {
63- if ! containers [ i ] .IsMonitorOnly () {
64- containersToUpdate = append (containersToUpdate , containers [ i ] )
63+ for _ , c := range containers {
64+ if ! c .IsMonitorOnly () {
65+ containersToUpdate = append (containersToUpdate , c )
6566 }
6667 }
6768 }
@@ -86,7 +87,7 @@ func performRollingRestart(containers []container.Container, client container.Cl
8687 failed := 0
8788
8889 for i := len (containers ) - 1 ; i >= 0 ; i -- {
89- if containers [i ].Stale {
90+ if containers [i ].ToRestart () {
9091 if err := stopStaleContainer (containers [i ], client , params ); err != nil {
9192 failed ++
9293 }
@@ -119,7 +120,7 @@ func stopStaleContainer(container container.Container, client container.Client,
119120 return nil
120121 }
121122
122- if ! container .Stale {
123+ if ! container .ToRestart () {
123124 return nil
124125 }
125126 if params .LifecycleHooks {
@@ -143,7 +144,7 @@ func restartContainersInSortedOrder(containers []container.Container, client con
143144 failed := 0
144145
145146 for _ , c := range containers {
146- if ! c .Stale {
147+ if ! c .ToRestart () {
147148 continue
148149 }
149150 if err := restartStaleContainer (c , client , params ); err != nil {
@@ -183,7 +184,7 @@ func restartStaleContainer(container container.Container, client container.Clien
183184 if newContainerID , err := client .StartContainer (container ); err != nil {
184185 log .Error (err )
185186 return err
186- } else if container .Stale && params .LifecycleHooks {
187+ } else if container .ToRestart () && params .LifecycleHooks {
187188 lifecycle .ExecutePostUpdateCommand (client , newContainerID )
188189 }
189190 }
@@ -192,16 +193,19 @@ func restartStaleContainer(container container.Container, client container.Clien
192193
193194func checkDependencies (containers []container.Container ) {
194195
195- for i , parent := range containers {
196- if parent .ToRestart () {
196+ for _ , c := range containers {
197+ if c .ToRestart () {
197198 continue
198199 }
199200
200201 LinkLoop:
201- for _ , linkName := range parent .Links () {
202- for _ , child := range containers {
203- if child .Name () == linkName && child .ToRestart () {
204- containers [i ].Linked = true
202+ for _ , linkName := range c .Links () {
203+ for _ , candidate := range containers {
204+ if candidate .Name () != linkName {
205+ continue
206+ }
207+ if candidate .ToRestart () {
208+ c .LinkedToRestarting = true
205209 break LinkLoop
206210 }
207211 }
0 commit comments