reconcileNetworks adds plan nodes for network creation or recreation.
()
| 143 | |
| 144 | // reconcileNetworks adds plan nodes for network creation or recreation. |
| 145 | func (r *reconciler) reconcileNetworks() error { |
| 146 | for _, key := range sortedKeys(r.project.Networks) { |
| 147 | desired := r.project.Networks[key] |
| 148 | if desired.External { |
| 149 | continue |
| 150 | } |
| 151 | observed, exists := r.observed.Networks[key] |
| 152 | if !exists { |
| 153 | r.planCreateNetwork(key, &desired) |
| 154 | continue |
| 155 | } |
| 156 | |
| 157 | expectedHash, err := NetworkHash(&desired) |
| 158 | if err != nil { |
| 159 | return err |
| 160 | } |
| 161 | if observed.ConfigHash != "" && observed.ConfigHash != expectedHash { |
| 162 | if err := r.planRecreateNetwork(key, &desired); err != nil { |
| 163 | return err |
| 164 | } |
| 165 | } |
| 166 | // else: network exists and config matches, nothing to do |
| 167 | } |
| 168 | return nil |
| 169 | } |
| 170 | |
| 171 | // planCreateNetwork adds a single CreateNetwork node and records it for dependency tracking. |
| 172 | func (r *reconciler) planCreateNetwork(key string, nw *types.NetworkConfig) *PlanNode { |
no test coverage detected