Beispiel #1
0
	"net/http/httptest"
	"net/url"
	"sync"
	"sync/atomic"
	"time"
)

var _ = Describe("Loggregator Consumer", func() {
	var (
		connection        consumer.LoggregatorConsumer
		endpoint          string
		testServer        *httptest.Server
		fakeHandler       *FakeHandler
		tlsSettings       *tls.Config
		consumerProxyFunc func(*http.Request) (*url.URL, error)

		appGuid        string
		authToken      string
		incomingChan   <-chan *logmessage.LogMessage
		messagesToSend chan []byte

		err error
	)

	BeforeSuite(func() {
		buf := &bytes.Buffer{}
		log.SetOutput(buf)
	})

	BeforeEach(func() {
		messagesToSend = make(chan []byte, 256)
		Message:     []byte(message),
		AppId:       proto.String("my-app-guid"),
		MessageType: &messageType,
		SourceName:  &sourceName,
		Timestamp:   proto.Int64(timestamp),
	}
}

var _ = Describe("Loggregator Consumer", func() {
	var (
		connection  consumer.LoggregatorConsumer
		endpoint    string
		testServer  *httptest.Server
		fakeHandler *FakeHandler
		tlsSettings *tls.Config
		proxy       func(*http.Request) (*url.URL, error)

		appGuid      string
		authToken    string
		incomingChan <-chan *logmessage.LogMessage

		err error
	)

	BeforeEach(func() {
		fakeHandler = &FakeHandler{}
		fakeHandler.closeConnection = make(chan bool)
	})

	AfterEach(func() {
		if testServer != nil {
			testServer.Close()
Beispiel #3
0
	"log"
	"net/http"
	"net/http/httptest"
	"net/url"
	"time"
)

var _ = Describe("Loggregator Consumer behind a Proxy", func() {
	var (
		connection        consumer.LoggregatorConsumer
		endpoint          string
		testServer        *httptest.Server
		tlsSettings       *tls.Config
		consumerProxyFunc func(*http.Request) (*url.URL, error)

		appGuid         string
		authToken       string
		incomingChan    <-chan *logmessage.LogMessage
		messagesToSend  chan []byte
		testProxyServer *httptest.Server
		goProxyHandler  *goproxy.ProxyHttpServer

		err error
	)

	BeforeEach(func() {
		messagesToSend = make(chan []byte, 256)

		testServer = httptest.NewServer(handlers.NewWebsocketHandler(messagesToSend, 100*time.Millisecond, loggertesthelper.Logger()))
		endpoint = "ws://" + testServer.Listener.Addr().String()
		goProxyHandler = goproxy.NewProxyHttpServer()
		goProxyHandler.Logger = log.New(bytes.NewBufferString(""), "", 0)
import (
	"crypto/tls"
	"encoding/json"
	consumer "github.com/cloudfoundry/loggregator_consumer"
	. "github.com/onsi/ginkgo"
	. "github.com/onsi/gomega"
	"os"

	"io/ioutil"
	"strings"
)

var _ = Describe("LoggregatorConsumer:", func() {
	var appGuid, authToken string
	var connection consumer.LoggregatorConsumer

	BeforeEach(func() {
		var err error
		appGuid = os.Getenv("TEST_APP_GUID")
		loggregatorEndpoint := os.Getenv("LOGGREGATOR_ENDPOINT")

		connection = consumer.New(loggregatorEndpoint, &tls.Config{InsecureSkipVerify: true}, nil)
		authToken, err = getAuthToken()
		Expect(err).NotTo(HaveOccurred())

	})

	AfterEach(func() {
		connection.Close()
	})
			noaaConsumer.ContainerMetrics(APP_ID, AUTH_TOKEN)

			expected := fmt.Sprintf("CEF:0|cloud_foundry|loggregator_trafficcontroller|1.0|GET /apps/%s/containermetrics|GET /apps/%[1]s/containermetrics|0|", APP_ID)
			Eventually(testContents).Should(ContainSubstring(expected))
		})

		It("logs firehose access", func() {
			noaaConsumer.Firehose("foo", AUTH_TOKEN)

			expected := "CEF:0|cloud_foundry|loggregator_trafficcontroller|1.0|GET /firehose/foo|GET /firehose/foo|0|"
			Eventually(testContents).Should(ContainSubstring(expected))
		})
	})

	Context("with legacy endpoints", func() {
		var legacyConsumer loggregator_consumer.LoggregatorConsumer

		JustBeforeEach(func() {
			tcURL := fmt.Sprintf("ws://%s:%d", localIPAddress, TRAFFIC_CONTROLLER_LEGACY_PORT)
			legacyConsumer = loggregator_consumer.New(tcURL, &tls.Config{}, nil)
		})

		AfterEach(func() {
			legacyConsumer.Close()
		})

		It("logs tail access", func() {
			legacyConsumer.Tail(APP_ID, AUTH_TOKEN)

			expected := fmt.Sprintf("CEF:0|cloud_foundry|loggregator_trafficcontroller|1.0|GET /tail/?app=%s|GET /tail/?app=%[1]s|0|", APP_ID)
			Eventually(testContents).Should(ContainSubstring(expected))