backend.go 1.4 KB

1234567891011121314151617181920212223242526272829303132
  1. package network // import "github.com/docker/docker/api/server/router/network"
  2. import (
  3. "context"
  4. "github.com/docker/docker/api/types"
  5. "github.com/docker/docker/api/types/filters"
  6. "github.com/docker/docker/api/types/network"
  7. "github.com/docker/docker/libnetwork"
  8. )
  9. // Backend is all the methods that need to be implemented
  10. // to provide network specific functionality.
  11. type Backend interface {
  12. FindNetwork(idName string) (libnetwork.Network, error)
  13. GetNetworks(filters.Args, types.NetworkListConfig) ([]types.NetworkResource, error)
  14. CreateNetwork(nc types.NetworkCreateRequest) (*types.NetworkCreateResponse, error)
  15. ConnectContainerToNetwork(containerName, networkName string, endpointConfig *network.EndpointSettings) error
  16. DisconnectContainerFromNetwork(containerName string, networkName string, force bool) error
  17. DeleteNetwork(networkID string) error
  18. NetworksPrune(ctx context.Context, pruneFilters filters.Args) (*types.NetworksPruneReport, error)
  19. }
  20. // ClusterBackend is all the methods that need to be implemented
  21. // to provide cluster network specific functionality.
  22. type ClusterBackend interface {
  23. GetNetworks(filters.Args) ([]types.NetworkResource, error)
  24. GetNetwork(name string) (types.NetworkResource, error)
  25. GetNetworksByName(name string) ([]types.NetworkResource, error)
  26. CreateNetwork(nc types.NetworkCreateRequest) (string, error)
  27. RemoveNetwork(name string) error
  28. }