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 }