initializeCreatedTask performs any initialization that needs to be done to prepare a freshly-created task to be started.
( ctx context.Context, cfg *config.Config, tsk types.Task, ctr *container.Container, spec *specs.Spec, )
| 15 | // initializeCreatedTask performs any initialization that needs to be done to |
| 16 | // prepare a freshly-created task to be started. |
| 17 | func (daemon *Daemon) initializeCreatedTask( |
| 18 | ctx context.Context, |
| 19 | cfg *config.Config, |
| 20 | tsk types.Task, |
| 21 | ctr *container.Container, |
| 22 | spec *specs.Spec, |
| 23 | ) error { |
| 24 | if ctr.Config.NetworkDisabled { |
| 25 | return nil |
| 26 | } |
| 27 | nspath, ok := oci.NamespacePath(spec, specs.NetworkNamespace) |
| 28 | if ok && nspath == "" { // the runtime has been instructed to create a new network namespace for tsk. |
| 29 | sb, err := daemon.netController.GetSandbox(ctr.ID) |
| 30 | if err != nil { |
| 31 | return errdefs.System(err) |
| 32 | } |
| 33 | if err := sb.SetKey(ctx, fmt.Sprintf("/proc/%d/ns/net", tsk.Pid())); err != nil { |
| 34 | return errdefs.System(err) |
| 35 | } |
| 36 | } |
| 37 | if err := daemon.runInNetNS(func() error { |
| 38 | return daemon.allocateNetwork(ctx, cfg, ctr) |
| 39 | }); err != nil { |
| 40 | return fmt.Errorf("%s: %w", errSetupNetworking, err) |
| 41 | } |
| 42 | return nil |
| 43 | } |
no test coverage detected