func (c *VcapComponent) Start() error { if c.Varz.Type == "" { err := errors.New("type is required") log.Error("Component type is required", err) return err } c.quitCh = make(chan struct{}, 1) c.Varz.StartTime = schema.Time(time.Now()) guid, err := uuid.GenerateUUID() if err != nil { return err } c.Varz.UUID = fmt.Sprintf("%d-%s", c.Varz.Index, guid) if c.Varz.Host == "" { host, err := localip.LocalIP() if err != nil { log.Error("error-getting-localIP", err) return err } port, err := localip.LocalPort() if err != nil { log.Error("error-getting-localPort", err) return err } c.Varz.Host = fmt.Sprintf("%s:%d", host, port) } if c.Varz.Credentials == nil || len(c.Varz.Credentials) != 2 { user, err := uuid.GenerateUUID() if err != nil { return err } password, err := uuid.GenerateUUID() if err != nil { return err } c.Varz.Credentials = []string{user, password} } if c.Logger != nil { log = c.Logger } c.Varz.NumCores = runtime.NumCPU() procStat = NewProcessStatus() c.ListenAndServe() return nil }
func NewTestApp(urls []route.Uri, rPort uint16, mbusClient *nats.Conn, tags map[string]string, routeService string) *TestApp { app := new(TestApp) port, _ := localip.LocalPort() app.port = port app.rPort = rPort app.urls = urls app.mbusClient = mbusClient app.tags = tags app.routeService = routeService app.mux = http.NewServeMux() return app }
type MarshalableValue struct { Value map[string]string } func (m *MarshalableValue) MarshalJSON() ([]byte, error) { return json.Marshal(m.Value) } var _ = Describe("Component", func() { var ( component *VcapComponent varz *health.Varz ) BeforeEach(func() { port, err := localip.LocalPort() Expect(err).ToNot(HaveOccurred()) varz = &health.Varz{ GenericVarz: health.GenericVarz{ Host: fmt.Sprintf("127.0.0.1:%d", port), Credentials: []string{"username", "password"}, }, } component = &VcapComponent{ Varz: varz, } }) It("prevents unauthorized access", func() { path := "/test"
func NextAvailPort() uint16 { port, err := localip.LocalPort() Expect(err).ToNot(HaveOccurred()) return port }