()
| 249 | } |
| 250 | |
| 251 | func (c *LocalCluster) createContainers() error { |
| 252 | var wg sync.WaitGroup |
| 253 | errChan := make(chan error, len(c.zeros)+len(c.alphas)) |
| 254 | |
| 255 | for _, zo := range c.zeros { |
| 256 | wg.Add(1) |
| 257 | go func(z *zero) { |
| 258 | defer wg.Done() |
| 259 | cid, err := c.createContainer(z) |
| 260 | if err != nil { |
| 261 | errChan <- err |
| 262 | return |
| 263 | } |
| 264 | z.containerID = cid |
| 265 | }(zo) |
| 266 | } |
| 267 | |
| 268 | for _, aa := range c.alphas { |
| 269 | wg.Add(1) |
| 270 | go func(a *alpha) { |
| 271 | defer wg.Done() |
| 272 | cid, err := c.createContainer(a) |
| 273 | if err != nil { |
| 274 | errChan <- err |
| 275 | return |
| 276 | } |
| 277 | a.containerID = cid |
| 278 | }(aa) |
| 279 | } |
| 280 | |
| 281 | wg.Wait() |
| 282 | close(errChan) |
| 283 | |
| 284 | for err := range errChan { |
| 285 | return err |
| 286 | } |
| 287 | |
| 288 | return nil |
| 289 | } |
| 290 | |
| 291 | func (c *LocalCluster) createContainer(dc dnode) (string, error) { |
| 292 | cmd := dc.cmd(c) |
no test coverage detected