package host import ( "github.com/carlosframework/platform/internal/hostbox" "github.com/carlosframework/platform/internal/park" ) // The signed roster supplies both the engine name and the fleet home. // An empty local placement binds an alias only when those names agree. func claimRegionBinding(roster, code, fleetHome string) (engine, home string, err error) { engine = park.PlacementRegion(roster) placement := park.PlacementRegion(code) if roster == "" || engine == "" || placement == "" || (code != "" && engine != placement) { return "", "", hostbox.ErrChanged } if code == "" && fleetHome != "" { if roster != fleetHome { return "", "", hostbox.ErrChanged } home = engine } return engine, home, nil }