infrastructureDeps returns the plan nodes that a container creation for this service should depend on: network creates and volume creates that the service references, plus the last node of dependency services.
(service types.ServiceConfig)
| 763 | // service should depend on: network creates and volume creates that the service |
| 764 | // references, plus the last node of dependency services. |
| 765 | func (r *reconciler) infrastructureDeps(service types.ServiceConfig) []*PlanNode { |
| 766 | var deps []*PlanNode |
| 767 | // Sort map keys for deterministic plan output in tests |
| 768 | for _, net := range sortedKeys(service.Networks) { |
| 769 | if node, ok := r.networkNodes[net]; ok { |
| 770 | deps = append(deps, node) |
| 771 | } |
| 772 | } |
| 773 | for _, vol := range service.Volumes { |
| 774 | if vol.Type == string(mmount.TypeVolume) && vol.Source != "" { |
| 775 | if node, ok := r.volumeNodes[vol.Source]; ok { |
| 776 | deps = append(deps, node) |
| 777 | } |
| 778 | } |
| 779 | } |
| 780 | for _, depName := range sortedKeys(service.DependsOn) { |
| 781 | if node, ok := r.serviceNodes[depName]; ok && node != nil { |
| 782 | deps = append(deps, node) |
| 783 | } |
| 784 | } |
| 785 | return deps |
| 786 | } |
| 787 | |
| 788 | // sortContainers sorts containers the same way as convergence.go:138-160: |
| 789 | // obsolete first, then by container number descending, then reversed. |
no test coverage detected