Browse Source

Merge pull request #718 from aboch/pm

Fix in DriverInfo()
Jana Radhakrishnan 9 years ago
parent
commit
a24e4e56e0
1 changed files with 19 additions and 0 deletions
  1. 19 0
      libnetwork/endpoint_info.go

+ 19 - 0
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())
+}