endpoint_info_unix.go 789 B

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