github.com/schwarzm/garden-linux@v0.0.0-20150507151835-33bca2147c47/network/devices/fakedevices/fakes.go (about) 1 package fakedevices 2 3 import "net" 4 5 type FaveVethCreator struct { 6 CreateCalledWith struct { 7 HostIfcName, ContainerIfcName string 8 } 9 10 CreateReturns struct { 11 Host, Container *net.Interface 12 Err error 13 } 14 } 15 16 func (f *FaveVethCreator) Create(hostIfcName, containerIfcName string) (*net.Interface, *net.Interface, error) { 17 f.CreateCalledWith.HostIfcName = hostIfcName 18 f.CreateCalledWith.ContainerIfcName = containerIfcName 19 20 return f.CreateReturns.Host, f.CreateReturns.Container, f.CreateReturns.Err 21 } 22 23 type InterfaceIPAndSubnet struct { 24 Interface *net.Interface 25 IP net.IP 26 Subnet *net.IPNet 27 } 28 29 type FakeLink struct { 30 AddIPCalledWith []InterfaceIPAndSubnet 31 SetUpCalledWith []*net.Interface 32 AddDefaultGWCalledWith struct { 33 Interface *net.Interface 34 IP net.IP 35 } 36 37 SetMTUCalledWith struct { 38 Interface *net.Interface 39 MTU int 40 } 41 42 SetNsCalledWith struct { 43 Interface *net.Interface 44 Pid int 45 } 46 47 SetUpFunc func(*net.Interface) error 48 InterfaceByNameFunc func(string) (*net.Interface, bool, error) 49 50 AddIPReturns map[string]error 51 AddDefaultGWReturns error 52 SetMTUReturns error 53 SetNsReturns error 54 } 55 56 func (f *FakeLink) AddIP(intf *net.Interface, ip net.IP, subnet *net.IPNet) error { 57 f.AddIPCalledWith = append(f.AddIPCalledWith, InterfaceIPAndSubnet{intf, ip, subnet}) 58 return f.AddIPReturns[intf.Name] 59 } 60 61 func (f *FakeLink) AddDefaultGW(intf *net.Interface, ip net.IP) error { 62 f.AddDefaultGWCalledWith.Interface = intf 63 f.AddDefaultGWCalledWith.IP = ip 64 return f.AddDefaultGWReturns 65 } 66 67 func (f *FakeLink) SetUp(intf *net.Interface) error { 68 f.SetUpCalledWith = append(f.SetUpCalledWith, intf) 69 if f.SetUpFunc == nil { 70 return nil 71 } 72 73 return f.SetUpFunc(intf) 74 } 75 76 func (f *FakeLink) SetMTU(intf *net.Interface, mtu int) error { 77 f.SetMTUCalledWith.Interface = intf 78 f.SetMTUCalledWith.MTU = mtu 79 return f.SetMTUReturns 80 } 81 82 func (f *FakeLink) SetNs(intf *net.Interface, pid int) error { 83 f.SetNsCalledWith.Interface = intf 84 f.SetNsCalledWith.Pid = pid 85 return f.SetNsReturns 86 } 87 88 func (f *FakeLink) InterfaceByName(name string) (*net.Interface, bool, error) { 89 if f.InterfaceByNameFunc != nil { 90 return f.InterfaceByNameFunc(name) 91 } 92 93 return nil, false, nil 94 } 95 96 type FakeBridge struct { 97 CreateCalledWith struct { 98 Name string 99 IP net.IP 100 Subnet *net.IPNet 101 } 102 103 CreateReturns struct { 104 Interface *net.Interface 105 Error error 106 } 107 108 AddCalledWith struct { 109 Bridge, Slave *net.Interface 110 } 111 112 AddReturns error 113 114 DeleteCalledWith []string 115 116 DeleteReturns error 117 } 118 119 func (f *FakeBridge) Create(name string, ip net.IP, subnet *net.IPNet) (*net.Interface, error) { 120 f.CreateCalledWith.Name = name 121 f.CreateCalledWith.IP = ip 122 f.CreateCalledWith.Subnet = subnet 123 return f.CreateReturns.Interface, f.CreateReturns.Error 124 } 125 126 func (f *FakeBridge) Add(bridge, slave *net.Interface) error { 127 f.AddCalledWith.Bridge = bridge 128 f.AddCalledWith.Slave = slave 129 return f.AddReturns 130 } 131 132 func (f *FakeBridge) Delete(bridge string) error { 133 f.DeleteCalledWith = append(f.DeleteCalledWith, bridge) 134 return f.DeleteReturns 135 }