MCPcopy Create free account
hub / github.com/compose-spec/compose-go / normalizeNetworks

Function normalizeNetworks

loader/normalize.go:168–216  ·  view source on GitHub ↗
(dict map[string]any)

Source from the content-addressed store, hash-verified

166}
167
168func normalizeNetworks(dict map[string]any) {
169 var networks map[string]any
170 if n, ok := dict["networks"]; ok {
171 networks = n.(map[string]any)
172 } else {
173 networks = map[string]any{}
174 }
175
176 // implicit `default` network must be introduced only if actually used by some service
177 usesDefaultNetwork := false
178
179 if s, ok := dict["services"]; ok {
180 services := s.(map[string]any)
181 for name, se := range services {
182 service := se.(map[string]any)
183 if _, ok := service["provider"]; ok {
184 continue
185 }
186 if _, ok := service["network_mode"]; ok {
187 continue
188 }
189 if n, ok := service["networks"]; !ok {
190 // If none explicitly declared, service is connected to default network
191 service["networks"] = map[string]any{"default": nil}
192 usesDefaultNetwork = true
193 } else {
194 net := n.(map[string]any)
195 if len(net) == 0 {
196 // networks section declared but empty (corner case)
197 service["networks"] = map[string]any{"default": nil}
198 usesDefaultNetwork = true
199 } else if _, ok := net["default"]; ok {
200 usesDefaultNetwork = true
201 }
202 }
203 services[name] = service
204 }
205 dict["services"] = services
206 }
207
208 if _, ok := networks["default"]; !ok && usesDefaultNetwork {
209 // If not declared explicitly, Compose model involves an implicit "default" network
210 networks["default"] = nil
211 }
212
213 if len(networks) > 0 {
214 dict["networks"] = networks
215 }
216}
217
218func resolve(a any, fn func(s string) (string, bool), keepEmpty bool) (any, bool) {
219 switch v := a.(type) {

Callers 1

NormalizeFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…