github.com/rawahars/moby@v24.0.4+incompatible/libnetwork/endpoint_info_unix.go (about)

     1  //go:build !windows
     2  // +build !windows
     3  
     4  package libnetwork
     5  
     6  import "fmt"
     7  
     8  // DriverInfo returns a collection of driver operational data related to this endpoint retrieved from the driver.
     9  func (ep *Endpoint) DriverInfo() (map[string]interface{}, error) {
    10  	ep, err := ep.retrieveFromStore()
    11  	if err != nil {
    12  		return nil, err
    13  	}
    14  
    15  	if sb, ok := ep.getSandbox(); ok {
    16  		if gwep := sb.getEndpointInGWNetwork(); gwep != nil && gwep.ID() != ep.ID() {
    17  			return gwep.DriverInfo()
    18  		}
    19  	}
    20  
    21  	n, err := ep.getNetworkFromStore()
    22  	if err != nil {
    23  		return nil, fmt.Errorf("could not find network in store for driver info: %v", err)
    24  	}
    25  
    26  	driver, err := n.driver(true)
    27  	if err != nil {
    28  		return nil, fmt.Errorf("failed to get driver info: %v", err)
    29  	}
    30  
    31  	return driver.EndpointOperInfo(n.ID(), ep.ID())
    32  }