vendor libnetwork which support flush API

pull/6/head
m1093782566 2017-09-06 19:06:40 +08:00
parent dcc1aa0628
commit d9411d6743
3 changed files with 15 additions and 2 deletions

3
Godeps/Godeps.json generated
View File

@ -1076,8 +1076,7 @@
},
{
"ImportPath": "github.com/docker/libnetwork/ipvs",
"Comment": "v0.8.0-dev.2-908-gd5c82231",
"Rev": "d5c822319097cc01cc9bd5ffedd74c7ce7c894f2"
"Rev": "ba46b928444931e6865d8618dc03622cac79aa6f"
},
{
"ImportPath": "github.com/docker/libtrust",

View File

@ -116,6 +116,13 @@ func (i *Handle) DelService(s *Service) error {
return i.doCmd(s, nil, ipvsCmdDelService)
}
// Flush deletes all existing services in the passed
// handle.
func (i *Handle) Flush() error {
_, err := i.doCmdWithoutAttr(ipvsCmdFlush)
return err
}
// NewDestination creates a new real server in the passed ipvs
// service which should already be existing in the passed handle.
func (i *Handle) NewDestination(s *Service, d *Destination) error {

View File

@ -402,6 +402,13 @@ func (i *Handle) doGetServicesCmd(svc *Service) ([]*Service, error) {
return res, nil
}
// doCmdWithoutAttr a simple wrapper of netlink socket execute command
func (i *Handle) doCmdWithoutAttr(cmd uint8) ([][]byte, error) {
req := newIPVSRequest(cmd)
req.Seq = atomic.AddUint32(&i.seq, 1)
return execute(i.sock, req, 0)
}
func assembleDestination(attrs []syscall.NetlinkRouteAttr) (*Destination, error) {
var d Destination