func main() { configFilePath := flag.String("config", "config/datadog-firehose-nozzle.json", "Location of the nozzle config json file") flag.Parse() config, err := nozzleconfig.Parse(*configFilePath) if err != nil { log.Fatalf("Error parsing config: %s", err.Error()) } tokenFetcher := &uaatokenfetcher.UAATokenFetcher{ UaaUrl: config.UAAURL, Username: config.Username, Password: config.Password, InsecureSSLSkipVerify: config.InsecureSSLSkipVerify, } threadDumpChan := registerGoRoutineDumpSignalChannel() defer close(threadDumpChan) go dumpGoRoutine(threadDumpChan) datadog_nozzle := datadogfirehosenozzle.NewDatadogFirehoseNozzle(config, tokenFetcher) datadog_nozzle.Start() }
package nozzleconfig_test import ( "github.com/cloudfoundry-incubator/datadog-firehose-nozzle/nozzleconfig" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" "os" ) var _ = Describe("NozzleConfig", func() { BeforeEach(func() { os.Clearenv() }) It("successfully parses a valid config", func() { conf, err := nozzleconfig.Parse("../config/datadog-firehose-nozzle.json") Expect(err).ToNot(HaveOccurred()) Expect(conf.UAAURL).To(Equal("https://uaa.walnut.cf-app.com")) Expect(conf.Username).To(Equal("user")) Expect(conf.Password).To(Equal("user_password")) Expect(conf.DataDogURL).To(Equal("https://app.datadoghq.com/api/v1/series")) Expect(conf.DataDogAPIKey).To(Equal("<enter api key>")) Expect(conf.FlushDurationSeconds).To(BeEquivalentTo(15)) Expect(conf.InsecureSSLSkipVerify).To(Equal(true)) Expect(conf.MetricPrefix).To(Equal("datadogclient")) Expect(conf.Deployment).To(Equal("deployment-name")) Expect(conf.DisableAccessControl).To(Equal(false)) Expect(conf.IdleTimeoutSeconds).To(BeEquivalentTo(60)) }) It("successfully overwrites file config values with environmental variables", func() {