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  }