|
@@ -57,6 +57,7 @@ type endpoint struct {
|
|
joinInfo *endpointJoinInfo
|
|
joinInfo *endpointJoinInfo
|
|
sandboxID string
|
|
sandboxID string
|
|
exposedPorts []types.TransportPort
|
|
exposedPorts []types.TransportPort
|
|
|
|
+ anonymous bool
|
|
generic map[string]interface{}
|
|
generic map[string]interface{}
|
|
joinLeaveDone chan struct{}
|
|
joinLeaveDone chan struct{}
|
|
dbIndex uint64
|
|
dbIndex uint64
|
|
@@ -77,6 +78,7 @@ func (ep *endpoint) MarshalJSON() ([]byte, error) {
|
|
epMap["generic"] = ep.generic
|
|
epMap["generic"] = ep.generic
|
|
}
|
|
}
|
|
epMap["sandbox"] = ep.sandboxID
|
|
epMap["sandbox"] = ep.sandboxID
|
|
|
|
+ epMap["anonymous"] = ep.anonymous
|
|
return json.Marshal(epMap)
|
|
return json.Marshal(epMap)
|
|
}
|
|
}
|
|
|
|
|
|
@@ -105,6 +107,10 @@ func (ep *endpoint) UnmarshalJSON(b []byte) (err error) {
|
|
if v, ok := epMap["generic"]; ok {
|
|
if v, ok := epMap["generic"]; ok {
|
|
ep.generic = v.(map[string]interface{})
|
|
ep.generic = v.(map[string]interface{})
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ if v, ok := epMap["anonymous"]; ok {
|
|
|
|
+ ep.anonymous = v.(bool)
|
|
|
|
+ }
|
|
return nil
|
|
return nil
|
|
}
|
|
}
|
|
|
|
|
|
@@ -122,6 +128,7 @@ func (ep *endpoint) CopyTo(o datastore.KVObject) error {
|
|
dstEp.sandboxID = ep.sandboxID
|
|
dstEp.sandboxID = ep.sandboxID
|
|
dstEp.dbIndex = ep.dbIndex
|
|
dstEp.dbIndex = ep.dbIndex
|
|
dstEp.dbExists = ep.dbExists
|
|
dstEp.dbExists = ep.dbExists
|
|
|
|
+ dstEp.anonymous = ep.anonymous
|
|
|
|
|
|
if ep.iface != nil {
|
|
if ep.iface != nil {
|
|
dstEp.iface = &endpointInterface{}
|
|
dstEp.iface = &endpointInterface{}
|
|
@@ -161,6 +168,12 @@ func (ep *endpoint) Network() string {
|
|
return ep.network.name
|
|
return ep.network.name
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+func (ep *endpoint) isAnonymous() bool {
|
|
|
|
+ ep.Lock()
|
|
|
|
+ defer ep.Unlock()
|
|
|
|
+ return ep.anonymous
|
|
|
|
+}
|
|
|
|
+
|
|
// endpoint Key structure : endpoint/network-id/endpoint-id
|
|
// endpoint Key structure : endpoint/network-id/endpoint-id
|
|
func (ep *endpoint) Key() []string {
|
|
func (ep *endpoint) Key() []string {
|
|
if ep.network == nil {
|
|
if ep.network == nil {
|
|
@@ -603,6 +616,14 @@ func CreateOptionPortMapping(portBindings []types.PortBinding) EndpointOption {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+// CreateOptionAnonymous function returns an option setter for setting
|
|
|
|
+// this endpoint as anonymous
|
|
|
|
+func CreateOptionAnonymous() EndpointOption {
|
|
|
|
+ return func(ep *endpoint) {
|
|
|
|
+ ep.anonymous = true
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
// JoinOptionPriority function returns an option setter for priority option to
|
|
// JoinOptionPriority function returns an option setter for priority option to
|
|
// be passed to the endpoint.Join() method.
|
|
// be passed to the endpoint.Join() method.
|
|
func JoinOptionPriority(ep Endpoint, prio int) EndpointOption {
|
|
func JoinOptionPriority(ep Endpoint, prio int) EndpointOption {
|