func (s *NetSuite) TestGetVips(c *C) { err := net.AddIp("192.168.0.1/32", "lo") c.Assert(err, IsNil) err = net.AddIp("192.168.0.2/32", "lo") c.Assert(err, IsNil) addrs, err := net.GetVips(s.iface) c.Assert(err, IsNil) c.Assert(len(addrs), Equals, 3) }
func (n VipMngr) Sync(state state.State) error { log.Debug("[vip] Syncing") currentVips, err := n.getCurrentVips() if err != nil { return err } stateVips := n.getStateVips(state) vipsToAdd := stateVips.Difference(currentVips) vipsToRemove := currentVips.Difference(stateVips) for v := range vipsToAdd.Iter() { vip := v.(string) err := net.AddIp(vip+"/32", n.iface) if err != nil { return fmt.Errorf("[vip] Error adding ip %s: %s", vip, err) } log.Debugf("[vip] Added: %s/32 to interface: %s", vip, n.iface) } for v := range vipsToRemove.Iter() { vip := v.(string) err := net.DelIp(vip+"/32", n.iface) if err != nil { return fmt.Errorf("[vip] Error deleting ip %s: %s", vip, err) } log.Debugf("[vip] Removed: %s/32 from interface: %s", vip, n.iface) } return nil }
func (a *Agent) SetupRouteVip(vip string) error { if err := disableArpAnnounce(); err != nil { return err } log.Println("setup route vip. ", vip) return net.AddIp(vip+"/32", a.config.Interface) }
func (a *Agent) SetupTunnelVip(vip string) error { if err := disableArpAnnounce(); err != nil { return err } if err := setupTunnelInterface(); err != nil { return err } return net.AddIp(vip+"/32", TUNNEL_INTERFACE) }
func (s *NetSuite) TestDelVips(c *C) { err := net.AddIp("192.168.0.1/32", "lo") c.Assert(err, IsNil) err = net.AddIp("192.168.0.2/32", "lo") c.Assert(err, IsNil) err = net.DelVips(s.iface) c.Assert(err, IsNil) addrs, err := net.GetVips(s.iface) c.Assert(err, IsNil) found := false for _, a := range addrs { if a.IPNet.String() == "192.168.0.1/32" || a.IPNet.String() == "192.168.0.2/32" { found = true } } c.Assert(found, Equals, false) }
func (s *NetSuite) TestDelIp(c *C) { err := net.AddIp("192.168.0.1/32", "lo") c.Assert(err, IsNil) err = net.DelIp("192.168.0.1/32", "lo") c.Assert(err, IsNil) addrs, err := net.GetVips(s.iface) c.Assert(err, IsNil) deleted := true for _, a := range addrs { if a.IPNet.String() == "192.168.0.1/32" { deleted = false } } c.Assert(deleted, Equals, true) }