diff options
Diffstat (limited to 'libpod/networking.go')
-rw-r--r-- | libpod/networking.go | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/libpod/networking.go b/libpod/networking.go index f92b80201..a508cd7b4 100644 --- a/libpod/networking.go +++ b/libpod/networking.go @@ -42,9 +42,20 @@ func (r *Runtime) createNetNS(ctr *Container) (err error) { if err != nil { return errors.Wrapf(err, "error configuring network namespace for container %s", ctr.ID()) } + defer func() { + if err != nil { + if err2 := r.netPlugin.TearDownPod(podNetwork); err2 != nil { + logrus.Errorf("Error tearing down partially created network namespace for container %s: %v", ctr.ID(), err2) + } + } + }() + + logrus.Debugf("Response from CNI plugins: %v", result.String()) - resultStruct := result.(*cnitypes.Result) - logrus.Debugf("Response from CNI plugins: %v", resultStruct.String()) + resultStruct, err := cnitypes.GetResult(result) + if err != nil { + return errors.Wrapf(err, "error parsing result from CBI plugins") + } ctr.state.NetNS = ctrNS ctr.state.IPs = resultStruct.IPs |