Пример #1
0
func main() {
	runner.Run(os.Args[1:], func() {
		plugin.RegisterMultiBackendAdapterFactory("handle-things", adapter.HandleThingsFactory)
		plugin.RegisterWrapperFactory("SessionId", session.NewSessionWrapper)
		plugin.RegisterWrapperFactory("Timing", timing.NewTimingWrapper)
		plugin.RegisterWrapperFactory("Recovery", recovery.NewRecoveryWrapper)
	})
}
Пример #2
0
func registerPlugins() {
	log.Info("Register plugins")
	log.Info("Registering logging wrapper plugin factory")

	err := plugin.RegisterWrapperFactory("Logging", logging.NewLoggingWrapper)
	if err != nil {
		log.Warn("Error registering logging wrapper plugin factory")
	}
	log.Info("logging wrapper plugin registered")

	plugin.RegisterWrapperFactory("Timing", timing.NewTimingWrapper)
	plugin.RegisterWrapperFactory("Recovery", recovery.NewRecoveryWrapper)

	log.Info("Plugins registered")
}
Пример #3
0
func testMakeListPlugins(faultyStore bool, withPlugin bool) (*bytes.Buffer, *PluginList) {

	var kvs, _ = kvstore.NewHashKVStore("")
	if faultyStore {
		kvs.InjectFaults()
	}
	var writer = new(bytes.Buffer)
	var ui = &cli.BasicUi{Writer: writer, ErrorWriter: writer}
	var listPlugins = &PluginList{
		UI:      ui,
		KVStore: kvs,
	}

	if withPlugin {
		plugin.RegisterWrapperFactory("AWrapper", NewAWrapper)
	}

	return writer, listPlugins
}
Пример #4
0
func TestServerFactory(t *testing.T) {
	plugin.RegisterWrapperFactory("Logging", logging.NewLoggingWrapper)

	var testKVS = initKVStore(t)
	service, err := BuildServiceForListener("listener", "0.0.0.0:8000", testKVS)
	assert.Nil(t, err)
	s := fmt.Sprintf("%s", service)
	println(s)
	assert.True(t, strings.Contains(s, "route1"))
	assert.True(t, strings.Contains(s, "hello-backend"))
	assert.True(t, strings.Contains(s, "listener"))
	assert.True(t, strings.Contains(s, "0.0.0.0:8000"))

	ms, ok := service.(*managedService)
	assert.True(t, ok)
	hch := ms.HealthCheckContext.HealthHandler()
	assert.NotNil(t, hch)

	ts := httptest.NewServer(hch)
	defer ts.Close()

	res, err := http.Get(ts.URL)
	assert.Nil(t, err)
	respbytes, _ := ioutil.ReadAll(res.Body)
	res.Body.Close()

	var health HealthResponse

	err = json.Unmarshal(respbytes, &health)
	assert.Nil(t, err)
	assert.Equal(t, "listener", health.ListenerName)
	assert.Equal(t, 1, len(health.Routes))
	assert.Equal(t, "route1", health.Routes[0].Name)
	assert.True(t, health.Routes[0].Up)
	assert.Equal(t, 1, len(health.Routes[0].Backends))
	assert.Equal(t, "hello-backend", health.Routes[0].Backends[0].Name)
	assert.Equal(t, 2, len(health.Routes[0].Backends[0].HealthyDependencies))
	assert.Equal(t, "localhost:3000", health.Routes[0].Backends[0].HealthyDependencies[0])
	assert.Equal(t, "localhost:3100", health.Routes[0].Backends[0].HealthyDependencies[1])
	assert.Equal(t, true, health.Routes[0].Backends[0].Up)
	assert.Equal(t, 0, len(health.Routes[0].Backends[0].UnhealthyDependencies))

}
Пример #5
0
func loadRouteWithNoBackends(kvs kvstore.KVStore, t *testing.T) {
	plugin.RegisterWrapperFactory("Logging", logging.NewLoggingWrapper)
	ln := &ListenerConfig{"l2", []string{"r2"}}
	err := ln.Store(kvs)
	if err != nil {
		t.Fatal(err)
	}

	r := &RouteConfig{
		Name:                "r3",
		URIRoot:             "/hello",
		Backends:            []string{},
		Plugins:             []string{"Logging"},
		MsgProps:            "",
		MultiBackendAdapter: "test-plugin",
	}
	err = r.Store(kvs)
	if err != nil {
		t.Fatal(err)
	}
}
Пример #6
0
func registerLoggingPlugin() {
	plugin.RegisterWrapperFactory("Logging", logging.NewLoggingWrapper)
}