mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
Vendor libnetwork a98901aebe7ce920b6fbf02ebe5c3afc9ca975b8.
Signed-off-by: Dong Chen <dongluo.chen@docker.com>
This commit is contained in:
parent
ca81f6ee7c
commit
aba4190612
4 changed files with 55 additions and 9 deletions
|
@ -23,7 +23,7 @@ github.com/RackSec/srslog 365bf33cd9acc21ae1c355209865f17228ca534e
|
|||
github.com/imdario/mergo 0.2.1
|
||||
|
||||
#get libnetwork packages
|
||||
github.com/docker/libnetwork 9ab6e136fa628b5bb4af4a75f76609ef2c21c024
|
||||
github.com/docker/libnetwork a98901aebe7ce920b6fbf02ebe5c3afc9ca975b8
|
||||
github.com/docker/go-events 18b43f1bc85d9cdd42c05a6cd2d444c7a200a894
|
||||
github.com/armon/go-radix e39d623f12e8e41c7b5529e9a9dd67a1e2261f80
|
||||
github.com/armon/go-metrics eb0af217e5e9747e41dd5303755356b62d28e3ec
|
||||
|
|
17
vendor/github.com/docker/libnetwork/endpoint.go
generated
vendored
17
vendor/github.com/docker/libnetwork/endpoint.go
generated
vendored
|
@ -74,6 +74,7 @@ type endpoint struct {
|
|||
ingressPorts []*PortConfig
|
||||
dbIndex uint64
|
||||
dbExists bool
|
||||
serviceEnabled bool
|
||||
sync.Mutex
|
||||
}
|
||||
|
||||
|
@ -303,6 +304,18 @@ func (ep *endpoint) isAnonymous() bool {
|
|||
return ep.anonymous
|
||||
}
|
||||
|
||||
// enableService sets ep's serviceEnabled to the passed value if it's not in the
|
||||
// current state and returns true; false otherwise.
|
||||
func (ep *endpoint) enableService(state bool) bool {
|
||||
ep.Lock()
|
||||
defer ep.Unlock()
|
||||
if ep.serviceEnabled != state {
|
||||
ep.serviceEnabled = state
|
||||
return true
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func (ep *endpoint) needResolver() bool {
|
||||
ep.Lock()
|
||||
defer ep.Unlock()
|
||||
|
@ -502,10 +515,6 @@ func (ep *endpoint) sbJoin(sb *sandbox, options ...EndpointOption) error {
|
|||
return err
|
||||
}
|
||||
|
||||
if e := ep.addToCluster(); e != nil {
|
||||
log.Errorf("Could not update state for endpoint %s into cluster: %v", ep.Name(), e)
|
||||
}
|
||||
|
||||
if sb.needDefaultGW() && sb.getEndpointInGWNetwork() == nil {
|
||||
return sb.setupDefaultGW()
|
||||
}
|
||||
|
|
15
vendor/github.com/docker/libnetwork/networkdb/networkdb.go
generated
vendored
15
vendor/github.com/docker/libnetwork/networkdb/networkdb.go
generated
vendored
|
@ -11,6 +11,7 @@ import (
|
|||
"github.com/Sirupsen/logrus"
|
||||
"github.com/armon/go-radix"
|
||||
"github.com/docker/go-events"
|
||||
"github.com/docker/libnetwork/types"
|
||||
"github.com/hashicorp/memberlist"
|
||||
"github.com/hashicorp/serf/serf"
|
||||
)
|
||||
|
@ -237,7 +238,7 @@ func (nDB *NetworkDB) getEntry(tname, nid, key string) (*entry, error) {
|
|||
|
||||
e, ok := nDB.indexes[byTable].Get(fmt.Sprintf("/%s/%s/%s", tname, nid, key))
|
||||
if !ok {
|
||||
return nil, fmt.Errorf("could not get entry in table %s with network id %s and key %s", tname, nid, key)
|
||||
return nil, types.NotFoundErrorf("could not get entry in table %s with network id %s and key %s", tname, nid, key)
|
||||
}
|
||||
|
||||
return e.(*entry), nil
|
||||
|
@ -247,10 +248,16 @@ func (nDB *NetworkDB) getEntry(tname, nid, key string) (*entry, error) {
|
|||
// table, key) tuple and if the NetworkDB is part of the cluster
|
||||
// propogates this event to the cluster. It is an error to create an
|
||||
// entry for the same tuple for which there is already an existing
|
||||
// entry.
|
||||
// entry unless the current entry is deleting state.
|
||||
func (nDB *NetworkDB) CreateEntry(tname, nid, key string, value []byte) error {
|
||||
if _, err := nDB.GetEntry(tname, nid, key); err == nil {
|
||||
return fmt.Errorf("cannot create entry as the entry in table %s with network id %s and key %s already exists", tname, nid, key)
|
||||
oldEntry, err := nDB.getEntry(tname, nid, key)
|
||||
if err != nil {
|
||||
if _, ok := err.(types.NotFoundError); !ok {
|
||||
return fmt.Errorf("cannot create entry in table %s with network id %s and key %s: %v", tname, nid, key, err)
|
||||
}
|
||||
}
|
||||
if oldEntry != nil && !oldEntry.deleting {
|
||||
return fmt.Errorf("cannot create entry in table %s with network id %s and key %s, already exists", tname, nid, key)
|
||||
}
|
||||
|
||||
entry := &entry{
|
||||
|
|
30
vendor/github.com/docker/libnetwork/sandbox.go
generated
vendored
30
vendor/github.com/docker/libnetwork/sandbox.go
generated
vendored
|
@ -42,6 +42,12 @@ type Sandbox interface {
|
|||
// ResolveService returns all the backend details about the containers or hosts
|
||||
// backing a service. Its purpose is to satisfy an SRV query
|
||||
ResolveService(name string) ([]*net.SRV, []net.IP)
|
||||
// EnableService makes a managed container's service available by adding the
|
||||
// endpoint to the service load balancer and service discovery
|
||||
EnableService() error
|
||||
// DisableService removes a managed contianer's endpoints from the load balancer
|
||||
// and service discovery
|
||||
DisableService() error
|
||||
}
|
||||
|
||||
// SandboxOption is an option setter function type used to pass various options to
|
||||
|
@ -655,6 +661,30 @@ func (sb *sandbox) SetKey(basePath string) error {
|
|||
return nil
|
||||
}
|
||||
|
||||
func (sb *sandbox) EnableService() error {
|
||||
for _, ep := range sb.getConnectedEndpoints() {
|
||||
if ep.enableService(true) {
|
||||
if err := ep.addToCluster(); err != nil {
|
||||
ep.enableService(false)
|
||||
return fmt.Errorf("could not update state for endpoint %s into cluster: %v", ep.Name(), err)
|
||||
}
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (sb *sandbox) DisableService() error {
|
||||
for _, ep := range sb.getConnectedEndpoints() {
|
||||
if ep.enableService(false) {
|
||||
if err := ep.deleteFromCluster(); err != nil {
|
||||
ep.enableService(true)
|
||||
return fmt.Errorf("could not delete state for endpoint %s from cluster: %v", ep.Name(), err)
|
||||
}
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func releaseOSSboxResources(osSbox osl.Sandbox, ep *endpoint) {
|
||||
for _, i := range osSbox.Info().Interfaces() {
|
||||
// Only remove the interfaces owned by this endpoint from the sandbox.
|
||||
|
|
Loading…
Add table
Reference in a new issue