From 320219829bf80faa003167c30fb7f79b34574bab Mon Sep 17 00:00:00 2001 From: Alessandro Boch Date: Wed, 28 Oct 2015 16:22:18 -0700 Subject: [PATCH] Fix in DriverInfo() - Retrieve info from default gateway network's peer endpoint if present Signed-off-by: Alessandro Boch --- libnetwork/endpoint_info.go | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/libnetwork/endpoint_info.go b/libnetwork/endpoint_info.go index 3ca6b2b834..db23eb738f 100644 --- a/libnetwork/endpoint_info.go +++ b/libnetwork/endpoint_info.go @@ -163,6 +163,17 @@ func (ep *endpoint) Info() EndpointInfo { } func (ep *endpoint) DriverInfo() (map[string]interface{}, error) { + ep, err := ep.retrieveFromStore() + if err != nil { + return nil, err + } + + if sb, ok := ep.getSandbox(); ok { + if gwep := sb.getEndpointInGWNetwork(); gwep != nil && gwep.ID() != ep.ID() { + return gwep.DriverInfo() + } + } + n, err := ep.getNetworkFromStore() if err != nil { return nil, fmt.Errorf("could not find network in store for driver info: %v", err) @@ -317,3 +328,11 @@ func (ep *endpoint) SetGatewayIPv6(gw6 net.IP) error { ep.joinInfo.gw6 = types.GetIPCopy(gw6) return nil } + +func (ep *endpoint) retrieveFromStore() (*endpoint, error) { + n, err := ep.getNetworkFromStore() + if err != nil { + return nil, fmt.Errorf("could not find network in store to get latest endpoint %s: %v", ep.Name(), err) + } + return n.getEndpointFromStore(ep.ID()) +}