Fall back to sleeve when "Overlays" not present in features

This commit is contained in:
David Wragg committed 2015-10-14 11:11:34 +01:00
1 parent 1000839309
commit 1f1451e666
2 files changed
+14 -3

No files matched your search

+3 -1
View File
@@ -196,7 +196,9 @@ func main() {
if fastDPOverlay != nil {
overlays.Add("fastdp", fastDPOverlay)
}
overlays.Add("sleeve", weave.NewSleeveOverlay(config.Port))
sleeve := weave.NewSleeveOverlay(config.Port)
overlays.Add("sleeve", sleeve)
overlays.SetCompatOverlay(sleeve)
config.Overlay = overlays
if routerName == "" {
+11 -2
View File
@@ -13,8 +13,9 @@ import (
// uses the best one that seems to be working.
type OverlaySwitch struct {
overlays map[string]Overlay
overlayNames []string
overlays map[string]Overlay
overlayNames []string
compatOverlay Overlay
}
func NewOverlaySwitch() *OverlaySwitch {
@@ -31,6 +32,10 @@ func (osw *OverlaySwitch) Add(name string, overlay Overlay) {
osw.overlayNames = append(osw.overlayNames, name)
}
func (osw *OverlaySwitch) SetCompatOverlay(overlay Overlay) {
osw.compatOverlay = overlay
}
func (osw *OverlaySwitch) AddFeaturesTo(features map[string]string) {
features["Overlays"] = strings.Join(osw.overlayNames, " ")
}
@@ -159,6 +164,10 @@ type subForwarderEvent struct {
func (osw *OverlaySwitch) MakeForwarder(
params ForwarderParams) (OverlayForwarder, error) {
if _, present := params.Features["Overlays"]; !present && osw.compatOverlay != nil {
return osw.compatOverlay.MakeForwarder(params)
}
overlays, err := osw.commonOverlays(params)
if err != nil {
return nil, err