MCPcopy
hub / github.com/docker/compose / infrastructureDeps

Method infrastructureDeps

pkg/compose/reconcile.go:765–786  ·  view source on GitHub ↗

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)

Source from the content-addressed store, hash-verified

763// service should depend on: network creates and volume creates that the service
764// references, plus the last node of dependency services.
765func (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.

Callers 1

reconcileServiceMethod · 0.95

Calls 1

sortedKeysFunction · 0.85

Tested by

no test coverage detected