Skip to content

Commit

Permalink
Push abstractions onto route path; cleanup storage (#115)
Browse files Browse the repository at this point in the history
* push abstractions onto route path; cleanup storage

* wip

* dont return err

---------

Co-authored-by: Luke Lombardi <[email protected]>
  • Loading branch information
luke-lombardi and Luke Lombardi authored Mar 26, 2024
1 parent 314ae3d commit c8293df
Show file tree
Hide file tree
Showing 8 changed files with 43 additions and 35 deletions.
12 changes: 6 additions & 6 deletions internal/abstractions/endpoint/endpoint.go
Original file line number Diff line number Diff line change
Expand Up @@ -42,11 +42,11 @@ var RingBufferSize int = 10000000
var RequestTimeout = 120 * time.Second

type EndpointServiceOpts struct {
Config types.AppConfig
RedisClient *common.RedisClient
Scheduler *scheduler.Scheduler
BaseRouteGroup *echo.Group
Tailscale *network.Tailscale
Config types.AppConfig
RedisClient *common.RedisClient
Scheduler *scheduler.Scheduler
RouteGroup *echo.Group
Tailscale *network.Tailscale
}

func NewEndpointService(
Expand Down Expand Up @@ -78,7 +78,7 @@ func NewEndpointService(

// Register HTTP routes
authMiddleware := auth.AuthMiddleware(backendRepo)
registerEndpointRoutes(opts.BaseRouteGroup.Group(endpointRoutePrefix, authMiddleware), es)
registerEndpointRoutes(opts.RouteGroup.Group(endpointRoutePrefix, authMiddleware), es)

return es, nil
}
Expand Down
6 changes: 3 additions & 3 deletions internal/abstractions/endpoint/http.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,12 @@ import (
)

type endpointGroup struct {
routerGroup *echo.Group
es *RingBufferEndpointService
routeGroup *echo.Group
es *RingBufferEndpointService
}

func registerEndpointRoutes(g *echo.Group, es *RingBufferEndpointService) *endpointGroup {
group := &endpointGroup{routerGroup: g, es: es}
group := &endpointGroup{routeGroup: g, es: es}

g.GET("/id/:stubId/", group.endpointRequest)
g.POST("/:deploymentName/v:version", group.endpointRequest)
Expand Down
16 changes: 8 additions & 8 deletions internal/abstractions/function/function.go
Original file line number Diff line number Diff line change
Expand Up @@ -47,13 +47,13 @@ type RunCFunctionService struct {
}

type FunctionServiceOpts struct {
Config types.AppConfig
RedisClient *common.RedisClient
BackendRepo repository.BackendRepository
ContainerRepo repository.ContainerRepository
Scheduler *scheduler.Scheduler
Tailscale *network.Tailscale
BaseRouteGroup *echo.Group
Config types.AppConfig
RedisClient *common.RedisClient
BackendRepo repository.BackendRepository
ContainerRepo repository.ContainerRepository
Scheduler *scheduler.Scheduler
Tailscale *network.Tailscale
RouteGroup *echo.Group
}

func NewRuncFunctionService(ctx context.Context,
Expand All @@ -76,7 +76,7 @@ func NewRuncFunctionService(ctx context.Context,

// Register HTTP routes
authMiddleware := auth.AuthMiddleware(fs.backendRepo)
registerFunctionRoutes(opts.BaseRouteGroup.Group(functionRoutePrefix, authMiddleware), fs)
registerFunctionRoutes(opts.RouteGroup.Group(functionRoutePrefix, authMiddleware), fs)

return fs, nil
}
Expand Down
6 changes: 3 additions & 3 deletions internal/abstractions/taskqueue/http.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,12 @@ import (
)

type taskQueueGroup struct {
routerGroup *echo.Group
tq *RedisTaskQueue
routeGroup *echo.Group
tq *RedisTaskQueue
}

func registerTaskQueueRoutes(g *echo.Group, tq *RedisTaskQueue) *taskQueueGroup {
group := &taskQueueGroup{routerGroup: g, tq: tq}
group := &taskQueueGroup{routeGroup: g, tq: tq}

g.POST("/id/:stubId", group.TaskQueuePut)
g.POST("/:deploymentName/v:version", group.TaskQueuePut)
Expand Down
4 changes: 2 additions & 2 deletions internal/abstractions/taskqueue/taskqueue.go
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ func NewRedisTaskQueueService(
scheduler *scheduler.Scheduler,
containerRepo repository.ContainerRepository,
backendRepo repository.BackendRepository,
baseRouteGroup *echo.Group,
routeGroup *echo.Group,
) (TaskQueueService, error) {
keyEventChan := make(chan common.KeyEvent)
keyEventManager, err := common.NewKeyEventManager(rdb)
Expand All @@ -79,7 +79,7 @@ func NewRedisTaskQueueService(

// Register HTTP routes
authMiddleware := auth.AuthMiddleware(backendRepo)
registerTaskQueueRoutes(baseRouteGroup.Group(taskQueueRoutePrefix, authMiddleware), tq)
registerTaskQueueRoutes(routeGroup.Group(taskQueueRoutePrefix, authMiddleware), tq)

return tq, nil
}
Expand Down
1 change: 1 addition & 0 deletions internal/api/v1/base.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,5 @@ package apiv1

const (
HttpServerBaseRoute string = "/api/v1"
HttpServerRootRoute string = "/"
)
28 changes: 15 additions & 13 deletions internal/gateway/gateway.go
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@ type Gateway struct {
ctx context.Context
cancelFunc context.CancelFunc
baseRouteGroup *echo.Group
rootRouteGroup *echo.Group
}

func NewGateway() (*Gateway, error) {
Expand Down Expand Up @@ -139,6 +140,7 @@ func (g *Gateway) initHttp() error {

authMiddleware := auth.AuthMiddleware(g.BackendRepo)
g.baseRouteGroup = e.Group(apiv1.HttpServerBaseRoute)
g.rootRouteGroup = e.Group(apiv1.HttpServerRootRoute)

apiv1.NewHealthGroup(g.baseRouteGroup.Group("/health"), g.redisClient)
apiv1.NewMachineGroup(g.baseRouteGroup.Group("/machine", authMiddleware), g.ProviderRepo, g.Tailscale, g.config)
Expand Down Expand Up @@ -196,33 +198,33 @@ func (g *Gateway) registerServices() error {

// Register function service
fs, err := function.NewRuncFunctionService(g.ctx, function.FunctionServiceOpts{
Config: g.config,
RedisClient: g.redisClient,
BackendRepo: g.BackendRepo,
ContainerRepo: g.ContainerRepo,
Scheduler: g.Scheduler,
Tailscale: g.Tailscale,
BaseRouteGroup: g.baseRouteGroup,
Config: g.config,
RedisClient: g.redisClient,
BackendRepo: g.BackendRepo,
ContainerRepo: g.ContainerRepo,
Scheduler: g.Scheduler,
Tailscale: g.Tailscale,
RouteGroup: g.rootRouteGroup,
})
if err != nil {
return err
}
pb.RegisterFunctionServiceServer(g.grpcServer, fs)

// Register task queue service
tq, err := taskqueue.NewRedisTaskQueueService(g.ctx, g.redisClient, g.Scheduler, g.ContainerRepo, g.BackendRepo, g.baseRouteGroup)
tq, err := taskqueue.NewRedisTaskQueueService(g.ctx, g.redisClient, g.Scheduler, g.ContainerRepo, g.BackendRepo, g.rootRouteGroup)
if err != nil {
return err
}
pb.RegisterTaskQueueServiceServer(g.grpcServer, tq)

// Register endpoint service
ws, err := endpoint.NewEndpointService(g.ctx, endpoint.EndpointServiceOpts{
Config: g.config,
RedisClient: g.redisClient,
Scheduler: g.Scheduler,
BaseRouteGroup: g.baseRouteGroup,
Tailscale: g.Tailscale,
Config: g.config,
RedisClient: g.redisClient,
Scheduler: g.Scheduler,
RouteGroup: g.rootRouteGroup,
Tailscale: g.Tailscale,
})
if err != nil {
return err
Expand Down
5 changes: 5 additions & 0 deletions internal/worker/worker.go
Original file line number Diff line number Diff line change
Expand Up @@ -745,6 +745,11 @@ func (s *Worker) shutdown() error {
return err
}

err = s.storage.Unmount(s.config.Storage.FilesystemPath)
if err != nil {
log.Printf("Failed to unmount storage: %v\n", err)
}

s.cancel()
return nil
}

0 comments on commit c8293df

Please sign in to comment.