github.com/Prakhar-Agarwal-byte/moby@v0.0.0-20231027092010-a14e3e8ab87e/libnetwork/drivers/null/null.go (about)

     1  package null
     2  
     3  import (
     4  	"sync"
     5  
     6  	"github.com/Prakhar-Agarwal-byte/moby/libnetwork/driverapi"
     7  	"github.com/Prakhar-Agarwal-byte/moby/libnetwork/scope"
     8  	"github.com/Prakhar-Agarwal-byte/moby/libnetwork/types"
     9  )
    10  
    11  const NetworkType = "null"
    12  
    13  type driver struct {
    14  	network string
    15  	sync.Mutex
    16  }
    17  
    18  // Register registers a new instance of the null driver.
    19  func Register(r driverapi.Registerer) error {
    20  	return r.RegisterDriver(NetworkType, &driver{}, driverapi.Capability{
    21  		DataScope: scope.Local,
    22  	})
    23  }
    24  
    25  func (d *driver) NetworkAllocate(id string, option map[string]string, ipV4Data, ipV6Data []driverapi.IPAMData) (map[string]string, error) {
    26  	return nil, types.NotImplementedErrorf("not implemented")
    27  }
    28  
    29  func (d *driver) NetworkFree(id string) error {
    30  	return types.NotImplementedErrorf("not implemented")
    31  }
    32  
    33  func (d *driver) EventNotify(etype driverapi.EventType, nid, tableName, key string, value []byte) {
    34  }
    35  
    36  func (d *driver) DecodeTableEntry(tablename string, key string, value []byte) (string, map[string]string) {
    37  	return "", nil
    38  }
    39  
    40  func (d *driver) CreateNetwork(id string, option map[string]interface{}, nInfo driverapi.NetworkInfo, ipV4Data, ipV6Data []driverapi.IPAMData) error {
    41  	d.Lock()
    42  	defer d.Unlock()
    43  
    44  	if d.network != "" {
    45  		return types.ForbiddenErrorf("only one instance of %q network is allowed", NetworkType)
    46  	}
    47  
    48  	d.network = id
    49  
    50  	return nil
    51  }
    52  
    53  func (d *driver) DeleteNetwork(nid string) error {
    54  	return types.ForbiddenErrorf("network of type %q cannot be deleted", NetworkType)
    55  }
    56  
    57  func (d *driver) CreateEndpoint(nid, eid string, ifInfo driverapi.InterfaceInfo, epOptions map[string]interface{}) error {
    58  	return nil
    59  }
    60  
    61  func (d *driver) DeleteEndpoint(nid, eid string) error {
    62  	return nil
    63  }
    64  
    65  func (d *driver) EndpointOperInfo(nid, eid string) (map[string]interface{}, error) {
    66  	return make(map[string]interface{}), nil
    67  }
    68  
    69  // Join method is invoked when a Sandbox is attached to an endpoint.
    70  func (d *driver) Join(nid, eid string, sboxKey string, jinfo driverapi.JoinInfo, options map[string]interface{}) error {
    71  	return nil
    72  }
    73  
    74  // Leave method is invoked when a Sandbox detaches from an endpoint.
    75  func (d *driver) Leave(nid, eid string) error {
    76  	return nil
    77  }
    78  
    79  func (d *driver) ProgramExternalConnectivity(nid, eid string, options map[string]interface{}) error {
    80  	return nil
    81  }
    82  
    83  func (d *driver) RevokeExternalConnectivity(nid, eid string) error {
    84  	return nil
    85  }
    86  
    87  func (d *driver) Type() string {
    88  	return NetworkType
    89  }
    90  
    91  func (d *driver) IsBuiltIn() bool {
    92  	return true
    93  }