diff --git a/api/execute.go b/api/execute.go index 9eaf4768..5cbf5635 100644 --- a/api/execute.go +++ b/api/execute.go @@ -12,8 +12,8 @@ import ( "github.com/blocklessnetwork/b7s/node/aggregate" ) -// Execute implements the REST API endpoint for function execution. -func (a *API) Execute(ctx echo.Context) error { +// ExecuteFunction implements the REST API endpoint for function execution. +func (a *API) ExecuteFunction(ctx echo.Context) error { // Unpack the API request. var req ExecutionRequest diff --git a/api/execute_test.go b/api/execute_test.go index b8f4e806..e00f8d23 100644 --- a/api/execute_test.go +++ b/api/execute_test.go @@ -51,7 +51,7 @@ func TestAPI_Execute(t *testing.T) { rec, ctx, err := setupRecorder(executeEndpoint, req) require.NoError(t, err) - err = srv.Execute(ctx) + err = srv.ExecuteFunction(ctx) require.NoError(t, err) var res api.ExecutionResponse @@ -101,7 +101,7 @@ func TestAPI_Execute_HandlesErrors(t *testing.T) { rec, ctx, err := setupRecorder(executeEndpoint, req) require.NoError(t, err) - err = srv.Execute(ctx) + err = srv.ExecuteFunction(ctx) require.NoError(t, err) var res api.ExecutionResponse @@ -121,7 +121,6 @@ func TestAPI_Execute_HandlesErrors(t *testing.T) { func TestAPI_Execute_HandlesMalformedRequests(t *testing.T) { api := setupAPI(t) - _ = api const ( wrongFieldType = ` @@ -180,7 +179,7 @@ func TestAPI_Execute_HandlesMalformedRequests(t *testing.T) { _, ctx, err := setupRecorder(executeEndpoint, test.payload, prepare) require.NoError(t, err) - err = api.Execute(ctx) + err = api.ExecuteFunction(ctx) require.Error(t, err) echoErr, ok := err.(*echo.HTTPError) diff --git a/api/install.go b/api/install.go index a22c78b1..825c369f 100644 --- a/api/install.go +++ b/api/install.go @@ -15,7 +15,7 @@ const ( functionInstallTimeout = 10 * time.Second ) -func (a *API) Install(ctx echo.Context) error { +func (a *API) InstallFunction(ctx echo.Context) error { // Unpack the API request. var req FunctionInstallRequest diff --git a/api/install_test.go b/api/install_test.go index 04e964e0..3111bf8c 100644 --- a/api/install_test.go +++ b/api/install_test.go @@ -29,7 +29,7 @@ func TestAPI_FunctionInstall(t *testing.T) { rec, ctx, err := setupRecorder(installEndpoint, req) require.NoError(t, err) - err = srv.Install(ctx) + err = srv.InstallFunction(ctx) require.NoError(t, err) require.Equal(t, http.StatusOK, rec.Result().StatusCode) @@ -50,7 +50,7 @@ func TestAPI_FunctionInstall_HandlesErrors(t *testing.T) { _, ctx, err := setupRecorder(installEndpoint, req) require.NoError(t, err) - err = srv.Install(ctx) + err = srv.InstallFunction(ctx) require.Error(t, err) echoErr, ok := err.(*echo.HTTPError) @@ -82,7 +82,7 @@ func TestAPI_FunctionInstall_HandlesErrors(t *testing.T) { rec, ctx, err := setupRecorder(installEndpoint, req) require.NoError(t, err) - err = srv.Install(ctx) + err = srv.InstallFunction(ctx) require.NoError(t, err) require.Equal(t, http.StatusOK, rec.Result().StatusCode) @@ -113,7 +113,7 @@ func TestAPI_FunctionInstall_HandlesErrors(t *testing.T) { _, ctx, err := setupRecorder(installEndpoint, req) require.NoError(t, err) - err = srv.Install(ctx) + err = srv.InstallFunction(ctx) require.Error(t, err) echoErr, ok := err.(*echo.HTTPError) @@ -181,7 +181,7 @@ func TestAPI_InstallFunction_HandlesMalformedRequests(t *testing.T) { _, ctx, err := setupRecorder(installEndpoint, test.payload, prepare) require.NoError(t, err) - err = srv.Install(ctx) + err = srv.InstallFunction(ctx) require.Error(t, err) echoErr, ok := err.(*echo.HTTPError) diff --git a/cmd/node/main.go b/cmd/node/main.go index adbb83ee..884acf18 100644 --- a/cmd/node/main.go +++ b/cmd/node/main.go @@ -261,22 +261,11 @@ func run() int { } // Create echo server and iniialize logging. - server := echo.New() - server.HideBanner = true - server.HidePort = true - - elog := lecho.From(log) - server.Logger = elog - server.Use(lecho.Middleware(lecho.Config{Logger: elog})) + server := createEchoServer(log) // Create an API handler. - api := api.New(log, node) - - // Set endpoint handlers. - server.GET("/api/v1/health", api.Health) - server.POST("/api/v1/functions/execute", api.Execute) - server.POST("/api/v1/functions/install", api.Install) - server.POST("/api/v1/functions/requests/result", api.ExecutionResult) + apiHandler := api.New(log, node) + api.RegisterHandlers(server, apiHandler) // Start API in a separate goroutine. go func() { @@ -314,6 +303,18 @@ func run() int { return success } +func createEchoServer(log zerolog.Logger) *echo.Echo { + server := echo.New() + server.HideBanner = true + server.HidePort = true + + elog := lecho.From(log) + server.Logger = elog + server.Use(lecho.Middleware(lecho.Config{Logger: elog})) + + return server +} + func needLimiter(cfg *config.Config) bool { return cfg.Worker.CPUPercentageLimit != 1.0 || cfg.Worker.MemoryLimitKB > 0 }