From 02c6ba994949e2c5b606df56d43e923d9b044f67 Mon Sep 17 00:00:00 2001 From: Matthew Heon Date: Fri, 2 Mar 2018 12:31:12 -0500 Subject: Use more reliable function for parsing CNI result Signed-off-by: Matthew Heon Closes: #440 Approved by: baude --- libpod/networking.go | 15 +++++++++++++-- 1 file 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 -- cgit v1.2.3-54-g00ecf